之前想写一篇博客来记录一下本人在编译ffmpeg库是遇到的坑。
首先讲一下我的需求,利用ffmpeg库实现转码,增加水印,截图功能,输出文件固定为视频为H264编码,音频为AAC编码
系统为centos7.2
1.首先ffmpeg没有x264库,需要下载x264库,自己编译,地址:http://www.videolan.org/developers/x264.html
这个需要提前下载编译yasm库,地址:http://www.linuxfromscratch.org/blfs/view/svn/general/yasm.html
./configure
make && make install
然后再编译安装x264库
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
./configure --enable-shared
make && make install
2.因为程序要添加水印,分为文字水印与图片水印,文字水印需要用到drawtext这个滤镜,需要 安装libfreetype,libfontconfig详情请看ffmpeg官方文档:https://ffmpeg.org/ffmpeg-filters.html#drawtext-1(可能需要翻墙)
libfreetype下载地址:https://www.freetype.org/download.html
可以直接利用yum命令安装:yum install freetype-devel
libfontconfig下载地址:https://www.freedesktop.org/wiki/Software/fontconfig/
解压进入libfontconfig目录
./configure
make&& make install
3.下面就是编译ffmpeg了
ffmpeg下载地址:https://ffmpeg.org/download.html#get-sources
解压完进入ffmpeg目录
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
./configure --enable-shared --enable-gpl --enable-libx264 --enable-libfreetype --enable-libfontconfig --disable-vaapi --disable-libxcb --disable-libxcb-shm --disable-libxcb-xfixes --disable-libxcb-shape
make
可能需要等待一段时间编译时间较长
编译完毕!
利用命令找到这些动态库就OK了
find -name "*.so*"
将头文件和动态库放到你得项目目录下就OK 了
---------------------------------------------------------------
--enable-gpl是与--enable-libx264搭配使用,--disable-vaapi --disable-libxcb --disable-libxcb-shm --disable-libxcb-xfixes --disable-libxcb-shape 是禁止连接硬编的库