Linux编译ffmpeg
Eave
2015.06.26
FFmpeg 是领先的多媒体框架,能够解码、编码、 转码、复用、解复用、流、过滤和播放 几乎所有人类和机器创建的东西。它支持最模糊的古老格式,直到最前沿。无论它们是由某个标准委员会、社区还是公司设计的。它还具有高度的可移植性:FFmpeg 在各种构建环境、机器架构和配置下跨 Linux、Mac OS X、Microsoft Windows、BSD、Solaris 等 编译、运行。
1、安装相关依赖
yum groupinstall "Development Tools"
yum install -y epel-release
yum install -y nasm yasm cmake
yum install -y libx264-devel libx265-devel libvpx-devel fdk-aac-devel
yum install -y lame-devel opus-devel libvorbis-devel
yum install -y libass-devel freetype-devel SDL2-devel
安装nasmc
wget "https://www.nasm.us/pub/nasm/releasebuilds/3.01/nasm-3.01.tar.gz"
tar -zxf nasm-3.01.tar.gz
cd nasm-3.01
./configure
make -j$(nproc) && make install
# 查看版本号
nasm --version
安装fdk-aac
wget -O fdk-aac-v2.0.3.tar.gz "https://github.com/mstorsjo/fdk-aac/archive/refs/tags/v2.0.3.tar.gz"
tar -zxf fdk-aac-v2.0.3.tar.gz
cd fdk-aac-2.0.3
./autogen.sh
./configure --prefix=/usr/local --enable-shared
make -j$(nproc) && make install
ldconfig
安装lame
wget "https://zenlayer.dl.sourceforge.net/project/lame/lame/3.100/lame-3.100.tar.gz"
tar -zxf lame-3.100.tar.gz
cd lame-3.100
./configure --prefix=/usr/local --enable-shared
make -j$(nproc) && make install
ldconfig
安装opus
wget "https://github.com/xiph/opus/releases/download/v1.5.2/opus-1.5.2.tar.gz"
tar -zxf opus-1.5.2.tar.gz
cd opus-1.5.2
./autogen.sh
./configure --prefix=/usr/local --enable-shared
make -j$(nproc) && make install
ldconfig
# 验证 Opus 是否可以找到
pkg-config --cflags --libs opus
安装libogg
wget "https://downloads.xiph.org/releases/ogg/libogg-1.3.6.tar.gz"
tar -zxf libogg-1.3.6.tar.gz
cd libogg-1.3.6
./configure --prefix=/usr/local --enable-shared
make -j$(nproc) && make install
安装libvorbis
wget "https://ftp.osuosl.org/pub/xiph/releases/vorbis/libvorbis-1.3.7.tar.gz"
tar -zxf libvorbis-1.3.7.tar.gz
cd libvorbis-1.3.7
./configure --prefix=/usr/local --enable-shared --with-ogg=/usr/local
make -j$(nproc) && make install
ldconfig
安装libvpx
wget -O libvpx-1.15.2.tar.gz "https://github.com/webmproject/libvpx/archive/v1.15.2.tar.gz"
tar -zxf libvpx-1.15.2.tar.gz
cd libvpx-1.15.2
./configure --prefix=/usr/local --enable-shared --disable-static --enable-vp8 --enable-vp9 --enable-vp9-highbitdepth --enable-multithread
make -j$(nproc) && make install
ldconfig
# 检查 pkg-config
pkg-config --modversion vpx
安装x264
wget "https://code.videolan.org/videolan/x264/-/archive/stable/x264-stable.tar.bz2"
tar -jxf x264-stable.tar.bz2
cd x264-stable
./configure --prefix=/usr/local --enable-shared --enable-pic
make -j$(nproc) && make install
# 检查 pkg-config
pkg-config --modversion x264
安装x265
git clone https://bitbucket.org/multicoreware/x265_git.git
cd x265_git
cd build/linux
cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX=/usr/local -DENABLE_SHARED=ON ../../source
make -j$(nproc) && make install
ldconfig
2、下载所需源码包
下载地址:http://ffmpeg.org/download.html
wget "https://ffmpeg.org/releases/ffmpeg-8.0.tar.xz"
tar -xJf ffmpeg-8.0.tar.xz
cd ffmpeg-8.0
./configure --prefix=/usr/local --enable-gpl --enable-libx264 --enable-libx265 --enable-libvpx --enable-libfdk-aac --enable-libmp3lame --enable-libopus --enable-libvorbis --enable-libass --enable-static --enable-shared --extra-cflags="-I/usr/local/include" --extra-ldflags="-L/usr/local/lib"
# 使用多核加速,数字为CPU核心数
make -j$(nproc) && make install
# 更新动态库缓存
ldconfig
参数解释
--prefix:指定安装目录
--enable-gpl:启用 GPL 许可证
--enable-libx264:启用 H.264 编码
--enable-libx265:启用 H.265/HEVC 编码
--enable-libfdk-aac:启用 AAC 音频编码
--enable-static:构建静态库
--enable-shared:构建共享库
2、编辑/etc/profile文件
在/etc/profile文件末尾追加一下内容
# ffmpeg
# export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/lib/x86_64-linux-gnu/pkgconfig:/usr/lib/pkgconfig:$PKG_CONFIG_PATH
3、执行一下命令使配置生效
source /etc/profile
4、查看FFMpeg版本号
# 检查 FFmpeg 版本
ffmpeg -version
# 查看支持的编解码器
ffmpeg -codecs
# 查看支持的格式
ffmpeg -formats