Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1482617
  • 博文数量: 181
  • 博客积分: 3308
  • 博客等级: 中校
  • 技术积分: 2227
  • 用 户 组: 普通用户
  • 注册时间: 2010-10-03 12:03
个人简介

我是zoro

文章分类

全部博文(181)

文章存档

2015年(1)

2013年(35)

2012年(39)

2011年(50)

2010年(56)

分类: LINUX

2012-07-24 22:33:06


最近互联网视频共享的网站很火,用fms+ffmpeg形式


fms负责在线录制,播放,ffmpeg则在后台处理上传的资源转换成一定的格式。

为了让ffmpeg支持的格式尽量多,所以特把我的编译笔记分享一下

环境:redhat as4

1。首先获取ffmpeg

很多人找不到怎么下载,其实之前ffmpeg可以通过cvs下载,不过最近他已经换成了更加强大的svn

如何使用SVN我这里不再介绍,网上还有大量的安装和使用的文章可以借鉴,这里简单罗列几个SVN辅助的软件:

SubVersion,从 下载,支持linux,我们这里就装这个

TortoiseSVN,从 下载,是很不错的SVN客户端程序,为windows外壳程序集成到windows资源管理器和文件管理系统的Subversion客户端,用起来很方便,commit动作变得就像Winrar右键压缩一样方便。


ok,那我们先装subversion,记住最好之前装过apr和apr-util,在apache.org网站能下到

wget downloads/subversion-1.3.2.tar.gz
tar zvxf subversion-1.3.2.tar.gz
cd subversion-1.3.2
./configure --with-apr=/usr/local/apr-httpd --with-apr-util=/usr/local/apr-util-httpd/
make
make install


到此,我们就可以通过svn命令获取最新的ffmpeg了

svn checkout svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg

你会发现在你所在的目录,自动出现一个ffmpeg的目录,就是你下载的源代码。


我们还不能这么快编译ffmpeg,应该如果要让ffmpeg支持更多格式的转换,还需做一些前期工作


2.支持mp3,linux当然是lame,下载解压

cd lame-3.96.1
./configure --enable-shared --prefix=/usr
这里推荐尽量装在/usr下,默认是装在/usr/local下。这样ffmpeg编译都能顺利的找到库文件


4.支持xvid x264,现在最流行的两种高质量的压缩格式
xvid的编译安装
tar zvxf xvidcore-1.1.0.tar.gz
./configure --prefix=/usr
make
make install

x264的获取同样是采用svn方式,看来svn取代cvs不远了
svn co svn://svn.videolan.org/x264/trunk x264
cd x264
./configure --prefix=/usr --enable-shared
make
make install


5.AC3和dts编码的支持
as4系统似乎已经支持ac3编码,编译的时候只要加--enable-a52 --enable-gpl参数就行

libdts编译参数
./configure --prefix=/usr
make
make install


6.mpg4 aac格式支持,由于服务器还针对手机用户服务,所以,类似aac,mpg4铃声格式的支持,我们也得做。这里我们安装faad2和faac就行
下载请到

FAAD2的编译
cd faad2
autoreconf -vif
./configure      --with-mp4v2 --enable-shared
make
make install

faac的编译
cd faac
chmod +x bootstrap
./bootstrap
./configure      --with-mp4v2 --enable-shared
make
make install
ffad2/faac 需要cygwin的编译,要到下载setup.exe进行安装。
setup。exe要从internetdownload所设置的文件,这个过程有可能回失败,
不要每次从头开始,只要将下载设置成ReInstall就可以了。

7.支持3gp格式,这也是现在好多手机支持的格式,因为手机用户是我们的主要用户,所以也得支持编译
需要下载libamr
编译的时候加上--enable-amr_nb --enable-amr_wb参数就行,根据编译系统的提示,所以我们得下载一

些编译3gp所需得文件。

wget
解压以后把里面的文件都拷贝到libavcodec/amrwb_float

wget
解压以后把里面的文件都拷贝到libavcodec/amr_float


好了,基本ffmpeg支持的格式,我们基本都做好前期准备了,下面是ffmpeg的编译


./configure     --enable-gpl --enable-static --enable-mp3lame --enable-amr_nb --enable-amr_wb --enable-amr_if2 --enable-libogg --enable-vorbis --enable-xvid --enable-a52 --enable-dts --enable-pp --enable-faad --enable-faac --enable-x264 --disable-ffserver --disable-ffplay --enable-memalign-hack --disable-shared --enable-mingw32
修改config.mak
EXTRALIBS=-L/usr/local/lib /usr/local/lib/libfaac.a /usr/local/lib/libfaad.a /usr/local/lib/libogg.a /usr/local/lib/libvorbis.a -lmp3lame -lz -lxvidcore -lx264 -ldts -lmp4ff -lmp4v2 -lvorbisenc -ldts_pic -logg -lvorbis -lm

make

ok,一个强大的ffmpeg编译好了,不过目前管方的ffmpeg还不支持wma9和rmvb,不过网上有很多解决方法,大家去自己找找。




libvorbis-1.0
./configure --enable-static --disable-oggtest --with-ogg=/usr/local

libvorbis 依赖于:
libogg-1.0


./configure 
make  
make install 

libvorbis 在某些机器上编译的时候会出错. 如果你编译的时候出错了, 尝试用下面的命令安装:
libvorbisenc_la_LIBADD = libvorbis.la -L/usr/local/lib -logg -lm
libvorbisfile_la_LIBADD = libvorbis.la -L/usr/local/lib -logg -lm
内容

libvorbis 包括 vorbis 库文件.
说明
vorbis 库文件

libvorbis 对读写音频文件提供功能.



libogg
./configure --prefix=/usr 
make 
make install

libdts


把所有生成的lib拷到mingw的lib目录下,包含头文件的目录拷贝到mingw的include目录下。
最新的ffmpeg的source无法生成lib文件,vc中不能进行隐式的连接,需要修改以下地方
ifeq ($(CONFIG_WIN32),yes)
LDFLAGS = -Wl,--output-def,$(@:.dll=.def),--out-implib,lib$(SLIBNAME:$(SLIBSUF)=.dll.a)
endif


==============================================


从官网下载最新版的FFmpeg:

目前最新版为ffmpeg v0.6.1

终端下依次运行以下命令:

#tar zxvf ffmpeg-0.6.1.tar.gz
#cd ffmpeg-0.6.1
#./configure --prefix=/usr/local --enable-memalign-hack --enable-shared
#make
#make install

安装完成,运行ffmepg,提示以下错误信息:

ffmpeg: error while loading shared libraries: libavdevice.so.52: cannot open shared object file: No such file or directory

解决方法是用vi编辑/etc/ld.so.conf文件,末尾增加以下代码

/usr/local/lib

保存后,运行以下命令

# ldconfig
# ffmpeg -version
FFmpeg version 0.6.1, Copyright (c) 2000-2010 the FFmpeg developers
  built on Nov 23 2010 04:50:57 with gcc 4.4.5
  configuration: --prefix=/usr/local --enable-memalign-hack --enable-shared
  libavutil     50.15. 1 / 50.15. 1
  libavcodec    52.72. 2 / 52.72. 2
  libavformat   52.64. 2 / 52.64. 2
  libavdevice   52. 2. 0 / 52. 2. 0
  libswscale     0.11. 0 /  0.11. 0
FFmpeg 0.6.1
libavutil     50.15. 1 / 50.15. 1
libavcodec    52.72. 2 / 52.72. 2
libavformat   52.64. 2 / 52.64. 2
libavdevice   52. 2. 0 / 52. 2. 0
libswscale     0.11. 0 /  0.11. 0
阅读(3371) | 评论(0) | 转发(0) |
0

上一篇:CodePage简介(转)

下一篇:关于apt-get

给主人留下些什么吧!~~