ffmpeg 常用參數

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?

1 thought on “ffmpeg 常用參數”

Leave a Reply

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