|
最近互聯(lián)網(wǎng)視頻共享的網(wǎng)站很火,公司也想搞類似的網(wǎng)站,初步是用fms+ffmpeg形式
fms負責在線錄制,播放,ffmpeg則在后臺處理上傳的資源轉(zhuǎn)換成一定的格式。
為了讓ffmpeg支持的格式盡量多,所以特把我的編譯筆記分享一下
環(huán)境:redhat as4
1。首先獲取ffmpeg
很多人找不到怎么下載,其實之前ffmpeg可以通過cvs下載,不過最近他已經(jīng)換成了更加強大的svn
如何使用SVN我這里不再介紹,網(wǎng)上還有大量的安裝和使用的文章可以借鑒,這里簡單羅列幾個SVN輔助的軟件:
SubVersion,從 http://subversion./ 下載,支持linux,我們這里就裝這個
TortoiseSVN,從 http://tortoisesvn./ 下載,是很不錯的SVN客戶端程序,為windows外殼程序集成到windows資源管理器和文件管理系統(tǒng)的Subversion客戶端,用起來很方便,commit動作變得就像Winrar右鍵壓縮一樣方便。
ok,那我們先裝subversion,記住最好之前裝過apr和apr-util,在apache.org網(wǎng)站能下到
wget http://subversion./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
你會發(fā)現(xiàn)在你所在的目錄,自動出現(xiàn)一個ffmpeg的目錄,就是你下載的源代碼。
我們還不能這么快編譯ffmpeg,應(yīng)該如果要讓ffmpeg支持更多格式的轉(zhuǎn)換,還需做一些前期工作
2.支持mp3,linux當然是lame,下載解壓
cd lame-3.96.1 ./configure --enable-shared --prefix=/usr 這里推薦盡量裝在/usr下,默認是裝在/usr/local下。這樣ffmpeg編譯都能順利的找到庫文件
3.支持Ogg Vorbis: as4自帶相應(yīng)的rpm包,你可以安裝一下如下rpm包 libvorbis, libvorbis-devel,libogg, libogg-devel
4.支持xvid x264,現(xiàn)在最流行的兩種高質(zhì)量的壓縮格式 xvid的編譯安裝 wget http://downloads./downloads/xvidcore-1.1.0.tar.gz 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系統(tǒng)似乎已經(jīng)支持ac3編碼,編譯的時候只要加--enable-a52 --enable-gpl參數(shù)就行
libdts編譯參數(shù) ./configure --prefix=/usr make make install
6.mpg4 aac格式支持,由于服務(wù)器還針對手機用戶服務(wù),所以,類似aac,mpg4鈴聲格式的支持,我們也得做。這里我們安裝faad2和faac就行 下載請到http://www./modules/mydownloads/
FAAD2的編譯 cd faad2 autoreconf -vif ./configure --prefix=/usr --with-mp4v2 --enable-shared make make install
faac的編譯 cd faac chmod +x bootstrap ./bootstrap ./configure --prefix=/usr --with-mp4v2 --enable-shared make make install
7.支持3gp格式,這也是現(xiàn)在好多手機支持的格式,因為手機用戶是我們的主要用戶,所以也得支持編譯
編譯的時候加上--enable-amr_nb --enable-amr_wb參數(shù)就行,根據(jù)編譯系統(tǒng)的提示,所以我們得下載一
些編譯3gp所需得文件。
wget http://www./ftp/Specs/archive/26_series/26.204/26204-510.zip 解壓以后把里面的文件都拷貝到libavcodec/amrwb_float
wget http://www./ftp/Specs/archive/26_series/26.104/26104-510.zip 解壓以后把里面的文件都拷貝到libavcodec/amr_float
好了,基本ffmpeg支持的格式,我們基本都做好前期準備了,下面是ffmpeg的編譯
./configure --prefix=/usr --enable-gpl --enable-shared --enable-mp3lame --enable-amr_nb --enable-amr_wb --enable-amr_if2 --enable-libogg --enable-vorbis --enable-xvid --enable-a52 --enable-a52bin --enable-faadbin --enable-dts --enable-pp --enable-faad --enable-faac --enable-x264 --enable-pthreads --disable-ffserver --disable-ffplay make make install
補充1: 關(guān)于3gp的編譯,如果大家要編譯--enable-amr_nb-fixed,那就不能跟--enable-amr_nb同時編譯,我不大清楚這兩者到底有什么區(qū)別,似乎fixed是修正版,管他呢,編譯的方法: wget http://www./ftp/Specs/archive/26_series/26.073/26073-510.zip 解壓以后把里面的文件都拷貝到libavcodec/amr目錄下
修改libavcodec/amr/makefile 找到CFLAGS = -Wall -pedantic-errors -I. $(CFLAGS_$(MODE)) -D$(VAD) 換成CFLAGS = -Wall -I. $(CFLAGS_$(MODE)) -D$(VAD) -DMMS_IO
整體編譯參數(shù)就是 ./configure --prefix=/usr --enable-gpl --enable-shared --enable-mp3lame --enable-amr_nb-fixed --enable-amr_wb --enable-amr_if2 --enable-libogg --enable-vorbis --enable-xvid --enable-a52 --enable-a52bin --enable-dts --enable-pp --enable-faad --enable-faadbin --enable-faac --enable-x264 --enable-pthreads --disable-ffserver --disable-ffplay make make install
補充2: 有朋友說在當在cpu是x86的情況下,不能編譯過去,我這里沒發(fā)生過這情況,如果你真編譯不過去,可以試著加上cpu=cpu
ok,一個強大的ffmpeg編譯好了,不過目前管方的ffmpeg還不支持wma9和rmvb,不過網(wǎng)上有很多解決方法,大家去自己找找。
|