萬用影音轉檔程式: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/16補充:EncodeHD- Easily Convert Media Files for Any Devices (Windows)

##

您可能也會有興趣的類似文章

簡睿

服務於軟體業的資訊老兵。興趣廣泛,學習力佳,樂於分享所知所學。

您可能也會喜歡…

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *