萬用影音轉檔程式:FFMpeg與HD專用的VideoConverter

關於在手機上觀賞影片一事,相信有不少人和我有相同的問題:無法直接播放RMVB格式的影片(本人使用HTC Touch HD),奈何眾多流傳的影片都是RMVB,在手機仍然無法直接讀取RMVB時,將RMVB轉換成別的能使用的影片格式似乎是唯一方式。

前前後後試用了好幾套的轉檔程式,雖然WinAVI MP4 Converter很方便,可惜是付費軟體,由xda-developer上找到的VideoConverter看來符合需求,但在轉換RMVB時出現下列錯誤訊息:
swScaler: Unknown format is not supported as input pixel format
Cannot get resampling context

這兩天抽空研究了VideoConverter,稍微有了些眉目。VideoConverter是一支Java應用程式,原來它只是操作介面,真正的轉檔是透過跨平台的Open Souce程式FFMpeg來處理的,據說YouTube上的轉檔正是使用FFMpeg,因此只要了解FFMpeg的各種參數就能根據轉檔的需要來完成各種轉換。

而VideoConverter 1.1無法轉換RMVB格式的原因應該是FFmpeg.exe的版本較舊,我依下列步驟更新後就能轉RMVB的檔案了:

  • 安裝FFMpeg的Windows GUI介面程式-WinFF
  • 將C:\Program Files\WinFF\ffmpeg.exe複製到C:\Program Files\VideoConverter\FFMpeg資料夾,取代舊版的FFmpeg.exe

執行VideoConverter並Open要轉換的檔案按Convert後,C:\Program Files\VideoConverter資料夾裡會產生轉檔用的批次檔,如Conversion_10_星期日_五月_2009_10_39.bat,其內容示範如下;第一個ffmpeg.exe是由RMVB檔裡取出一幀影像做為圖樣,第二個ffmpeg.exe將輸入檔名轉換成AVI檔案(你也可以選MP4格式,MP4格式檔案較大,但清晰度較佳):

REM ========== Thumbnail =========
echo %DATE%%TIME%
"c:\Program Files\VideoConverter\FFmpeg\ffmpeg.exe" -y -i "C:\Program Files\VideoConverter\Around 40_EP_07_ChineseSubbed.rmvb" -f image2 -ss 20 -vframes 1 -s 160x120 -an "C:\Program Files\VideoConverter\Around 40_EP_07_ChineseSubbed_Resized.jpg"

REM ========== 1st Pass =========
"c:\Program Files\VideoConverter\FFmpeg\ffmpeg.exe" -y -i "C:\Program Files\VideoConverter\Around 40_EP_07_ChineseSubbed.rmvb" -title "Around 40_EP_07_ChineseSubbed" -b 1024k -pass 1 -aspect 1.6666666 -croptop 0 -cropbottom 0 -cropleft 22 -cropright 22 -s 800x480 -threads 4 "C:\Program Files\VideoConverter\Around 40_EP_07_ChineseSubbed_Resized.avi"

echo %DATE%%TIME%
pause

藉由觀察Conversion*.bat或WinFF產生在C:\Users\登入使用者\AppData\Roaming\WinFF\裡的批次檔,再參照FFMpeg文件就能利用FFMpeg來轉換任何影音檔了,不花一毛錢!

最後,因為本人在影像處理領域是門外漢,若文內有任何錯誤,敬請高手們不吝賜教。

原文:簡睿隨筆
##
2009-05-10 23:44 發佈
emisjerry01 wrote:
關於在手機上觀賞影...(恕刪)

很實用的文章,滿分送上!
捷舒軟體設計坊 http://jieshusw.blogspot.tw/
內文搜尋
X
評分
評分
複製連結
Mobile01提醒您
您目前瀏覽的是行動版網頁
是否切換到電腦版網頁呢?