May 15,2008 00:45

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 看到這篇的話, 留個言吧...


  • cinatit 發表於樂多回應(11)引用(0)技術相關編輯本文
    樂多分類:日記/一般 │昨日人次:3 │累計人次:2759
    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