FFmpeg

簡介與其他資料:
 http://www.mobile01.com/topicdetail.php?f=510&t=3734550

其他範例:
  http://www.mobile01.com/topicdetail.php?f=510&t=4487462


說明

Interlaced/TeleCine:
http://www.mobile01.com/topicdetail.php?f=510&t=5010828


反交錯 (Deinterlacing) 範例

使用 YADIF 反交錯 (預設值):
ffmpeg -i input.mov -vf yadif -c:v libx264 -crf 18 output.mp4

如果需要更高的輸出品質可以改用 BWDIF 或 NNEDI。
[速度] YADIF <-> BWDIF <-> NNEDI [品質]

※ NNEDI 需要二進位檔案 (nnedi3_weights.bin),將它放到工作目錄下即可。
https://github.com/dubhater/vapoursynth-nnedi3/blob/master/src/nnedi3_weights.bin

由於 YADIF/BWDIF/NNEDI 預設值會將每個圖場輸出為一張畫格,例如輸入為 NTSC 60i (60/1.001i) 會得到 60p (60/1.001 fps) 輸出。如果要得到 30p (30/1.001 fps) 輸出,可以使用以下參數設定。

使用 YADIF 反交錯,兩個圖場輸出為一個畫格:
-vf "yadif='mode=0'"

使用 BWDIF 反交錯,兩個圖場輸出為一個畫格:
-vf "bwdif='mode=0'"

使用 NNEDI 反交錯,只使用其中一個圖場:
-vf "nnedi='field=a'"


Filter Chain

如果要使用多個 filters 必須注意先後順序,例如反交錯必須要在縮放之前。
通常的 Filter Chain: Deinterlace > Deblocking > Crop > Resize > Sharpen > Denoise

例如 1080i -> HD (裁黑邊):
-vf "bwdif,crop=1920:800:0:140,scale=1280:536,nlmeans"


IVTC (InVerse TeleCine)

在 FFmpeg 之中可以使用 pullup filter 與 fps filter 或 -r 選項來做 ITVC。

例如使用 pullup filter 對 NTSC 60i 做 IVTC:
-vf pullup -r 24000/1001
或是:
-vf "pullup,fps=24000/1001"

或者是使用圖場匹配 (fieldmatch)、刪除重複畫格 (decimate) 的 filter 來做 ITVC。

使用 fieldmatch+decimate filter 對 NTSC 60i 做 IVTC:
-vf "fieldmatch,decimate"

如果片源混合 TeleCine 與原生交錯,則 fieldmatch 將無法匹配圖場於交錯部分,但是這些剩餘的梳狀畫格將被標記為交錯,可以在刪除重複畫格之前使用反交錯 filter (例如 yadif) 來處理這些畫格。

例如:
-vf "fieldmatch,bwdif='mode=0:deint=1',decimate"

由於 decimate filter 目前僅適用於恆定畫格速率 (CRF, Constant Frame Rate) 輸入,如果輸入混合了不同的 fps 就必須使用 fps filter 將輸入轉為恆定畫格速率,例如 TeleCine 30 fps 與循序掃描 24 fps。

例如 60i(30 fps)/24 fps 混合影片做 IVTC:
-vf "fps=30000/1001,fieldmatch,decimate"

下列 filter chain 可以適用於大部分情況下:
-vf "fps=30000/1001,fieldmatch,bwdif='deint=1',decimate"


輸出交錯掃描影像

若要將循序掃描的影片轉為交錯掃描可以使用 ilme 旗標

TFF:
-flags +ilme+ildct -top 1

BFF:
-flags +ilme+ildct -top 0

NTSC 60i TFT:
-vsync cfr -r 30000/1001 -flags +ilme+ildct -top 1

NTSC 60i TFF (24P with 3:2 pulldown):
-vf "fps='24000/1001',telecine='first_field=top:pattern=23'"

PAL 50i BFF:
-vsync cfr -r 25 -flags +ilme+ildct -top 0

※交錯式掃描對於畫質有負面影響,且現代影片播放器都支援循序轉交錯掃描輸出,若非特殊需求則不需要將循序掃描的影片轉為交錯掃描。

應用:
AVCHD / Blu-Ray Video 編碼範例
DVD-Video 編碼範例
文章關鍵字
文章分享
評分
評分
複製連結

今日熱門文章 網友點擊推薦!