用ffmpeg打造linux转码服务器
linux在系统资源利用上确实要比windows强很多,所以对于转码工作我们也放到linux平台上,下面就来讲下在linux配置ffmpeg来打造一个转码的环境。
首先我们需要以下的解码包,地址如下
xvidcode http://www.xvid.org/Downloads.43.0.html#c23
yasm http://www.tortall.net/projects/yasm/wiki/Download
amr code http://www.penguin.cz/~utx/amr
faac http://sourceforge.net/project/showfiles.php?group_id=704
lame http://sourceforge.net/project/showfiles.php?group_id=290&package_id=309
其他解码 http://www.mplayerhq.hu/MPlayer/releases/codecs/
ffmpeg http://www.ffmpeg.org/download.html
x264 http://downloads.videolan.org/pub/videolan/x264/snapshots/
使用包如下
amrnb-7.0.0.2.tar.bz2
amrwb-7.0.0.3.tar.bz2
faac-1.28.tar.bz2
faad2-2.7.tar.bz2
lame-398-2.tar.gz
yasm-0.8.0.tar.gz
x264-snapshot-20090426-2245.tar.bz2 这个可以去上面的网站下载最新的snapshot文件
xvidcore-1.2.1.tar.gz
ffmpeg-checkout-snapshot.tar.bz2 这个可以去上面的网站下载最新的checkout文件,当然也可以使用svn获取最新的文件
其他编码的解码插件请下载all-20071007.tar.bz2包就行了
下面就来说下安装步骤,总体来说安装步骤还是很容易的,讲所有下载好的包放到当前用户根目录下的ffmpeg文件夹中
cd ~/ffmpeg/ cd ~/ffmpeg/ cd ~/ffmpeg/ cd ~/ffmpeg/ cd ~/ffmpeg/ cd ~/ffmpeg/ cd ~/ffmpeg/ cd ~/ffmpeg/ cd ~/ffmpeg/ mkdir -p /usr/local/lib/codes |
以上安装完毕之后,编辑/etc/ld.so.conf文件加入如下内容
/usr/local/lib
保存退出后执行ldconfig命令,然后执行ffmpeg命令就能看到如下显示了
FFmpeg version SVN-r18631, Copyright (c) 2000-2009 Fabrice Bellard, et al. configuration: --enable-gpl --enable-shared --enable-libmp3lame --enable-libvorbis --enable-libamr-nb --enable-libamr-wb --enable-libxvid --enable-libx264 --enable-libfaac --enable-libfaad --enable-libfaadbin --enable-pthreads --disable-ffserver --disable-ffplay --enable-nonfree --enable-postproc --extra-ldflags=-ldl libavutil 50. 3. 0 / 50. 3. 0 libavcodec 52.27. 0 / 52.27. 0 libavformat 52.32. 0 / 52.32. 0 libavdevice 52. 2. 0 / 52. 2. 0 libswscale 0. 7. 1 / 0. 7. 1 libpostproc 51. 2. 0 / 51. 2. 0 built on Apr 27 2009 15:23:16, gcc: 4.1.2 20071124 (Red Hat 4.1.2-42) |
可能各位的显示结果会和我的不同。
以上配置完毕后,生产mp4文件的转码系统就算是搭建好了,不过这样生产出来的mp4文件是不支持渐进式下载的,所以还需要对生产出来的mp4文件进行处理,那个就是MP4Box这个软件的工作了,接下来就讲下MP4Box安装步骤
yum -y install freeglut yum -y install freeglut-devel wget http://downloads.sourceforge.net/gpac/gpac-0.4.5.tar.gz wget http://downloads.sourceforge.net/gpac/gpac_extra_libs-0.4.5.tar.gz tar zxvf gpac-0.4.5.tar.gz tar zxvf gpac_extra_libs-0.4.5.tar.gz cd gpac cp -r ../gpac_extra_libs/* extra_lib/ chmod +x configure ./configure make lib make apps make install cp bin/gcc/libgpac.so /usr/lib |
再安装完MP4Box之后同样要执行一次ldconfig命令,然后执行MP4Box -version命令后可以看到如下内容
# MP4Box -version MP4Box - GPAC version 0.4.5 (build 33) GPAC Copyright: (c) Jean Le Feuvre 2000-2005 (c) ENST 2005-200X |
这样一来所有的工作就都做完了,剩下的就是按照自己的需要写ffmpeg的转码脚本了
问题解决:
在安装MP4Box的时候可能会出现下面的问题
/usr/bin/ld: skipping incompatible /usr/lib/libGL.so when searching for -lGL/usr/bin/ld: cannot find -lGLcollect2: ld returned 1 exit statusmake[1]: *** [libgpac.so] Error 1make[1]: Leaving directory `/root/gpac/src'make: *** [lib] Error 2
原因是mesa-libGL-devel这个包可能不完整,直接使用yum -y install mesa-libGL-devel命令把这个包安装一下,然后在make的时候就正常了。