ffmpeg报错解决方法

1.问题-安装了ffmpeg,使用conda uninstall ffmpeg一直卡壳在sloving environment
解决方案:conda update conda, 升级这个需要几分钟时间,升级之后重新运行上面的命令,有可能还是不行。
进一步处理:pip install FFmpeg, 相当于无论是pip还是conda都可以安装ffmpeg,所以怀疑pip uninstall ffmpeg了,导致环境问题。 验证方法:pip list | grep ffmpeg 回显的版本跟 conda list | grep ffmpeg回显的版本一致。
备注:不清楚为什么,以前25环境中的conda很顺畅,现在一点都不顺畅。而且本来是pytorch 1.6的环境,变成了pytorch 1.4的环境。torchaudio也不复存在了。

2.问题-运行ffmpeg,报错:ffmpeg: error while loading shared libraries: libopenh264.so.5

首先说明一下,conda install 的ffmpeg 或者 pip install的ffmpeg的安装位置在:/opt/conda/bin/ffmpeg , 当时也是用了apt-get install ffmpeg,但是其目录位于/usr/bin/ffmpeg

通过运行/opt/conda/bin/ffmpeg 发现了和问题一摸一样的报错;通过运行/usr/bin/ffmpeg发现安装成功。

那为啥系统的就是运行的opt下的呢?通过查看PATH,我们发现,opt这个路径在usr这个路径前面,这就是原因啊,通过PATH先找到的那个就是。如果usr的位置比较靠前,那运行的就是usr里面的ffmpeg,其实原理就是这么简单。

解决方法一:
那有一个非常粗暴的解决方法就是用alisa解决,通过alisa命令,重定向ffmpeg这个命令到/usr/bin/ffmpeg ,这样运行ffmpeg就没有问题了。
那经过实验呢,手动运行ffmpeg确实没问题,但问题是,只是改了重定向。如果是一个系统里高级的掉用,ffmpeg依然是系统的ffmpeg,也就是opt那个ffmpeg, 还是报错,不解决根本问题。

解决方法二:
那既然前面说了和PATH先后顺序有关系,临时调换下顺序,经过实验验证,确实没有问题,但是有一些风险,就是有一些系统的包可能有问题的,但是opt下又没有问题的。

解决方法三:
那就是直面发生的找不到so的问题。其实也很简单,/opt/conda/lib/libopenh264.so是存在的,只不过libopenh264.so.5是不存在的,那么就可以用软连接链接一下:

ln -s /opt/conda/lib/libopenh264.so /opt/conda/lib/libopenh264.so.5

链接完再试一下,发现就可以了。

你可能感兴趣的:(ffmpeg,python,开发语言)