来到这里,十有八九是手动编译安装的ffmpeg,在跑视频流程序或命令时出现这个问题。
跟这个报错:ffmpeg: error while loading shared libraries: libx264.so.164: cannot open shared object file: No such file or directory
的错误本质是一样的,都是由于 ffmpeg 时使用到了 libx264,而在实际的编译式安装过程中没有指定编译 libx264 参数,从而产生报错。
因此,通过 apt-get install ffmpeg安装的方式不会出现此问题。
那么,手动编译安装或升级ffmpeg 的解决方案如下:
whereis ffmpeg
找到你的ffmpeg 安装目录在哪。我的是 /usr/bin/ffmpeg , 接下来直接删除文件夹: /usr/bin/ffmpeg 即可。
进入你的ffmpeg 安装包,重新编译安装:
例如我进入了 ffmpeg-5.1/ 下,先后执行:
./configure --enable-shared --enable-libx264 --enable-gpl --prefix=/usr/bin/ffmpeg
make
(sudo) make install
动态链接库
vim /etc/ld.so.conf, 加入一行:/usr/bin/ffmpeg/lib, 再执行ldconfig。
若报 ... is not a symbolic link 类的信息,不用管,没啥影响。
为 ffmpeg 加入环境变量
vi /etc/profile
加入:
FFMPEG=/usr/bin/ffmpeg
PATH=$FFMPEG/bin:$PATH
wq退出,source source /etc/profile 使修改立即生效
ffmpeg -version 查看结果