源码先锋

源码先锋

ffmpeg入门篇-linux编译安装ffmpeg

admin 71 55

为什么说在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实战系列教程-白狼栈