原文转自:http://www.yaosansi.com/post/ffmpeg-on-centos/
本文最后更新于:2015-05-25 13:12:00
原文:http://www.yaosansi.com/post/ffmpeg-on-centos
在CentOS编译安装ffmpeg比较麻烦,以前也搞过多次,由于博客调整,特重新记录一下,以备不时之需。
使用yum安装ffmpeg和相关软件
快速安装 ffmpeg
直接安装:
1 |
yum install ffmpeg ffmpeg-devel |
若没有找到相应包,需要先加入要应的包。
将下列代码命名为dag.repo
放在/etc/yum.repos.d
目录 下。
1 |
[dag] |
然后再执行上方的安装命令。
安装 ffmpeg-PHP 扩展
1 |
wget /path/to/this/file/ffmpeg-PHP-0.5.2.1.tbz2 |
修改 PHP.ini 文件
安装完成后,将会在/usr/local/lib/PHP/extensions/no-debug-non-zts-20060613/ffmpeg.so
看到PHP扩展文件。
1 |
[ffmpeg] |
重启WEB服务器。使用PHPinfo即可看到ffmpeg相关信息。
1 |
// #test.PHP |
PHP 使用方法
1 |
<?PHP |
安装 Mplayer 和 Mencoder
1 |
yum install mplayer mencoder |
常见问题
常见问题及解决方案请参考这里:http://www.mysql-apache-php.com/ffmpeg-install.htm
自行编译安装 ffmpeg
安装依赖项
1 |
yum install autoconf automake gcc gcc-c++ git libtool make nasm pkgconfig zlib-devel |
安装相应软件包
可以建立目录存放软件包
1 |
mkdir ~/ffmpeg_sources |
注意:以下软件包请有选择的安装,如果不需要请在./configure
时移除或关闭相关选项
安装 yasm
Yasm是一个完全重写的NASM汇编。目前,它支持x86和AMD64指令集。 x264 和 FFmpeg都使用Yasm.
1 |
cd ~/ffmpeg_sources |
或
1 |
wget http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz |
安装 x264
H.264 编码器。http://trac.ffmpeg.org/wiki/Encode/H.264
1 |
cd ~/ffmpeg_sources |
或
1 |
wget ftp://ftp.videolan.org/pub/x264/snapshots/last_x264.tar.bz2 |
需要ffmpeg
配置./configure --enable-gpl --enable-libx264
注:由于libx264的code有GPL信息,所以,支持libx264时,需要—enable-gpl,ffmpeg在license方面还是比我们国内的人更重视
安装 x265
H.265/HEVC编码器.http://trac.ffmpeg.org/wiki/Encode/H.265
1 |
cd ~/ffmpeg_sources |
需要ffmpeg
配置./configure --enable-gpl --enable-libx265
安装 libfdk_aac
AAC音频编码器,Fraunhofer AAC library
1 |
cd ~/ffmpeg_sources |
需要ffmpeg
配置--enable-libfdk_aac
,如果指定了--enable-gpl
还要配置--enable-nonfree
安装 libmp3lame
Mp3音频编码器
1 |
wget http://iweb.dl.sourceforge.net/project/lame/lame/3.99/lame-3.99.5.tar.gz |
需要ffmpeg
配置--enable-libmp3lame
安装 libopus
Opus 音频编解码器
1 |
cd ~/ffmpeg_sources |
或
1 |
wget http://downloads.xiph.org/releases/opus/opus-1.0.3.tar.gz |
需要ffmpeg
配置--enable-libopus
安装 libogg库
libogg是Ogg流库,libtheora、libvorbis需要libogg库,speex需要它。
1 |
cd ~/ffmpeg_sources |
安装 libvorbis库
Vorbis音频编码器,需要libogg库。http://trac.ffmpeg.org/wiki/CompilationGuide/Centos#libogg
1 |
cd ~/ffmpeg_sources |
需要ffmpeg
配置--enable-libvorbis
安装 libvpx
VP8/VP9视频编码器
1 |
cd ~/ffmpeg_sources |
需要ffmpeg
配置--enable-libvpx
编译安装 ffmpeg
1 |
cd ~/ffmpeg_sources |
注:
- 编译完成后
ffmpeg
,ffprobe
,ffserver
,lame
,x264
都可以使用。 - 编译安装时可以参考Windows Build:http://ffmpeg.zeranoe.com/builds/
- 如果还需要持续更新请保留
ffmpeg_sources
目录。
其它可选软件包
安装 OpenCORE AMR
1 |
wget http://iweb.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-0.1.3.tar.gz |
需要ffmpeg
配置--enable-libopencore-amrnb
和/或--enable-libopencore-amrwb
安装 VisualOn AAC
注:github的tag和master版均无法autoconf,用zeranoe版代替
1 |
wget wget http://ffmpeg.zeranoe.com/builds/source/external_libraries/vo-aacenc-0.1.3.tar.xz |
也可
1 |
wget http://iweb.dl.sourceforge.net/project/opencore-amr/vo-aacenc/vo-aacenc-0.1.3.tar.gz |
需要ffmpeg
配置--enable-libvo-aacenc
安装 VisualOn AMR-WB
注:github的tag和master版均无法autoconf,用zeranoe版代替
1 |
wget http://ffmpeg.zeranoe.com/builds/source/external_libraries/vo-amrwbenc-0.1.2.tar.xz |
需要ffmpeg
配置--enable-libvo-amrwbenc
安装 frei0r
先安装新版autoconf,这会覆盖掉系统中的旧版本哦
1 |
wget http://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.gz |
1 |
wget http://files.dyne.org/frei0r/releases/frei0r-plugins-1.4.tar.gz |
安装 gnutls
注意:/etc/ld.so.conf要加上lib64。并且不要使用yum remove gnutls gnutls-devel
首先安装nettle:
1 |
wget http://www.lysator.liu.se/~nisse/archive/nettle-2.5.tar.gz |
然后安装gnutls新版:
1 |
wget ftp://ftp.gnutls.org/gcrypt/gnutls/v3.1/gnutls-3.1.9.1.tar.xz |
安装 rtmpdump
1 |
wget http://rtmpdump.mplayerhq.hu/download/rtmpdump-2.3.tgz |
安装 schroedinger
注:先安装好orc库
1 |
wget http://code.entropywave.com/download/orc/orc-0.4.17.tar.gz |
1 |
wget http://diracvideo.org/download/schroedinger/schroedinger-1.0.11.tar.gz |
安装 soxr
注:新版libsoxr貌似与当前ffmpeg不兼容,用旧版
1 |
yum install -y xz |
安装 speex
音频编码解码器。需要安装libogg库
1 |
yum install speex-devel |
或
1 |
wget http://downloads.xiph.org/releases/speex/speex-1.2rc1.tar.gz |
ffmpeg./configure
添加--enable-libspeex
安装 libfreetype
字体呈现库,使用drawtext
http://ffmpeg.org/ffmpeg-filters.html#drawtext-1
1 |
yum install freetype-devel |
ffmpeg./configure
添加--enable-libfreetype
安装 libsdl库
1 |
wget http://www.libsdl.org/release/SDL-1.2.15.tar.gz |
安装 theora
Theora视频编码器,需要需要libogg,libvorbis和libsdl库
1 |
wget http://downloads.xiph.org/releases/theora/libtheora-1.1.1.tar.bz2 |
ffmpeg./configure
添加--enable-libtheora
安装 twolame
1 |
wget http://downloads.sourceforge.net/twolame/twolame-0.3.13.tar.gz |
安装 xvid
1 |
wget http://downloads.xvid.org/downloads/xvidcore-1.3.2.tar.gz |
更新FFmpeg及相关组件
更新依赖项
1 |
rm -rf ~/ffmpeg_build ~/bin/{ffmpeg,ffprobe,ffserver,lame,vsyasm,x264,yasm,ytasm} |
更新 x264
1 |
cd ~/ffmpeg_sources/x264 |
然后运行
1 |
./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" --enable-static |
更新 x265
1 |
cd ~/ffmpeg_sources/x265 |
然后运行
1 |
cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX="$HOME/ffmpeg_build" -DENABLE_SHARED:bool=off ../../source |
更新 libfdk_aac
1 |
cd ~/ffmpeg_sources/libfdk_aac |
然后运行
1 |
cd fdk-aac |
更新 libvpx
1 |
cd ~/ffmpeg_sources/libvpx |
然后运行
1 |
cd libvpx |
更新FFmpeg
1 |
cd ~/ffmpeg_sources/ffmpeg |
然后运行
1 |
cd ffmpeg |
还原所有本文安装内容
1 |
rm -rf ~/ffmpeg_build ~/ffmpeg_sources ~/bin/{ffmpeg,ytasm} |
注:如安装其它软件包需要自行删除
自动安装shell
https://gist.github.com/gboudreau/f24aed76b4cc91bfb2c1
1 |
#!/bin/sh |
参考
- http://ju.outofmemory.cn/entry/25624
- http://ju.outofmemory.cn/entry/25625
- http://ffmpeg.zeranoe.com/builds/
- http://www.jb51.cc/article/p-mcwvernr-et.html
- http://www.mysql-apache-php.com/ffmpeg-install.htm
- http://ffmpeg-php.sourceforge.net/
- http://inlet-media.de/flvtool2
- http://lame.sourceforge.net/
- http://www.mplayerhq.hu/design7/dload.html
- http://flowplayer.org/
- http://www.mplayerhq.hu/DOCS/HTML/en/audio-codecs.html
- http://www.webmasterpals.com/forumdisplay.php?f=6
- http://trac.ffmpeg.org/wiki/CentosCompilationGuide#x264
- http://trac.ffmpeg.org/wiki/CentosCompilationGuide#libfdk_aac
- http://trac.ffmpeg.org/wiki/CentosCompilationGuide#libvpx
- http://trac.ffmpeg.org/wiki/CentosCompilationGuide#FFmpeg
- http://trac.ffmpeg.org/wiki/x264EncodingGuide
- http://trac.ffmpeg.org/wiki/AACEncodingGuide
- http://trac.ffmpeg.org/wiki/CompilationGuide/Centos
- https://gist.github.com/gboudreau/f24aed76b4cc91bfb2c1
- http://www.videolan.org/developers/x264.html