本文主要是介绍Linux编译FFmpeg libx264 libx265 libfdk-aac libmp3lame libvpx libopus等,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
强烈推荐使用系统源安装ffmpeg,例如:
sudo apt install ffmpeg
for Ubuntu。
当不能满足需求的时候再手动编译吧。
更多FFmpeg第三方库编译集成,详见我的新博客:https://blog.lmshao.com/how-to-build-ffmpeg.html
有些Linux发行版可以在线安装ffmpeg,但是因为版权关系不能包含我们所需的编码器,有时候还是需要手动编译。
下面介绍一些常见编码器的安装。libx264、libx265、libfdk-aac、libmp3lame、libvpx、libopus、libaom for AV1。不需要的可以不安装,最终ffmpeg configure不指定特定的编码器就可以了。
对版本没要求的,可以使用发行版对应的应用仓库的命令进行安装。
不想自己编译的可以直接下载我编译好的,GNU C Library (GNU libc) 版本大于等于2.17的系统都可以使用。常见的CentOS 7和Ubuntu13.04以上都应该都可以。
https://github.com/lmshao/FFmpegBinary/releases
编译第三方库
nasm
nasm是汇编编译器,有些编码器包含汇编代码,需要使用nasm。有些系统命令安装的nasm版本比较低,比如centos7 yum版本2.10。可以选择手动编译安装2.15版本。
wget https://www.nasm.us/pub/nasm/releasebuilds/2.15.05/nasm-2.15.05.tar.xz
tar Jxvf nasm-2.15.05.tar.xz
pushd nasm-2.15.05./configure
make && make installpopd
libx264
libx264是市面上评价比较高的H.264编码器,很多高清电影都是使用x264压缩的。
wget https://code.videolan.org/videolan/x264/-/archive/master/x264-master.tar.bz2
tar jxvf x264-master.tar.bz2
pushd x264-master./configure --enable-shared
make && make installpopd
Ubuntu系统在线安装
sudo apt install libx264-dev
libx265
hg类似于git,好多系统可以在线安装这个命令。apt install mercurial
/ yum install mercurial
。
默认8bit编码模式,可以在配置时把 HIGH_BIT_DEPTH=ON 选择10bit。
hg clone http://hg.videolan.org/x265
pushd x265/build/linux/
cmake ../../source -DHIGH_BIT_DEPTH=ON
make && make installpopd
Ubuntu系统在线安装
sudo apt install libx265-dev
libfdk-aac
libfdk-aac是目前评价最高的开源aac编码器。Ubuntu仓库没有这个,必须手动编译安装。
wget -O fdk-aac-2.0.1.tar.gz https://sourceforge.net/projects/opencore-amr/files/fdk-aac/fdk-aac-2.0.1.tar.gz/download
tar zxvf fdk-aac-2.0.1.tar.gz
pushd fdk-aac-2.0.1./configure
make && make installpopd
libmp3lame
libmp3lame 是mp3编码器。
wget -O lame-3.100.tar.gz https://sourceforge.net/projects/lame/files/lame/3.100/lame-3.100.tar.gz/download
tar zxvf lame-3.100.tar.gz
pushd lame-3.100./configure
make && make installpopd
Ubuntu系统在线安装
apt install libmp3lame-dev
libvpx
libvpx 是开源视频编码格式 VP8/VP9 的编码器。
wget https://github.com/webmproject/libvpx/archive/v1.10.0/libvpx-1.10.0.tar.gz
tar zxvf libvpx-1.10.0.tar.gz
pushd libvpx-1.10.0mkdir libvpx-build && cd libvpx-build
../configure --enable-shared --disable-static
make && make installpopd
Ubuntu系统在线安装
apt install libopus-dev
libopus
libopus 是编码opus格式用的。
wget https://archive.mozilla.org/pub/opus/opus-1.3.1.tar.gz
tar zxvf opus-1.3.1.tar.gz
pushd opus-1.3.1./configure --enable-shared --disable-static
make && make installpopd
Ubuntu系统在线安装
apt install libopus-dev
libaom
新出的 AV1 视频编码器
git clone https://aomedia.googlesource.com/aom
git checkout v3.2.0 -b v3.2.0 #可指定版本
mkdir build && pushd build
cmake .. -DBUILD_SHARED_LIBS=1
make && make install
Intel Media SDK - Intel 硬件加速 qsv
下载Intel-Media-SDK
,https://github.com/Intel-Media-SDK/MediaSDK/releases
,运行install_media.sh
默认安装在/opt/
目录下了。
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/opt/intel/mediasdk/lib64/pkgconfig
ffmepg 配置参数
--enable-libmfx
编译FFmpeg
需要的编码器按照上述的文档安装完后,在配置ffmpeg的时候使用特定的参数指定就可以集成进去了。
wget https://www.ffmpeg.org/releases/ffmpeg-4.4.tar.bz2
tar jxvf ffmpeg-4.4.tar.bz2
pushd ffmpeg-4.4export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig/:$PKG_CONFIG_PATH
./configure --enable-shared --disable-static --enable-gpl --enable-nonfree \--enable-libx264 \--enable-libx265 \--enable-libfdk-aac \--enable-libmp3lame \--enable-libvpx \--enable-libopus \--enable-libaommake && make installpopd
make install 后 ffmpeg 命令和相应的动态库就安装到系统目录了,默认一般是/usr/local/bin/
和 /usr/local/lib/
目录,可以使用./configure --prefix=./xxxxx
来指定安装目录。
编译 ffplay
默认编译可能没有编译出来ffplay,可以通过以下方法编译ffplay。
安装SDL2
sudo apt install libsdl2-dev # Ubuntu
configure 参数
--enable-ffplay
不想动手的,可以下载这个FFmpeg 4.4.1 Binary。
这篇关于Linux编译FFmpeg libx264 libx265 libfdk-aac libmp3lame libvpx libopus等的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!