1. 程式人生 > >編譯安裝ffmpeg以支援mp3,x264等

編譯安裝ffmpeg以支援mp3,x264等

本來ffmpeg是個挺好的東西,但可能是因為License衝突方面的問題(個人感覺好像是GPLv3跟別的License有衝突),所以這兩年 的ffmpeg中已經不包含如libmp3lame和libx264之類常用庫的支援,這在實際使用中就會很不方便。雖然據說有一些簡單的方法,如《HOWTO: Easily enable MP3, MPEG4, AAC, and other restricted encoders in FFmpeg》,但我試了其中的兩個比較簡單的方法:安裝extra庫和安裝Medibuntu,結果都沒有能達到目的。所以不得不自己編譯安裝ffmpeg。

所用的平臺是Ubuntu 12.04 amd64版。之前主要的問題就是kdenlive和openshot這樣的視訊編輯軟體無法匯出MP4/H.264/Xvid等格式,所以這裡的解決方案也主要是針對這兩個軟體來的。

先按照ffmpeg的官方文件《Compile FFmpeg on Ubuntu》編譯安裝x264和libvpx。不過在64位下要注意,編譯x264時要使用下面的命令(加上--enable-shared),否則編譯ffmpeg會出錯:

./configure --enable-static --enable-shared

64位平臺需要注意此命令執行完成後的結果,其中shared和PIC兩項都必須是yes。

編譯安裝ffmpeg是用kdenlive的《Installing FFmpeg》文件推薦的編譯引數,其中包含的一些庫可能需要自己用apt安裝一下。注意,要裝相應的-dev版本。

./configure --prefix=/usr --enable-shared --enable-libmp3lame --enable-gpl --enable-libfaac \
    --enable-libvorbis --enable-pthreads --enable-libfaac --enable-libxvid --enable-x11grab \
    --enable-libgsm --enable-libx264 --enable-libtheora --enable-libdc1394 --enable-nonfree \
    --disable-stripping --enable-avfilter --enable-libschroedinger --enable-libopencore-amrnb \
    --enable-libopencore-amrwb --enable-version3

我是另外裝了這些:

sudo apt-get install libgsm1-dev libschroedinger-dev libdc1394-22-dev

編譯也是用kdenlive推薦的:

make -j3

安裝是用ffmpeg官方推薦的:

sudo checkinstall --pkgname=ffmpeg --pkgversion="5:$(date +%Y%m%d%H%M)-git" --backup=no \
  --deldoc=yes --fstrans=no --default
hash x264 ffmpeg ffplay ffprobe

這樣一般就可以了。