May 15,2008

FFMpeg 編譯安裝 (Ubuntu 懶人包)

警告, 本文相關於 Ubuntu 環境下 FFMpeg 編譯安裝,
請小心服用...

日前在 Ubuntu 系統安裝 FFMpeg 與相關的 Codec 函式庫.
找了些文章參考. 特別記述下來...
 
ffmpeg 自行 configure/make (Ubuntu)

ffmpeg 下載 (svn checkout) - svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg
(不同 svn 版本 configure 參數有差別)
 
--enable-liba52          enable GPLed liba52 support [default=no]
--enable-liba52bin       open liba52.so.0 at runtime [default=no]
以上兩個 Library 以 apt 安裝:
sudo apt-get install liba52-0.7.4 liba52-0.7.4-dev
 
--enable-libamr-nb       enable libamr-nb floating point audio codec
支援 AMR-NB audio Codec,
這樣做 (ldconfig 所設定的 /etc/ld.so.conf 中要包含 /usr 目錄):
  wget http://ftp.penguin.cz/pub/users/utx/amr/amrnb-7.0.0.0.tar.bz2
  tar -xjvf amrnb-7.0.0.0.tar.bz2
  cd amrnb-7.0.0.0/
  ./configure --prefix=/usr/
  make && sudo make install
  sudo ldconfig
 
--enable-libamr-wb       enable libamr-wb floating point audio codec
  wget http://ftp.penguin.cz/pub/users/utx/amr/amrwb-7.0.0.2.tar.bz2
  tar -xjvf amrwb-7.0.0.2.tar.bz2
  cd amrwb-7.0.0.2/
  ./configure --prefix=/usr/
  make && sudo make install
  sudo ldconfig
 
--enable-libdc1394       enable IIDC-1394 grabbing using libdc1394
                                               and libraw1394 [default=no]
  sudo apt-get install libdc1394-13 libdc1394-13-dev
 
--enable-libfaac         enable FAAC support via libfaac [default=no]
  sudo apt-get install libfaac0 libfaac-dev
 
--enable-libfaad         enable FAAD support via libfaad [default=no]
--enable-libfaadbin      open libfaad.so.0 at runtime [default=no]
  sudo apt-get install libfaad2-0 libfaad2-dev
 
--enable-libgsm          enable GSM support via libgsm [default=no]
  sudo apt-get install libgsm1 libgsm1-dev
 
--enable-libmp3lame      enable MP3 encoding via libmp3lame [default=no]
  http://sourceforge.net/project/showfiles.php?group_id=290&package_id=309
  tar -zxvf lame-3.97.tar.gz
  cd lame-3.97/
  ./configure --prefix=/usr/local/ --enable-shared
  make && sudo make install
  sudo ldconfig
 
--enable-libnut          enable NUT (de)muxing via libnut,
                                        native demuxer exists [default=no]
  svn co svn://svn.mplayerhq.hu/nut/src/trunk libnut
  cd libnut/
  make
  sudo make install
  sudo ldconfig
 
--enable-libtheora       enable Theora encoding via libtheora [default=no]
  sudo apt-get install libtheora0 libtheora-dev
 
--enable-libvorbis       enable Vorbis encoding via libvorbis,
                           native implementation exists [default=no]
  sudo apt-get install libvorbis0a libvorbis-dev
 
--enable-libx264         enable H.264 encoding via x264 [default=no]

  svn co svn://svn.videolan.org/x264/trunk x264
  ./configure --prefix=/usr --enable-shared
  make && sudo make install
  sudo ldconfig
(網站在寫稿時不通)
 
--enable-libxvid         enable Xvid encoding via xvidcore,
                           native MPEG-4/Xvid encoder exists [default=no]
   sudo apt-get install libxvidcore4 libxvidcore4-dev

以上函式庫安裝完成. 進行 Configure
./configure --prefix=/usr/ --enable-static --enable-shared --enable-gpl --enable-nonfree --enable-pthreads --enable-x11grab --enable-liba52 --enable-liba52bin  --enable-libamr-nb --enable-libamr-wb --enable-libdc1394 --enable-libfaac --enable-libfaadbin --enable-libgsm --enable-libmp3lame --enable-libnut --enable-libtheora --enable-libvorbis --enable-libxvid --enable-libfaad --enable-swscale --enable-avfilter

再來編譯安裝:
make; sudo make install

裝完收工, That's all.
 
 
轉檔格式範例

*FLV: ffmpeg -i movie.avi -acodec mp3 -ar 11025 movie.flv
*3GP:ffmpeg -i movie.avi -s qcif -r 12 -ac 1 -ar 8000 -b 30k -ab 12k
*AMR:ffmpeg -i music.wav -acodec amr_nb -ar 8000 -ac 1 -ab 12.2k music.amr

又, 新版 ffmpeg 很貼心.
*AMR:ffmpeg -i music.wav -acodec amr_nb -ar 8000 -ac 1 -ab 12.2k music.amr

幾個常用的選項:

    * -acodec : 指定音訊編碼器。
    * -vcodec : 指定影片編碼器。
    * -s : 指定解析度,QCIF 就是176*144,是3gp格式常見的解析度。
    * -r : 這是定義每秒畫格數(fps)的選項。
    * -b : 影片位元速率(bps)
    * -ar : 聲音取樣頻率(Hz)
    * -ab : 聲音位元速率(bps)
    * -ac :指定聲音的聲道數目(例如:2就是立體聲, 1 則為單音)
 
 
延伸閱讀:

1. FFMpeg apt 方式安裝 - 請參考這裡

2. 大陸版 FFMpeg 安裝編譯 (本文大量參考此篇)

ps. Kun-Fu 看到這篇的話, 留個言吧...


Posted by cinatit at 樂多Roodo! │00:45 │回應(11)引用(0)技術相關
樂多分類:日記/一般 工具:編輯本文
Ads by Roodo! 

引用URL

http://cgi.blog.roodo.com/trackback/6026095
回應文章

一整個看沒有...@_@
Posted by birdshouse at May 15,2008 08:31
birdshouse:

我寫的不好...!? 還是?!
Posted by cinatit at May 15,2008 13:39

不是。是我根本不知道這什麼..XD
Posted by birdshouse at May 18,2008 21:47

birdshouse:

>>是我根本不知道這什麼..XD
客氣了, 歡迎參考這篇拙作,
稍有介紹...
Posted by cinatit at May 19,2008 22:56

版主您好
看了您這篇受益良良多 感謝感謝
小弟有個問題想請教您的

您知道要怎麼把 AMR-NB fixed point版本(3gpp 26073)的整合到FFMPEG裡面嗎?
目前從FFMPEG SVN下載的版本似乎都只支持浮點數的版本(3gpp 26103)呢

若您知道的話 可否教小弟一下呢
感激不盡
Posted by 小李子 at July 1,2008 14:05

小李子:

試試看這個...

--AMR-NB--
- The fixed-point (TS26.073) can be downloaded from:
- http://www.3gpp.org/ftp/Specs/archive/26_series/26.073/26073-510.zip
- Extract the source into ffmpeg/libavcodec/amr
- To use the fixed version run "./configure" with "--enable-amr_nb-fixed"

摘自 2007 年 MPlayer porting 的討論: 這裡
Posted by cinatit at July 1,2008 14:24

版主您好

您動作好快啊
感謝您這麼快速的回覆
不過我現在下載到的版本已經沒有 --enable-amr_nb-fixed 這個選項了

請問您知道目前新版本的FFMpeg要怎麼做嗎
還是您手上有比較早期 可以使用 --enable-amr_nb-fixed 選項的

若有的話 可以麻煩您給我連結
不好意思 因為我這邊不知道怎麼搞的 FFMPEG的SVN上不去呢

不好意思麻煩您了
感謝~~~

我的EMAIL
chubahowsmall@gmail.com
Posted by 小李子 at July 1,2008 14:48

小李子:

你再試試 FFMPEG 的 SVN, 應該不至於一直
連不進去.

我手邊的版本, 因為放在 /tmp, 被系統清掉了.
無法傳給你...

最後 你可參考 延伸閱讀 2 那篇, 該位大陸網友
有分享 2008 一 月版本. 希望有幫助...
Posted by cinatit at July 1,2008 22:12

謝謝版主

我看了一下
發現該大陸網友的版本也是沒有提及如何整合定點數的版本
我再繼續google好了
謝謝版主的大力相挺
Posted by 小李子 at July 2,2008 10:01

小李子:

>>發現該大陸網友的版本也是沒有提及
>>如何整合定點數的版本

>>我再繼續google好了 謝謝版主的大力相挺
別客氣, 沒有實際幫上忙...
Posted by cinatit at July 4,2008 12:40

libamr 相關的 Libraries 似乎不是免費的, 稍稍提醒一下~
Posted by cinatit at July 16,2009 22:54