2010年11月5日 星期五

使用FFmpeg將影像轉成H264

用FFmpeg在command line下將任何格式轉成h264
畫質及速度都還不錯的參數

string paras = string.Format("-i \"{0}\" -crf 35.0 -vcodec libx264 -acodec libfaac -ar 48000 -ab 128kb -coder 1 -flags +loop -cmp +chroma -partitions +parti4x4+partp8x8+partb8x8 -me_method hex -subq 6 -me_range 16 -g 250 -keyint_min 25 -sc_threshold 40 -i_qfactor 0.71 -b_strategy 1 -threads 0 \"{1}\"", _srcFilePath, _destFilePath);

上面是c#的code
命令列的話當然就是
c:\> ffmpeg.exe -i "c:\src.avi" -crf 35.0 -vcodec libx264 -acodec libfaac -ar 48000 -ab 128kb -coder 1 -flags +loop -cmp +chroma -partitions +parti4x4+partp8x8+partb8x8 -me_method hex -subq 6 -me_range 16 -g 250 -keyint_min 25 -sc_threshold 40 -i_qfactor 0.71 -b_strategy 1 -threads 0 "c:\dest.mp4"

粗體字的部分自行換掉吧

ps. _destFilePath 副檔名記得設為.mp4

如果參數使用失敗的話,可能是版本問題?!
這裡放上我測試過的
FFmpeg dowload