linux ffmpeg Unknown encoder 'h264'

linux执行命令:
ffmpeg -y -i v_test.avi -vcodec h264 -strict -2 v_test.mp4

报错:Unknown encoder ‘h264’

错误原因:当前ffmpeg没有h264视频编码器

解决方案:
1.安装x264

git clone git://git.videolan.org/x264.git
cd x264
#查看帮助信息
./configure --help
#我们需要的是x264以.so or .a的形式来支援ffmpeg,所以一般就关注shared和static关键词就可以了
./configure --enable-shared --enable-static
make
make install

2.重新编译ffmpeg
下载最新版本ffmpeg-4.1.tar.bz2
http://ffmpeg.org/download.html

tar xjf ffmpeg-4.1.tar.bz2
cd ffmpeg-4.1
./configure --prefix=/usr/local/ffmpeg --enable-shared --enable-yasm --enable-libx264 --enable-gpl --enable-pthreads --extra-cflags=-I/usr/local/x264/include --extra-ldflags=-L/usr/local/x264/lib 
#报错,根据提示加上--disable-x86asm
./configure --prefix=/usr/local/ffmpeg --enable-shared --enable-yasm --enable-libx264 --enable-gpl --enable-pthreads --extra-cflags=-I/usr/local/x264/include --extra-ldflags=-L/usr/local/x264/lib --disable-x86asm
make
make install

错误信息:

  • error while loading shared libraries: libavdevice.so.58: cannot open
    shared object file: No such file or directory
  • error while loading shared libraries: libx264.so.157: cannot open
    shared object file: No such file or directory
find / -name libavdevice.so.58
#find / -name libx264.so.157
vim /etc/ld.so.conf 
#将上述目录添加到最后一行并保存退出;
/sbin/ldconfig

猜你喜欢

转载自blog.csdn.net/weixin_33127753/article/details/84637351