ffmpeg 编译安装 ubuntu18.04 4.1

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选项。

ubuntu上有没有简单的方法?

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 是禁止连接硬编的库

猜你喜欢

转载自blog.csdn.net/jacke121/article/details/93487340