Linux下ffmpeg的完整安装

一:首先要安装各种解码器

我的所有解码器都放在/usr/local/ffmpeg/compiler该目录下了
在这里插入图片描述在这里插入图片描述
每条命令结束后,可通过一条命令来检查是否成功编译:echo $?。返回0 则证明成功。
必须先安装yasm,否则安装x264时会有问题。

1 Yasm

Yasm是一个完全重写的NASM汇编。目前,它支持x86和AMD64指令集。接受NASM和GNU汇编器(gas)语法,产出二进制, ELF32 , ELF64 , COFF , Mach - O的( 32和64 ) , RDOFF2 ,的Win32和Win64对象的格式,并生成STABS 调试信息的来源,DWARF 2 ,CodeView 8格式.

yasm-1.3.0.tar.gz
url:http://yasm.tortall.net/Download.html

安装方法:

cd /usr/local/ffmpeg/compiler/
tar -zxvf yasm-1.3.0.tar.gz
mv yasm-1.3.0 yasm
cd /usr/local/ffmpeg/compiler/yasm/
.configure
make
make install

安装:yum install gcc 按照提示操作即可
在这里插入图片描述
在这里插入图片描述

2 lame

LAME 是最好的MP3编码器,编码高品质MP3的最好也是唯一的选择。LAME本身是控制台程序,需要加外壳程序才比较容易使用,也可以在别的软件(比如EAC)中间调用。是一款出色的MP3压缩程序,它使用了独创的人体听音心理学模型和声学模型,改变了人们对MP3高音发哑、低音发破的音质的印象。

lame-3.100.tar.gz
url:https://sourceforge.net/projects/lame/files/lame/

安装方法:

cd /usr/local/ffmpeg/compiler/
tar -zxvf lame-3.100.tar.gz
mv lame-3.100  lame
cd /usr/local/ffmpeg/compiler/lame/
./configure --enable-shared
make
make install

3 libogg

Ogg全称是OGGVobis(oggVorbis)是一种音频压缩格式,类似于MP3等的音乐格式。Ogg是完全免费、开放和没有专利限制的。OggVorbis文件的扩展名是".ogg"。Ogg文件格式可以不断地进行大小和音质的改良,而不影响旧有的编码器或播放器。

libogg-1.3.4.tar.gz
url:https://www.xiph.org/downloads/

安装方法:

cd /usr/local/ffmpeg/compiler/
tar -zxvf libogg-1.3.4.tar.gz
mv libogg-1.3.4  libogg
cd /usr/local/ffmpeg/compiler/libogg/
./configure
make
make install

4 libvorbis

libvorbis是Xiph 组织自行研发的音频压缩解压编码器,一般将 Vorbis 数据封装到 ogg 文件里面,这个库是用来解码和编码 Vorbis 音频数据的,但是,还需要 libogg 来将经过编码的音频数据从 ogg 文件里面释放出来才行,也就是说,需要配合 libogg 和 libvorbis 一起使用,才能解码出 ogg 文件里面的音频数据。
(libvorbis依赖于libogg, 所以libogg必须先于libvorbis安装)

libvorbis-1.3.6.tar.gz
http://downloads.xiph.org/releases/vorbis/libvorbis-1.3.3.tar.gz

安装方法:

cd /usr/local/ffmpeg/compiler/
tar -zxvf libvorbis-1.3.6.tar.gz
mv libvorbis-1.3.6  libvorbis
cd /usr/local/ffmpeg/compiler/libvorbis/
./configure
make
make install

5 xvid

Xvid是一个开放源代码的MPEG-4视频编解码器,它是基于OpenDivX而编写的。Xvid是由一群原OpenDivX义务开发者在OpenDivX于2001年7月停止开发后自行开发的。Xvid支持多种编码模式,量化(Quantization)方式和范围控,运动侦测(Motion Search)和曲线平衡分配(Curve)等众多编码技术,对用户来说功能十分强大。Xvid的主要竞争对手是DivX。但Xvid是开放源代码的,而DivX则只有免费(不是自由)的版本和商用版本。

xvidcore-1.3.2.tar.gz 
url:http://downloads.xvid.org/downloads/xvidcore-1.3.2.tar.gz

安装方法:

cd /usr/local/ffmpeg/compiler/
tar -zxvf xvidcore-1.3.2.tar.gz
mv xvidcore-1.3.2  xvid
cd /usr/local/ffmpeg/compiler/xvid/
./configure
make
make install

6 x264

H.264是ITU(International Telecommunication Union,国际通信联盟)和MPEG(Motion Picture Experts Group,运动图像专家组)联合制定的视频编码标准。而x264是一个开源的H.264/MPEG-4 AVC视频编码函数库,是最好的有损视频编码器之一。

x264-master.tar.gz 
url: https://code.videolan.org/videolan/x264

安装方法:

cd /usr/local/ffmpeg/compiler/
tar -zxvf x264-master.tar.gz 
mv x264-master   x264
cd /usr/local/ffmpeg/compiler/x264/
./configure --enable-shared
make
make install

遇到的问题:
在这里插入图片描述
Found no assembler
Minimum version is nasm-2.13
If you really want to compile without asm, configure with --disable-asm.

需要下载 nasm

nasm-2.13.03.tar.xz
url:http://www.nasm.us/pub/nasm/releasebuilds/2.13.03/nasm-2.13.03.tar.xz

解压 xz的压缩文件:tar xvJf 命令
安装方法:

cd /usr/local/ffmpeg/compiler/
tar xvJf nasm-2.13.03.tar.xz
mv nasm-2.13.03.   nasm
cd /usr/local/ffmpeg/compiler/nasm/
./configure 
make
make install

在继续安装x264

7 Libdts

libdca是用于解码DTS相干声学流的免费库。该代码由Gildas Bazin编写,基于a52dec项目。它是根据GPL许可条款发布的。

libdca-0.0.6.tar.bz2
url: http://www.videolan.org/developers/libdca.html

安装方法:

cd /usr/local/ffmpeg/compiler/
tar -jxvf libdca-0.0.6.tar.bz2
mv libdca-0.0.6  libdca
cd /usr/local/ffmpeg/compiler/libdca/
./configure  --enable-shared
make
make install

遇到问题:
在这里插入图片描述
缺少解压bz2的工具

yum -y install bzip2

在这里插入图片描述
在这里插入图片描述

8 a52

liba52是用于解码ATSC A / 52流的免费库。它是根据GPL许可条款 发布的。A / 52标准用于各种应用,包括数字电视和DVD。也称为AC-3。
liba52开发的主要目标是:
1、可移植性 -当前所有代码都是用C编写的,当我们编写特定于平台的优化时,我们将始终保留通用的C例程以供使用。
2、可重用性 -我们不希望liba52包含任何项目特定的代码,但它仍应包含足够多的功能以供非常多样化的项目使用。
3、精度 -我们正在尝试实现所有A / 52标准,并通过在浮点中进行所有计算来获得非常精确的输出。我们有一个测试套件,可以检测与先前版本相比输出中的任何偏差。但是,我们无法使用官方的A / 52测试向量,因此我们必须使用判断力,以确保仅在修复错误时才引入这种偏差!
4、速度 -liba52确实非常快,在任何现代PC上,它只需要占用CPU时间的百分之几。

a52dec-0.7.4.tar.gz
url:http://liba52.sourceforge.net/downloads.html  

安装方法:

cd /usr/local/ffmpeg/compiler/
tar -zxvf a52dec-0.7.4.tar.gz
mv a52dec-0.7.4.tar.gz  a52dec
cd /usr/local/ffmpeg/compiler/a52dec/
./configure  --enable-shared
make
make install

遇到问题
在这里插入图片描述
解决方法

将它./configure  --enable-shared 修改为./configure  

9 faad2

FAAD2是一款免费的 音频 解码工具。支持几乎所有编码格式的aac/mp4/m4a音频文件。

faad2-2.8.8.tar.gz
url:http://www.audiocoding.com/downloads.html 

安装方法:

cd /usr/local/ffmpeg/compiler/
tar -zxvf faad2-2.8.8.tar.gz
mv faad2-2.8.8  faad2
cd /usr/local/ffmpeg/compiler/faad2/
./configure   --enable-shared 
make
make install

10 faac

FAAC是MPEG-4和MPEG-2 AAC编码器。请注意,FAAC的质量无法与目前最好的AAC编码器相提并论。
特征:随身携带、相当快、LC,Main,LTP支持、通过DreaM的DRM支持。

faac-1.29.9.2.tar.gz
url:http://www.audiocoding.com/downloads.html

安装方法:

cd /usr/local/ffmpeg/compiler/
tar -zxvf  faac-1.29.9.2.tar.gz
mv  faac-1.29.9.2  faac
cd /usr/local/ffmpeg/compiler/faac/
./bootstrap -- 这个命令在版本 faac-1.28.tar.bz2中存在 在 faac-1.29.9.2.tar.gz中不存在
./configure
make
make install

11 amr-nb

AMR(Adaptive Multi-rate),自适应多速率语音编码器,主要用于移动设备的音频(GSM, 3G wcdma),压缩比大,但相对其他的音频压缩格式音质差,多用于人声通话。
AMR又分为两种,一 种是AMR-NB(AMR-NarrowBind)窄频,语音带宽范围:300-3700Hz,8KHz采样频率;支持的输出bitrate有(4.75k,5.15k, 5.9k, 6.7k, 7.4k, 7.95k, 10.2k, 12.2k), 肯定是bitrate越高音质越好了。

amrnb-11.0.0.0.tar.bz2
url:http://ftp.penguin.cz/pub/users/utx/amr/

安装方法:

cd /usr/local/ffmpeg/compiler/
tar -jxvf amrnb-11.0.0.0.tar.bz2
mv amrnb-11.0.0.0  amrnb
cd /usr/local/ffmpeg/compiler/amrnb/
./configure --prefix=/usr/local --enable-shared
make
make install

遇到的问题:
1 configure: error: You need unzip utility to prepare sources.
解决方法:缺少解压的工具,安装unzip

yum list | grep unzip

2 configure: error: You need patch utility to prepare sources.
解决方法: 安装 patch

 yum -y install patch

然后重新执行
参考文档【1】、【2】,

12 amr-wb

AMR(Adaptive Multi-rate),自适应多速率语音编码器,主要用于移动设备的音频(GSM, 3G wcdma),压缩比大,但相对其他的音频压缩格式音质差,多用于人声通话。
AMR又分为两种,一 种是AMR-WB(AMR WideBand)宽频,语音带宽范围50-7000Hz,16KHz采样频率。但考虑语音的短时相关性,每帧长度均为20ms。

amrwb-11.0.0.0.tar.bz2
url:http://ftp.penguin.cz/pub/users/utx/amr/ 

安装方法:

cd /usr/local/ffmpeg/compiler/
 tar -jxvf amrwb-11.0.0.0.tar.bz2
mv amrwb-11.0.0.0  amrwb
cd /usr/local/ffmpeg/compiler/amrwb/
./configure
make
make install

二、最关键的一步, 安装ffmpeg

url:http://www.ffmpeg.org/download.html

 ./configure --prefix=/usr/local/ffmpeg2 --enable-libmp3lame --enable-libvorbis --enable-gpl --enable-version3 --enable-nonfree --enable-pthreads --enable-libfaac --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libx264 --enable-libxvid --enable-postproc --enable-ffserver --enable-ffplay

遇到问题1:参考文档【3】
在这里插入图片描述
解决方法:ffmpeg3.2之后的版本不再支持libfaac了,换成fdk-aac了。下载fdk-aac-2.0.1.tar.gz

fdk-aac-2.0.1.tar.gz
url:https://sourceforge.net/projects/opencore-amr/files/fdk-aac/

安装方法:

cd /usr/local/ffmpeg/compiler/
 tar -zxvf fdk-aac-2.0.1.tar.gz
mv fdk-aac-2.0.1  fdk-aac
cd /usr/local/ffmpeg/compiler/fdk-aac/
./configure
make
make install

成功后,只要把ffmpeg编译的configure选项里面–enable-libfaac替换成–enable-libfdk-aac,重新编译即可。
编译代码

 ./configure --prefix=/usr/local/ffmpeg2 --enable-libmp3lame --enable-libvorbis --enable-gpl --enable-version3 --enable-nonfree --enable-pthreads --enable-libfdk-aac --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libx264 --enable-libxvid --enable-postproc --enable-ffserver --enable-ffplay

遇到问题2:
Unknown option “–enable-ffserver”.
See ./configure --help for available options.
解决办法:新版的FFmpeg已经没有这个参数了,去掉就可以了。相关命令参数可以通过./configure --help来查看。
最终编译代码 里面去除了faac、ffserver、amrnb、amrwb、libvorbis、libxvid

./configure --prefix=/usr/local/ffmpeg2 --enable-libmp3lame --enable-gpl --enable-version3 --enable-nonfree --enable-pthreads --enable-libfdk-aac --enable-libx264  --enable-postproc --enable-ffplay

在这里插入图片描述
解决方法:参考文档【6】
使用方法:在./configure之前输入export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH(此路径为.pc文件所在路径),可使用
echo $PKG_CONFIG_PATH查看
在这里插入图片描述

三:检测是否安装成功以及配置信息

ffmpeg -version

在这里插入图片描述
配置信息:参考文档【4】
编译完成后,进入/etc/profile中将ffmpeg加入到环境变量。

vim /etc/profile

在这里插入图片描述
进入后点击“i”进入编辑模式,写完后按esc建 退出编辑模式 ,在按 shift+zz 保存退出。
进一步,把ffmpeg的库加入/etc/ld.so.conf中

vim  /etc/ld.so.conf
/usr/local/ffmpeg2/bin

在这里插入图片描述
进入后点击“i”进入编辑模式,写完后按esc建 退出编辑模式 ,在按 shift+zz 保存退出。

注:该文档整体参照文档【5】编写,结合自己操作过程中遇到的问题进行整理汇总。
参考文档:
【1】:https://www.cnblogs.com/juihai/p/10566274.html
【2】:https://www.cnblogs.com/latma/archive/2014/06/24/3807013.html
【3】:https://blog.csdn.net/lixuande19871015/article/details/97784064
【4】:https://blog.csdn.net/u010782875/article/details/80679510
【5】:https://www.cnblogs.com/wanghetao/p/3386311.html
【6】:https://blog.csdn.net/wws6773075/article/details/54095961

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值