ffmpeg的編譯大全

ffmpeg的編譯大全

最近互聯網視頻共享的網站很火,公司也想搞類似的網站,初步是用fms+ffmpeg形式

fms負責在線錄製,播放,ffmpeg則在後臺處理上傳的資源轉換成一定的格式。

爲了讓ffmpeg支持的格式儘量多,所以特把我的編譯筆記分享一下

環境:redhat as4

1。首先獲取ffmpeg

很多人找不到怎麼下載,其實之前ffmpeg可以通過cvs下載,不過最近他已經換成了更加強大的svn

如何使用SVN我這裏不再介紹,網上還有大量的安裝和使用的文章可以借鑑,這裏簡單羅列幾個SVN輔助的軟件:

SubVersion,從 http://subversion.tigris.org/ 下載,支持linux,我們這裏就裝這個

TortoiseSVN,從 http://tortoisesvn.tigris.org/ 下載,是很不錯的SVN客戶端程序,爲windows外殼程序集成到windows資源管理器和文件管理系統的Subversion客戶端,用起來很方便,commit動作變得就像Winrar右鍵壓縮一樣方便。


ok,那我們先裝subversion,記住最好之前裝過apr和apr-util,在apache.org網站能下到

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

你會發現在你所在的目錄,自動出現一個ffmpeg的目錄,就是你下載的源代碼。


我們還不能這麼快編譯ffmpeg,應該如果要讓ffmpeg支持更多格式的轉換,還需做一些前期工作


2.支持mp3,linux當然是lame,下載解壓

cd lame-3.96.1
./configure --enable-shared --prefix=/usr
這裏推薦儘量裝在/usr下,默認是裝在/usr/local下。這樣ffmpeg編譯都能順利的找到庫文件


3.支持Ogg Vorbis:
as4自帶相應的rpm包,你可以安裝一下如下rpm包
libvorbis, libvorbis-devel,libogg, libogg-devel

http://downloads.xiph.org/releases/ogg/libogg-1.1.3.tar.gz
http://downloads.xiph.org/releases/vorbis/libvorbis-1.1.2.tar.gz
./configure --prefix=/usr
make
make install


4.支持xvid x264,現在最流行的兩種高質量的壓縮格式
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不遠了
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編譯參數http://debian.unnet.nl/pub/videolan/libdts/0.0.2/libdts-0.0.2.tar.gz

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


6.mpg4 aac格式支持,由於服務器還針對手機用戶服務,所以,類似aac,mpg4鈴聲格式的支持,我們也得做。這裏我們安裝faad2和faac就行
下載請到http://www.audiocoding.com/modules/mydownloads/

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 --with-mp4v2 --enable-shared
make
make install

faac的編譯
cd faac

cat bootstrap | tr -d '/015' > bootstrap.new && cp bootstrap.new bootstrap


chmod +x bootstrap
./bootstrap
./configure --prefix=/usr --with-mp4v2 --enable-shared
make
make install


7.支持3gp格式,這也是現在好多手機支持的格式,因爲手機用戶是我們的主要用戶,所以也得支持編譯

編譯的時候加上--enable-amr_nb --enable-amr_wb參數就行,根據編譯系統的提示,所以我們得下載一

些編譯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支持的格式,我們基本都做好前期準備了,下面是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:
關於3gp的編譯,如果大家要編譯--enable-amr_nb-fixed,那就不能跟--enable-amr_nb同時編譯,我不大清楚這兩者到底有什麼區別,似乎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

整體編譯參數就是
./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的情況下,不能編譯過去,我這裏沒發生過這情況,如果你真編譯不過去,可以試着加上cpu=cpu

ok,一個強大的ffmpeg編譯好了,不過目前管方的ffmpeg還不支持wma9和rmvb,不過網上有很多解決方法,大家去自己找找。


閱讀全文(328) | 回覆(0) | TrackBack(0) | 編輯 | 精華
 

 

 

 #install lame
tar zxvf lame-3.97.tar.gz
cd lame-3.97
./configure --prefix=/usr
make
make install
cd ..

#install xvidcore
tar zvxf xvidcore-1.1.2.tar.gz
cd xvidcore-1.1.2/build/generic
./configure --prefix=/usr
make
make install

#install x264
tar xvf x264.tar
cd x264
./configure --prefix=/usr --enable-shared
make
make install
cd ..

#install libdts
#mv libdts-0.0.2.tar.tar libdts-0.0.2.tar.gz
tar zxvf libdts-0.0.2.tar.gz
cd libdts-0.0.2
./configure --prefix=/usr
make
make install
cd ..

# tar zxvf a52dec-0.7.4.tar.gz
# cd a52dec-0.7.4
# ./configure --enable-shared --prefix=/usr
# make
# make install

//安裝官方版本
#install faad2
tar xvf 修改後的版本
cd
autoreconf -vif
./configure --prefix=/usr --with-mp4v2 --enable-shared
make
sudo make install

//安裝 Comsenz 版本
#tar zxvf faad2-2.5.tar.gz (Comsenz版:tar jxvf faad2-2.5-Comsenz.tar.bz2)
#cd faad2
#autoreconf -vif
#./configure --prefix=/usr --with-mp4v2 --enable-shared
#make
#make install


//安裝官方版本
#install faac
tar zxvf faac-1.25.tar.gz
cd faac
sed -i '/[2de].M/d' configure.in
echo "AC_OUTPUT(common/Makefile common/mp4v2/Makefile libfaac/Makefile frontend/Makefile include/Makefile Makefile)" >> configure.in
autoreconf -vif
./configure --prefix=/usr
make &&
make install

//安裝 Comsenz 版本
#tar xjvf faac-1.25-Comsenz.tar.bz2
#cd faac-Comsenz
#autoreconf -vif
#./configure --prefix=/usr --with-mp4v2 --enable-shared
#如果下面的 make 出現 undefined reference to `_Unwind_Resume'
  調整 frontend/Makefile 文件中的 編譯選擇 -Bdynamic -lgcc_s
#make
#make install

#到www.3gpp.org 下載 amr
26204-520.zip into libavcodec/amrwb_float
cp -f makefile.gcc makefile
26073-530.zip into libavcodec/amr
26104-540.zip into libavcodec/amr_float
cp -f makefile.gcc makefile

#編譯 ffmpeg


./configure --help
./configure --prefix=/usr --enable-gpl --enable-shared --enable-libmp3lame --enable-libogg --enable-libvorbis --enable-libamr-nb --enable-libamr-wb --enable-libxvid --enable-libx264 --enable-liba52 --enable-liba52bin --enable-libfaac --enable-libfaad --enable-libfaadbin --enable-pp --enable-pthreads --disable-ffserver --disable-ffplay

轉3gp命令

ffmpeg -i 1.flv -y -b 20 -s sqcif -r 10 -acodec libamr_nb -ab 12.2k -ac 1 -ar 8000 3.3gp

Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1753019

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章