「Video」 ffmpeg 安装
功能:跨平台的音视频处理库;
官网 https://www.ffmpeg.org/
github:https://github.com/FFmpeg/FFmpeg
1 标准编译
# 进入根目录
./configure --extra-cflags=-fPIC --enable-shared
make -j4 // 4 是 cpu 核数,按需设置
sudo make install
# sudo ldconfig
如需扩展功能,则先编译扩展库,再编译 ffmpeg
2 扩展功能
./configure
--prefix=/usr/local // 编译好的库,在 install 时去往的地方
--enable-shared // 输出动态库
--enable-static // 输出静态库
--enable-debug // 支持调试
--enable-libx264
--enable-libmp3lame // 编码 mp3;即可以写 mp3 文件
--disable-optimizaitons // 去优化,因为有时候系统优化后,调试时不再按函数的顺序执行
--disable-stripping // 这样就可以进入调用函数进行单步调试,不然无法单步进入函数进行单步调试
--enable-gpl // 是为了支持编译x264
更多选项参见 ffmpeg 编译选项汇总
2.1 mp3
官网:https://sourceforge.net/projects/lame
同一个音频文件,保存成 wav 格式的文件大小是 mp3 格式的 10+倍;
下载 lame,解压后进入根目录;
./configure --prefix=/usr/local --enable-shared --enable-static --enable-debug
2.1 x264
下载x264的源码;
解压后进入x264目录;
./configure --prefix=/usr/local --enable-shared --enable-static --enable-debug --disable-asm;
2.2 NVENC
编译 ffnvcodec
git clone https://git.videolan.org/git/ffmpeg/nv-codec-headers.git
cd nv-codec-headers
make
make install PREFIX=./install
配置环境变量
# 修改 ${path}/install/lib/pkgconfig/ffnvcodec.pc 文件 prefix=${path}/install
export LD_LIBRARY_PATH=${path}/install/lib/pkgconfig:$LD_LIBRARY_PATH
# 或者 export PKG_CONFIG_PATH=${path}/install/lib/pkgconfig:$PKG_CONFIG_PATH
./configure --prefix=/usr/local --enable-shared --enable-static --enable-nvenc
查看结果 ./ffmpeg -decoders | grep h264
,出现 h264_cuvid
即为成功;
3 查看相应功能
查看 mp3 相关的库:ffmpeg -codecs | grep mp3,检查是否有相关编码器
附录
A 参考资料
B 1. 编译报错
1. NVENC
ERROR: nvenc requested, but not all dependencies are satisfied: ffnvcodec
${path}/install/lib/pkgconfigffnvcodec.pc
文件内 include 路径找不到,改成绝对路径即可;
Comments