CentOS7安装ffmpeg以及第三方依赖

序、简介

FFmpeg

  • 一个完整的跨平台解决方案,用于记录、转换和流化传输音频和视频的工具
  • 文档:https://www.ffmpeg.org/documentation.html
  • 官方网站:https://www.ffmpeg.org

这里记录 CentOS7 系统结合部分第三方依赖来源码编译安装 FFMPEG

在私人目录下创建一个新目录,将所有源代码放入:

1mkdir ~/ffmpeg_sources

一、NASM

NASM(The Netwide Assembler),是一款基于 80×86 和 x86-64 平台的汇编语言编译程序,其设计初衷是为了实现编译器程序跨平台和模块化的特性。NASM支持大量文件格式,包括 Linux,*BSM,a.out,ELF,COFF,Mach-O,Microsoft 16-bit OBJ,Win32 以及 Win64,同时也支持简单的二进制文件生成。

有两种方法:源码编译安装 或者 系统安装

系统安装:

这种方法需要联网状态,但是安装的 NSAM 可能会显示版本太低

sudo yum install nsam -y

源码编译安装:

cd ~/ffmpeg_sources
curl -O -L https://www.nasm.us/pub/nasm/releasebuilds/2.14.02/nasm-2.14.02.tar.bz2
tar -xjvf nasm-2.14.02.tar.bz2
cd nasm-2.14.02
./autogen.sh
./configure –prefix=”$HOME/ffmpeg_build” –bindir=”$HOME/bin”
make
make install

二、YASM(基于NASM,故装这个最好先装NASM)

YASM 是一个完全重写的 NASM 汇编,基于 NASM 开发的,有较好的优化,对于 NASM 中一些不合理的地方进行了修改。目前,支持 x86 和 AMD64 指令集。

有两种方法:源码编译安装 或者 系统安装

系统安装:

同样必须要联网状态,但是安装的 YASM 可能会显示版本太低,也有一个好处,就是顺便将YASM的依赖也一起安装了

sudo yum install yasm -y

源码编译安装:

cd ~/ffmpeg_sources
curl -O -L http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz
tar -zxvf yasm-1.3.0.tar.gz
cd yasm-1.3.0
./configure –prefix=”$HOME/ffmpeg_build” –bindir=”$HOME/bin”
make
make install

三、libx264

x264 是一款免费的用于编码 H.264/MPEG-4 AVC 格式的视音频码流库。

官方网站:https://www.videolan.org/developers/x264.html

源码安装:libx264

cd ~/ffmpeg_sources
 git clone –depth 1 http://git.videolan.org/git/x264cd x264 (or) wget http://download.videolan.org/pub/videolan/x264/snapshots/last_x264.tar.bz2
tar -jxf last_x264.tar.bz2
cd x264-snapshot-20190530-2245-stable PKG_CONFIG_PATH=”$HOME/ffmpeg_build/lib/pkgconfig”
./configure –prefix=”$HOME/ffmpeg_build” –bindir=”$HOME/bin” –enable-static
make
make install

四、libx265

x265 是一款免费的用于编码 H.265/MPEG-H HEVC 格式的视音频码流库。

官方网站:https://www.videolan.org/developers/x265.html

源码安装:libx265

cd ~/ffmpeg_sources
 hg clone https://bitbucket.org/multicoreware/x265cd x265/build/linux(or)wget http://download.videolan.org/pub/videolan/x265/x265_3.0.tar.gz
tar -xvf x265_3.0.tar.gzcd x265_3.0/build/linux 
cmake -G “Unix Makefiles” -DCMAKE_INSTALL_PREFIX=”$HOME/ffmpeg_build” -DENABLE_SHARED:bool=off ../../source(or)./make-Makefiles.bash[ press “enter” motidy params & press C and press G ] makemake install

五、libfdk_acc

Fraunhofer FDK AAC(libfdk_acc),是一款不会提供在已编译的 FFMPEG 可执行包中的第三方依赖库,用于 AAC-LC 编码 和 HE-AAC(v1/2) 编码。所以需要在FFMPEG中加入相关包重编译。

源码安装:libfdk_aac

cd ~/ffmpeg_sources
git clone –depth 1 https://github.com/mstorsjo/fdk-aaccd fdk-aacautoreconf -fiv./configure –prefix=”$HOME/ffmpeg_build” –disable-sharedmakemake install

六、libmp3lame

LAME 是一款免费的+最好的 MP3 编码器,编码高品质 MP3 的最好也是唯一的选择。

源码安装:libmp3lame

cd ~/ffmpeg_sourcescurl -O -L http://downloads.sourceforge.net/project/lame/lame/3.100/lame-3.100.tar.gztar -zxvf lame-3.100.tar.gzcd lame-3.100./configure –prefix=”$HOME/ffmpeg_build” –bindir=”$HOME/bin” –disable-shared –enable-nasmmakemake install

七、libopus

Opus 是一种声音编码格式。其前身是 celt 编码器。在当今的有损音频格式中,拥有众多不同编码器的 AAC 格式打败了颇有潜力的 Musepack、Vorbis 等格式。在低码率下 Opus 完胜 HE-AAC。

源码安装:libopus

cd ~/ffmpeg_sourcescurl -O -L https://ftp.osuosl.org/pub/xiph/releases/opus/opus-1.3.1.tar.gztar -zxvf opus-1.3.1.tar.gzcd opus-1.3.1./configure –prefix=”$HOME/ffmpeg_build” –disable-sharedmakemake install

八、libogg

Ogg(oggVorbis) 是一种音频压缩格式,类似于 MP3 等音乐格式。Ogg是完全免费、开放、没有专利限制的。其文件拓展名为”.ogg”。

源码安装:libogg

cd ~/ffmpeg_sourcescurl -O -L https://ftp.osuosl.org/pub/xiph/releases/ogg/libogg-1.3.3.tar.gzcd libogg-1.3.3./configure –prefix=”$HOME/ffmpeg_build” –disable-sharedmakemake install

九、libvorbis

同为为 FFMPEG 提供 oggVorbis 文件格式的压缩编码。

源码安装:libvorbis

cd ~/ffmpeg_sourcescurl -O -L https://ftp.osuosl.org/pub/xiph/releases/vorbis/libvorbis-1.3.6.tar.gztar -zxvf libvorbis-1.3.6.tar.gzcd libvorbis-1.3.6./configure –prefix=”$HOME/ffmpeg_build” –with-ogg=”$HOME/ffmpeg_build” –disable-sharedmakemake install

十、speex

Speex 是一款开源免费的、无专利保护的、针对语音设计的音频压缩格式。Speex 编解码器已经被 Opus 编解码器淘汰,但还是可以继续使用。虽然 Opus 比 Speex 好,但 Opus 只支持编码和解码,不支持噪音抑制、声学回音消除等其他处理功能。

(这里并没有将Speex加入FFMPEG编译中,但可以支持的)

cd ~/ffmpeg_sourcescurl -O -L https://ftp.osuosl.org/pub/xiph/releases/speex/speex-1.2.0.tar.gz

十一、libvpx

libvpx 是一款开源的 VP8 编码解码器。为 FFMPEG 提供 VP8 编码解码的支持。如编码YUV->VP8(On2 VP8)。

源码安装:libvpx

cd ~/ffmpeg_sourceswget https://github.com/webmproject/libvpx/archive/v1.7.0.tar.gztar -zxvf v1.7.0.tar.gzmv libvpx-1.7.0 libvpxcd libvpx./configure –prefix=”$HOME/ffmpeg_build” –with-ogg=”$HOME/ffmpeg_build” –disable-sharedmakemake install

十二、FFmpeg

cd ~/ffmpeg_sourcescurl -O -L https://ffmpeg.org/releases/ffmpeg-snapshot.tar.bz2tar -xjvf ffmpeg-snapshot.tar.bz2cd ffmpegPATH=”$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-libvorbis \  –enable-libvpx \  –enable-libx264 \  –enable-libx265 \  –enable-nonfreemake -j8make install

发表评论

邮箱地址不会被公开。 必填项已用*标注