{fbmip:fixed type="top" id="mipfixed" dataSlide="header-fixed-slide" class="fb-header-fixed"}
{fbview:mainmenu menuItemCode='$menuItemCode'/}
{/fbmip:fixed}
{fbmip:img fit='cover' src="$banner2['img_url']" alt="$banner2['title']"/}

CentOS下安装FFmpeg

  • 发布时间:
  • 浏览:645
  • 来源:平步科技官网

在CentOS下安装FFmpeg的笔记,将一步步的整理。


确保运行环境

FFmpeg在CentOS的环境需要gcc  gcc-c++等文件。

本文在CentOS6.9的操作系统上进行。

CentOS默认的yum安装的gcc 的版本为4.4.7的,需要升级到4.8.2。

[root@DS-VM-Node239 ~]# curl -Lks http://www.hop5.in/yum/el6/hop5.repo > /etc/yum.repos.d/hop5.repo

[root@DS-VM-Node239 ~]# yum install gcc gcc-g++ -y

[root@DS-VM-Node239 ~]# gcc --version

gcc (GCC) 4.8.2 20131212 (Red Hat 4.8.2-8)

Copyright © 2013 Free Software Foundation, Inc.

[root@DS-VM-Node239 ~]# g++ --version

g++ (GCC) 4.8.2 20131212 (Red Hat 4.8.2-8)

Copyright © 2013 Free Software Foundation, Inc.

[root@DS-VM-Node211 ~]#

注意:安装前如果已经安装有4.4.7的gcc,请先行卸载。

yum remove gcc  gcc-c++  

安装 lame  yasm 

下载yasm 和 lame 并编译安装:lame下载地址yasm下载地址  

yasm是完全重写的NASM,支持x86和AMD64的指令集,接受NASM和GNU汇编器(gas)语法,产出二进制。FFmpeg编译过程中应该需要yasm。

lame是最好的mp3编码器,当然也是唯一的,想要mp3格式的声音,就得选用这个。

tar zxvf yasm-1.3.0.tar.gz
cd yasm-1.3.0/
cat INSTALL
./configure 
make
make install


tar -zxf lame-3.100.tar.gz
cd lame-3.100
./configure
make
make install

安装 nasm

安装libx264之前,一定要先安装nasm ,请访问官方下载地址 

wget https://www.nasm.us/pub/nasm/releasebuilds/2.14.02/nasm-2.14.02.tar.gz
tar  zxvf nasm-2.14.02.tar.gz
cd nasm-2.14.02
./configure 
make
make install


安装libx264

请确认,已经安装了nasm 

采用git 方式获取x264的源代码, 请确保本机已经有可用的 git 客户端

git clone https://git.videolan.org/git/x264.git
cd x264
./configure --enable-shared --enable-static
make
make install

注意:安装后一定要配置pkg-config的环境变量。

编辑 /etc/profile 最后,添加上 PKG_CONFIG_PATH 的配置代码

export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH

然后执行 source /etc/profile  使配置信息生效。


安装xvid

xvid是开放源代码的mpeg-4视频编码解码器。MPEG4是1998年提出的标准,目的是在网络传输的视频信息,要求最小的体积但保留最佳的视频质量,是一种折中度很好的视频编码解码器。

xvid的主要竞争对手是DivX。

xvid的下载地址:xvid源代码 

安装代码

tar zxvf xvidcore-1.3.5.tar.gz  
cd xvidcode/buid/generic 
./configure --
make 
make install


编译安装FFmpeg

官方下载 FFmpeg 到本地,或者通过git clone到本地。

本文档采用的git方式获取的FFmpeg 3.4版本的分支,因为4.X版本才出了两个小版本,担心会有问题。

git clone -b release/3.4 https://github.com/FFmpeg/FFmpeg.git 

如果希望获取其他版本的只要改变 -b 的参数值即可。

./configure --enable-shared --enable-libmp3lame --enable-libxvid --enable-libx264 --enable-gpl --enable-libxvid --enable-shared --enable-version3 --enable-nonfree --enable-openssl
make
make install


填坑1 没有找到依赖包:

由于FFmpeg依赖的库在安装的时候默认都是安装在 /usr/local/lib 文件夹下,很可能安装完成后,在执行make的时候提示没有找到相关的类库,例如 xvid 。

这是由于在64位的CentOS下没有将 /usr/local/lib 作为动态链接库的搜索路径。

需要编辑 /etc/ld.so.conf 文件,加入一行  /usr/local/lib 

然后执行  ldconfig  命令即可。


填坑2 -fPIC 问题

在make的时候出现以下错误:

/usr/bin/ld: libavcodec/mqc.o: relocation R_X86_64_32 against `.rodata' can not be used when making a shared object; recompile with -fPIC
libavcodec/mqc.o: could not read symbols: Bad value
collect2: error: ld returned 1 exit status
make: *** [libavcodec/libavcodec.so.57] Error 1

打开  ffbuild/config.mak 第 98 行,增加  -fPIC参数即可。

HOSTCFLAGS=  -std=c99 -Wall -O3 -fPIC