最近公司有同事買了部SONY的硬碟手提攝錄機來拍片,那部機的儲存格式是MPEG2,而音源是杜比AC3。米奇拿了由那部機拍攝出來的片段放上轉片伺服器去試試轉換成flv,立即就出現了Output format的問題了。想當然,就是AC3音源的問題了。
到ffmpeg的官網一查,便知道原來ffmpeg對AC3音源的支援是透過一個名為liba52的函式庫達成的,所以就去找這個函式庫。liba52的官網是http://liba52.sourceforge.net/,去下載了最新的0.7.4版本回來後(最新也已經是2002年時候的產物了...),不要按附有的INSTALL文件所說方式來安裝,因為那樣ffmpeg是無法取用的,安裝時要與安裝LAME一樣加入一些參數:
$ tar zxvf a52dec-0.7.4.tar.gz
$ cd a52dec-0.7.4
$ ./configure --enable-shared --prefix=/usr
$ make
$ make install
由於加入了新的函式庫,所以要重新編譯ffmpeg。編譯時要在configure加入新的參數來支援liba52,其他的就按之前說過的方法去做就可以:
$ ./configure --enable-gpl --enable-libmp3lame --enable-liba52 --enable-shared --prefix=/usr
不過,那部機拍出來的片的pixal aspect ratio與電腦的aspect ratio不一樣,所以雖然看的時候是16:9,但是無論在Linux上用ffmpeg轉換也好,或在Windows用VirtualDubMod來轉換也好,也會變成了4:3比例。在Windows上米奇是用Avisynth來Resize影片,而在ffmpeg的話,就要加入一些參數來暴力改變picture aspect ratio了。由於用ffmpeg來檢查來源片段的話只會得到4:3的比例,米奇還要研究一下怎樣才可以自動偵測這種變型比例。






