×

CentOS下yum安装ffmpeg/mencoder/mplayer

admin admin 发表于2016-07-12 18:36:17 浏览2093 评论0

抢沙发发表评论

一、yum安装FFmpeg

1.    最偷懒的方式就是yum安装了,自动解决依赖。不过CentOS系统默认无FFmpeg源,企业版 Linux 附加软件包EPEL源也不包含,需要手动添加yum源配置/etc/yum.repos.d/dag.repo:


[dag]
name=Dag RPM Repository for Red Hat Enterprise Linux
baseurl=http://apt.sw.be/redhat/el$releasever/en/$basearch/dag
gpgcheck=0
enabled=1

2.    在线安装FFmpeg


yum -y install ffmpeg

 方法二

1、安装所需软件

yum install -y automake autoconf libtool gcc gcc-c++

2、安装第三方更新源

rpm -ivh http://apt.sw.be/redhat/el6/en/i386/rpmforge/RPMS/rpmforge-release-0.5.3-1.el6.rf.i686.rpm

3、安装ffmpeg

yum install ffmpeg ffmpeg-devel

会自动安装众多解码器,ffmpeg版本为0.6.5-1.el6.rf。看了下yum安装的解码器版本还不是很旧,但是ffmpeg版本较老。

4、测试一下
将一个.avi视屏转为.flv格式

ffmpeg -i Destination.avi -y -ab 56 -ar 22050 -r 15 -sameq test2.flv

转换前后两个文件的格式比较:
转换前

Destination.avi
   General
      Complete name : E:PVDestination.avi
      Format : AVI
      Format/Info : Audio Video Interleave
      Format/Family : RIFF
      File size : 79.5 MiB
      PlayTime : 4mn 1s
      Bit rate : 2754 Kbps
      StreamSize : 469 KiB
      Subject : doobie (2007)
      Writing application : VirtualDubMod 1.5.10.2 (build 2540/release)
      Writing library : VirtualDubMod build 2540/release
   Video #0
      Codec : XviD
      Codec/Family : MPEG-4
      Codec/Info : XviD project
      Codec profile : Streaming Video Profile/Level 1
      Codec settings/PacketBitStream : Yes
      Codec settings/BVOP : Yes
      Codec settings/QPel : No
      Codec settings/GMC : 0
      Codec settings/Matrix : Default
      PlayTime : 4mn 1s
      Bit rate : 2556 Kbps
      Width : 640 pixels
      Height : 480 pixels
      Display Aspect ratio : 4/3
      Frame rate : 29.976 fps
      Resolution : 8 bits
      Chroma : 4:2:0
      Interlacement : Progressive
      Bits/(Pixel*Frame) : 0.277
      StreamSize : 73.5 MiB
   Audio #1
      Codec : MPEG-1 Audio layer 3
      Codec profile : Joint stereo
      PlayTime : 4mn 1s
      Bit rate : 190 Kbps
      Bit rate mode : CBR
      Channel(s) : 2 channels
      Sampling rate : 48 KHz
      Resolution : 16 bits
      StreamSize : 5.47 MiB
      Writing library : Gogo (after 3.0)

转换后

test2.flv
   General
      Complete name : E:PVtest2.flv
      Format : Flash Video
      File size : 45.0 MiB
      PlayTime : 4mn 1s
      Bit rate : 1564 Kbps
   Video
      Codec : Sorenson H263
      PlayTime : 4mn 1s
      Bit rate : 195 Kbps
      Width : 640 pixels
      Height : 480 pixels
      Display Aspect ratio : 4/3
      Frame rate : 15.000 fps
      Bits/(Pixel*Frame) : 0.042
   Audio
      Codec : MPEG-1 Audio Layer 3
      Bit rate : 55 bps
      Channel(s) : 2 channels
      Sampling rate : 22 KHz
      Resolution : 16 bits

三、编译安装FFmpeg

        yum安装FFmpeg比源码编译安装省时省力,但缺点也很明显,版本过老,为0.6.5版,最新版已为2.6.3,新旧版很多参数有所差异,旧版支持的格式也没有新版丰富。

        源码编译安装FFmpeg非常需要耐心,每添加一种需要支持的格式就需要有相应的多媒体格式开发库。文中所使用的软件版本皆为最新版。

1.    安装autoconf


cd /App/src
wget http://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.xz    
tar xvf autoconf-2.69.tar.xz
cd autoconf-2.69
./configure
make
make install

2.    安装automake

cd /App/src
wget http://ftp.gnu.org/gnu/automake/automake-1.15.tar.xz  
tar xvf automake-1.15.tar.xz
cd automake-1.15
./configure
make
make install

3.    安装libtool(FAAC需要

cd /App/src
wget http://ftp.gnu.org/gnu/libtool/libtool-2.4.6.tar.xz
tar xvf libtool-2.4.6.tar.xz
cd libtool-2.4.6
./configure
make
make install

4.    安装yasm支持汇编优化(FFmpeg需要)

cd /App/src
wget http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz
tar xvf yasm-1.3.0.tar.gz
cd yasm-1.3.0
./configure
make
make install

5.    添加动态链接库配置


echo '/usr/local/lib' >> /etc/ld.so.conf.d/local.conf

6.    安装MP3支持库LAME

cd /App/src
wget http://jaist.dl.sourceforge.net/project/lame/lame/3.99/lame-3.99.5.tar.gz  
tar xvf lame-3.99.5.tar.gz
cd lame-3.99.5
./configure
make
make install

7.    安装AAC支持库FAAC

make时报错:mpeg4ip.h:126: 错误:对‘char* strcasestr(const char*, const char*)’的新声明

需要修改common/mp4v2/mpeg4ip.h第123行至129行内容:

#ifdef __cplusplus
extern "C" {
#endif
char *strcasestr(const char *haystack, const char *needle);
#ifdef __cplusplus
}
#endif

修改为:

#ifdef __cplusplus
extern "C++" {
#endif
const char *strcasestr(const char *haystack, const char *needle);
#ifdef __cplusplus
}
#endif
cd /App/src
wget http://jaist.dl.sourceforge.net/project/faac/faac-src/faac-1.28/faac-1.28.tar.bz2 
tar xvf faac-1.28.tar.bz2
cd faac-1.28
./bootstrap
./configure --with-mp4v2 
#按前文修改mpeg4ip.h内容
make
make install

8.    安装AMR支持库opencore-amr

cd /App/src
wget http://jaist.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-0.1.3.tar.gz
tar xvf opencore-amr-0.1.3.tar.gz
cd opencore-amr-0.1.3
./configure
make
make install

9.    安装通用音乐音频编码格式支持库libvorbis

# libvorbis需要libogg,先安装libogg库
cd /App/src
wget http://downloads.xiph.org/releases/ogg/libogg-1.3.2.tar.xz
tar xvf libogg-1.3.2.tar.xz
cd libogg-1.3.2
./configure
make
make install
 
cd /App/src
wget http://downloads.xiph.org/releases/vorbis/libvorbis-1.3.5.tar.xz
tar xvf libvorbis-1.3.5.tar.xz
cd libvorbis-1.3.5
./configure
make

make install



如果出现下面的提示,cd .. 然后  echo /usr/local/lib >> /etc/ld.so.conf; ldconfig


checking for Ogg... no
*** Could not run Ogg test program, checking why...
*** The test program compiled, but did not run. This usually means
*** that the run-time linker is not finding Ogg or finding the wrong
*** version of Ogg. If it is not finding Ogg, you'll need to set your
*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point
*** to the installed location  Also, make sure you have run ldconfig if that
*** is required on your system
***
*** If you have an old version installed, it is best to remove it, although
*** you may also be able to get things to work by modifying LD_LIBRARY_PATH
configure: error: must have Ogg installed!


10.    安装x264库支持H.264视频转码

cd /App/src
git clone git://git.videolan.org/x264.git
cd x264
./configure --enable-shared
make
make install

11.    安装Xvid库支持MPEG-4转码

cd /App/src
wget http://downloads.xvid.org/downloads/xvidcore-1.3.3.tar.bz2
tar xvf xvidcore-1.3.3.tar.bz2
cd xvidcore/build/generic
./configure
make
make install

12.    安装Theora视频压缩支持库

cd /App/src
wget http://downloads.xiph.org/releases/theora/libtheora-1.1.1.tar.xz
tar xvf libtheora-1.1.1.tar.xz
cd libtheora-1.1.1
./configure
make
make install

13.    安装NUT支持库

安装时64位Linux系统需要修改文件config.mak

在最后一个CFLAGS下一行增加:

CFLAGS += -fPIC

否则安装FFmpeg make时报错:

/usr/local/lib/libnut.a: could not read symbols: Bad value


cd /App/src
svn co svn://svn.mplayerhq.hu/nut/src/trunk libnut
cd libnut
./configure
make
make install

14.    安装VP8/VP9编解码支持库


cd /App/src
  wget http://storage.googleapis.com/downloads.webmproject.org/releases/webm/libvpx-1.5.0.tar.bz2 
cd libvpx
./configure --enable-shared
make
make install

15.    安装FFmpeg最新版

cd /App/src
wget http://ffmpeg.org/releases/ffmpeg-2.6.3.tar.bz2
tar xvf ffmpeg-2.6.3.tar.bz2
cd ffmpeg-2.6.3
./configure --enable-version3 --enable-libvpx --enable-libfaac --enable-libmp3lame --enable-libvorbis --enable-libx264 --enable-libxvid --enable-gpl --enable-postproc --enable-nonfree --enable-avfilter --enable-pthreads --enable-libnut --enable-libtheora --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-shared
make
make install
ldconfig

16.    安装segmenter

git clone https://github.com/johnf/m3u8-segmenter
cd m3u8-segmenter
PKG_CONFIG_PATH=/usr/local/lib/pkgconfig ./configure
make
make install
ln -s /usr/local/bin/m3u8-segmenter /usr/local/bin/segmenter

 

三、    编译安装注意事项

1.    可能发现编译FFmpeg或者其他支持库时,即使相关的所有依赖也编译安装上了,仍然make报错,主要的原因还是由于依赖的库版本冲突,编译时调用的是yum安装时自动下载安装的旧版本依赖库。此时的方法就是卸掉所有yum安装的旧版本FFmpeg和相关的依赖软件包或者重新找台新的纯净的系统重新开始安装,或者使用Ubuntu Server最新版,一般Ubuntu Server最新版FFmpeg版本还是比较新的,直接执行命令 sudo apt-get install ffmpeg会自动安装FFmpeg和相关依赖。

2.    有爱专研的或者受制于手头无多余机器的,只能老老实实得卸载旧软件,从头开始编译安装。如何去除旧版本yum安装的相关软件。我们可以借助yum deplist命令先找出所有相关软件包,然后卸载除了公共软件包外的所有软件包。此方法也适用于安装其它软件时遇到类似同样的问题。


yum deplist ffmpeg | grep -v ffmpeg | grep provider | awk '{print $2}' sort -u

图示:

wKiom1VfUsKAHheVAAH5IKViZcU955.jpg

从中挑出非公共软件包的软件包名卸载:

rpm -e --nodeps a52dec dirac dirac-libs faac gsm lame libtheora opencore-amr SDL x264
rpm -e --nodeps $(rpm -qa | grep -i ffmpeg)



方法二:

1.yum install ffmpeg ffmpeg-devel
如果找不到包,请把下面的内容加入到 /etc/yum.repos.d/rhel-debuginfo.repo 文件中
[dag]  
name=Dag RPM Repository for Red Hat Enterprise Linux  
baseurl=http://apt.sw.be/redhat/el$releasever/en/$basearch/dag  
gpgcheck=1  
enabled=1  


2.yum install ffmpeg ffmpeg-devel

3.rpm -Uhv http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/rpmforge-release-0.3.6-1.el5.rf.i386.rpm

4.yum install mplayer mencoder

分享到:

群贤毕至

访客