FFmpeg 常用編碼器 (Encoders) 與篩選器 (Filters)

FFmpeg

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


音訊編碼器 (Audio Encoders)


以下編碼器與選項只列出常用部分,詳細說明請參考官網說明文件

aac


AAC 音訊編碼器。此為實驗項目,必須使用 -strict experimental 解鎖。
推薦改用 libfdk_aac。

常用選項:

-strict experimental
  解鎖實驗項目所必須。

-qscale[:串流說明符] 品質
-q[:串流說明符] 品質
  設定音訊品質 (Variable Bit Rate 模式)。實驗項目,需要 -strict experimental
  範圍為 0.1–10。VBR 是實驗性質的可能會產生比 CBR 更糟的結果。

-ab 位元率 (輸出)
-b[:串流說明符] 位元率
  設定音訊位元率 (Available Bit Rate 模式)。
  單位為 位元/秒 (bps, bits/sec)。


ac3, ac3_fixed


AC3 音訊編碼器。

常用選項:

-ab 位元率
-b[:串流說明符] 位元率
  設定音訊位元率 (Available Bit Rate 模式)。
  單位為 位元/秒 (bps, bits/sec)。


dca


DTS 音訊編碼器。此為實驗項目,必須使用 -strict experimental 解鎖。

常用選項:

-strict experimental
  解鎖實驗項目,必須。

-profile[:串流說明符] Profile
  設定音訊 Profile。它接受下列值之一:

  ‘dts’
    DTS

  ‘dts_es’
    DTS-ES

  ‘dts_96_24’
    DTS 96/24

  ‘dts_hd_hra’
    DTS-HD High Resolution Audio

  ‘dts_hd_ma’
    DTS-HD Master Audio


vorbis


Vorbis 音訊編碼器。

常用選項:

-ab 位元率
-b[:串流說明符] 位元率
  設定音訊位元率 (Available Bit Rate 模式)。
  單位為 位元/秒 (bps, bits/sec)。


alac


ALAC 無損音訊編碼器。

常用選項:

-compression_level[:串流說明符] 等級
  設定演算法複雜度。範圍為 0–3。0 為最高速度編碼,但檔案較大,3 為最慢編碼但檔案最小。預設值為 3

flac


FLAC 無損音訊編碼器。

常用選項:

-compression_level[:串流說明符] 等級
  設定演算法複雜度。範圍為 0–12。0 為最高速度編碼,但檔案較大,12 為最慢編碼但檔案最小。預設值為 5


libfdk_aac


AAC 音訊編碼器 - FDK。此為 External Libraries,要使用此編碼器請確認 configuration 之中必需含有 --enable-libfdk-aac,或是參考 -encoders 的輸出訊息。

常用選項:

-ab 位元率
-b[:串流說明符] 位元率
  設定音訊位元率 (Available Bit Rate 模式)。
  單位為 位元/秒 (bps, bits/sec)。
  如果使用了 VBR 編碼,此選項會被忽略。

-vbr[:串流說明符] 品質
  設定音訊品質 (Variable Bit Rate 模式)。
  範圍為 1–5,5 為最高品質。
  目前,只有“aac_low”與“aac_he” Profile 支援 VBR 編碼。

-profile[:串流說明符] Profile
  設定音訊 Profile。它接受下列值之一:

  ‘aac_low’
    MPEG-4 AAC LC (default)

  ‘aac_he’
    MPEG-4 HE-AAC (SBR)

  ‘aac_he_v2’
    MPEG-4 HE-AAC v2 (SBR+PS)

  ‘aac_ld’
    MPEG-4 AAC LD

  ‘aac_eld’
    MPEG-4 AAC ELD


libvo_aacenc


AAC 音訊編碼器 - VisualOn。此為 External Libraries,要使用此編碼器請確認 configuration 之中必需含有 --enable-libvo_aacenc,或是參考 -encoders 的輸出訊息。

常用選項:

-ab 位元率
-b[:串流說明符] 位元率
  設定音訊位元率 (CBR 模式)。


libopus


Opus 音訊編碼器。此為 External Libraries,要使用此編碼器請確認 configuration 之中必需含有 --enable-libopus,或是參考 -encoders 的輸出訊息。

常用選項:

-ab 位元率 (輸出)
-b[:串流說明符] 位元率
  設定音訊位元率 (Available Bit Rate 模式)。
  單位為 位元/秒 (bps, bits/sec)。

-vbr[:串流說明符] 模式
  設定 VBR 模式。它接受下列值之一:

  ‘off’
    不使用 VBR 模式,即 CBR 模式。

  ‘on’
    使用 VBR 模式。

  ‘constrained’
    使用 CVBR 模式。

-compression_level[:串流說明符] 等級
  設定演算法複雜度。範圍為 0–10。0 為最高速度編碼,但品質較低,10 為最慢編碼但品質最高。預設值為 10


libvorbis


Vorbis 音訊編碼器。此為 External Libraries,要使用此編碼器請確認 configuration 之中必需含有 --enable-libvorbis,或是參考 -encoders 的輸出訊息。

常用選項:

-qscale[:串流說明符] 品質
-q[:串流說明符] 品質
  設定音訊品質 (Variable Bit Rate 模式)。
  範圍為 0–10,10 為最高品質。3–6 是好的嘗試範圍。預設值為 -q:a 3

-ab 位元率
-b[:串流說明符] 位元率
  設定音訊位元率 (Available Bit Rate 模式)。
  單位為 位元/秒 (bps, bits/sec)。


libmp3lame


MP3 音訊編碼器 - LAME。此為 External Libraries,要使用此編碼器請確認 configuration 之中必需含有 --enable-libmp3lame,或是參考 -encoders 的輸出訊息。

常用選項:

-ab 位元率
-b[:串流說明符] 位元率
  設定音訊位元率 (ABR 或 CBR 模式)。
  如果使用了 VBR 編碼,此選項會被忽略。

-abr[:串流說明符] 1
  使用 ABR 編碼模式於。FFmpeg 依賴 -b:a 選項來設定位元率。

-qscale[:串流說明符] 品質
-q[:串流說明符] 品質
  設定音訊品質 (Variable Bit Rate 模式)。
  範圍為 0–9,0 為最高品質。預設值為 -q:a 4

-compression_level[:串流說明符] 等級
  設定演算法複雜度。範圍為 0–9。但品質較低,0 為最慢編碼但品質最高,9 為最高速度編碼。
FFmpeg

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


視訊編碼器 (Video Encoders)


以下編碼器與選項只列出常用部分,詳細說明請參考官網說明文件

mpeg2video


MPEG-2 視訊編碼器。

常用選項:

-b[:串流說明符] 位元率
設定視訊位元率(1-Pass: ABR, 2-Pass: VBR)。
單位為 位元/秒 (bps, bits/sec)。

-qscale[:串流說明符] 品質
-q[:串流說明符] 品質
設定視訊品質 (Variable Bit Rate 模式)。
範圍為 1–31,1 為最高品值。

-maxrate[:串流說明符] 位元率
設定最大流量容許值 (每秒位元),bufsize 需要被設定。

-bufsize[:串流說明符] 位元值
設定流量控制緩衝區大小 (位元)。


mpeg4


MPEG-4 part 2 視訊編碼器。

常用選項:

-b[:串流說明符] 位元率
設定視訊位元率(1-Pass: ABR, 2-Pass: VBR)。
單位為 位元/秒 (bps, bits/sec)。

-qscale[:串流說明符] 品質
-q[:串流說明符] 品質
設定視訊品質 (Variable Bit Rate 模式)。
範圍為 1–31,1 為最高品值。

-maxrate[:串流說明符] 位元率
設定最大流量容許值 (每秒位元),bufsize 需要被設定。

-bufsize[:串流說明符] 位元值
設定流量控制緩衝區大小 (位元)。


libxvid


MPEG-4 part 2 視訊編碼器。
此為 External Libraries,要使用此編碼器請確認 configuration 之中必需含有 --enable-lixvid,或是參考 -encoders 的輸出訊息。

常用選項:

-b[:串流說明符] 位元率
設定視訊位元率(1-Pass: ABR, 2-Pass: VBR)。
單位為 位元/秒 (bps, bits/sec)。

-qscale[:串流說明符] 品質
-q[:串流說明符] 品質
設定視訊品質 (Variable Bit Rate 模式)。
範圍為 1–31,1 為最高品值。

-maxrate[:串流說明符] 位元率
設定最大流量容許值 (每秒位元),bufsize 需要被設定。

-bufsize[:串流說明符] 位元值
設定流量控制緩衝區大小 (位元)。


libvpx, libvpx-vp9


VP8 / VP9 視訊編碼器。
此為 External Libraries,要使用此編碼器請確認 configuration 之中必需含有 --enable-libvpx,或是參考 -encoders 的輸出訊息。

常用選項:

-b[:串流說明符] 位元率
設定視訊位元率。
單位為 位元/秒 (bps, bits/sec)。

-crf 設定值
即 vpxenc 的 CQ 位元率控制模式。設定視訊品質 (Variable Bit Rate 模式)。
設定值範圍: vp8: 4 - 63, vp9: -1 - 63。設定值越低則輸出品質越高。

將位元率設為 0 (-b:v 0),將確保每個畫格 (frames) 所分配到的位元數足以達到一個恆定 (感官) 品質等級。若位元率不為 0,將確保一個恆定(感官)品質,並保值輸出位元率不超過設定位元率。
https://trac.ffmpeg.org/wiki/Encode/VP9#constantq

-speed[:串流說明符] 設定值
設定 品質/速度比。比較高的值以品質為代價提升編碼速度。
設定值範圍: vp8: -16 - 16, vp9: -8 - 8

-lossless 1
啟用無損編碼模式。


libx264, libx264rgb


MPEG-4 AVC / H.264 視訊編碼器。
此為 External Libraries,要使用此編碼器請確認 configuration 之中必需含有 --enable-libx264,或是參考 -encoders 的輸出訊息。

常用選項:

-b[:串流說明符] 位元率
設定視訊位元率。
單位為 位元/秒 (bps, bits/sec)。

-crf[:串流說明符]
設定恆定品質模式 (constant quality mode) 的品質。
範圍為 0–51.0,0 為最高品質。建議使用 18 - 26。預設值為 23

-qp[:串流說明符]
設定恆定量化率方法 (constant quantization rate control method) 參數。
範圍為 0–69,0 為最高品質 (無損)。建議使用 21 - 28。預設值為 23

-profile[:串流說明符] Profile
選擇視訊 Profile。它接受下列值之一:
以下為可用值:

‘baseline’
Baseline Profile (BP)

‘main’
Main Profile (MP)

‘high’
High Profile (HiP)

‘high10’
High 10 Profile (Hi10P)

‘high422’
High 4:2:2 Profile (Hi422P)

‘high444’
High 4:4:4 Predictive Profile (Hi444PP)

-preset[:串流說明符] Preset
平衡壓縮效率和編碼速度,速度越慢則效率 (畫質-位元率比) 越高
以下為可用值:
字串: ‘ultrafast, superfast, veryfast, faster, fast, medium, slow, slower, veryslow, placebo’
或數值: 0-9

-tune[:串流說明符] Tune
最佳化編碼效果。
它接受下列值之一:

‘film’
電影 (膠片電影)。

‘animation’
動畫。例如卡通/日本動畫。

 ‘grain’
膠片顆粒。顆粒感很重的影片。

‘stillimage’
靜止影像。例如幻燈片效果的影片。

‘psnr’
優化 PSNR 值。

‘ssim’
優化 SSIM 值。

‘fastdecode’
快速解碼。用於低性能播放設備。

‘zerolatency’
零延遲。處裡時間低延遲。主要用於直播等。

-refs[:串流說明符] 數量
設定參考畫格最大數量。

-bf[:串流說明符] 數量
設定 B-Frame 最大連續數量。

-maxrate[:串流說明符] 位元率
設定最大流量容許值 (每秒位元),bufsize 需要被設定。

-bufsize[:串流說明符] 位元值
設定流量控制緩衝區大小 (位元)。

-fastfirstpass 參數
可用值:

0
不加速首次編碼。

1
加速首次編碼。

-x264opts[:串流說明符] config
-x264-params[:串流說明符] config
設定任何 x264 選項,見 x264 --fullhelp

config 語法:
[key[=value]][:key[=value]][:key[=value]]...

例如:
-x264-params level=30:bframes=0:weightp=0:cabac=0:ref=1:vbv-maxrate=768:vbv-bufsize=2000:analyse=all:me=umh:no-fast-pskip=1:subq=6:8x8dct=0:trellis=0


libx265


MPEG-H HEVC / H.265 視訊編碼器。
此為 External Libraries,要使用此編碼器請確認 configuration 之中必需含有 --enable-lix265,或是參考 -encoders 的輸出訊息。

常用選項:

-b[:串流說明符] 位元率
設定視訊位元率。
單位為 位元/秒 (bps, bits/sec)。

-crf[:串流說明符]
設定恆定品質模式 (constant quality mode) 的品質。
範圍為 0–51.0,0 為最高品質。建議使用 18 - 26。預設值為 23

-preset[:串流說明符] Preset
平衡壓縮效率和編碼速度,速度越慢則效率 (畫質-位元率比) 越高
以下為可用值:
字串: ‘ultrafast, superfast, veryfast, faster, fast, medium, slow, slower, veryslow, placebo’
或數值: 0-9

-tune[:串流說明符] Tune
最佳化編碼效果。

-x265-params[:串流說明符] config
設定任何 x265 選項,見 x265 --help。規則同 x264opts。
FFmpeg

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


音訊篩選器 (Audio Filters)


以下篩選器、選項、參數、常數只有列出常用部分,完整說明請見官網說明文件

volume



調整音量。預設值為 1.0
輸出音量 = 音量 * 輸入音量


範例:

‧音量減半
volume=0.5

volume=1/2

volume=-6.0206dB


lowpass



低通濾波器

參數:

frequency, f
Set frequency in Hz. Default is 500.

poles, p
Set number of poles. Default is 2.

width_type
Set method to specify band-width of filter.

h
Hz

q
Q-Factor

o
octave

s
slope

width, w
Specify the band-width of a filter in width_type units. Applies only to double-pole filter. The default is 0.707q and gives a Butterworth response.


aresample



重新取樣輸入的音訊。

‧重新取樣為 44.1 KHz
aresample=44100


參數:

resampler
設定重新取樣引擎. 預設值為 swr.
它接受下列值之一:

‘swr’
選擇原生的 SW Resampler。

‘soxr’
選擇SoX Resampler。

async
只能用於 SWR。簡單的參數 1 使用拉伸、擠壓、填充與修剪音訊串流去匹配時間戳記 (TimeStamp)。設定它為 1 將啟用填充與修剪,較大的數值代表該數據可被拉伸或擠壓的每一秒的取樣最大數量。預設值是 0,因此不會做處裡。

matrix_encoding
選擇矩陣式立體聲編碼,必須搭配 -ac 選項。
它接受下列值之一:

‘none’


‘dolby’
Dolby

‘dplii’
Dolby Pro Logic II


範例:

‧重新取樣為 44.1 KHz 以及音訊同步與矩陣編碼
-ac 2 -af "aresample='44100:async=1:matrix_encoding=dplii'"


pan



混合聲道與特定增益等級。
參數形式為 "l:outdef:outdef:..."
新版參數形式為 "l|outdef|outdef|..."

l
為輸出聲道布局或聲道數。

outdef
為輸出聲道選擇,形式為 "out_name=[gain*]in_name[+[gain*]in_name...]"

out_name
 輸出聲道定義。無論是 聲道名稱 (如: FL, FR, ...) 或是 聲道編號 (如: c0, c1, ...)

gain
聲道的係數。1 為音量不變。

in_name
輸入聲道使用。見 out_name;它不能夠混用聲道名稱與編號。

假設將 ‘=’ 取代為 ‘<’,然後該規格的增益將被正規化使總和為 1,以避免雜訊(Clipping Noise)。


範例:

‧調換左右聲道
pan='2:FL=FR:FR=FL'

‧5.1 聲道混合為 2.0 聲道
pan=stereo: FL < FL + 0.5*FC + 0.6*BL + 0.6*SL : FR < FR + 0.5*FC + 0.6*BR + 0.6*SR
完整命令
ffmpeg -i input.mkv -af "pan='stereo| FL < FL + 0.5*FC + 0.6*BL + 0.6*SL | FR < FR + 0.5*FC + 0.6*BR + 0.6*SR'" output.mkv


channelsplit



分割來自輸入音訊串流的每個聲道為獨立的輸出串流。

參數:

channel_layout
輸入音訊串流的聲道布局。預設值為 "stereo"。


範例:

分割來自輸入音訊串流的立體聲為2個獨立的輸出串流:
ffmpeg -i input.m2ts -filter_complex output.mka

※如果輸入音訊聲道數大於2,則只會分割左右聲道。

分割來自輸入音訊串流的5.1聲道為6個獨立的輸出串流:
ffmpeg -i input.m2ts -filter_complex "channelsplit='channel_layout=5.1'" output.mka

分割來自輸入音訊串流的5.1聲道為6個獨立的輸出音訊檔案:
ffmpeg -i input.wav -filter_complex "channelsplit='channel_layout=5.1[FL][FR][FC][LFE][SL][SR]'" -map '[FL]' front_left.wav -map '[FR]' front_right.wav -map '[FC]' front_center.wav -map '[LFE]' lfe.wav -map '[SL]' side_left.wav -map '[SR]' side_right.wav


amerge



合併兩個或多個音訊串流為單獨一個的多聲道串流。

參數:

inputs
設定輸入數量。預設值為 2。

假如輸入的聲道聲道布局 (layout) 是不相交的,因此則相容,輸出的聲道布局被相應地設定且聲道會被重新排序為所需。假如輸入的聲道聲道布局 (layout) 不是不相交的,輸出將含有第一個輸入的全部聲道以及第二個輸入的全部聲道,依此規律,且輸出的聲道布局預設值為輸入聲道的總數。

例如,假如第一個輸入是 2.1 (FL+FR+LF) 且第二個輸入是 FC+BL+BR,則輸出為 5.1,聲道為以下順序: a1, a2, b1, a3, b2, b3 (a1 為第一個輸入的第一個聲道,b1 為第一個輸入的第一個聲道)。

另一方面,如果兩個輸入都是立體聲 (FL+FR),輸出聲道將會被排序為預設的順序: a1, a2, b1, b2,且輸出聲道布局將會擅自被設定為 4.0,也許是或也許不是期望值。
FFmpeg

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


視訊篩選器 (Video Filters)


以下篩選器、選項、參數、常數只有列出常用部分,完整說明請見官網說明文件

crop



裁切輸入視訊的寬高。

參數:

w, out_w
輸出視訊的高度。預設值為 in_w。

h, out_h
輸出視訊的寬度。預設值為 in_h。

x
左邊裁切範圍。預設值為 (in_w-out_w)/2

y
上邊裁切範圍。預設值為 (in_h-out_h)/2

keep_aspect
如果設定為1將使輸出顯示寬高比與輸入相同,由改變 SAR (sample aspect ratio)。其預設值為0。



out_w, out_h, x, y 參數均包含以下常數:

‘in_w, iw’
‘in_h, ih’
輸入寬度與高度。

‘out_w, ow’
‘out_h, oh’
輸出(裁切之後)的寬度與高度。

‘a’
即 iw / ih

‘sar’
輸入 sample aspect ratio

‘dar’
輸入顯示寬高比, 即 (iw / ih) * sar


範例:

‧左裁 8, 上裁 16, 右裁 32, 下裁 64。
crop='w=iw-8-32:h=ih-16-64:x=8,y=16'

‧1280x720, 左裁 8, 上裁 16, 右裁 32, 下裁 64。
crop='w=1240:h=640,x=8,y=16'


cropdetect



它不會做裁切,而是在掃描完畢後回報黑邊範圍、參考用裁切參數。可以 -ss 與 -t 設掃瞄範圍,掃影片中段即可。

參數:

limit
設定更黑色的閾值,大於設定值將被當作非黑色。範圍 0 - 255。預設值為 24。

round
輸出能被設定值所整除的解析度。預設值為 16。對於大多數編碼氣 16 是最好的選擇。

reset_count, reset
設定多少影格之後重新開始檢測過程。預設值為 0。這對於頻道圖示或浮水印扭曲畫面邊界時會很有用。0 表示不重置,將會回報檢測到的畫面最大範圍。

範例:

1. 執行掃描
ffmpeg -i input.m2ts -vf cropdetect=40:2:0 -f null -

2. 假設最終結果為
[Parsed_cropdetect_0 @ 026b64c0] x1:0 x2:1279 y1:88 y2:632 w:1280 h:544 x:0 y:88 pts:113279 t:113.279000 crop=1280:544:0:88

3. 進行裁切
ffmpeg -i input.m2ts -vf crop=1280:544:0:88 output.mkv


scale



縮放輸入視訊解析度,使用 libswscale library。
scale 篩選器強制輸出顯示寬高比相同於輸入顯示比例, 通過改變像素寬高比來達成。
如果輸入影像格式不同於下一個過濾器所需的格式, scale 將轉換輸入為所需的格式。

參數:

width, w
height, h
設定輸出視訊寬高。預設值為與輸入相同。
假如值為 0 則輸出與輸入相同。
將寬或高其中之一設為 -n 時,FFmpeg 將會自動計算輸出正方形像素影像時可以維持顯示比例的值,且向上取最接近可以被 n 給整除的數值。例如輸入 DAR 為 2.4:1, w=1280, h=-16,由計算得到若要維持 DAR 高度必須要是 533 (1280/2.4=533.333...) ,因為 533 不能被 16 整除,向上取能被 16 整除的值也就是 544。

flags
設定 libswscale 縮放旗標。完整設定值列表見 sws_flags。如果未明確指定,filter 將使用預設旗標。

w, h 參數所包含的常數:

‘in_w, iw’
‘in_h, ih’
輸入寬度與高度。

‘out_w, ow’
‘out_h, oh’
輸出(縮放之後)的寬度與高度。

‘a’
即 iw / ih

‘sar’
輸入 sample aspect ratio

‘dar’
輸入顯示寬高比, 即 (iw / ih) * sar


範例:

‧縮放輸入視訊至 1280x720。
scale=1280:720

scale='w=1280:h=720'

scale=1280x720

使用 Lanczos 演算法:
scale='w=1280:h=720:flags=lanczos'

‧縮放輸入視訊寬高至 1/2。
scale='w=iw/2:h=ih/2'

scale='w=iw/2:h=trunc((ow/dar)/2+0.5)*2'

scale='w=trunc((oh*dar)/2+0.5)*2:h=ih/2'

‧縮放輸入視訊寬至 1280,自動 高 為 mod 16。
scale='w=1280:h=trunc((ow/dar)/16+0.5)*16'
trunc() 為取整數,小數捨去。

‧縮放輸入視訊,寬小於或等於 720,高小或等於 480,像素寬高比為 40:33。
scale='w=min(720,trunc((480*33/40*dar)/2+0.5)*2):h=min(480,trunc((720*40/33/dar)/2+0.5)*2)'


pad



附加邊框至輸出影像。

參數:

width, w
height, h
輸出視訊的寬度與高度。預設值為與輸入相同。
設定值必須大於或等於輸入。

x
y
 ; 左與上邊框的範圍。

color
填充區域的顏色。預設值為 "black"。



w, h 參數所包含的常數:

‘in_w, iw’
‘in_h, ih’
輸入寬度與高度。

‘out_w, ow’
‘out_h, oh’
輸出(填充之後)的寬度與高度。

‘a’
即 iw / ih

‘sar’
輸入 sample aspect ratio

‘dar’
輸入顯示寬高比, 即 (iw / ih) * sar


範例:

‧填充黑邊使輸出解析度為 1920x1080,且上下邊界相等、左右邊界相等
pad='w=1920:h=1080:x=(ow-iw)/2:y=(oh-ih)/2'

‧上下填充黑邊 (mod 16) 使輸出顯示比例為 16:9,且上下邊界相等、左右邊界相等
pad='w=iw:h=trunc((ow*sar*9/16)/16)*16:x=0:y=(oh-ih)/2'

‧自動填充黑邊 (mod 16) 使輸出顯示比例為 16:9,且上下邊界相等、左右邊界相等
pad='w=max(iw,trunc((ih/sar*16/9)/2+0.5)*2):h=max(ih,trunc((iw*sar*9/16)/2+0.5)*2):x=(ow-iw)/2:y=(oh-ih)/2'


setdar, setsar



該 setsar 篩選器用於設定輸出視訊的顯示寬高比。
顯示寬高比 = 水平解析度 / 垂直解析度 * 像素寬高比

注意,setdar 篩選器並不會改變視訊的解析度,而是透過改變 像素寬高比 來改變 顯示寬高比。
setsar 篩選器用於設定輸出視訊的 取樣 (又名"像素") 寬高比。

參數:

r, ratio, dar (setdar 專用), sar (setsar 專用)
設定比例。可以是浮點數或分數。


範例:

‧設定顯示比例為 16:9
setdar='r=16/9'

setdar='dar=16/9'

‧設定像素比例為 40:33
setsar='r=40/33'

setsar='sar=40/33'


subtitles



用 libass 繪製使用的字幕到輸出視訊上。
ffmpeg 的 configuration 之中必需含有 --enable-libass。

且 Windows 系統下需要 fonts-conf 才可以使 libass 正常工作,見詳細說明。

詳細說明:
http://www.mobile01.com/topicdetail.php?f=510&t=4462836

參數:

filename, f
設定字幕的檔案名稱來讀取。這是必用參數。

original_size
指定原始影片的畫面大小。由於 ASS 寬高比演算法中的錯誤設計,如果寬高比已被改變,則必須正確縮放字體。

charenc
設定輸入字幕的字元編碼。 subtitles 過濾器專用。 只有非 UTF-8 有用。

stream_index, si
設定字幕串流索引。 subtitles 過濾器專用。

force_style
覆蓋字幕的預設樣式(Style)或是腳本的訊息參數。它接受一個字串包含ASS風格(style)格式:
force_style='KEY=VALUE[,KEY=VALUE][,KEY=VALUE][,KEY=VALUE]......'



範例:

‧指定輸入字幕檔名。由於無法指定路徑,所以字幕檔必須位於工作目錄。
subtitles=sub.srt

‧同上
subtitles='filename=sub.srt'

‧從影片檔讀取預設字幕串流。
subtitles=video.mkv

‧從影片檔讀取第二個字幕串流(第一個為#0,第二個為#1)。
subtitles='video.mkv:si=1'

‧強制覆蓋字幕風格為透明綠色微軟正黑體
subtitles=sub.srt:force_style='FontName=Microsoft JhengHei,PrimaryColour=&HAA00FF00'


yadif



反交錯 (Deinterlace) 輸入視訊。

參數:

mode
交錯模式採取。它接受下列值之一:

‘0, send_frame’
每一畫格 (Frame) 輸出為一個畫格 (Frame)。

‘1, send_field’
每一圖場 (Field) 輸出為一個畫格 (Frame)。

‘2, send_frame_nospatial’
如 send_frame, 但跳過空間域 (Spatial) 交錯檢查。

 ‘3, send_field_nospatial’
如 send_field, 但跳過空間域 (Spatial) 交錯檢查。

該預設值為 send_frame.

parity
假設輸入交錯視訊的圖像場奇偶 (Field Parity)。 它接受以下值之一:

‘0, tff’
輸入為頂場優先 (TFF, Top Field First)。

‘1, bff’
輸入為底場優先 (BFF, Bottom Field First).

‘-1, auto’
啟用圖場奇偶的自訂檢測。
該預設值是 auto。 如果該交錯是未知或者編碼器沒有匯出此訊息則 tff 將被假定。

deint
指定那些畫格來反交錯。它接受下列值之一:

‘0, all’
反交錯全部畫格.。

‘1, interlaced’
只有交錯畫格。

該預設值為 all.


bwdif



反交錯 (Deinterlace) 輸入視訊。
動態適應性去交錯(motion adaptive deinterlacing)以 yadif 為基礎 使用 w3fdif 與三次插值 (cubic interpolation) 演算法。

參數:

mode
交錯模式採取。它接受下列值之一:

‘0, send_frame’
每一畫格 (Frame) 輸出為一個畫格 (Frame)。

‘1, send_field’
每一圖場 (Field) 輸出為一個畫格 (Frame)。

該預設值為 send_frame.

parity
假設輸入交錯視訊的圖像場奇偶 (Field Parity)。 它接受以下值之一:

‘0, tff’
輸入為頂場優先 (TFF, Top Field First)。

‘1, bff’
輸入為底場優先 (BFF, Bottom Field First).

‘-1, auto’
啟用圖場奇偶的自訂檢測。
該預設值是 auto。 如果該交錯是未知或者編碼器沒有匯出此訊息則 tff 將被假定。

deint
指定那些畫格來反交錯。它接受下列值之一:

‘0, all’
反交錯全部畫格.。

‘1, interlaced’
只有交錯畫格。

該預設值為 all.


nnedi



影像反交錯,使用 Neural Network Edge Directed。
此為 FFmpeg 目前所支援效果最佳的影像反交錯Filter。

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

參數:

field
設定操作模式。它接受下列值之一:

‘af’
自動,兩個場 (Both Fields) 各輸出為一張畫格 (Frame)。

‘a’
自動,只使用其中一場 (Single Field)。

‘t’
只使用頂圖場 (Top Filed)。

‘b’
只使用底圖場 (Bottom Filed)。

‘tf’
使用頂圖場,輸入為頂場優先 (TFF, Top Field First)。

‘bf’
使用底圖場,輸入為底場優先 (BFF, Bottom Field First)。

deint
指定那些畫格來反交錯。它接受下列值之一:

‘all’
反交錯全部畫格.。

‘interlaced’
只有交錯畫格。

該預設值為 all.


hqdn3d



高精度/品質3D雜訊消除Filter。
產生乾淨(低雜訊)的影像,使靜態畫面真正靜止,這應該可以提升壓縮率。

詳情: https://ffmpeg.org/ffmpeg-all.html#hqdn3d


nlmeans



影像雜訊消除,使用非局部平均演算法。
此為 FFmpeg 目前所支援效果最佳的影像降噪Filter。

參數:

s
設定降躁強度。可用範圍 [1.0-30.0],預設值 1.0。


詳情: https://ffmpeg.org/ffmpeg-all.html#nlmeans


transpose



旋轉輸入視訊的畫面。

參數:

dir
指定旋轉方向:

‘0, 4, cclock_flip’
逆時針方向旋轉 90 度 並垂直鏡射

‘1, 5, clock’
順時針方向旋轉 90 度

‘2, 6, cclock’
逆時針方向旋轉 90 度

‘3, 7, clock_flip’
順時針方向旋轉 90 度 並垂直鏡射

對於 4-7 之間的值,只在輸出畫面為縱向時作用。這些值已經棄用,應該改用 passthrough 選項。

passthrough
當輸出畫面幾何圖形匹配指定值時不旋轉。

‘none’
總是旋轉畫面。

‘portrait’
保留縱向畫面 (當高度大於寬度時不旋轉畫面)。

‘landscape’
保留橫向畫面 (當寬度大於高度時不旋轉畫面)。

預設值為 none.


範例:

例 90度順時針旋轉,並保留縱向佈局:
transpose=dir=1:passthrough=portrait

transpose=1:portrait


vflip



垂直鏡射/上下翻轉 (無參數)。

例:
ffmpeg -i input.mp4 -vf vflip output.mp4


hflip



水平鏡射/左右翻轉 (無參數)。

例:
ffmpeg -i input.mp4 -vf hflip output.mp4
文章分享
評分
評分
複製連結

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