为什么说在linux上编译安装ffmpeg最复杂?因为编译之前我们要安装很多扩展库,每个人的环境不同,要安装的编解码库或多或少都有些区别。
linux下安装ffmpeg,我们以centos7编译安装为例。
先看下系统环境
[root@localhostvagrant]#cat/etc/(Core)
1、安装依赖
yuminstallautoconfautomakebzip2bzip2-develcmakefreetype-develgccgcc-c++gitlibtoolmakepkgconfigzlib-devel
如果安装依赖的过程中,报如下错误
File"/bin/yum",line30exceptKeyboardInterrupt,e:或者updates|2.9kB00:00:00File"/usr/libexec/urlgrabber-ext-down",line28exceptOSError,e:
则优先看下默认的python是2.x的还是3.x的,如果是3.x的建议改成2.x的再试试。
2、安装一些必须的编解码库1)编译nasm
nasm即NetwideAssembler,是一款基于英特尔x86架构的汇编与反汇编工具。新版ffmpeg以及x264、x265依赖的汇编器。需要注意的是,nasm是英特尔x86平台汇编器,不需要交叉编译,如果是arm等其他平台,交叉编译ffmpeg时需要添加选项--disable-x86asm。
cd/opt/ffmpegcurl-O-L"$HOME/ffmpeg_build"--bindir="$HOME/bin"makemakeinstallln-s/opt/ffmpeg/nasm/usr/bin/nasm
2)编译yasm
yasm,旧版本的ffmpeg以及x264、x265依赖的汇编器。yasm同nasm,也是x86平台汇编器,同样不需要交叉编译,如果是arm等其他平台,交叉编译ffmpeg时需要添加选项--disable-yasm。
cd/opt/ffmpegcurl-O-L"$HOME/ffmpeg_build"--bindir="$HOME/bin"makemakeinstallln-s/opt/ffmpeg//yasm/usr/bin/yasm
3)编译libx264
x264是开源的h264编码器,ffmpeg本身自带了h264解码器,但是没有h264编码器,所以我们这里安装第三方编码器x264。
cd/opt/ffmpeggitclone--branchstable--depth1"$HOME/ffmpeg_build/lib/pkgconfig"./configure--prefix="$HOME/ffmpeg_build"--bindir="$HOME/bin"--enable-staticmakemakeinstall
有些小伙伴在编译x264的时候,可能会报错Foundnoassembler,,Ifyoureallywanttocompilewithoutasm,configurewith--disable-asm,这个就说明你电脑上还存在其他的太老的nasm,或者我们在第一步创建的nasm你没有添加到环境变量中导致的,一定要确保nasm-v是我们第一步新安装的包。设置好之后,x264就可以从./configure这里继续安装了。
788280672加群免费领取~
4)编译libx265
x265等同于x264,它是开源的h265编码器,ffmpeg本身自带了h265解码器,但是没有h265编码器,所以我们这里安装第三方编码器x265。
cd/opt/ffmpeggitclone--branchstable--depth2"UnixMakefiles"-DCMAKE_INSTALL_PREFIX="$HOME/ffmpeg_build"-DENABLE_SHARED:bool=off../../sourcemakemakeinstall
5)编译libfdk_aac
cd/opt/ffmpeggitclone--depth1"$HOME/ffmpeg_build"--disable-sharedmakemakeinstall
6)编译libmp3lame
libmp3lame是开源的mp3编码器。
cd/opt/ffmpegcurl-O-L"$HOME/ffmpeg_build"--bindir="$HOME/bin"--disable-shared--enable-nasmmakemakeinstall
7)编译libopus
cd/opt/ffmpegcurl-O-L"$HOME/ffmpeg_build"--disable-sharedmakemakeinstall
8)编译libvpx
cd/opt/ffmpeggitclone--depth1"$HOME/ffmpeg_build"--disable-examples--disable-unit-tests--enable-vp9-highbitdepth--as=yasmmakemakeinstall
如果libvpx的代码拉不下来,可以试试下面这种方式,其他步骤不变
wget
编译是个漫长的过程,到此我们已经成功了一半,下面我们编译安装今天的主角ffmpeg
3、编译安装ffmpeg下载最新的稳定包并开始编译安装
cd/opt/ffmpegcurl-O-L"$HOME/bin:$PATH"PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig"./configure\--prefix="$HOME/ffmpeg_build"\--pkg-config-flags="--static"\--extra-cflags="-I$HOME/ffmpeg_build/include"\--extra-ldflags="-L$HOME/ffmpeg_build/lib"\--extra-libs=-lpthread\--extra-libs=-lm\--bindir="$HOME/bin"\--enable-gpl\--enable-libfdk_aac\--enable-libfreetype\--enable-libmp3lame\--enable-libopus\--enable-libvpx\--enable-libx264\--enable-libx265\--enable-nonfreemakemakeinstallhash-dffmpegln-s/opt/ffmpeg/ffmpeg/ffmpeg/usr/bin/ffmpeg
最后验证下是否安装成功
原文ffmpeg入门篇-linux编译安装ffmpeg-ffmpeg实战系列教程-白狼栈





