序、简介
FFmpeg
- 一个完整的跨平台解决方案,用于记录、转换和流化传输音频和视频的工具
- 文档:https://www.ffmpeg.org/documentation.html
- 官方网站:https://www.ffmpeg.org
这里记录 CentOS7 系统结合部分第三方依赖来源码编译安装 FFMPEG
在私人目录下创建一个新目录,将所有源代码放入:
1 | mkdir ~/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 |