最近互聯(lián)網(wǎng)視頻共享的網(wǎng)站很火,公司也想搞類似的網(wǎng)站,初步是用fms+ffmpeg形式
fms負(fù)責(zé)在線錄制,播放,ffmpeg則在后臺處理上傳的資源轉(zhuǎn)換成一定的格式。
為了讓ffmpeg支持的格式盡量多,所以特把我的編譯筆記分享一下
環(huán)境:redhat as4
1。首先獲取ffmpeg
很多人找不到怎么下載,其實(shí)之前ffmpeg可以通過cvs下載,不過最近他已經(jīng)換成了更加強(qiáng)大的svn
如何使用SVN我這里不再介紹,網(wǎng)上還有大量的安裝和使用的文章可以借鑒,這里簡單羅列幾個(gè)SVN輔助的軟件:
SubVersion,從 http://subversion.tigris.org/ 下載,支持linux,我們這里就裝這個(gè)
TortoiseSVN,從 http://tortoisesvn.tigris.org/ 下載,是很不錯(cuò)的SVN客戶端程序,為windows外殼程序集成到windows資源管理器和文件管理系統(tǒng)的Subversion客戶端,用起來很方便,commit動(dòng)作變得就像Winrar右鍵壓縮一樣方便。
ok,那我們先裝subversion,記住最好之前裝過apr和apr-util,在apache.org網(wǎng)站能下到
wget http://subversion.tigris.org/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)在你所在的目錄,自動(dòng)出現(xiàn)一個(gè)ffmpeg的目錄,就是你下載的源代碼。
我們還不能這么快編譯ffmpeg,應(yīng)該如果要讓ffmpeg支持更多格式的轉(zhuǎn)換,還需做一些前期工作
2.支持mp3,linux當(dāng)然是lame,下載解壓
cd lame-3.96.1
./configure --enable-shared --prefix=/usr
這里推薦盡量裝在/usr下,默認(rèn)是裝在/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.xvid.org/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不遠(yuǎn)了
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編碼,編譯的時(shí)候只要加--enable-a52 --enable-gpl參數(shù)就行
libdts編譯參數(shù)
./configure --prefix=/usr
make
make install
6.mpg4 aac格式支持,由于服務(wù)器還針對手機(jī)用戶服務(wù),所以,類似aac,mpg4鈴聲格式的支持,我們也得做。這里我們安裝faad2和faac就行
下載請到http://www.audiocoding.com/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)在好多手機(jī)支持的格式,因?yàn)槭謾C(jī)用戶是我們的主要用戶,所以也得支持編譯
編譯的時(shí)候加上--enable-amr_nb --enable-amr_wb參數(shù)就行,根據(jù)編譯系統(tǒng)的提示,所以我們得下載一
些編譯3gp所需得文件。
wget http://www.3gpp.org/ftp/Specs/archive/26_series/26.204/26204-510.zip
解壓以后把里面的文件都拷貝到libavcodec/amrwb_float
wget http://www.3gpp.org/ftp/Specs/archive/26_series/26.104/26104-510.zip
解壓以后把里面的文件都拷貝到libavcodec/amr_float
好了,基本ffmpeg支持的格式,我們基本都做好前期準(zhǔn)備了,下面是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
補(bǔ)充1:
關(guān)于3gp的編譯,如果大家要編譯--enable-amr_nb-fixed,那就不能跟--enable-amr_nb同時(shí)編譯,我不大清楚這兩者到底有什么區(qū)別,似乎fixed是修正版,管他呢,編譯的方法:
wget http://www.3gpp.org/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
補(bǔ)充2:
有朋友說在當(dāng)在cpu是x86的情況下,不能編譯過去,我這里沒發(fā)生過這情況,如果你真編譯不過去,可以試著加上cpu=cpu
ok,一個(gè)強(qiáng)大的ffmpeg編譯好了,不過目前管方的ffmpeg還不支持wma9和rmvb,不過網(wǎng)上有很多解決方法,大家去自己找找。
聯(lián)系客服