ffmpeg 官網: http://ffmpeg.org/
ffmpeg 常用轉檔參數
-i 輸入檔案名稱 (如果名稱內有空格,要用雙引號 " 括起來) -vcodec 指定影像的編碼格式, libxvid 是一般所說的 xvid -codec:v 同上 -c:v 同上 -acodec 指定聲音的編碼格式, libmp3lame 就是常用的 mp3 格式 -codec:a 同上 -c:a 同上 -target 指定輸出類型 指定目標檔案類型: vcd, svcd, dvd, dv, dv50 而類型可帶以下這些前輟,來使用相對應的標準: ntsc-, pal-, film- 使用 -target 選項的話, 其他選項 (編碼器、位元率、緩衝) 將被自動設定為符合指定的類型 -ss 開始時間, 格式為 hh:mm:ss[.xxx] -t 持續時間, 格式為 hh:mm:ss[.xxx] -to 停止時間, 格式為 hh:mm:ss[.xxx] -coders 列出可用的編、解碼器 -encoders 列出可用的編碼器 Display options specific to, and information about, a particular encoder: ffmpeg -h encoder=mpeg4 -decoders 列出所有的解碼器 Display options specific to, and information about, a particular decoder: ffmpeg -h decoder=aac
範例
✓ 影像檔案轉換成 mpg (MPEG-2) 格式
ffmpeg -i input.avi -c:a copy -c:v mpeg2video -qscale:v 2 output.mpg
-qscale:v 2 數字從 1~31, 數字愈大壓縮愈大 (品質愈差)
✓ 影像檔案轉換成 mp4 格式
① 指定 quality
ffmpeg -i input.mpg -c:a copy -c:v libx264 -crf 18 -ss 00:03:20 -to 00:36:44 -f mp4 output1.mp4
-crf 18 數字從 0~51, 一般使用介於 19~26 (預設值 23), 數字愈大壓縮愈大 (品質愈差), 檔案愈小
② 指定 H.264 profile
ffmpeg -i input.mp4 -c:v libx264 -profile:v baseline output.mp4
-profile:v 後面接著的可以是 baseline, main 或是 high. 如果影像是要給舊手機播放的, 就用 baseline; 電視品質則用 main; 高畫質則用 high.
③ 指定 x264 encoding preset
ffmpeg -i input.mp4 -c:v libx264 -preset slow output.mp4
-preset 後面可以接 ultrafast, superfast, veryfast, faster, fast, medium (預設值), slow 或是 veryslow.
✓ 影像檔案轉換成 avi 格式
ffmpeg -i input.flv -c:v libxvid -c:a libmp3lame -ar 22050 -f avi output.avi
-c:v 指定影像的編碼格式, libxvid 指的是一般所說的 xvid
-c:a 指定聲音的編碼格式, libmp3lame 就是常用的 mp3 格式
-ar 指定聲音的取樣頻率, 一般預設是 44100
-f 強迫輸出的影像格式
✓ 影像檔案轉換成 3gp 格式
ffmpeg -i input.avi -s qcif -c:v h263 -c:a libfaac -ac 1 -ar 8000 -r 25 -ab 32 outpit.3gp
-s 畫面的解析度. qcif 指的是 176×144, 直接輸入長和寬也可以, 格式是 wxh
-c:a 指定聲音的編碼格式, libfaac 就是指 aac 格式
-ac 設定聲音的聲道數, 1 指的是單聲道
-ar 指定聲音的取樣頻率
-r 設定fps
-ab 指定聲音的 bitrate
✓ 影像檔案轉換成 flv 格式
ffmpeg -i input.mpg -ab 56 -ar 22050 -b 500 -r 15 output.flv
-ab 指定聲音的 bitrate
-ar 指定聲音的取樣頻率
-b 指定影像的 bitrate
ffmpeg -i input.avi -ar 22050 -qscale 1 output.flv
這一行得到的 flv 品質較高
ffmpeg -i input.avi -sameq -f flv output.flv
這一行會得到最高品質的 flv, 但是檔案會很大!
所以, 要用 -ar 和 -ab 來調整聲音輸出; -qscale, -b (bitrate) 和 -s (size) 來調整影像品質.
✓ 影像檔案轉換成 NTSC DVD-Video 格式
ffmpeg -i input.mkv -target ntsc-dvd output.mpg
✓ 聲音檔案轉成 mp3
ffmpeg -i input.wav -c:a libmp3lame -ar 44100 -ab 128k output.mp3
-ar 指定聲音的取樣頻率
-ab 指定聲音的 bitrate
-c:a 指定聲音的編碼格式, libmp3lame 就是 mp3, 如果輸出的檔案副檔名有指定 mp3 的話, 其實這裡省略沒關係.
若原本的聲音檔音量太小, 可以再加一個 -vol 200 的參數, 會讓輸出的 mp3 音量變成 200%, 就兩倍大聲. 200 是百分比, 可以隨意調整
參考資料:
● Cheat sheets and presets-settings that actually work with FFmpeg 1.0?
● FFmpeg – 泛用影音轉換工具
● FFmpeg Quality Comparison
● How to make an MPEG2 video file with the highest quality possible using FFMPEG?
感謝整理
對新手很好懂