centos 64可以下载的:https://download.csdn.net/download/m0_37641005/10642836
gpu转码:
https://my.oschina.net/u/2950272/blog/1796874?p=2&temp=1525757428640
ubuntu18.04 ffmpeg 4.1编译安装
原文: https://blog.csdn.net/specialshoot/article/details/85239956
https://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu#RevertingChangesMadebyThisGuide
参考CSDN:
https://blog.csdn.net/u010821666/article/details/74905654
官方文档安装ffmpeg依赖库及ffmpeg本身均加入了static选项,可以去掉static选项(注意,编译安装的ffmpeg依赖的库也要去掉static选项)并加入shared选项。
1. 首先依赖库均使用sudo apt install 安装,除了libaom外其他都有,libaom是ffmpeg4.1新依赖的库,这个库在这里:
https://download.csdn.net/download/specialshoot/10873750
百度网盘:链接: https://pan.baidu.com/s/1iCakuuaO3OmdjISux8j2_w 提取码: h6hu
2. 编译安装ffmpeg
在安装好依赖库后就可以编译安装ffmpeg了,注意将官方文档static去掉,同时加上enabled-share选项!
编译既生成静态库也生成共享库使用如下配置(配置方法参考了上面的CSDN博客):
cd ~/ffmpeg_sources && \
wget -O ffmpeg-snapshot.tar.bz2 https://ffmpeg.org/releases/ffmpeg-snapshot.tar.bz2 && \
tar xjvf ffmpeg-snapshot.tar.bz2 && \
cd ffmpeg && \
PATH="$HOME/bin:$PATH" PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure \
--prefix="$HOME/ffmpeg_build" \
--extra-cflags="-I$HOME/ffmpeg_build/include" \
--extra-ldflags="-L$HOME/ffmpeg_build/lib" \
--extra-libs="-lpthread -lm" \
--bindir="$HOME/bin" \
--enable-shared \
--enable-gpl \
--enable-libaom \
--enable-libass \
--enable-libfdk-aac \
--enable-libfreetype \
--enable-libmp3lame \
--enable-libopus \
--enable-libvorbis \
--enable-libvpx \
--enable-libx264 \
--enable-libx265 \
--enable-nonfree && \
PATH="$HOME/bin:$PATH" make && \
make install && \
hash -r
注意上面方法有--enable-shared选项,还有编译路径,这里是安装在$HOME/ffmpeg_build即根目录下,我是安装在/usr/local/ffmpeg目录下,将命令中所有的$HOME/ffmpeg_build改为/usr/local/ffmpeg即可。(PATH="$HOME/bin:$PATH"改为PATH="/usr/local/ffmpeg/bin:$PATH")
3. 设置环境变量:
在/etc/profile中最后添加两句(FFMPEG_HOME为我们的ffmpeg安装路径):
export FFMPEG_HOME=/usr/local/ffmpeg
export PATH=$FFMPEG_HOME/bin:$PATH
在/etc/ld.so.conf里添加:
/usr/local/ffmpeg/lib/
所有的ffmpeg安装完毕!
如果没有libx264,自己编译x264:
首先讲一下我的需求,利用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 是禁止连接硬编的库