Blog信息 |
blog名称: 日志总数:1304 评论数量:2242 留言数量:5 访问次数:7630258 建立时间:2006年5月29日 |

| |
[视频处理]FFMPEG在LINUX下的编译 软件技术
lhwork 发表于 2007/2/5 14:59:53 |
FFMPEG项目现在只是发展到了0.4.9版本,不过别小看这个0.4.9,已经开始了1年多的项目了。
和PHP类似,这个类库也依赖了无数的第三方类库,FFMPEG做的很重要的一件事情,就是作为一个胶水,把这些东西
都粘合到一起。
最痛苦的事情莫过于在WINDOWS上编译FFMPEG,需要安装无数的东西(Cygwin那一套)。
同样,在Redhat9 上的编译也是痛苦的。因为FFMPEG用到的某些类库要求高版本的AUTOMAKE之类的东西。
因此,还是用回RHEL 4.2版本的LINUX上编译为妥。
1。准备所有的软件包
首先是FFPMEG,从SVN里边获取最新的源代码
svn checkout svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg
为了对MP3进行解码,我们需要lame-3.97;
从这里下载:lame.sourceforge.net
为了处理手机类的音频,我们需要libgsm
packages.qa.debian.org/libgsm
获取libnut
svn co svn://svn.mplayerhq.hu/nut/trunk libnut
获取libogg-1.1.3,和libvorbis-1.1.2 ,放XVID电影的时候常用的音频库
lists.xiph.org/pipermail/vorbis/2005-November/026129.html
还需要H264的支持和XVID(OPEN SOURCE MP4)的支持
developers.videolan.org/x264.html
wget http://downloads.xvid.org/downloads/xvidcore-1.1.0.tar.gz
还有mpg4 aac格式支持,需要faac和faad2,
http://www.audiocoding.com/modules/mydownloads/
下载回来这些代码后,做一轮的解压后,开始逐个编译。
2。编译代码
1。x264
直接configure --prefix=/usr/local/flvtool/后make
x264在redhat 9上编译有问题,一定要禁止编译pthread
2.xvid
./configure --prefix=/usr/local/flvtool/
make
make install
3.ogg
./configure --prefix=/usr/local/flvtool/
make;make install
4.vorbis
./configure --prefix=/usr/local/flvtool/ --with-ogg=/usr/local/flvtool/
make ;make install
5.libnut
make -C libnut
make install
有必要的话,可能需要改一下config.mak
PREFIX = /usr/local/flvtool
6.libgsm
手工修改一下Makefile
make
make install
7.faac
./configure --prefix=/usr/local/flvtool/
make
make install
8.faad2
cd faad2 echo > plugins/Makefile.am echo > plugins/xmms/src/Makefile.am sed -i '/E_B/d' configure.in autoreconf -vif ./configure --prefix=/usr/local/flvtool/make
make install
这里边碰到的最大问题可能是某个类库编译的时候少了某个symbol,或者找不到INCLUDE的文件,这个时候就需要修改
Makefile或者增加环境变量,
比如修改Makefile
CC=gcc -I/usr/src/flvtool/include
LD_FLAGS= -L/usr/src/flvtool/lib
并且修改LD_LIBRARY_PATH增加上述类库的编译好的SO所在的路径的环境变量让link程序可以找到这些文件。
最后,就是ffmpeg了。
./configure --enable-mp3lame --enable-libnut --enable-libogg --enable-vorbis --enable-libgsm --enable-xvid --enable-x264 --prefix=/usr/local/flvtool/ --enable-gpl --enable-faac --enable-faad
make
make install
如果希望增加对WMV9的支持,那么可以增加--enable-decoder=vc1
不过效果好像差强人意。 |
|
|