轉帖]ffmpeg的使用
先從ffmpeg開始。
http://ffmpeg.sourceforge.net上有說明,音視頻的分離,轉換,解碼的完全解決方案。
其中最重要的就是libavcodec庫。它被mplayer或者xine使用作為解碼器。還有,國內比較流行的播放器影音風暴或MyMPC的后端ffdshow也是使用ffmpeg的解碼庫的。
ffmpeg包括一組軟件,ffmpeg用于對媒體文件進行處理,ffserver是一個http的流媒體服務器,ffplay是一個基于SDL的簡單播放器。兩個庫文件libavcodec和libavformat。
ffmpeg作為媒體文件處理軟件,基本用法如下:
ffmpeg -i INPUTfile [OPTIONS] OUTPUTfile
輸入輸出文件通常就是待處理的多媒體文件了。可以是純粹的音頻文件,純粹的視頻文件,或者混合的。
大部分常見的格式都能夠“通殺”。象常見的各種mpeg,AVI封裝的DIVX和Xvid等等
具體的格式支持列表可以使用ffmpeg -formats查看或直接查閱文檔。
另:由于Linux把設備視為文件,因此-i選項后可以跟設備名。比如DV,視頻卡,光驅或者其它的各類設備。
輸出的內容通過Options調整。列出幾個主要的選項
-vcodec 視頻流編碼方式
-b? ?? ? 視頻流碼率(默認只有200k,一般都需要手動設置,具體的數值視codec選擇而定)
-r? ?? ???視頻流幀數(一般說來PAL制式通常用25,NTSC制式通常用29)
-s? ?? ???視頻解析度(分辨率,也要視codec和你的需要而定。通常改變某個視頻流的解析度是很耗費CPU的事情。另:具體寫法使用“數字x數字”的形式。中間是小寫字母“x”,這個用過mplayer的應該都知道)
-t? ?? ???處理持續時間。
-acodec??音頻流編碼方式
-ab? ?? ?? ?音頻流碼率(默認是同源文件碼率,也需要視codec而定)
-ar? ?? ?? ? 音頻流采樣率(大多數情況下使用44100和48000,分別對應PAL制式和NTSC制式,根據需要選擇)
還有些可能需要用到的選項如
-vn和-an分別是屏蔽視頻流和屏蔽音頻流,分別對源文件處理一次即可得到分離的音頻和視頻
-author -title分別是設置媒體文件的作者和title
-f選項是強制使用某種格式
-target type是使用預置的格式轉換(可以轉成dvd,vcd或svcd)
除此之外還有些更高級的選項,如設定vbr,或設定high quality,或者設定vbr的buff和max/min碼率,象一般我們自用的dvd抓軌啦,DV轉vcd或dvd啦,網上下載的電影轉成vcd或dvd都不一定需要用到它們。
具體的使用方法在man里面有介紹。簡單明了。
少許使用經驗:
1:ffmpeg對于rm的處理能力實在不敢恭維。也許是因為我主要使用二進制包安裝的緣故,對于Real媒體格式只能處理老式的RV8編碼的格式。而且效果不佳。
2:格式轉換是一件很耗費CPU資源的事情。雖說ffmpeg已經比WinAVI啦,TmpgEnc這些win下的非專業級視頻處理軟件做的好些了。畢竟我們可以把ffmpeg運行的時候放到后臺。
3:ffmpeg不是萬能的,雖說支持的格式很多,但是如果你不是用的最新CVS出來的版本,可能碰上某些古怪的媒體文件就要郁悶。
4:ffmpeg全部是命令行操作。哪位達人寫個GUI前端出來就可以讓不少菜鳥脫離苦海了。還有就是不能批量處理,但是這個可以用shell幫忙解決。
posted on 2006-06-27 16:07
blog搬家了--[www.ialway.com/blog] 閱讀(454)
評論(0) 編輯 收藏 所屬分類:
ffmpeg