目錄
- 1 描述
- 2 濾鏡簡介
- 3 graph2dot
- 4 濾鏡圖描述
- 5 時間軸編輯
- 6 在執行時使用指令變更選項
- 7 具有多個輸入的濾鏡選項 (framesync)
- 8 音訊濾鏡
- 8.1 aap
- 8.2 acompressor
- 8.3 acontrast
- 8.4 acopy
- 8.5 acrossfade
- 8.6 acrossover
- 8.7 acrusher
- 8.8 acue
- 8.9 adeclick
- 8.10 adeclip
- 8.11 adecorrelate
- 8.12 adelay
- 8.13 adenorm
- 8.14 aderivative, aintegral
- 8.15 adrc
- 8.16 adynamicequalizer
- 8.17 adynamicsmooth
- 8.18 aecho
- 8.19 aemphasis
- 8.20 aeval
- 8.21 aexciter
- 8.22 afade
- 8.23 afftdn
- 8.24 afftfilt
- 8.25 afir
- 8.26 aformat
- 8.27 afreqshift
- 8.28 afwtdn
- 8.29 agate
- 8.30 aiir
- 8.31 alimiter
- 8.32 allpass
- 8.33 aloop
- 8.34 amerge
- 8.35 amix
- 8.36 amultiply
- 8.37 anequalizer
- 8.38 anlmdn
- 8.39 anlmf, anlms
- 8.40 anull
- 8.41 apad
- 8.42 aphaser
- 8.43 aphaseshift
- 8.44 apsnr
- 8.45 apsyclip
- 8.46 apulsator
- 8.47 aresample
- 8.48 areverse
- 8.49 arls
- 8.50 arnndn
- 8.51 asdr
- 8.52 asetnsamples
- 8.53 asetrate
- 8.54 ashowinfo
- 8.55 asisdr
- 8.56 asoftclip
- 8.57 aspectralstats
- 8.58 asr
- 8.59 astats
- 8.60 asubboost
- 8.61 asubcut
- 8.62 asupercut
- 8.63 asuperpass
- 8.64 asuperstop
- 8.65 atempo
- 8.66 atilt
- 8.67 atrim
- 8.68 axcorrelate
- 8.69 bandpass
- 8.70 bandreject
- 8.71 bass, lowshelf
- 8.72 biquad
- 8.73 bs2b
- 8.74 channelmap
- 8.75 channelsplit
- 8.76 chorus
- 8.77 compand
- 8.78 compensationdelay
- 8.79 crossfeed
- 8.80 crystalizer
- 8.81 dcshift
- 8.82 deesser
- 8.83 dialoguenhance
- 8.84 drmeter
- 8.85 dynaudnorm
- 8.86 earwax
- 8.87 equalizer
- 8.88 extrastereo
- 8.89 firequalizer
- 8.90 flanger
- 8.91 haas
- 8.92 hdcd
- 8.93 headphone
- 8.94 highpass
- 8.95 join
- 8.96 ladspa
- 8.97 loudnorm
- 8.98 lowpass
- 8.99 lv2
- 8.100 mcompand
- 8.101 pan
- 8.102 replaygain
- 8.103 resample
- 8.104 rubberband
- 8.105 sidechaincompress
- 8.106 sidechaingate
- 8.107 silencedetect
- 8.108 silenceremove
- 8.109 sofalizer
- 8.110 speechnorm
- 8.111 stereotools
- 8.112 stereowiden
- 8.113 superequalizer
- 8.114 surround
- 8.115 tiltshelf
- 8.116 treble, highshelf
- 8.117 tremolo
- 8.118 vibrato
- 8.119 virtualbass
- 8.120 volume
- 8.121 volumedetect
- 9 音訊來源
- 10 音訊接收器
- 11 視訊濾鏡
- 11.1 addroi
- 11.2 alphaextract
- 11.3 alphamerge
- 11.4 amplify
- 11.5 ass
- 11.6 atadenoise
- 11.7 avgblur
- 11.8 backgroundkey
- 11.9 bbox
- 11.10 bilateral
- 11.11 bilateral_cuda
- 11.12 bitplanenoise
- 11.13 blackdetect
- 11.14 blackframe
- 11.15 blend
- 11.16 blockdetect
- 11.17 blurdetect
- 11.18 bm3d
- 11.19 boxblur
- 11.20 bwdif
- 11.21 bwdif_cuda
- 11.22 ccrepack
- 11.23 cas
- 11.24 chromahold
- 11.25 chromakey
- 11.26 chromakey_cuda
- 11.27 chromanr
- 11.28 chromashift
- 11.29 ciescope
- 11.30 codecview
- 11.31 colorbalance
- 11.32 colorcontrast
- 11.33 colorcorrect
- 11.34 colorchannelmixer
- 11.35 colorize
- 11.36 colorkey
- 11.37 colorhold
- 11.38 colorlevels
- 11.39 colormap
- 11.40 colormatrix
- 11.41 colorspace
- 11.42 colorspace_cuda
- 11.43 colortemperature
- 11.44 convolution
- 11.45 convolve
- 11.46 copy
- 11.47 coreimage
- 11.48 corr
- 11.49 cover_rect
- 11.50 crop
- 11.51 cropdetect
- 11.52 cue
- 11.53 curves
- 11.54 datascope
- 11.55 dblur
- 11.56 dctdnoiz
- 11.57 deband
- 11.58 deblock
- 11.59 decimate
- 11.60 deconvolve
- 11.61 dedot
- 11.62 deflate
- 11.63 deflicker
- 11.64 dejudder
- 11.65 delogo
- 11.66 derain
- 11.67 deshake
- 11.68 despill
- 11.69 detelecine
- 11.70 dilation
- 11.71 displace
- 11.72 dnn_classify
- 11.73 dnn_detect
- 11.74 dnn_processing
- 11.75 drawbox
- 11.76 drawgraph
- 11.77 drawgrid
- 11.78 drawtext
- 11.79 edgedetect
- 11.80 elbg
- 11.81 entropy
- 11.82 epx
- 11.83 eq
- 11.84 erosion
- 11.85 estdif
- 11.86 exposure
- 11.87 extractplanes
- 11.88 fade
- 11.89 feedback
- 11.90 fftdnoiz
- 11.91 fftfilt
- 11.92 field
- 11.93 fieldhint
- 11.94 fieldmatch
- 11.95 fieldorder
- 11.96 fillborders
- 11.97 find_rect
- 11.98 floodfill
- 11.99 format
- 11.100 fps
- 11.101 framepack
- 11.102 framerate
- 11.103 framestep
- 11.104 freezedetect
- 11.105 freezeframes
- 11.106 frei0r
- 11.107 fspp
- 11.108 fsync
- 11.109 gblur
- 11.110 geq
- 11.111 gradfun
- 11.112 graphmonitor
- 11.113 grayworld
- 11.114 greyedge
- 11.115 guided
- 11.116 haldclut
- 11.117 hflip
- 11.118 histeq
- 11.119 histogram
- 11.120 hqdn3d
- 11.121 hwdownload
- 11.122 hwmap
- 11.123 hwupload
- 11.124 hwupload_cuda
- 11.125 hqx
- 11.126 hstack
- 11.127 hsvhold
- 11.128 hsvkey
- 11.129 hue
- 11.130 huesaturation
- 11.131 hysteresis
- 11.132 iccdetect
- 11.133 iccgen
- 11.134 identity
- 11.135 idet
- 11.136 il
- 11.137 inflate
- 11.138 interlace
- 11.139 kerndeint
- 11.140 kirsch
- 11.141 lagfun
- 11.142 lenscorrection
- 11.143 lensfun
- 11.144 lcevc
- 11.145 libplacebo
- 11.146 libvmaf
- 11.147 libvmaf_cuda
- 11.148 limitdiff
- 11.149 limiter
- 11.150 loop
- 11.151 lut1d
- 11.152 lut3d
- 11.153 lumakey
- 11.154 lut, lutrgb, lutyuv
- 11.155 lut2, tlut2
- 11.156 maskedclamp
- 11.157 maskedmax
- 11.158 maskedmerge
- 11.159 maskedmin
- 11.160 maskedthreshold
- 11.161 maskfun
- 11.162 mcdeint
- 11.163 median
- 11.164 mergeplanes
- 11.165 mestimate
- 11.166 midequalizer
- 11.167 minterpolate
- 11.168 mix
- 11.169 monochrome
- 11.170 morpho
- 11.171 mpdecimate
- 11.172 msad
- 11.173 multiply
- 11.174 negate
- 11.175 nlmeans
- 11.176 nnedi
- 11.177 noformat
- 11.178 noise
- 11.179 normalize
- 11.180 null
- 11.181 ocr
- 11.182 ocv
- 11.183 oscilloscope
- 11.184 overlay
- 11.185 overlay_cuda
- 11.186 owdenoise
- 11.187 pad
- 11.188 palettegen
- 11.189 paletteuse
- 11.190 perspective
- 11.191 phase
- 11.192 photosensitivity
- 11.193 pixdesctest
- 11.194 pixelize
- 11.195 pixscope
- 11.196 pp
- 11.197 pp7
- 11.198 premultiply
- 11.199 prewitt
- 11.200 pseudocolor
- 11.201 psnr
- 11.202 pullup
- 11.203 qp
- 11.204 qrencode
- 11.205 quirc
- 11.206 random
- 11.207 readeia608
- 11.208 readvitc
- 11.209 remap
- 11.210 removegrain
- 11.211 removelogo
- 11.212 repeatfields
- 11.213 reverse
- 11.214 rgbashift
- 11.215 roberts
- 11.216 rotate
- 11.217 sab
- 11.218 scale
- 11.219 scale_cuda
- 11.220 scale_npp
- 11.221 scale2ref_npp
- 11.222 scale_vt
- 11.223 scharr
- 11.224 scroll
- 11.225 scdet
- 11.226 selectivecolor
- 11.227 separatefields
- 11.228 setdar, setsar
- 11.229 setfield
- 11.230 setparams
- 11.231 sharpen_npp
- 11.232 shear
- 11.233 showinfo
- 11.234 showpalette
- 11.235 shuffleframes
- 11.236 shufflepixels
- 11.237 shuffleplanes
- 11.238 signalstats
- 11.239 signature
- 11.240 siti
- 11.241 smartblur
- 11.242 sobel
- 11.243 spp
- 11.244 sr
- 11.245 ssim
- 11.246 stereo3d
- 11.247 streamselect, astreamselect
- 11.248 subtitles
- 11.249 super2xsai
- 11.250 swaprect
- 11.251 swapuv
- 11.252 tblend
- 11.253 telecine
- 11.254 thistogram
- 11.255 threshold
- 11.256 thumbnail
- 11.257 tile
- 11.258 tiltandshift
- 11.259 tinterlace
- 11.260 tmedian
- 11.261 tmidequalizer
- 11.262 tmix
- 11.263 tonemap
- 11.264 tpad
- 11.265 transpose
- 11.266 transpose_npp
- 11.267 trim
- 11.268 unpremultiply
- 11.269 unsharp
- 11.270 untile
- 11.271 uspp
- 11.272 v360
- 11.273 vaguedenoiser
- 11.274 varblur
- 11.275 vectorscope
- 11.276 vidstabdetect
- 11.277 vidstabtransform
- 11.278 vflip
- 11.279 vfrdet
- 11.280 vibrance
- 11.281 vif
- 11.282 vignette
- 11.283 vmafmotion
- 11.284 vstack
- 11.285 w3fdif
- 11.286 waveform
- 11.287 weave, doubleweave
- 11.288 xbr
- 11.289 xcorrelate
- 11.290 xfade
- 11.291 xmedian
- 11.292 xpsnr
- 11.293 xstack
- 11.294 yadif
- 11.295 yadif_cuda
- 11.296 yaepblur
- 11.297 zoompan
- 11.298 zscale
- 12 OpenCL 視訊濾鏡
- 12.1 avgblur_opencl
- 12.2 boxblur_opencl
- 12.3 colorkey_opencl
- 12.4 convolution_opencl
- 12.5 erosion_opencl
- 12.6 deshake_opencl
- 12.7 dilation_opencl
- 12.8 nlmeans_opencl
- 12.9 overlay_opencl
- 12.10 pad_opencl
- 12.11 prewitt_opencl
- 12.12 program_opencl
- 12.13 remap_opencl
- 12.14 roberts_opencl
- 12.15 sobel_opencl
- 12.16 tonemap_opencl
- 12.17 unsharp_opencl
- 12.18 xfade_opencl
- 13 VAAPI 視訊濾鏡
- 14 Vulkan 視訊濾鏡
- 15 QSV 視訊濾鏡
- 16 視訊來源
- 16.1 buffer
- 16.2 cellauto
- 16.3 coreimagesrc
- 16.4 ddagrab
- 16.5 gradients
- 16.6 mandelbrot
- 16.7 mptestsrc
- 16.8 frei0r_src
- 16.9 life
- 16.10 perlin
- 16.11 qrencodesrc
- 16.12 allrgb, allyuv, color, colorchart, colorspectrum, haldclutsrc, nullsrc, pal75bars, pal100bars, rgbtestsrc, smptebars, smptehdbars, testsrc, testsrc2, yuvtestsrc
- 16.13 openclsrc
- 16.14 sierpinski
- 16.15 zoneplate
- 17 視訊接收器
- 18 多媒體濾鏡
- 18.1 a3dscope
- 18.2 abitscope
- 18.3 adrawgraph
- 18.4 agraphmonitor
- 18.5 ahistogram
- 18.6 aphasemeter
- 18.7 avectorscope
- 18.8 bench, abench
- 18.9 concat
- 18.10 ebur128
- 18.11 interleave, ainterleave
- 18.12 latency, alatency
- 18.13 metadata, ametadata
- 18.14 perms, aperms
- 18.15 realtime, arealtime
- 18.16 segment, asegment
- 18.17 select, aselect
- 18.18 sendcmd, asendcmd
- 18.19 setpts, asetpts
- 18.20 setrange
- 18.21 settb, asettb
- 18.22 showcqt
- 18.23 showcwt
- 18.24 showfreqs
- 18.25 showspatial
- 18.26 showspectrum
- 18.27 showspectrumpic
- 18.28 showvolume
- 18.29 showwaves
- 18.30 showwavespic
- 18.31 sidedata, asidedata
- 18.32 spectrumsynth
- 18.33 split, asplit
- 18.34 zmq, azmq
- 19 多媒體來源
- 20 另請參閱
- 21 作者
1 描述
本文檔描述 libavfilter 函式庫提供的濾鏡、來源和接收器。
2 濾鏡簡介
FFmpeg 中的濾鏡功能是透過 libavfilter 函式庫啟用的。
在 libavfilter 中,一個濾鏡可以有多個輸入和多個輸出。為了說明可能的各種情況,我們考慮以下濾鏡圖。
[main] input --> split ---------------------> overlay --> output | ^ |[tmp] [flip]| +-----> crop --> vflip -------+
此濾鏡圖將輸入串流分割成兩個串流,然後將一個串流透過 crop 濾鏡和 vflip 濾鏡,然後透過覆蓋在頂部的方式與另一個串流合併。您可以使用以下命令來實現此目的
ffmpeg -i INPUT -vf "split [main][tmp]; [tmp] crop=iw:ih/2:0:0, vflip [flip]; [main][flip] overlay=0:H/2" OUTPUT
結果將是視訊的上半部鏡像到輸出視訊的下半部。
在同一線性鏈中的濾鏡以逗號分隔,而不同的線性濾鏡鏈則以分號分隔。在我們的範例中,crop,vflip 在一個線性鏈中,split 和 overlay 分別在另一個線性鏈中。線性鏈接合的點以方括號括起來的名稱標記。在範例中,split 濾鏡產生兩個輸出,它們與標籤 [main] 和 [tmp] 相關聯。
傳送到 split 的第二個輸出(標記為 [tmp])的串流會透過 crop 濾鏡處理,該濾鏡會裁剪掉視訊的下半部分,然後垂直翻轉。overlay 濾鏡會輸入 split 濾鏡的第一個未變更的輸出(標記為 [main]),並在其下半部分覆蓋由 crop,vflip 濾鏡鏈產生的輸出。
某些濾鏡會輸入參數列表:它們在濾鏡名稱和等號後指定,並以冒號彼此分隔。
存在所謂的 來源濾鏡,它們沒有音訊/視訊輸入,以及 接收器濾鏡,它們沒有音訊/視訊輸出。
3 graph2dot
FFmpeg tools 目錄中包含的 graph2dot 程式可用於解析濾鏡圖描述,並以 dot 語言發出相應的文字表示形式。
調用命令
graph2dot -h
以查看如何使用 graph2dot。
然後,您可以將 dot 描述傳遞給 dot 程式(來自 graphviz 程式套件),並獲得濾鏡圖的圖形表示形式。
例如,命令序列
echo GRAPH_DESCRIPTION | \ tools/graph2dot -o graph.tmp && \ dot -Tpng graph.tmp -o graph.png && \ display graph.png
可用於建立和顯示表示由 GRAPH_DESCRIPTION 字串描述的圖形的影像。請注意,此字串必須是完整的獨立圖形,其輸入和輸出已明確定義。例如,如果您的命令行格式如下
ffmpeg -i infile -vf scale=640:360 outfile
您的 GRAPH_DESCRIPTION 字串將需要採用以下格式
nullsrc,scale=640:360,nullsink
您可能還需要設定 nullsrc 參數並新增 format 濾鏡,以模擬特定的輸入檔案。
4 濾鏡圖描述
濾鏡圖是連接濾鏡的有向圖。它可以包含循環,並且濾鏡對之間可以有多個連結。每個連結在一側都有一個輸入襯墊,將其連接到一個濾鏡,它從該濾鏡獲取其輸入,而在另一側有一個輸出襯墊,將其連接到一個濾鏡,該濾鏡接受其輸出。
濾鏡圖中的每個濾鏡都是應用程式中註冊的濾鏡類別的實例,該濾鏡類別定義了濾鏡的功能以及輸入和輸出襯墊的數量。
沒有輸入襯墊的濾鏡稱為「來源」,而沒有輸出襯墊的濾鏡稱為「接收器」。
4.1 濾鏡圖語法
濾鏡圖具有文字表示形式,可由 ffmpeg
中的 -filter/-vf/-af 和 -filter_complex 選項以及 ffplay
中的 -vf/-af 選項以及 libavfilter/avfilter.h 中定義的 avfilter_graph_parse_ptr()
函數識別。
濾鏡鏈由一系列連接的濾鏡組成,每個濾鏡都連接到序列中的前一個濾鏡。濾鏡鏈由以「,」分隔的濾鏡描述列表表示。
濾鏡圖由一系列濾鏡鏈組成。一系列濾鏡鏈由以「;」分隔的濾鏡鏈描述列表表示。
濾鏡由以下形式的字串表示:[in_link_1]...[in_link_N]filter_name@id=arguments[out_link_1]...[out_link_M]
filter_name 是描述濾鏡所屬的濾鏡類別的名稱,並且必須是程式中註冊的濾鏡類別之一的名稱,可選擇後跟 "@id"。濾鏡類別的名稱可選擇後跟字串 "=arguments"。
arguments 是一個字串,其中包含用於初始化濾鏡實例的參數。它可能具有以下兩種形式之一
- 以「:」分隔的 key=value 配對列表。
- 以「:」分隔的 value 列表。在這種情況下,金鑰被假定為選項名稱,其順序與它們宣告的順序相同。例如,
fade
濾鏡以此順序宣告三個選項 – type、start_frame 和 nb_frames。然後參數列表 in:0:30 表示值 in 被指派給選項 type,0 指派給 start_frame,30 指派給 nb_frames。 - 以「:」分隔的混合直接 value 和長 key=value 配對列表。直接 value 必須在 key=value 配對之前,並遵循前一點的相同約束順序。以下 key=value 配對可以以任何首選順序設定。
如果選項值本身是項目列表(例如,format
濾鏡採用像素格式列表),則列表中的項目通常以「|」分隔。
可以使用字元「'」(作為起始和結束標記)和字元「\」(用於跳脫引號文字中的字元)來引號引起來參數列表;否則,當遇到下一個特殊字元(屬於集合「[]=;,」)時,參數字串將被視為終止。
在 ffmpeg
CLI 工具中實作的特殊語法允許從檔案載入選項值。這是透過在選項名稱前加上斜線「/」來完成的,然後將提供的値解釋為從中載入實際值的路徑。例如
ffmpeg -i <INPUT> -vf drawtext=/text=/tmp/some_text <OUTPUT>
將從 /tmp/some_text 載入要繪製的文字。希望實作類似功能的 API 使用者應將 avfilter_graph_segment_*()
函數與自訂 IO 程式碼一起使用。
濾鏡的名稱和參數可選擇在前面和後面加上連結標籤列表。前面的標籤 in_link_1 ... in_link_N 與濾鏡輸入襯墊相關聯,後面的標籤 out_link_1 ... out_link_M 與輸出襯墊相關聯。
當在濾鏡圖中找到兩個具有相同名稱的連結標籤時,將在相應的輸入和輸出襯墊之間建立連結。
如果未標記輸出襯墊,則預設情況下,它會連結到濾鏡鏈中下一個濾鏡的第一個未標記輸入襯墊。例如,在濾鏡鏈中
nullsrc, split[L1], [L2]overlay, nullsink
split 濾鏡實例具有兩個輸出襯墊,而 overlay 濾鏡實例具有兩個輸入襯墊。split 的第一個輸出襯墊標記為「L1」,overlay 的第一個輸入襯墊標記為「L2」,並且 split 的第二個輸出襯墊連結到 overlay 的第二個輸入襯墊,它們都是未標記的。
在濾鏡描述中,如果未指定第一個濾鏡的輸入標籤,則假定為「in」;如果未指定最後一個濾鏡的輸出標籤,則假定為「out」。
在完整的濾鏡鏈中,所有未標記的濾鏡輸入和輸出襯墊都必須連接。如果所有濾鏡鏈的所有濾鏡輸入和輸出襯墊都已連接,則濾鏡圖被視為有效。
分隔濾鏡圖規格中符記的前導和尾隨空白字元(空格、Tab 或換行符)會被忽略。這表示可以使用空行和空格來表示濾鏡圖,以提高可讀性。
例如,濾鏡圖
testsrc,split[L1],hflip[L2];[L1][L2] hstack
可以表示為
testsrc, split [L1], hflip [L2]; [L1][L2] hstack
Libavfilter 將在需要格式轉換的地方自動插入 scale 濾鏡。可以透過在濾鏡圖描述前面加上 sws_flags=flags;
來為那些自動插入的縮放器指定 swscale 旗標。
以下是濾鏡圖語法的 BNF 描述
NAME ::= sequence of alphanumeric characters and '_' FILTER_NAME ::= NAME["@"NAME] LINKLABEL ::= "[" NAME "]" LINKLABELS ::= LINKLABEL [LINKLABELS] FILTER_ARGUMENTS ::= sequence of chars (possibly quoted) FILTER ::= [LINKLABELS] FILTER_NAME ["=" FILTER_ARGUMENTS] [LINKLABELS] FILTERCHAIN ::= FILTER [,FILTERCHAIN] FILTERGRAPH ::= [sws_flags=flags;] FILTERCHAIN [;FILTERGRAPH]
4.2 關於濾鏡圖跳脫字元的注意事項
濾鏡圖描述組合需要多個層級的跳脫字元。請參閱 (ffmpeg-utils)ffmpeg-utils(1) 手冊中的「引號和跳脫字元」章節,以取得有關所使用跳脫字元程序的更多資訊。
第一個層級的跳脫字元會影響每個濾鏡選項值的內容,其中可能包含用於分隔值的特殊字元 :
或跳脫字元 \'
之一。
第二個層級的跳脫字元會影響整個濾鏡描述,其中可能包含跳脫字元 \'
或濾鏡圖描述使用的特殊字元 [],;
。
最後,當您在 Shell 命令列上指定濾鏡圖時,您需要為其中包含的 Shell 特殊字元執行第三個層級的跳脫字元。
例如,考慮要嵌入 drawtext 濾鏡描述 text 值中的以下字串
this is a 'string': may contain one, or more, special characters
此字串包含 '
特殊跳脫字元和 :
特殊字元,因此需要以這種方式跳脫字元
text=this is a \'string\'\: may contain one, or more, special characters
當將濾鏡描述嵌入濾鏡圖描述中時,需要第二個層級的跳脫字元,以便跳脫所有濾鏡圖特殊字元。因此,上面的範例變為
drawtext=text=this is a \\\'string\\\'\\: may contain one\, or more\, special characters
(請注意,除了 \'
跳脫特殊字元外,還需要跳脫 ,
)。
最後,當在 Shell 命令中編寫濾鏡圖描述時,需要額外的跳脫字元層級,這取決於所採用 Shell 的跳脫字元規則。例如,假設 \
是特殊的,需要用另一個 \
跳脫字元,則先前的字串最終將導致
-vf "drawtext=text=this is a \\\\\\'string\\\\\\'\\\\: may contain one\\, or more\\, special characters"
為了避免在使用接受濾鏡規格作為輸入的命令行工具時出現繁瑣的跳脫字元,建議避免直接在 Shell 中包含濾鏡或選項規格。
例如,在 drawtext 濾鏡 的情況下,您可能更喜歡使用 textfile 選項而不是 text 來指定要呈現的文字。
5 時間軸編輯
某些濾鏡支援一般 enable 選項。對於支援時間軸編輯的濾鏡,此選項可以設定為在將影格傳送到濾鏡之前評估的表達式。如果評估為非零值,則將啟用濾鏡,否則,影格將保持不變地傳送到濾鏡圖中的下一個濾鏡。
表達式接受以下值
- 「t」
以秒為單位的時間戳記,如果輸入時間戳記未知,則為 NAN
- 「n」
輸入影格的循序編號,從 0 開始
- 「pos」
輸入影格在檔案中的位置,如果未知,則為 NAN;已棄用,請勿使用
- 「w」
- 「h」
輸入影格的寬度和高度(如果為視訊)
此外,這些濾鏡還支援 enable 命令,該命令可用於重新定義表達式。
與任何其他濾鏡選項一樣,enable 選項遵循相同的規則。
例如,若要從 10 秒到 3 分鐘啟用模糊濾鏡 (smartblur),以及從 3 秒開始啟用 curves 濾鏡
smartblur = enable='between(t,10,3*60)', curves = enable='gte(t,3)' : preset=cross_process
請參閱 ffmpeg -filters
以檢視哪些濾鏡具有時間軸支援。
6 在執行時使用指令變更選項
某些選項可以在濾鏡操作期間使用命令進行變更。這些選項在 ffmpeg
-h filter=<濾鏡名稱> 的輸出中標記為「T」。命令的名稱是選項的名稱,參數是新值。
7 具有多個輸入的濾鏡選項 (framesync)
一些具有多個輸入的濾鏡支援一組通用選項。這些選項只能按名稱設定,而不能使用簡短符號。
- eof_action
在輔助輸入上遇到 EOF 時要採取的動作;它接受以下值之一
- repeat
重複最後一個影格(預設值)。
- endall
結束兩個串流。
- pass
傳遞主要輸入。
- shortest
如果設定為 1,則強制輸出在最短的輸入終止時終止。預設值為 0。
- repeatlast
如果設定為 1,則強制濾鏡擴展輔助串流的最後一個影格,直到主要串流結束。值 0 會停用此行為。預設值為 1。
- ts_sync_mode
如何根據輔助輸入時間戳記嚴格同步串流;它接受以下值之一
- default
來自輔助輸入的影格,其時間戳記最接近且小於或等於主要輸入影格。
- nearest
來自輔助輸入的影格,其時間戳記最接近主要輸入影格的絕對時間戳記。
8 音訊濾鏡
當您配置 FFmpeg 組建時,可以使用 --disable-filters
停用任何現有濾鏡。配置輸出將顯示組建中包含的音訊濾鏡。
以下是目前可用的音訊濾鏡的描述。
8.1 aap
使用第二個音訊串流將仿射投影演算法應用於第一個音訊串流。
此自適應濾鏡用於根據多個輸入音訊樣本估計未知的音訊。仿射投影演算法可以在計算複雜度和收斂速度之間進行權衡。
以下是接受選項的描述。
- order
設定濾鏡階數。
- projection
設定投影階數。
- mu
設定濾鏡 mu。
- delta
設定係數以初始化內部共變異數矩陣。
- out_mode
設定濾鏡輸出樣本。它接受以下值
- i
傳遞第一個輸入。
- d
傳遞第二個輸入。
- o
傳遞期望訊號、第二個輸入和誤差訊號估計值之間的差異。
- n
傳遞輸入訊號、第一個輸入和誤差訊號估計值之間的差異。
- e
傳遞誤差訊號估計樣本。
預設值為 o。
- precision
設定處理樣本時要使用的精度。
- auto
根據其他濾鏡自動選擇內部樣本格式。
- float
始終使用單精度浮點精度樣本格式。
- double
始終使用雙精度浮點精度樣本格式。
8.2 acompressor
壓縮器主要用於降低訊號的動態範圍。尤其是現代音樂,大多以高比率壓縮,以提高整體響度。這樣做是為了獲得聽眾的最大關注、「豐滿」聲音並為曲目帶來更多「力量」。如果訊號壓縮過多,則事後可能會聽起來沉悶或「死氣沉沉」,或者可能會開始「抽吸」(這可能是一種強大的效果,但也可能完全破壞曲目)。正確的壓縮是達到專業聲音的關鍵,並且是混音和母帶後期製作的高超藝術。由於其複雜的設定,可能需要很長時間才能對這種效果產生正確的感覺。
壓縮是透過偵測高於選定等級 threshold
的音量並將其除以使用 ratio
設定的因數來完成的。因此,如果您將臨界值設定為 -12dB,並且您的訊號達到 -6dB,則 2:1 的比率將導致訊號為 -9dB。由於精確地操縱訊號會導致波形失真,因此可以在時間內調整衰減。這是透過設定「Attack」和「Release」來完成的。attack
決定訊號必須在臨界值之上上升多長時間才會發生任何衰減,而 release
設定訊號必須在臨界值之下下降多長時間才能再次減少衰減。短於所選攻擊時間的訊號將保持原樣。訊號的整體衰減可以在事後使用 makeup
設定進行補償。因此,將訊號的峰值壓縮約 6dB 並將 makeup 提高到此等級會導致訊號比來源響亮兩倍。為了在壓縮中獲得更柔和的進入,knee
會在所選分貝範圍內的臨界值處展平硬邊緣。
濾鏡接受以下選項
- level_in
設定輸入增益。預設值為 1。範圍介於 0.015625 和 64 之間。
- mode
設定壓縮器操作模式。可以是
upward
或downward
。預設值為downward
。- threshold
如果串流的訊號上升到此等級以上,它將影響增益衰減。預設情況下為 0.125。範圍介於 0.00097563 和 1 之間。
- ratio
設定訊號衰減的比率。1:2 表示如果等級上升到臨界值以上 4dB,則衰減後將僅高於 2dB。預設值為 2。範圍介於 1 和 20 之間。
- attack
訊號必須在臨界值之上上升多少毫秒才能開始增益衰減。預設值為 20。範圍介於 0.01 和 2000 之間。
- release
訊號必須在臨界值之下下降多少毫秒,衰減才會再次減少。預設值為 250。範圍介於 0.01 和 9000 之間。
- makeup
設定訊號在處理後將被放大多少。預設值為 1。範圍介於 1 和 64 之間。
- knee
彎曲臨界值周圍的尖銳轉折點,以更柔和地進入增益衰減。預設值為 2.82843。範圍介於 1 和 8 之間。
- link
選擇輸入串流的所有聲道之間的
average
等級還是輸入串流的較響亮(maximum
) 聲道影響衰減。預設值為average
。- detection
在
peak
的情況下應採用精確訊號,還是在rms
的情況下採用 RMS 訊號。預設值為rms
,這通常更平滑。- mix
在輸出中使用壓縮訊號的程度。預設值為 1。範圍介於 0 和 1 之間。
8.2.1 指令
此濾鏡支援以上所有選項作為 commands。
8.3 acontrast
簡單的音訊動態範圍壓縮/擴展濾鏡。
濾鏡接受以下選項
- contrast
設定對比度。預設值為 33。允許範圍介於 0 和 100 之間。
8.4 acopy
將輸入音訊來源不變地複製到輸出。這主要用於測試目的。
8.5 acrossfade
將淡入淡出效果從一個輸入音訊串流應用到另一個輸入音訊串流。淡入淡出效果在第一個串流的末尾附近應用指定的持續時間。
濾鏡接受以下選項
- nb_samples, ns
指定淡入淡出效果必須持續的樣本數。在淡入淡出效果結束時,第一個輸入音訊將完全靜音。預設值為 44100。
- duration, d
指定淡入淡出效果的持續時間。請參閱 (ffmpeg-utils)ffmpeg-utils(1) 手冊中的「時間持續時間」章節,以取得接受的語法。預設情況下,持續時間由 nb_samples 決定。如果設定了此選項,則會使用此選項而不是 nb_samples。
- overlap, o
第一個串流結束是否應與第二個串流開始重疊。預設為啟用。
- curve1
設定第一個串流的淡入淡出轉換曲線。
- curve2
設定第二個串流的淡入淡出轉換曲線。
如需可用曲線類型的描述,請參閱 afade 濾鏡描述。
8.5.1 範例
- 從一個輸入淡入淡出到另一個輸入
ffmpeg -i first.flac -i second.flac -filter_complex acrossfade=d=10:c1=exp:c2=exp output.flac
- 從一個輸入淡入淡出到另一個輸入,但不重疊
ffmpeg -i first.flac -i second.flac -filter_complex acrossfade=d=10:o=0:c1=exp:c2=exp output.flac
8.6 acrossover
將音訊串流分割成多個頻段。
此濾鏡將音訊串流分割成兩個或多個頻率範圍。將所有串流加總回來將產生平坦的輸出。
濾鏡接受以下選項
- split
設定分割頻率。這些頻率必須為正數且遞增。
- order
為每個頻段分割設定濾鏡階數。這會控制濾鏡滾降或濾鏡傳輸函數的陡峭度。可用值為
- 「2nd」
每八度音程 12 分貝。
- 「4th」
每八度音程 24 分貝。
- 「6th」
每八度音程 36 分貝。
- 「8th」
每八度音程 48 分貝。
- 「10th」
每八度音程 60 分貝。
- 「12th」
每八度音程 72 分貝。
- 「14th」
每八度音程 84 分貝。
- 「16th」
每八度音程 96 分貝。
- 「18th」
每八度音程 108 分貝。
- 「20th」
每八度音程 120 分貝。
預設值為 4th。
- level
設定輸入增益等級。允許範圍為 0 到 1。預設值為 1。
- gains
設定每個頻段的輸出增益。所有頻段的預設值為 1。
- precision
設定處理樣本時要使用的精度。
- auto
根據其他濾鏡自動選擇內部樣本格式。
- float
始終使用單精度浮點精度樣本格式。
- double
始終使用雙精度浮點精度樣本格式。
預設值為
auto
。
8.6.1 範例
- 將輸入音訊串流分割成兩個頻段(低頻和高頻),分割頻率為 1500 Hz,每個頻段將在單獨的串流中
ffmpeg -i in.flac -filter_complex 'acrossover=split=1500[LOW][HIGH]' -map '[LOW]' low.wav -map '[HIGH]' high.wav
- 與上述相同,但具有更高的濾鏡階數
ffmpeg -i in.flac -filter_complex 'acrossover=split=1500:order=8th[LOW][HIGH]' -map '[LOW]' low.wav -map '[HIGH]' high.wav
- 與上述相同,但也具有額外的中頻頻段(頻率介於 1500 和 8000 之間)
ffmpeg -i in.flac -filter_complex 'acrossover=split=1500 8000:order=8th[LOW][MID][HIGH]' -map '[LOW]' low.wav -map '[MID]' mid.wav -map '[HIGH]' high.wav
8.7 acrusher
降低音訊位元解析度。
此濾鏡是具有增強功能的位元粉碎器。位元粉碎器用於以聽覺方式減少音訊訊號採樣的位元數。這根本不會改變位元深度,它只是產生效果。位元深度降低的素材聽起來更刺耳和「數位化」。此濾鏡甚至能夠捨入到連續值而不是離散位元深度。此外,它還具有 D/C 偏移,這會導致訊號的下半部分和上半部分以不同的方式粉碎。抗鋸齒設定能夠產生「更柔和」的粉碎聲音。
此濾鏡的另一個功能是對數模式。此設定從位元之間的線性距離切換到對數距離。結果是一個更「自然」的粉碎器,例如,它不會閘控低訊號。人耳具有對數感知,因此這種粉碎方式更令人愉悅。對數粉碎也能夠抗鋸齒。
濾鏡接受以下選項
- level_in
設定輸入等級。
- level_out
設定輸出等級。
- bits
設定位元衰減。
- mix
mix
- mode
設定混合量。
- mode
可以是線性:
lin
或對數:log
。- dc
設定 DC。
- aa
設定抗鋸齒。
- samples
設定樣本衰減。
- lfo
啟用 LFO。預設為停用。
- lforange
設定 LFO 範圍。
8.7.1 指令
此濾鏡支援以上所有選項作為 commands。
8.8 acue
lforate
8.9 adeclick
設定 LFO 速率。
延遲音訊濾鏡處理,直到給定的掛鐘時間戳記。請參閱 cue 濾鏡。
- 從輸入音訊中移除脈衝雜訊。
偵測為脈衝雜訊的樣本將被使用自迴歸建模的內插樣本取代。
- overlap, o
window, w
- 設定視窗大小,以毫秒為單位。允許範圍為從
10
到100
。預設值為55
毫秒。這會設定將一次處理的視窗大小。 overlap, v
- 設定視窗重疊,以視窗大小的百分比表示。允許範圍為從
50
到95
。預設值為75
%。將此設定為非常高的值會增加脈衝雜訊移除,但會使整個過程慢得多。 arorder, a
- 設定自迴歸階數,以視窗大小的百分比表示。允許範圍為從
0
到25
。預設值為2
%。此選項還使用相鄰的良好樣本來控制內插樣本的品質。 threshold, t
- 設定臨界值。允許範圍為從
1
到100
。預設值為2
。這會控制將要移除的脈衝雜訊的強度。值越低,偵測為脈衝雜訊的樣本就越多。 burst, b
設定叢發融合,以視窗大小的百分比表示。允許範圍為
0
到10
。預設值為2
。如果偵測為雜訊的任何兩個樣本之間的間隔小於此值,則這兩個樣本之間的任何樣本也將被偵測為雜訊。- method, m
設定重疊方法。
- 它接受以下值
add, a
選取重疊相加方法。即使是未內插的樣本,使用此方法也會略有改變。
8.10 adeclip
save, s
選取重疊儲存方法。未內插的樣本保持不變。
- 從輸入音訊中移除脈衝雜訊。
偵測為脈衝雜訊的樣本將被使用自迴歸建模的內插樣本取代。
- overlap, o
預設值為
a
。- 設定視窗大小,以毫秒為單位。允許範圍為從
10
到100
。預設值為55
毫秒。這會設定將一次處理的視窗大小。 從輸入音訊中移除削波樣本。
- 設定視窗重疊,以視窗大小的百分比表示。允許範圍為從
50
到95
。預設值為75
%。將此設定為非常高的值會增加脈衝雜訊移除,但會使整個過程慢得多。 偵測為削波的樣本將被使用自迴歸建模的內插樣本取代。
- overlap, v
設定視窗重疊,以視窗大小的百分比表示。允許範圍為從
50
到95
。預設值為75
%。- 設定臨界值。允許範圍為從
1
到100
。預設值為2
。這會控制將要移除的脈衝雜訊的強度。值越低,偵測為脈衝雜訊的樣本就越多。 burst, b
設定叢發融合,以視窗大小的百分比表示。允許範圍為
0
到10
。預設值為2
。如果偵測為雜訊的任何兩個樣本之間的間隔小於此值,則這兩個樣本之間的任何樣本也將被偵測為雜訊。- method, m
設定重疊方法。
- 它接受以下值
add, a
選取重疊相加方法。即使是未內插的樣本,使用此方法也會略有改變。
8.11 adecorrelate
arorder, a
濾鏡接受以下選項
- 設定自迴歸階數,以視窗大小的百分比表示。允許範圍為從
0
到25
。預設值為8
%。此選項還使用相鄰的良好樣本來控制內插樣本的品質。 threshold, t
- 設定臨界值。允許範圍為從
1
到100
。預設值為10
。值越高,削波偵測的侵略性就越低。 hsize, n
8.12 adelay
設定用於偵測削波的直方圖大小。允許範圍為從 100
到 9999
。預設值為 1000
。值越高,削波偵測的侵略性就越低。
將去相關性應用於輸入音訊串流。
stages
- 設定濾鏡處理的去相關性階段。允許範圍為從 1 到 16。預設值為 6。
seed
- 設定用於設定跨聲道樣本延遲的隨機種子。
延遲一個或多個音訊聲道。
8.12.1 範例
- 延遲聲道中的樣本會以靜音填充。
adelay=1500|0|500
- 濾鏡接受以下選項
adelay=0|500S|700S
- delays
adelay=delays=64S:all=1
8.13 adenorm
設定每個聲道的延遲列表,以「|」分隔,單位為毫秒。未使用的延遲將被靜默忽略。如果給定的延遲數小於聲道數,則所有剩餘的聲道將不會被延遲。如果您想要延遲精確的樣本數,請在數字後附加「S」。如果您想要改為以秒為單位延遲,請在數字後附加「s」。
all
將最後設定的延遲用於所有剩餘聲道。預設為停用。如果啟用此選項,則會變更選項 delays
的解讀方式。
- level
將第一個聲道延遲 1.5 秒,將第三個聲道延遲 0.5 秒,並保持第二個聲道(和可能存在的任何其他聲道)不變。
- 將第二個聲道延遲 500 個樣本,將第三個聲道延遲 700 個樣本,並保持第一個聲道(和可能存在的任何其他聲道)不變。
將所有聲道延遲相同的樣本數
- mode
透過新增極低等級的雜訊來補救音訊中的次常態數。
- 此濾鏡應放置在任何可能產生次常態數的濾鏡之前。
以下是接受參數的描述。
- level
以 dB 為單位設定新增雜訊的等級。預設值為
-351
。允許範圍為從 -451 到 -90。- type
設定新增雜訊的類型。
dc
8.13.1 指令
此濾鏡支援以上所有選項作為 commands。
8.14 aderivative, aintegral
新增 DC 訊號。
ac
8.15 adrc
新增 AC 訊號。
以下是接受選項的描述。
- square
新增方波訊號。
pulse
- 新增脈衝訊號。
預設值為
dc
。- 計算音訊串流的導數/積分。
依序套用兩個濾鏡會產生原始音訊。
- 將頻譜動態範圍控制器濾鏡套用於輸入音訊串流。
transfer
- 設定傳輸表達式。
表達式可以包含以下常數
- ch
目前聲道號碼
- sn
目前樣本號碼
- nb_channels
聲道數
t
- attack
以秒為單位表示的時間戳記
- release
sr
- 取樣率
p
8.15.1 指令
此濾鏡支援以上所有選項作為 commands。
8.15.2 範例
- 目前頻率功率值(以 dB 為單位)
adrc=transfer='if(gt(p,-50),-50+(p-(-50))/6,p)':attack=50:release=100
- f
adrc=transfer='if(gt(p,-50),-50+(p-(-50))/2,p)':attack=50:release=100:channels=FC
- 目前頻率(以 Hz 為單位)
adrc=transfer='if(lte(p,-85),p-800,p)':attack=1:release=5
- 預設值為
p
。adrc=transfer='if(lt(p,-10),-10+(p-(-10))*2,p)':attack=50:release=100
- attack
adrc=transfer='min(p,-60)':attack=2:release=10
8.16 adynamicequalizer
以毫秒為單位設定攻擊時間。預設值為 50
毫秒。允許範圍為從 1 到 1000 毫秒。
以下是接受選項的描述。
- threshold
release
- 以毫秒為單位設定釋放時間。預設值為
100
毫秒。允許範圍為從 5 到 2000 毫秒。 channels
- 設定要濾鏡處理的聲道,預設情況下會濾鏡處理音訊串流中的
all
聲道。 將頻譜壓縮套用於所有頻率,臨界值為 -50 dB,比率為 1:6
- 與上述類似,但比率為 1:2,且僅濾鏡處理前置中央聲道
將頻譜雜訊閘套用於所有頻率,臨界值為 -85 dB,且具有短攻擊時間和短釋放時間
- 將頻譜擴展套用於所有頻率,臨界值為 -10 dB,比率為 1:2
將限制器套用於最大 -60 dB 的所有頻率,攻擊時間為 2 毫秒,釋放時間為 10 毫秒
- attack
將動態等化套用於輸入音訊串流。
- release
threshold
- ratio
設定用於觸發等化的偵測臨界值。臨界值偵測使用偵測濾鏡。預設值為 0。允許範圍為從 0 到 100。
- makeup
dfrequency
- 設定用於偵測濾鏡的偵測頻率(以 Hz 為單位),該偵測濾鏡用於觸發等化。預設值為 1000 Hz。允許範圍介於 2 和 1000000 Hz 之間。
dqfactor
- mode
設定用於偵測濾鏡的偵測共振因數,該偵測濾鏡用於觸發等化。預設值為 1。允許範圍為從 0.001 到 1000。
- tfrequency
設定等化濾鏡的目標頻率。預設值為 1000 Hz。允許範圍介於 2 和 1000000 Hz 之間。
- tqfactor
設定目標等化濾鏡的目標共振因數。預設值為 1。允許範圍為從 0.001 到 1000。
- attack
設定來自偵測的訊號必須在偵測臨界值之上上升多少毫秒,等化才會開始。預設值為 20。允許範圍介於 1 和 2000 之間。
- release
設定來自偵測的訊號必須在偵測臨界值之下下降多少毫秒,等化才會結束。預設值為 200。允許範圍介於 1 和 2000 之間。
- ratio
設定等化增益提升的比率。預設值為 1。允許範圍介於 0 和 30 之間。
makeup
- 設定等化增益提升的補償偏移。預設值為 0。允許範圍介於 0 和 100 之間。
range
- 設定允許的最大削減/提升量。預設值為 50。允許範圍為從 1 到 200。
- mode
- 設定濾鏡操作模式,可以是以下之一
- 「listen」
僅輸出隔離的偵測訊號。
- 「cutbelow」
削減低於偵測臨界值的頻率。
- 「cutabove」
- 削減高於偵測臨界值的頻率。
- 「boostbelow」
提升低於偵測臨界值的頻率。
- auto
「boostabove」
提升高於偵測臨界值的頻率。
- 預設模式為「cutbelow」。
dftype
- 設定偵測濾鏡的類型,可以是以下之一
「bandpass」
- 「lowpass」
「highpass」
- 「peak」
預設類型為「bandpass」。
- precision
設定處理樣本時要使用的精度。
- auto
根據其他濾鏡自動選擇內部樣本格式。
- float
始終使用單精度浮點精度樣本格式。
- double
始終使用雙精度浮點精度樣本格式。
8.16.1 指令
此濾鏡支援以上所有選項作為 commands。
8.17 adynamicsmooth
tftype
以下是接受選項的描述。
- 設定目標濾鏡的類型,可以是以下之一
「bell」
- 「lowshelf」
「highshelf」
8.17.1 指令
此濾鏡支援以上所有選項作為 commands。
8.18 aecho
預設類型為「bell」。
gather
將最後設定的延遲用於所有剩餘聲道。預設為停用。如果啟用此選項,則會變更選項 delays
的解讀方式。
- 自動從偵測濾鏡收集臨界值。預設為「disabled」。此選項可用於偵測輸入音訊串流特定時間範圍內的臨界值,在這種情況下,選項值會在執行時變更。
可用值為
- 「disabled」
停用使用自動收集的臨界值。
- 設定濾鏡處理的去相關性階段。允許範圍為從 1 到 16。預設值為 6。
「off」
- 停止選取臨界值。
「on」
8.18.1 範例
- 開始選取臨界值。
aecho=0.8:0.88:60:0.4
- 「adaptive」
aecho=0.8:0.88:6:0.4
- 透過計算滑動視窗熵自適應地選取臨界值。
aecho=0.8:0.9:1000:0.3
- 將動態平滑化套用於輸入音訊串流。
aecho=0.8:0.9:1000|1800:0.3|0.25
8.19 aemphasis
sensitivity
濾鏡接受以下選項
- level_in
設定對頻率波動的靈敏度量。預設值為 2。允許範圍為從 0 到 1e+06。
- level_out
basefreq
- mode
設定平滑化的基準頻率。預設值為 22050。允許範圍為從 2 到 1e+06。
- 將第二個聲道延遲 500 個樣本,將第三個聲道延遲 700 個樣本,並保持第一個聲道(和可能存在的任何其他聲道)不變。
將回音套用於輸入音訊。
- 回音是反射的聲音,自然會發生在山脈(有時是大型建築物)之間,當說話或喊叫時;數位回音效果模擬了此行為,並且經常被用於幫助填補單一樂器或人聲的聲音。原始訊號與反射訊號之間的時間差是
delay
,反射訊號的響度是decay
。多個回音可以具有不同的延遲和衰減。 in_gain
- 設定反射訊號的輸入增益。預設值為
0.6
。 out_gain
- 設定反射訊號的輸出增益。預設值為
0.3
。 delays
- 設定原始訊號和反射之間的時間間隔列表,以「|」分隔,單位為毫秒。每個
delay
的允許範圍為(0 - 90000.0]
。預設值為1000
。 decays
- 設定反射訊號的響度列表,以「|」分隔。每個
decay
的允許範圍為(0 - 1.0]
。預設值為0.5
。 使其聽起來像是實際演奏的樂器數量是兩倍
- 如果延遲非常短,則聽起來像是機器人(金屬感)在演奏音樂
更長的延遲聽起來像是山區的露天音樂會
- 與上述相同,但多了一座山
音訊加重濾鏡會建立或還原直接取自 LP 或具有不同濾鏡曲線的加重 CD 的素材。例如,為了將音樂儲存在黑膠唱片上,必須先使用濾鏡改變訊號,以消除此錄音媒體的缺點。一旦播放素材,就必須套用反向濾鏡以還原頻率響應的失真。
- in_gain
設定輸入增益。
- out_gain
設定輸出增益。
- 回音是反射的聲音,自然會發生在山脈(有時是大型建築物)之間,當說話或喊叫時;數位回音效果模擬了此行為,並且經常被用於幫助填補單一樂器或人聲的聲音。原始訊號與反射訊號之間的時間差是
8.19.1 指令
此濾鏡支援以上所有選項作為 commands。
8.20 aeval
mode
此濾波器接受一個或多個表達式(每個聲道一個),這些表達式會被評估並用於修改對應的音訊訊號。
它接受以下參數
- exprs
為每個獨立聲道設定以 ’|’ 分隔的表達式列表。如果輸入聲道數量大於表達式數量,則最後指定的表達式將用於剩餘的輸出聲道。
- channel_layout, c
設定輸出聲道佈局。如果未指定,聲道佈局將由表達式的數量指定。如果設定為 ‘same’,預設將使用相同的輸入聲道佈局。
exprs 中的每個表達式都可以包含以下常數和函數
- 新增脈衝訊號。
目前表達式的聲道號碼
- n
已評估樣本的編號,從 0 開始
- s
目前聲道號碼
- 設定傳輸表達式。
以秒為單位的已評估樣本時間
- nb_in_channels
- nb_out_channels
輸入和輸出聲道數量
- val(CH)
聲道號碼為 CH 的輸入聲道值
注意:此濾波器速度較慢。為了更快的處理速度,您應該使用專用濾波器。
8.20.1 範例
- 音量減半
aeval=val(ch)/2:c=same
- 反轉第二聲道的相位
aeval=val(0)|-val(1)
8.21 aexciter
激勵器用於產生原始訊號中不存在的高頻聲音。這是通過創建訊號的諧波失真來完成的,這些諧波失真範圍受限並添加到原始訊號中。激勵器提升音訊訊號的上限,而不是像等化器那樣簡單地提升高頻,以創造更「清脆」或「明亮」的聲音。
濾鏡接受以下選項
- level_in
設定訊號處理前的輸入音量。允許範圍為 0 到 64。預設值為 1。
- level_out
設定訊號處理後的輸出音量。允許範圍為 0 到 64。預設值為 1。
- amount
設定添加到原始訊號的諧波量。允許範圍為 0 到 64。預設值為 1。
- drive
設定新創建諧波的量。允許範圍為 0.1 到 10。預設值為 8.5。
- blend
設定新創建諧波的八度音程。允許範圍為 -10 到 10。預設值為 0。
- freq
設定產生諧波的最低頻率限制,單位為 Hz。允許範圍為 2000 到 12000 Hz。預設值為 7500 Hz。
- ceil
設定產生諧波的最高頻率限制。允許範圍為 9999 到 20000 Hz。如果值低於 10000 Hz,則不應用限制。
- listen
靜音原始訊號,僅輸出添加的諧波。預設為停用。
8.21.1 指令
此濾鏡支援以上所有選項作為 commands。
8.22 afade
對輸入音訊應用淡入/淡出效果。
將最後設定的延遲用於所有剩餘聲道。預設為停用。如果啟用此選項,則會變更選項 delays
的解讀方式。
- type, t
指定效果類型,可以是
in
表示淡入,或out
表示淡出效果。預設值為in
。- start_sample, ss
指定開始應用淡化效果的起始樣本編號。預設值為 0。
- nb_samples, ns
指定淡化效果持續的樣本數量。在淡入效果結束時,輸出音訊的音量將與輸入音訊相同;在淡出效果結束時,輸出音訊將為靜音。預設值為 44100。
- start_time, st
指定淡化效果的開始時間。預設值為 0。該值必須指定為時間長度;請參閱 (ffmpeg-utils)ffmpeg-utils(1) 手冊中的時間長度章節 以了解接受的語法。如果設定此選項,則會使用此選項而不是 start_sample。
- duration, d
指定淡化效果的持續時間。請參閱 (ffmpeg-utils)ffmpeg-utils(1) 手冊中的時間長度章節 以了解接受的語法。在淡入效果結束時,輸出音訊的音量將與輸入音訊相同;在淡出效果結束時,輸出音訊將為靜音。預設情況下,持續時間由 nb_samples 決定。如果設定此選項,則會使用此選項而不是 nb_samples。
- curve
設定淡化轉換的曲線。
設定叢發融合,以視窗大小的百分比表示。允許範圍為
0
到10
。預設值為2
。如果偵測為雜訊的任何兩個樣本之間的間隔小於此值,則這兩個樣本之間的任何樣本也將被偵測為雜訊。- tri
選擇三角形、線性斜率(預設)
- qsin
選擇四分之一正弦波
- hsin
選擇半個正弦波
- esin
選擇指數正弦波
- log
選擇對數
- ipar
選擇倒拋物線
- qua
選擇二次方
- cub
選擇立方
- squ
選擇平方根
- cbr
選擇立方根
- par
選擇拋物線
- exp
選擇指數
- iqsin
選擇倒四分之一正弦波
- ihsin
選擇倒半個正弦波
- dese
選擇雙指數座椅
- desi
選擇雙指數 S 型曲線
- losi
選擇邏輯 S 型曲線
- sinc
選擇正弦基數函數
- isinc
選擇倒正弦基數函數
- quat
選擇四次方
- quatr
選擇四次方根
- qsin2
選擇平方四分之一正弦波
- hsin2
選擇平方半個正弦波
- nofade
不應用淡化
- silence
設定淡入的初始增益或淡出的最終增益。預設值為
0.0
。- unity
設定淡出的初始增益或淡入的最終增益。預設值為
1.0
。
8.22.1 指令
此濾鏡支援以上所有選項作為 commands。
8.22.2 範例
- 音訊前 15 秒淡入
afade=t=in:ss=0:d=15
- 在 900 秒音訊的最後 25 秒淡出
afade=t=out:st=875:d=25
8.23 afftdn
使用 FFT 對音訊樣本進行降噪。
將最後設定的延遲用於所有剩餘聲道。預設為停用。如果啟用此選項,則會變更選項 delays
的解讀方式。
- noise_reduction, nr
設定降噪量,單位為 dB,允許範圍為 0.01 到 97。預設值為 12 dB。
- noise_floor, nf
設定底噪,單位為 dB,允許範圍為 -80 到 -20。預設值為 -50 dB。
- noise_type, nt
設定雜訊類型。
設定叢發融合,以視窗大小的百分比表示。允許範圍為
0
到10
。預設值為2
。如果偵測為雜訊的任何兩個樣本之間的間隔小於此值,則這兩個樣本之間的任何樣本也將被偵測為雜訊。- white, w
選擇白雜訊。
- vinyl, v
選擇黑膠唱片雜訊。
- shellac, s
選擇蟲膠唱片雜訊。
- custom, c
選擇自訂雜訊,在
bn
選項中定義。預設值為白雜訊。
- band_noise, bn
為 15 個頻段中的每一個設定自訂頻段雜訊輪廓。頻段以 ’ ’ 或 ’|’ 分隔。
- residual_floor, rf
設定殘餘底噪,單位為 dB,允許範圍為 -80 到 -20。預設值為 -38 dB。
- track_noise, tn
啟用底噪追蹤。預設為停用。啟用後,底噪會自動調整。
- track_residual, tr
啟用殘餘追蹤。預設為停用。
- output_mode, om
設定輸出模式。
設定叢發融合,以視窗大小的百分比表示。允許範圍為
0
到10
。預設值為2
。如果偵測為雜訊的任何兩個樣本之間的間隔小於此值,則這兩個樣本之間的任何樣本也將被偵測為雜訊。- input, i
傳遞未更改的輸入。
- output, o
傳遞濾除的雜訊。
- noise, n
僅傳遞雜訊。
預設值為 output。
- adaptivity, ad
設定適應性因子,用於控制每個頻率箱中增益調整的適應速度。值 0 啟用即時適應,而較高的值反應速度較慢。允許範圍為 0 到 1。預設值為 0.5。
- floor_offset, fo
設定底噪偏移因子。此選項用於調整應用於測量底噪的偏移量。僅在啟用底噪追蹤時有效。允許範圍為 -2.0 到 2.0。預設值為 1.0。
- noise_link, nl
設定用於多聲道音訊的雜訊連結。
設定叢發融合,以視窗大小的百分比表示。允許範圍為
0
到10
。預設值為2
。如果偵測為雜訊的任何兩個樣本之間的間隔小於此值,則這兩個樣本之間的任何樣本也將被偵測為雜訊。- none
使用未更改聲道的底噪。
- min
使用所有聲道測量的最小底噪。
- max
使用所有聲道測量的最大底噪。
- average
使用所有聲道測量的平均底噪。
預設值為 min。
- band_multiplier, bm
設定頻段乘數因子,用於控制頻段在頻率箱中擴散的程度。允許範圍為 0.2 到 5。預設值為 1.25。
- sample_noise, sn
切換從輸入音訊捕獲和測量雜訊輪廓。
設定叢發融合,以視窗大小的百分比表示。允許範圍為
0
到10
。預設值為2
。如果偵測為雜訊的任何兩個樣本之間的間隔小於此值,則這兩個樣本之間的任何樣本也將被偵測為雜訊。- start, begin
開始樣本雜訊捕獲。
- stop, end
停止樣本雜訊捕獲並測量新的雜訊頻段輪廓。
預設值為
none
。
- gain_smooth, gs
設定增益平滑空間半徑,用於平滑應用於每個頻率箱的增益。有助於減少隨機音樂雜訊偽影。值越高,增益平滑度越高。允許範圍為
0
到50
。預設值為0
。
8.23.1 指令
此濾波器支援一些上述選項作為 指令。
8.23.2 範例
- 將白雜訊降低 10dB,並使用先前測量的 -40dB 底噪
afftdn=nr=10:nf=-40
- 將白雜訊降低 10dB,同時將初始底噪設定為 -80dB,並啟用底噪自動追蹤,以便底噪在處理過程中逐漸變化
afftdn=nr=10:nf=-80:tn=1
- 將雜訊降低 20dB,使用 -40dB 的底噪,並使用指令擷取輸入音訊前 0.4 秒的雜訊輪廓
asendcmd=0.0 afftdn sn start,asendcmd=0.4 afftdn sn stop,afftdn=nr=20:nf=-40
8.24 afftfilt
對頻域中的樣本應用任意表達式。
- real
為每個獨立聲道設定以 ’|’ 分隔的頻域實數表達式。預設值為 "re"。如果輸入聲道數量大於表達式數量,則最後指定的表達式將用於剩餘的輸出聲道。
- imag
為每個獨立聲道設定以 ’|’ 分隔的頻域虛數表達式。預設值為 "im"。
real 和 imag 中的每個表達式都可以包含以下常數和函數
- ch
目前聲道號碼
- b
目前的頻率箱編號
- nb
可用箱的數量
- 新增脈衝訊號。
目前表達式的聲道號碼
- chs
transfer
- pts
目前幀 PTS
- re
目前聲道頻率箱的實部
- im
目前聲道頻率箱的虛部
- real(b, ch)
傳回位置 (bin,channel) 處頻率箱實部的值
- imag(b, ch)
傳回位置 (bin,channel) 處頻率箱虛部的值
- win_size
設定視窗大小。允許範圍為 16 到 131072。預設值為
4096
- win_func
設定視窗函數。
設定叢發融合,以視窗大小的百分比表示。允許範圍為
0
到10
。預設值為2
。如果偵測為雜訊的任何兩個樣本之間的間隔小於此值,則這兩個樣本之間的任何樣本也將被偵測為雜訊。- ‘rect’
- ‘bartlett’
- ‘hann, hanning’
- ‘hamming’
- ‘blackman’
- ‘welch’
- ‘flattop’
- ‘bharris’
- ‘bnuttall’
- ‘bhann’
- ‘sine’
- ‘nuttall’
- ‘lanczos’
- ‘gauss’
- ‘tukey’
- ‘dolph’
- ‘cauchy’
- ‘parzen’
- ‘poisson’
- ‘bohman’
- ‘kaiser’
預設值為
hann
。- overlap
設定視窗重疊。如果設定為 1,將選取所選視窗函數的建議重疊。預設值為
0.75
。
8.24.1 範例
- 幾乎只留下音訊中的低頻
afftfilt="'real=re * (1-clip((b/nb)*b,0,1))':imag='im * (1-clip((b/nb)*b,0,1))'"
- 應用機器人效果
afftfilt="real='hypot(re,im)*sin(0)':imag='hypot(re,im)*cos(0)':win_size=512:overlap=0.75"
- 應用耳語效果
afftfilt="real='hypot(re,im)*cos((random(0)*2-1)*2*3.14)':imag='hypot(re,im)*sin((random(1)*2-1)*2*3.14)':win_size=128:overlap=0.8"
- 應用相位偏移
afftfilt="real=re*cos(1)-im*sin(1):imag=re*sin(1)+im*cos(1)"
8.25 afir
應用任意有限脈衝響應濾波器。
此濾波器專為應用長 FIR 濾波器而設計,最長可達 60 秒。
它可用作數位分頻濾波器、房間等化、串音消除、波場合成、聽覺化、環境聲學和空間化的組件。
此濾波器使用第一個串流以外的串流作為 FIR 係數。如果非第一個串流包含單聲道,它將用於第一個串流中的所有輸入聲道,否則非第一個串流中的聲道數量必須與第一個串流中的聲道數量相同。
它接受以下參數
- dry
設定乾聲增益。這會設定輸入增益。
- wet
設定濕聲增益。這會設定最終輸出增益。
- length
設定脈衝響應濾波器長度。預設值為 1,表示處理整個 IR。
- gtype
此選項已棄用,且無作用。
- irnorm
設定在濾波前應用於 IR 係數的範數。允許範圍為 -1 到 2。IR 係數會使用此選項設定的計算向量範數進行正規化。對於負值,不會計算範數,且 IR 係數完全不會被修改。預設值為 1。
- irlink
對於多聲道 IR,如果此選項設定為 true,則所有 IR 聲道將使用所有 IR 聲道係數的最大測量增益進行正規化,如
irnorm
選項所設定。停用時,每個 IR 聲道中的所有 IR 係數將獨立正規化。預設值為 true。- irgain
設定在濾波前應用於 IR 係數的增益。允許範圍為 0 到 1。此增益在應用任何使用 irnorm 選項應用的增益之後應用。
- irfmt
設定 IR 串流的格式。可以是
mono
或input
。預設值為input
。- maxir
設定允許的最大脈衝響應濾波器持續時間,單位為秒。預設值為 30 秒。允許範圍為 0.1 到 60 秒。
- response
此選項已棄用,且無作用。
- channel
此選項已棄用,且無作用。
- size
此選項已棄用,且無作用。
- rate
此選項已棄用,且無作用。
- minp
設定用於卷積的最小分割區大小。預設值為 8192。允許範圍為 1 到 65536。較低的值會降低延遲,但會增加 CPU 使用率。
- maxp
設定用於卷積的最大分割區大小。預設值為 8192。允許範圍為 8 到 65536。較低的值可能會增加 CPU 使用率。
- nbirs
設定在執行階段可切換的輸入脈衝響應串流數量。允許範圍為 1 到 32。預設值為 1。
- ir
設定將用於卷積的 IR 串流,從 0 開始,應始終低於
nbirs
選項提供的數值。預設值為 0。此選項可以在執行階段通過 指令 更改。- precision
設定處理樣本時要使用的精度。
- auto
根據其他濾鏡自動選擇內部樣本格式。
- float
始終使用單精度浮點精度樣本格式。
- double
始終使用雙精度浮點精度樣本格式。
預設值為 auto。
- irload
設定何時載入 IR 串流。可以是
init
或access
。第一個在初始化時載入並準備所有 IR,第二個在首次存取特定 IR 時載入並準備。預設值為init
。
8.25.1 範例
- 使用單聲道 IR 檔案作為第二個輸入,將殘響應用於串流,使用 ffmpeg 完成指令
ffmpeg -i input.wav -i middle_tunnel_1way_mono.wav -lavfi afir output.wav
- 對於給定的輸入立體聲串流,以及左右聲道的兩個立體聲脈衝響應,應用真正的立體聲處理,脈衝響應檔案是名為 l_ir.wav 和 r_ir.wav 的檔案,並設定 irnorm 選項值
"pan=4C|c0=FL|c1=FL|c2=FR|c3=FR[a];amovie=l_ir.wav[LIR];amovie=r_ir.wav[RIR];[LIR][RIR]amerge[ir];[a][ir]afir=irfmt=input:irnorm=1.2,pan=stereo|FL<c0+c2|FR<c1+c3"
- 與上述範例類似,但明確設定
irgain
為估計值,並停用irnorm
"pan=4C|c0=FL|c1=FL|c2=FR|c3=FR[a];amovie=l_ir.wav[LIR];amovie=r_ir.wav[RIR];[LIR][RIR]amerge[ir];[a][ir]afir=irfmt=input:irgain=-5dB:irnom=-1,pan=stereo|FL<c0+c2|FR<c1+c3"
8.26 aformat
為輸入音訊設定輸出格式約束。框架將協商最合適的格式以最大程度地減少轉換。
它接受以下參數
- sample_fmts, f
以 ’|’ 分隔的請求樣本格式列表。
- sample_rates, r
以 ’|’ 分隔的請求取樣率列表。
- channel_layouts, cl
以 ’|’ 分隔的請求聲道佈局列表。
請參閱 (ffmpeg-utils)ffmpeg-utils(1) 手冊中的聲道佈局章節 以了解所需的語法。
如果省略參數,則允許所有值。
強制輸出為無符號 8 位元或有符號 16 位元立體聲
aformat=sample_fmts=u8|s16:channel_layouts=stereo
8.27 afreqshift
對輸入音訊樣本應用頻率偏移。
濾鏡接受以下選項
- shift
指定頻率偏移。允許範圍為 -INT_MAX 到 INT_MAX。預設值為 0.0。
- level
設定應用於最終輸出的輸出增益。允許範圍為 0.0 到 1.0。預設值為 1.0。
- order
設定用於濾波的濾波器階數。允許範圍為 1 到 16。預設值為 8。
8.27.1 指令
此濾鏡支援以上所有選項作為 commands。
8.28 afwtdn
使用小波減少輸入樣本中的寬頻雜訊。
以下是接受選項的描述。
- sigma
設定雜訊西格瑪值,允許範圍為 0 到 1。預設值為 0。此選項控制應用於輸入樣本的降噪強度。設定此選項最有效的方法是通過分貝,例如 -45dB。
- levels
設定小波分解的層級數。允許範圍為 1 到 12。預設值為 10。設定過低會使降噪效能非常差。
- wavet
設定輸入幀分解的小波類型。它們按係數數量排序,從最低到最高。係數越多,濾波速度越慢,但整體品質越好。可用的 wavelet 為
- ‘sym2’
- ‘sym4’
- ‘rbior68’
- ‘deb10’
- ‘sym10’
- ‘coif5’
- ‘bl3’
- percent
設定完全降噪的百分比。允許範圍為 0 到 100%。預設值為 85%,即部分降噪。
- profile
如果啟用,則第一個輸入幀將用作雜訊輪廓。如果第一個幀樣本包含非雜訊,效能將非常差。
- adaptive
如果啟用,則會分析輸入幀是否存在雜訊。如果偵測到高機率雜訊,則輸入幀輪廓將用於處理後續幀,直到偵測到新的雜訊幀。
- aa
設定單個幀的大小,以樣本數量為單位。允許範圍為 512 到 65536。預設幀大小為 8192 個樣本。
- softness
設定在閾值函數內部應用的柔度。允許範圍為 0 到 10。預設柔度為 1。
8.28.1 指令
此濾鏡支援以上所有選項作為 commands。
8.29 agate
閘門主要用於減少訊號的較低部分。這種訊號處理減少了有用訊號之間的干擾雜訊。
閘控是通過偵測低於選定水平 threshold 的音量,並將其除以 ratio 設定的因子來完成的。底噪的下限通過 range 設定。由於對訊號的精確操作會導致波形失真,因此可以在一段時間內調整減少量。這是通過設定 attack 和 release 來完成的。
attack 決定訊號必須低於閾值多久才會發生任何減少,而 release 設定訊號必須高於閾值多久才能再次減少減少量。短於選定啟動時間的訊號將保持不變。
- level_in
設定濾波前的輸入音量。預設值為 1。允許範圍為 0.015625 到 64。
- mode
設定操作模式。可以是
upward
或downward
。預設值為downward
。如果設定為upward
模式,則訊號的較高部分將被放大,向上擴展動態範圍。否則,在downward
模式下,訊號的較低部分將被減少。- 設定用於偵測濾鏡的偵測頻率(以 Hz 為單位),該偵測濾鏡用於觸發等化。預設值為 1000 Hz。允許範圍介於 2 和 1000000 Hz 之間。
設定訊號低於閾值時的增益減少量。預設值為 0.06125。允許範圍為 0 到 1。將其設定為 0 會停用減少,然後濾波器的行為類似於擴展器。
- threshold
如果訊號上升到此水平以上,則會釋放增益減少。預設值為 0.125。允許範圍為 0 到 1。
- ratio
設定訊號減少的比率。預設值為 2。允許範圍為 1 到 9000。
- attack
訊號必須高於閾值多少毫秒才能停止增益減少。預設值為 20 毫秒。允許範圍為 0.01 到 9000。
- release
訊號必須低於閾值多少毫秒才能再次增加減少量。預設值為 250 毫秒。允許範圍為 0.01 到 9000。
- makeup
設定處理後訊號的放大倍數。預設值為 1。允許範圍為 1 到 64。
- knee
使閾值周圍的尖銳轉折變彎曲,以更柔和地進入增益減少。預設值為 2.828427125。允許範圍為 1 到 8。
- detection
選擇是應使用精確訊號進行偵測還是類似 RMS 的訊號。預設值為
rms
。可以是peak
或rms
。- link
選擇是所有聲道之間的平均水平還是較響亮的聲道影響減少量。預設值為
average
。可以是average
或maximum
。
8.29.1 指令
此濾鏡支援以上所有選項作為 commands。
8.30 aiir
應用任意無限脈衝響應濾波器。
它接受以下參數
- zeros, z
設定 B/分子/零點/反射係數。
- poles, p
設定 A/分母/極點/梯形係數。
- gains, k
設定聲道增益。
- dry_gain
設定對頻率波動的靈敏度量。預設值為 2。允許範圍為從 0 到 1e+06。
- wet_gain
basefreq
- format, f
設定係數格式。
- ‘ll’
晶格-梯形函數
- ‘sf’
類比傳遞函數
- ‘tf’
數位傳遞函數
- ‘zp’
Z 平面零點/極點,笛卡爾座標(預設)
- ‘pr’
Z 平面零點/極點,極座標弧度
- ‘pd’
Z 平面零點/極點,極座標角度
- ‘sp’
S 平面零點/極點
- process, r
設定處理類型。
- ‘d’
直接處理
- ‘s’
串列處理
- ‘p’
並行處理
- precision, e
設定濾波精度。
- ‘dbl’
雙精度浮點數(預設)
- ‘flt’
單精度浮點數
- ‘i32’
32 位元整數
- ‘i16’
16 位元整數
- normalize, n
正規化濾波器係數,預設為啟用。啟用後,它將在 DC 將幅度響應正規化為 0dB。
- mix
輸出中使用濾波訊號的量。預設值為 1。範圍介於 0 和 1 之間。
- response
在額外的視訊串流中顯示 IR 頻率響應、幅度(洋紅色)、相位(綠色)和群組延遲(黃色)。預設為停用。
- channel
設定要顯示頻率響應的 IR 聲道。預設為顯示第一個聲道。此選項僅在啟用 response 時使用。
- size
設定視訊串流大小。此選項僅在啟用 response 時使用。
tf
和 sf
格式的係數以空格分隔,並按升序排列。
zp
格式的係數以空格分隔,係數順序無關緊要。zp
格式的係數是具有 i 虛數單位的複數。
可以為每個聲道提供不同的係數和增益,在這種情況下,請使用 ’|’ 分隔係數或增益。最後提供的係數將用於所有剩餘聲道。
8.30.1 範例
- 在 48000 Hz 取樣率下,對大約 5000Hz 的位置應用 2 極橢圓陷波
aiir=k=1:z=7.957584807809675810E-1 -2.575128568908332300 3.674839853930788710 -2.57512875289799137 7.957586296317130880E-1:p=1 -2.86950072432325953 3.63022088054647218 -2.28075678147272232 6.361362326477423500E-1:f=tf:r=d
- 與上述相同,但在
zp
格式中aiir=k=0.79575848078096756:z=0.80918701+0.58773007i 0.80918701-0.58773007i 0.80884700+0.58784055i 0.80884700-0.58784055i:p=0.63892345+0.59951235i 0.63892345-0.59951235i 0.79582691+0.44198673i 0.79582691-0.44198673i:f=zp:r=s
- 使用類比傳遞函數格式應用 3 階類比正規化巴特沃斯低通濾波器
aiir=z=1.3057 0 0 0:p=1.3057 2.3892 2.1860 1:f=sf:r=d
8.31 alimiter
限制器可防止輸入訊號上升超過所需的閾值。此限制器使用前瞻技術來防止訊號失真。這表示在處理訊號後會有一個小的延遲。請記住,它產生的延遲是您設定的啟動時間。
濾鏡接受以下選項
- level_in
設定輸入增益。預設值為 1。
- level_out
設定輸出增益。預設值為 1。
- limit
不要讓高於此水平的訊號通過限制器。預設值為 1。
- attack
限制器將在此毫秒數內達到其衰減水平。預設值為 5 毫秒。
- release
在此毫秒數內從限制恢復到 1.0 衰減。預設值為 50 毫秒。
- asc
當始終需要增益減少時,ASC 會負責釋放到平均減少水平,而不是在釋放時間內達到 0 的減少量。
- asc_level
選擇釋放時間受 ASC 影響的程度,0 表示釋放時間幾乎沒有變化,而 1 則產生較長的釋放時間。
- level
自動調整輸出訊號的音量。預設為啟用。如果啟用此選項,則會將音訊正規化回 0dB。
- latency
補償使用啟動參數設定的前瞻緩衝區引入的延遲。當串流達到 EOF 時,也會刷新前瞻緩衝區中的有效音訊資料。
根據選擇的設定,建議在使用此濾波器之前使用 aresample 將輸入升採樣 2 倍或 4 倍。
8.32 allpass
應用一個二階全通濾波器,其中心頻率(單位為 Hz)為 frequency,濾波器寬度為 width。全通濾波器會更改音訊的頻率與相位關係,而不會更改其頻率與幅度關係。
濾鏡接受以下選項
- frequency, f
設定頻率,單位為 Hz。
- width_type, t
設定指定濾波器頻寬的方法。
- h
Hz
- q
Q 因子
- o
octave
- s
斜率
- k
kHz
- width, w
以 width_type 單位指定濾波器的頻寬。
- mix, m
輸出中使用濾波訊號的量。預設值為 1。範圍介於 0 和 1 之間。
- channels, c
指定要濾波的聲道,預設情況下會濾波所有可用聲道。
- normalize, n
正規化雙二階係數,預設為停用。啟用後,它將在 DC 將幅度響應正規化為 0dB。
- order, o
設定濾波器階數,可以是 1 或 2。預設值為 2。
- transform, a
設定 IIR 濾波器的轉換類型。
- di
- dii
- tdi
- tdii
- latt
- svf
- zdf
- precision, r
設定濾波精度。
- auto
根據環繞濾波器選擇自動樣本格式。
- s16
始終使用有符號 16 位元。
- s32
始終使用有符號 32 位元。
- f32
始終使用浮點 32 位元。
- f64
始終使用浮點 64 位元。
8.32.1 指令
此濾波器支援以下指令
- frequency, f
變更全通頻率。指令的語法為:「frequency」
- width_type, t
變更全通 width_type。指令的語法為:「width_type」
- width, w
變更全通寬度。指令的語法為:「width」
- mix, m
變更全通混合。指令的語法為:「mix」
8.33 aloop
循環音訊樣本。
濾鏡接受以下選項
- loop
設定循環次數。將此值設定為 -1 將導致無限循環。預設值為 0。
- size
設定最大樣本數。預設值為 0。
- start
設定循環的第一個樣本。預設值為 0。
- time
以秒為單位設定循環開始時間。僅在名為 start 的選項設定為
-1
時使用。
8.34 amerge
將兩個或多個音訊串流合併為單個多聲道串流。
濾鏡接受以下選項
- inputs
設定輸入數量。預設值為 2。
如果輸入的聲道佈局是不相交的,因此是相容的,則輸出的聲道佈局將相應地設定,並且聲道將根據需要重新排序。如果輸入的聲道佈局不是不相交的,則輸出將包含第一個輸入的所有聲道,然後是第二個輸入的所有聲道,依此順序,並且輸出的聲道佈局將是與聲道總數相對應的預設值。
例如,如果第一個輸入為 2.1 (FL+FR+LF),第二個輸入為 FC+BL+BR,則輸出將為 5.1,聲道順序如下:a1、a2、b1、a3、b2、b3(a1 是第一個輸入的第一個聲道,b1 是第二個輸入的第一個聲道)。
另一方面,如果兩個輸入都是立體聲,則輸出聲道將按預設順序排列:a1、a2、b1、b2,並且聲道佈局將任意設定為 4.0,這可能是也可能不是預期的值。
所有輸入都必須具有相同的取樣率和格式。
如果輸入的持續時間不同,則輸出將在最短的輸入結束時停止。
8.34.1 範例
- 將兩個單聲道檔案合併為立體聲串流
amovie=left.wav [l] ; amovie=right.mp3 [r] ; [l] [r] amerge
- 假設 input.mkv 中有 1 個視訊串流和 6 個音訊串流的多個合併
ffmpeg -i input.mkv -filter_complex "[0:1][0:2][0:3][0:4][0:5][0:6] amerge=inputs=6" -c:a pcm_s16le output.mkv
8.35 amix
將多個音訊輸入混合到單個輸出中。
請注意,此濾波器僅支援浮點樣本(amerge 和 pan 音訊濾波器支援多種格式)。如果 amix 輸入具有整數樣本,則會自動插入 aresample 以執行到浮點樣本的轉換。
它接受以下參數
- inputs
輸入的數量。如果未指定,則預設為 2。
- duration
如何確定串流結束。
- longest
最長輸入的持續時間。(預設)
- shortest
shortest
- 最短輸入的持續時間。
first
- 第一個輸入的持續時間。
dropout_transition
- 當輸入串流結束時,用於音量重新正規化的過渡時間,單位為秒。預設值為 2 秒。
weights
- 將每個輸入音訊串流的權重指定為以空格分隔的數字序列。如果指定的權重少於輸入數量,則最後一個權重將分配給剩餘的輸入。每個輸入的預設權重為 1。
normalize
8.35.1 範例
- 始終縮放輸入,而不是僅對樣本求和。如果此選項停用,且輸入在通過此濾波器濾波之前或之後未正規化,請注意嚴重的削波。預設為啟用。
ffmpeg -i INPUT1 -i INPUT2 -i INPUT3 -filter_complex amix=inputs=3:duration=first:dropout_transition=3 OUTPUT
- 這會將 3 個輸入音訊串流混合到單個輸出,其持續時間與第一個輸入相同,且丟失過渡時間為 3 秒
ffmpeg -i VOCALS -i MUSIC -filter_complex amix=inputs=2:duration=longest:dropout_transition=0:weights="1 0.25":normalize=0 OUTPUT
8.35.2 指令
此濾波器支援以下指令
- 當輸入串流結束時,用於音量重新正規化的過渡時間,單位為秒。預設值為 2 秒。
- 將每個輸入音訊串流的權重指定為以空格分隔的數字序列。如果指定的權重少於輸入數量,則最後一個權重將分配給剩餘的輸入。每個輸入的預設權重為 1。
這會將一個人聲輸入和一個音樂輸入音訊串流混合到單個輸出,其持續時間與最長輸入相同。音樂的權重將為人聲的四分之一,並且輸入未正規化
8.36 amultiply
語法與同名選項相同。
將第一個音訊串流與第二個音訊串流相乘,並將結果儲存在輸出音訊串流中。乘法是通過將第一個串流中的每個樣本與第二個串流中相同位置的樣本相乘來完成的。
8.37 anequalizer
通過此元素級乘法,可以創建幅度淡化和幅度調變。
它接受以下參數
- 用於每個聲道的高階參數多頻段等化器。
-
params
- 此選項字串的格式為:「cchn f=cf w=w g=g t=f | ...」。每個等化器頻段都以 ’|’ 分隔。
chn
- nb_channels
設定將應用等化的聲道號碼。如果輸入沒有該聲道,則忽略該條目。
- f
設定頻段的中心頻率。如果輸入沒有該頻率,則忽略該條目。
- w
以赫茲為單位設定頻寬。
- 設定傳輸表達式。
g
- 以 dB 為單位設定頻段增益。
t
- 設定頻段的濾波器類型,可選,可以是
‘0’
- 巴特沃斯,這是預設值。
‘1’
- 切比雪夫類型 1。
‘2’
- size
切比雪夫類型 2。
- curves
啟用此選項後,將在視訊串流中顯示等化器的頻率響應。
- size
設定視訊串流大小。僅在啟用 curves 選項時有用。
- mgain
設定將顯示的最大增益。僅在啟用 curves 選項時有用。將其設定為合理的值可以顯示從彼此太近的相鄰頻段導出的增益,因此在兩個頻段都啟用時會產生更高的增益。
8.37.1 範例
- fscale
anequalizer=c0 f=200 w=100 g=-10 t=1|c1 f=200 w=100 g=-10 t=1
8.37.2 指令
此濾波器支援以下指令
- 設定用於在視訊輸出中繪製頻率響應的頻率刻度。可以是線性或對數。預設值為對數。
colors
設定將在視訊串流中顯示的每個聲道曲線的顏色。這是以空格或 ’|’ 分隔的顏色名稱列表。無法識別或遺失的顏色將替換為白色。
使用切比雪夫類型 1 濾波器,將前 2 個聲道的中心頻率 200Hz 和寬度 100 Hz 的增益降低 10
8.38 anlmdn
change
變更現有的濾波器參數。指令的語法為:「fN|f=freq|w=width|g=gain」
濾鏡接受以下選項
- fN 是現有的濾波器編號,從 0 開始,如果沒有此類濾波器可用,則會傳回錯誤。freq 設定新的頻率參數。width 以赫茲為單位設定新的寬度參數。gain 以 dB 為單位設定新的增益參數。
使用 asendcmd 的完整濾波器調用可能如下所示:asendcmd=c=’4.0 anequalizer change 0|f=200|w=50|g=1’,anequalizer=...
- 使用非局部均值演算法減少音訊樣本中的寬頻雜訊。
每個樣本都會通過尋找具有相似上下文的其他樣本來進行調整。此上下文相似性是通過比較大小為 p 的周圍色塊來定義的。色塊在樣本周圍 r 的區域中搜尋。
- strength, s
設定降噪強度。允許範圍為 0.00001 到 10000。預設值為 0.00001。
- output, o
設定輸出模式。
設定叢發融合,以視窗大小的百分比表示。允許範圍為
0
到10
。預設值為2
。如果偵測為雜訊的任何兩個樣本之間的間隔小於此值,則這兩個樣本之間的任何樣本也將被偵測為雜訊。- i
傳遞未更改的輸入。
- o
傳遞濾除的雜訊。
- n
僅傳遞雜訊。
預設值為 o。
- patch, p
設定色塊半徑持續時間。允許範圍為 1 到 100 毫秒。預設值為 2 毫秒。
8.38.1 指令
此濾鏡支援以上所有選項作為 commands。
8.39 anlmf, anlms
research, r
設定搜尋半徑持續時間。允許範圍為 2 到 300 毫秒。預設值為 6 毫秒。
以下是接受選項的描述。
- order
smooth, m
- mu
設定平滑因子。預設值為 11。允許範圍為 1 到 1000。
- 將正規化最小均方(NLMS)或正規化最小均四方(NLMS4)演算法應用於第一個音訊串流,並使用第二個音訊串流。
此自適應濾波器用於模擬所需的濾波器,方法是尋找與產生誤差訊號(所需訊號,第二個輸入音訊串流與實際訊號,第一個輸入音訊串流之間的差異)的最小均方值相關的濾波器係數。
- order
設定濾波器階數。
- out_mode
設定叢發融合,以視窗大小的百分比表示。允許範圍為
0
到10
。預設值為2
。如果偵測為雜訊的任何兩個樣本之間的間隔小於此值,則這兩個樣本之間的任何樣本也將被偵測為雜訊。- i
傳遞第一個輸入。
- d
傳遞第二個輸入。
- o
傳遞期望訊號、第二個輸入和誤差訊號估計值之間的差異。
- n
傳遞輸入訊號、第一個輸入和誤差訊號估計值之間的差異。
- e
傳遞誤差訊號估計樣本。
預設值為 o。
- precision
設定處理樣本時要使用的精度。
- auto
根據其他濾鏡自動選擇內部樣本格式。
- float
始終使用單精度浮點精度樣本格式。
- double
始終使用雙精度浮點精度樣本格式。
8.39.1 範例
- mu
asplit[a][b],[a]adelay=32S|32S[a],[b][a]anlms=order=128:leakage=0.0005:mu=.5:out_mode=o
8.39.2 指令
設定濾波器 mu。
8.40 anull
eps
8.41 apad
設定濾波器 eps。
leakage
以下是接受選項的描述。
- 設定濾波器洩漏。
此濾波器的許多用途之一是降噪,輸入音訊使用延遲固定量的相同樣本進行濾波,立體聲音訊的一個範例如下
- 此濾波器支援與選項相同的指令,但不包括選項
order
。 將音訊來源未經更改地傳遞到輸出。
- 在音訊串流的末尾填充靜音。
這可以與
ffmpeg
-shortest 一起使用,以將音訊串流擴展到與視訊串流相同的長度。- packet_size
設定靜音封包大小。預設值為 4096。
- pad_len
設定要添加到末尾的靜音樣本數。達到該值後,串流將終止。此選項與 whole_len 互斥。
whole_len
設定輸出音訊串流中的最小樣本總數。如果該值大於輸入音訊長度,則會在末尾添加靜音,直到達到該值。此選項與 pad_len 互斥。
8.41.1 範例
- pad_dur
apad=pad_len=1024
- 指定要添加的靜音樣本的持續時間。請參閱 (ffmpeg-utils)ffmpeg-utils(1) 手冊中的時間長度章節 以了解接受的語法。僅在設定為非負值時使用。
apad=whole_len=10000
- whole_dur
ffmpeg -i VIDEO -i AUDIO -filter_complex "[1:0]apad" -shortest OUTPUT
8.42 aphaser
指定輸出音訊串流中的最小總持續時間。請參閱 (ffmpeg-utils)ffmpeg-utils(1) 手冊中的時間長度章節 以了解接受的語法。僅在設定為非負值時使用。如果該值大於輸入音訊長度,則會在末尾添加靜音,直到達到該值。此選項與 pad_dur 互斥
如果未設定 pad_len、whole_len、pad_dur 或 whole_dur 選項,則濾波器將無限期地在輸入串流的末尾添加靜音。
將最後設定的延遲用於所有剩餘聲道。預設為停用。如果啟用此選項,則會變更選項 delays
的解讀方式。
- 自動從偵測濾鏡收集臨界值。預設為「disabled」。此選項可用於偵測輸入音訊串流特定時間範圍內的臨界值,在這種情況下,選項值會在執行時變更。
請注意,對於 ffmpeg 4.4 及更早版本,零 pad_dur 或 whole_dur 也會導致濾波器無限期地添加靜音。
- 「disabled」
在輸入末尾添加 1024 個靜音樣本
- 確保音訊輸出將至少包含 10000 個樣本,如果需要,則在輸入中填充靜音
使用
ffmpeg
在音訊輸入中填充靜音,以便在使用 shortest 選項時,視訊串流始終是最短的,並且將轉換到輸出檔案的末尾- 向輸入音訊添加相位效果。
相位器濾波器在頻譜中創建一系列峰值和波谷。峰值和波谷的位置會被調變,使其隨時間變化,從而產生掃描效果。
- 設定輸入增益。預設值為 0.4。
設定輸出增益。預設值為 0.74
- 將第二個聲道延遲 500 個樣本,將第三個聲道延遲 700 個樣本,並保持第一個聲道(和可能存在的任何其他聲道)不變。
delay
設定叢發融合,以視窗大小的百分比表示。允許範圍為
0
到10
。預設值為2
。如果偵測為雜訊的任何兩個樣本之間的間隔小於此值,則這兩個樣本之間的任何樣本也將被偵測為雜訊。- 設定延遲,單位為毫秒。預設值為 3.0。
- decay
8.43 aphaseshift
設定衰減。預設值為 0.4。
濾鏡接受以下選項
- shift
speed
- level
設定應用於最終輸出的輸出增益。允許範圍為 0.0 到 1.0。預設值為 1.0。
- order
設定用於濾波的濾波器階數。允許範圍為 1 到 16。預設值為 8。
8.43.1 指令
此濾鏡支援以上所有選項作為 commands。
8.44 apsnr
設定調變速度,單位為 Hz。預設值為 0.5。
depth
8.45 apsyclip
設定調變類型。預設值為三角形。
濾鏡接受以下選項
- level_in
‘triangular, t’
- level_out
‘sinusoidal, s’
- 對輸入音訊樣本應用相位偏移。
phase
- 指定相位偏移。允許範圍為 -1.0 到 1.0。預設值為 0.0。
測量音訊峰值訊號雜訊比。
- adaptive
此濾波器接受兩個音訊串流作為輸入,並輸出第一個音訊串流。結果以 dB 為單位,每個聲道在任一輸入結束時輸出。
- 將心理聲學削波器應用於輸入音訊串流。
設定輸入增益。預設值為 1。範圍為 [0.015625 - 64]。
- level
設定輸出增益。預設值為 1。範圍為 [0.015625 - 64]。
8.45.1 指令
此濾鏡支援以上所有選項作為 commands。
8.46 apulsator
clip
濾鏡接受以下選項
- level_in
‘triangular, t’
- level_out
‘sinusoidal, s’
- mode
設定削波開始值。預設值為 0dBFS 或 1。
- amount
diff
- 僅輸出差分樣本,有助於聽到引入的失真。預設為停用。
distort
- 設定應用的自適應失真強度。預設值為 0.5。允許範圍為 0 到 1。
iterations
- 設定心理聲學削波器的迭代次數。允許範圍為 1 到 20。預設值為 10。
normalize
- 自動調整輸出訊號的音量。預設為停用。如果啟用此選項,則會將音訊正規化回 0dBFS。
音訊脈動器介於自動聲像器和顫音之間。但它也可以產生有趣的立體聲效果。脈動器根據具有不同波形和相位偏移的 LFO(低頻振盪器)來改變左右聲道的音量。此濾波器能夠定義左右聲道之間的偏移。偏移量為 0 表示兩個 LFO 形狀相互匹配。左右聲道會均勻地改變 - 傳統的顫音。偏移量為 50% 表示右聲道的形狀在相位上完全偏移(或向後移動約頻率的一半)- 脈動器充當自動聲像器。在 1 時,兩個曲線再次匹配。介於兩者之間的每個設定都會將相位偏移無間隙地移動到所有階段之間,並產生一些具有正弦波和三角波波形的「旁通」聲音。您將偏移設定得越接近 1(從 0.5 開始),訊號從左揚聲器傳遞到右揚聲器的速度就越快。
- shape
設定 LFO 將使用的波形形狀。可以是以下之一:sine、triangle、square、sawup 或 sawdown。預設值為 sine。
- modulation
設定調變。定義原始訊號受 LFO 影響的程度。
- offset_l
設定左聲道偏移。預設值為 0。允許範圍為 [0 - 1]。
8.47 aresample
offset_r
設定右聲道偏移。預設值為 0.5。允許範圍為 [0 - 1]。
width
8.47.1 範例
- 設定脈衝寬度。預設值為 1。允許範圍為 [0 - 2]。
aresample=44100
- timing
aresample=async=1000
8.48 areverse
設定可能的定時模式。可以是以下之一:bpm、ms 或 hz。預設值為 hz。
bpm
8.48.1 範例
- 設定 bpm。預設值為 120。允許範圍為 [30 - 300]。僅在 timing 設定為 bpm 時使用。
atrim=end=5,areverse
8.49 arls
ms
設定 ms。預設值為 500。允許範圍為 [10 - 2000]。僅在 timing 設定為 ms 時使用。
以下是接受選項的描述。
- order
設定濾鏡階數。
- hz
以 Hz 為單位設定頻率。預設值為 2。允許範圍為 [0.01 - 100]。僅在 timing 設定為 hz 時使用。
- delta
設定係數以初始化內部共變異數矩陣。
- out_mode
設定濾鏡輸出樣本。它接受以下值
- i
傳遞第一個輸入。
- d
傳遞第二個輸入。
- o
傳遞期望訊號、第二個輸入和誤差訊號估計值之間的差異。
- n
傳遞輸入訊號、第一個輸入和誤差訊號估計值之間的差異。
- e
傳遞誤差訊號估計樣本。
預設值為 o。
- precision
設定處理樣本時要使用的精度。
- auto
根據其他濾鏡自動選擇內部樣本格式。
- float
始終使用單精度浮點精度樣本格式。
- double
始終使用雙精度浮點精度樣本格式。
8.50 arnndn
使用 libswresample 庫將輸入音訊重新取樣為指定的參數。如果未指定任何參數,則濾波器將自動在其輸入和輸出之間進行轉換。
此濾波器還能夠拉伸/壓縮音訊資料以使其與時間戳記匹配,或注入靜音/剪切音訊以使其與時間戳記匹配,執行兩者的組合或兩者都不執行。
- 濾波器接受語法 [sample_rate:]resampler_options,其中 sample_rate 表示取樣率,resampler_options 是以 ":" 分隔的 key=value 對列表。請參閱 (ffmpeg-resampler)ffmpeg-resampler(1) 手冊中的「重採樣器選項」章節 以獲取支援選項的完整列表。
將輸入音訊重新取樣為 44100Hz
- mix
拉伸/壓縮樣本以符合給定的時間戳記,每秒最多補償 1000 個樣本
8.50.1 指令
此濾鏡支援以上所有選項作為 commands。
8.51 asdr
反轉音訊剪輯。
depth
8.52 asetnsamples
警告:此濾波器需要記憶體來緩衝整個剪輯,因此建議修剪。
擷取剪輯的前 5 秒,然後將其反轉。
濾鏡接受以下選項
- 將遞歸最小平方演算法應用於第一個音訊串流,並使用第二個音訊串流。
此自適應濾波器用於模擬所需的濾波器,方法是遞歸尋找與產生誤差訊號(所需訊號,第二個輸入音訊串流與實際訊號,第一個輸入音訊串流之間的差異)的最小加權線性最小平方成本函數相關的濾波器係數。
- lambda
設定遺忘因子。
使用遞歸神經網路減少語音中的雜訊。
asetnsamples=n=1234:p=0
8.53 asetrate
此濾波器接受以下選項
濾鏡接受以下選項
- model, m
設定要載入的訓練模型檔案。此選項始終是必需的。
8.54 ashowinfo
mix
設定將濾波後的樣本混合到最終輸出中的程度。允許範圍為 -1 到 1。預設值為 1。負值是特殊的,它們設定在最終濾波器輸出中保留多少濾波後的雜訊。將此選項設定為 -1 以聽到從輸入訊號中移除的實際雜訊。
測量音訊訊號失真比。
- n
設定每個輸出音訊幀的樣本數。
- pts
最後一個輸出封包可能包含不同數量的樣本,因為濾波器將在輸入音訊指示其結束時刷新所有剩餘樣本。
- nb_out_samples, n
設定每個輸出音訊幀的幀數。該數量旨在作為每個聲道的樣本數。預設值為 1024。
- pad, p
如果設定為 1,則濾波器將用零填充最後一個音訊幀,以便最後一個幀將包含與先前幀相同數量的樣本。預設值為 1。
- 例如,要將每幀樣本數設定為 1234 並停用最後一幀的填充,請使用
設定取樣率而不改變 PCM 資料。這將導致速度和音調的變化。
- rate
sample_rate, r
- 設定輸出取樣率。預設值為 44100 Hz。
顯示包含每個輸入音訊幀的各種資訊的行。輸入音訊未被修改。
- 顯示的行包含 key:value 形式的鍵/值對序列。
以下值顯示在輸出中
- 幀
輸入幀的(順序)編號,從 0 開始。
8.55 asisdr
pts
depth
8.56 asoftclip
輸入幀的呈現時間戳記,以時間基底單位表示;時間基底取決於濾波器輸入填充,通常為 1/sample_rate。
pts_time
此濾波器還能夠拉伸/壓縮音訊資料以使其與時間戳記匹配,或注入靜音/剪切音訊以使其與時間戳記匹配,執行兩者的組合或兩者都不執行。
- 將第二個聲道延遲 500 個樣本,將第三個聲道延遲 700 個樣本,並保持第一個聲道(和可能存在的任何其他聲道)不變。
輸入幀的呈現時間戳記,單位為秒。
設定叢發融合,以視窗大小的百分比表示。允許範圍為
0
到10
。預設值為2
。如果偵測為雜訊的任何兩個樣本之間的間隔小於此值,則這兩個樣本之間的任何樣本也將被偵測為雜訊。- fmt
- 樣本格式。
- chlayout
- 聲道佈局。
- exp
- rate
- 音訊幀的取樣率。
- nb_samples
- 幀中的樣本數(每個聲道)。
- threshold
checksum
- 音訊資料的 Adler-32 檢查碼(以十六進制列印)。對於平面音訊,資料被視為所有平面都已連接。
plane_checksums
- 每個資料平面的 Adler-32 檢查碼列表。
測量音訊縮放不變訊號失真比。
- 應用音訊柔削波。
柔削波是一種失真效果類型,其中訊號的幅度沿著平滑曲線飽和,而不是硬削波的突兀形狀。
8.56.1 指令
此濾鏡支援以上所有選項作為 commands。
8.57 aspectralstats
type
設定柔削波的類型。
- win_size
hard
- win_func
設定視窗函數。
設定叢發融合,以視窗大小的百分比表示。允許範圍為
0
到10
。預設值為2
。如果偵測為雜訊的任何兩個樣本之間的間隔小於此值,則這兩個樣本之間的任何樣本也將被偵測為雜訊。- ‘rect’
- ‘bartlett’
- ‘hann, hanning’
- ‘hamming’
- ‘blackman’
- ‘welch’
- ‘flattop’
- ‘bharris’
- ‘bnuttall’
- ‘bhann’
- ‘sine’
- ‘nuttall’
- ‘lanczos’
- ‘gauss’
- ‘tukey’
- ‘dolph’
- ‘cauchy’
- ‘parzen’
- ‘poisson’
- ‘bohman’
- ‘kaiser’
預設值為
hann
。- overlap
tanh
- atan
cubic
alg
- quintic
- sin
- erf
- threshold
- 設定從何處開始削波的閾值。預設值為 0dB 或 1。
- output
- 設定應用於輸出的增益。預設值為 0dB 或 1。
- param
- 設定控制 S 型函數的其他參數。
- oversample
- 斜率
- 設定過採樣因子。
- 顯示有關音訊聲道的頻域統計資訊。統計資訊會計算並儲存為每個音訊聲道和每個音訊幀的中繼資料。
8.58 asr
它接受以下選項
window_size
設定視窗長度,以樣本為單位。預設值為 2048。允許範圍為 32 到 65536。
- rate
overlap
- 設定視窗重疊。允許範圍為
0
到1
。預設值為0.5
。 measure
- 選擇要測量的參數。中繼資料鍵可以用作標誌,預設值為 all,表示測量所有內容。none 停用所有測量。
以下是每個中繼資料鍵的列表
- mean
variance
- centroid
spread
- skewness
kurtosis
- entropy
flatness
crest
8.59 astats
flux
設定柔削波的類型。
- length
decrease
- rolloff
-
自動語音辨識
此濾波器使用 PocketSphinx 進行語音辨識。要啟用此濾波器的編譯,您需要使用
--enable-pocketsphinx
配置 FFmpeg。它接受以下選項
samplerate
設定輸入音訊的取樣率。預設值為
16000
。這需要與語音模型匹配,否則會得到較差的結果。 - hmm
設定包含聲學模型檔案的字典。
- dict
設定發音字典。
- lm
設定語言模型檔案。
lmctl
- none
設定語言模型集。
- 設定用於設定跨聲道樣本延遲的隨機種子。
lmname
- 設定要使用的語言模型。
logfn
- 設定日誌訊息的輸出。
濾波器將辨識的語音匯出為幀中繼資料
lavfi.asr.text
。- 顯示有關音訊聲道的時域統計資訊。統計資訊會針對每個音訊聲道計算和顯示,並且在適用的情況下,還會給出總體數字。
win_length
- 短視窗長度,單位為秒,用於峰值和波谷 RMS 測量。預設值為
0.05
(50 毫秒)。允許範圍為[0 - 10]
。 metadata
- 設定中繼資料注入。所有中繼資料鍵都以
lavfi.astats.X
為前綴,其中X
是從 1 開始的聲道號碼或字串Overall
。預設為停用。 每個聲道的可用鍵為:Bit_depth Crest_factor DC_offset Dynamic_range Entropy Flat_factor Max_difference Max_level Mean_difference Min_difference Min_level Noise_floor Noise_floor_count Number_of_Infs Number_of_NaNs Number_of_denormals Peak_count Abs_Peak_count Peak_level RMS_difference RMS_peak RMS_trough
- 以及
Overall
的鍵:Bit_depth DC_offset Entropy Flat_factor Max_difference Max_level Mean_difference Min_difference Min_level Noise_floor Noise_floor_count Number_of_Infs Number_of_NaNs Number_of_denormals Number_of_samples Peak_count Abs_Peak_count Peak_level RMS_difference RMS_level RMS_peak RMS_trough 例如,完整的鍵看起來像
lavfi.astats.1.DC_offset
或lavfi.astats.Overall.Peak_count
。- 請閱讀以下內容以了解鍵的描述。
reset
- 設定在重設之前計算累計統計資訊的幀數。預設為停用。
measure_perchannel
- 選擇每個聲道測量的參數。中繼資料鍵可以用作標誌,預設值為 all,表示測量所有內容。none 停用所有每個聲道測量。
measure_overall
- 選擇總體測量的參數。中繼資料鍵可以用作標誌,預設值為 all,表示測量所有內容。none 停用所有總體測量。
以下是測量鍵的描述
- none
無測量
- all
所有測量
- Bit_depth
音訊的整體位元深度,即每個樣本使用的位元數
- Crest_factor
峰值與 RMS 水平的標準比率(注意:不是以 dB 為單位)
- DC_offset
與零的平均幅度位移
- Dynamic_range
以 dB 為單位測量的音訊動態範圍
- Entropy
在整個音訊中測量的熵,接近 1.0 的熵值通常針對白雜訊測量
- Flat_factor
訊號在其峰值水平(即 Min_level 或 Max_level)處的平坦度(即具有相同值的連續樣本)
- Max_difference
兩個連續樣本之間的最大差異
- Max_level
最大樣本水平
- Mean_difference
兩個連續樣本之間的平均差異,即兩個連續樣本之間每個差異的平均值
- Min_difference
兩個連續樣本之間的最小差異
- Min_level
- 最小樣本水平
Noise_floor
- 在短視窗內測量的最小局部峰值,單位為 dBFS
Noise_floor_count
- 訊號達到 Noise floor 的次數(不是樣本數)
Number_of_Infs
8.60 asubboost
具有無限值的樣本數
濾鏡接受以下選項
- dry
Number_of_NaNs
- wet
具有 NaN(非數字)值的樣本數
- Number_of_denormals
具有次正規化值的樣本數
- 向輸入音訊添加相位效果。
Number_of_samples
- 樣本數
Peak_count
- 訊號達到 Min_level 或 Max_level 的次數(不是樣本數)
Abs_Peak_count
- 斜率
從訊號中取得的絕對樣本達到 Min_level 和 Max_level 最大絕對值的次數
- 確保音訊輸出將至少包含 10000 個樣本,如果需要,則在輸入中填充靜音
Peak_level
- 取樣率
以 dBFS 為單位測量的標準峰值水平
8.60.1 指令
此濾鏡支援以上所有選項作為 commands。
8.61 asubcut
RMS_difference
兩個連續樣本之間的均方根差異
濾鏡接受以下選項
- 訊號達到 Min_level 或 Max_level 的次數(不是樣本數)
RMS_level
- order
以 dBFS 為單位測量的標準 RMS 水平
- level
設定輸入增益等級。允許範圍為 0 到 1。預設值為 1。
8.61.1 指令
此濾鏡支援以上所有選項作為 commands。
8.62 asupercut
RMS_peak
濾鏡接受以下選項
- 訊號達到 Min_level 或 Max_level 的次數(不是樣本數)
RMS_trough
- order
以 dBFS 為單位測量的標準 RMS 水平
- level
設定輸入增益等級。允許範圍為 0 到 1。預設值為 1。
8.62.1 指令
此濾鏡支援以上所有選項作為 commands。
8.63 asuperpass
在短視窗內測量的 RMS 水平的峰值和波谷值,單位為 dBFS。
濾鏡接受以下選項
- Zero crossings
波形穿過零水平軸的點數
- order
Zero crossings rate
- 零交叉率和音訊樣本數
增強超低音頻率。
- level
dry
8.63.1 指令
此濾鏡支援以上所有選項作為 commands。
8.64 asuperstop
設定乾聲增益,保留多少原始訊號。允許範圍為 0 到 1。預設值為 1.0。
濾鏡接受以下選項
- Zero crossings
波形穿過零水平軸的點數
- order
Zero crossings rate
- 零交叉率和音訊樣本數
增強超低音頻率。
- level
dry
8.64.1 指令
此濾鏡支援以上所有選項作為 commands。
8.65 atempo
wet
設定濕聲增益,保留多少濾波訊號。允許範圍為 0 到 1。預設值為 1.0。
boost
8.65.1 範例
- 設定最大增強因子。允許範圍為 1 到 12。預設值為 2。
atempo=0.8
- decay
atempo=3
- 設定延遲線衰減增益值。允許範圍為 0 到 1。預設值為 0.0。
atempo=sqrt(3),atempo=sqrt(3)
8.65.2 指令
此濾波器支援以下指令
- feedback
設定延遲線回饋增益值。允許範圍為 0 到 1。預設值為 0.9。
8.66 atilt
cutoff
設定截止頻率,單位為赫茲。允許範圍為 50 到 900。預設值為 100。
濾鏡接受以下選項
- freq
slope
- 斜率
設定截止頻率的斜率量。允許範圍為 0.0001 到 1。預設值為 0.5。
- 設定心理聲學削波器的迭代次數。允許範圍為 1 到 20。預設值為 10。
delay
- order
設定延遲。允許範圍為 1 到 100。預設值為 20。
- level
channels
8.66.1 指令
此濾鏡支援以上所有選項作為 commands。
8.67 atrim
設定要處理的聲道。預設值為所有可用聲道。
它接受以下參數
- start
削減超低音頻率。
- 此濾波器允許設定自訂、比高通濾波器更陡峭的滾降,因此能夠更多地衰減阻帶中的頻率內容。
cutoff
- 設定截止頻率,單位為赫茲。允許範圍為 2 到 200。預設值為 20。
order
- 設定濾波器階數。可用值為 3 到 20。預設值為 10。
削減超高頻率。
- duration
cutoff
- 設定截止頻率,單位為赫茲。允許範圍為 20000 到 192000。預設值為 20000。
應用高階巴特沃斯帶通濾波器。
- centerf
設定中心頻率,單位為赫茲。允許範圍為 2 到 999999。預設值為 1000。
order
設定濾波器階數。可用值為 4 到 20。預設值為 4。
qfactor
設定 Q 因子。允許範圍為 0.01 到 100。預設值為 1。
gain
- 設定輸入增益水平。允許範圍為 0 到 2。預設值為 1。
ffmpeg -i INPUT -af atrim=60:120
- 應用高階巴特沃斯帶阻濾波器。
ffmpeg -i INPUT -af atrim=end_sample=1000
8.68 axcorrelate
調整音訊節奏。
此濾波器正好接受一個參數,即音訊節奏。如果未指定,則濾波器將假定標稱節奏為 1.0。節奏必須在 [0.5, 100.0] 範圍內。
濾鏡接受以下選項
- size
請注意,大於 2 的節奏將跳過一些樣本,而不是將它們混合在一起。如果出於任何原因擔心這一點,始終可以菊鏈多個 atempo 實例以達到所需的產品節奏。
- 將音訊減速到 80% 節奏
將音訊加速到 300% 節奏
8.68.1 範例
- 通過菊鏈兩個 atempo 實例將音訊加速到 300% 節奏
ffmpeg -i stereo.wav -af channelsplit,axcorrelate=size=1024:algo=fast correlation.wav
8.69 bandpass
tempo
濾鏡接受以下選項
- frequency, f
變更濾波器節奏縮放因子。指令的語法為:「tempo」
- 將頻譜傾斜濾波器應用於音訊串流。
此濾波器在任何指定的頻段上應用任何頻譜滾降斜率。
- width_type, t
設定指定濾波器頻寬的方法。
- h
Hz
- q
Q 因子
- o
octave
- s
斜率
- k
kHz
- width, w
以 width_type 單位指定濾波器的頻寬。
- mix, m
輸出中使用濾波訊號的量。預設值為 1。範圍介於 0 和 1 之間。
- channels, c
指定要濾波的聲道,預設情況下會濾波所有可用聲道。
- normalize, n
正規化雙二階係數,預設為停用。啟用後,它將在 DC 將幅度響應正規化為 0dB。
- transform, a
設定 IIR 濾波器的轉換類型。
- di
- dii
- tdi
- tdii
- latt
- svf
- zdf
- precision, r
設定濾波精度。
- auto
根據環繞濾波器選擇自動樣本格式。
- s16
始終使用有符號 16 位元。
- s32
始終使用有符號 32 位元。
- f32
始終使用浮點 32 位元。
- f64
始終使用浮點 64 位元。
- frequency
設定傾斜的中心頻率,單位為 Hz。預設值為 10000 Hz。
傾斜方向
8.69.1 指令
此濾波器支援以下指令
- frequency, f
設定傾斜的斜率方向。預設值為 0。允許範圍為 -1 到 1。
- width_type, t
width
- width, w
設定傾斜的寬度。預設值為 1000。允許範圍為 100 到 10000。
- mix, m
order
8.70 bandreject
設定傾斜濾波器的階數。
濾鏡接受以下選項
- frequency, f
變更濾波器節奏縮放因子。指令的語法為:「tempo」
- width_type, t
設定指定濾波器頻寬的方法。
- h
Hz
- q
Q 因子
- o
octave
- s
斜率
- k
kHz
- width, w
以 width_type 單位指定濾波器的頻寬。
- mix, m
輸出中使用濾波訊號的量。預設值為 1。範圍介於 0 和 1 之間。
- channels, c
指定要濾波的聲道,預設情況下會濾波所有可用聲道。
- normalize, n
正規化雙二階係數,預設為停用。啟用後,它將在 DC 將幅度響應正規化為 0dB。
- transform, a
設定 IIR 濾波器的轉換類型。
- di
- dii
- tdi
- tdii
- latt
- svf
- zdf
- precision, r
設定濾波精度。
- auto
根據環繞濾波器選擇自動樣本格式。
- s16
始終使用有符號 16 位元。
- s32
始終使用有符號 32 位元。
- f32
始終使用浮點 32 位元。
- f64
始終使用浮點 64 位元。
- frequency
設定傾斜的中心頻率,單位為 Hz。預設值為 10000 Hz。
傾斜方向
8.70.1 指令
此濾波器支援以下指令
- frequency, f
volume
- width_type, t
設定輸入音量水平。允許範圍為 0 到 4。預設值為 1。
- width, w
修剪輸入,使輸出包含輸入的一個連續子部分。
- mix, m
start
8.71 bass, lowshelf
要保留的區段的開始時間戳記(以秒為單位)。即,時間戳記為 start 的音訊樣本將是輸出中的第一個樣本。
濾鏡接受以下選項
- end
指定將丟棄的第一個音訊樣本的時間,即時間戳記為 end 的音訊樣本之前的音訊樣本將是輸出中的最後一個樣本。
- frequency, f
start_pts
- width_type, t
設定指定濾波器頻寬的方法。
- h
Hz
- q
Q 因子
- o
octave
- s
斜率
- k
kHz
- width, w
與 start 相同,不同之處在於此選項以樣本而不是秒為單位設定開始時間戳記。
- poles, p
end_pts
- mix, m
輸出中使用濾波訊號的量。預設值為 1。範圍介於 0 和 1 之間。
- channels, c
指定要濾波的聲道,預設情況下會濾波所有可用聲道。
- normalize, n
正規化雙二階係數,預設為停用。啟用後,它將在 DC 將幅度響應正規化為 0dB。
- transform, a
設定 IIR 濾波器的轉換類型。
- di
- dii
- tdi
- tdii
- latt
- svf
- zdf
- precision, r
設定濾波精度。
- auto
根據環繞濾波器選擇自動樣本格式。
- s16
始終使用有符號 16 位元。
- s32
始終使用有符號 32 位元。
- f32
始終使用浮點 32 位元。
- f64
始終使用浮點 64 位元。
- frequency
設定傾斜的中心頻率,單位為 Hz。預設值為 10000 Hz。
傾斜方向
8.71.1 指令
此濾波器支援以下指令
- frequency, f
與 end 相同,不同之處在於此選項以樣本而不是秒為單位設定結束時間戳記。
- width_type, t
duration
- width, w
輸出的最大持續時間,單位為秒。
- end
start_sample
- mix, m
應輸出的第一個樣本的編號。
8.72 biquad
end_sample
8.72.1 指令
此濾波器支援以下指令
- 應丟棄的第一個樣本的編號。
- start、end 和 duration 以時間長度規格表示;請參閱 (ffmpeg-utils)ffmpeg-utils(1) 手冊中的時間長度章節。
- 請注意,前兩組開始/結束選項和 duration 選項會查看幀時間戳記,而 _sample 選項僅計算通過濾波器的樣本。因此,當時間戳記錯誤、不精確或未從零開始時,start/end_pts 和 start/end_sample 將給出不同的結果。另請注意,此濾波器不會修改時間戳記。如果您希望輸出時間戳記從零開始,請在 atrim 濾波器之後插入 asetpts 濾波器。
- 如果設定了多個開始或結束選項,此濾波器會盡力貪婪地保留至少符合一個指定約束的所有樣本。要僅保留同時符合所有約束的部分,請鏈接多個 atrim 濾波器。
- 預設值是保留所有輸入。因此,可以設定例如僅結束值以保留指定時間之前的所有內容。
- 範例
丟棄除輸入的第二分鐘之外的所有內容
- mix, m
輸出中使用濾波訊號的量。預設值為 1。範圍介於 0 和 1 之間。
- channels, c
指定要濾波的聲道,預設情況下會濾波所有可用聲道。
- normalize, n
正規化雙二階係數,預設為停用。啟用後,它將在 DC 將幅度響應正規化為 0dB。
- transform, a
設定 IIR 濾波器的轉換類型。
- di
- dii
- tdi
- tdii
- latt
- svf
- zdf
- precision, r
設定濾波精度。
- auto
根據環繞濾波器選擇自動樣本格式。
- s16
始終使用有符號 16 位元。
- s32
始終使用有符號 32 位元。
- f32
始終使用浮點 32 位元。
- f64
始終使用浮點 64 位元。
- frequency
設定傾斜的中心頻率,單位為 Hz。預設值為 10000 Hz。
傾斜方向
8.73 bs2b
僅保留前 1000 個樣本
計算兩個輸入音訊串流之間正規化視窗互相關。
它接受以下參數
- profile
結果樣本始終介於 -1 和 1 之間(包含端點)。如果結果為 1,則表示兩個輸入樣本在選定區段中高度相關。結果 0 表示它們根本不相關。如果結果為 -1,則表示兩個輸入樣本異相,這表示它們相互抵消。
- default
size
- 設定計算互相關的區段大小。預設值為 256。允許範圍為 2 到 131072。
algo
- 設定互相關的演算法。可以是
slow
或fast
或best
。預設值為best
。快速演算法假定任何給定區段的平均值始終為零,因此需要更少的計算。這通常不是真的,但對於典型的音訊串流是有效的。 計算立體聲音訊串流中聲道之間的相關性
- 應用一個二極巴特沃斯帶通濾波器,其中心頻率為 frequency,(3dB 點)頻寬寬度。如果設定 csg 選項,則會選擇恆定裙邊增益(峰值增益 = Q),而不是預設值:恆定 0dB 峰值增益。濾波器以每八度音程 6dB(每十年 20dB)的速度滾降。
frequency, f
- 設定濾波器的中心頻率。預設值為
3000
。 csg
8.74 channelmap
如果設定為 1,則為恆定裙邊增益。預設值為 0。
它接受以下參數
- block_size, b
設定用於反向 IIR 處理的區塊大小。如果此值設定得足夠高(高於脈衝響應長度在接近零值時截斷的長度),則濾波將變為線性相位,否則如果不夠大,則只會產生令人討厭的偽影。
- 請注意,當設定為非零值時,濾波器延遲將正好是這麼多樣本。
變更帶通頻率。指令的語法為:「frequency」
變更帶通 width_type。指令的語法為:「width_type」
8.74.1 範例
- 變更帶通寬度。指令的語法為:「width」
ffmpeg -i in.mov -filter 'channelmap=map=DL-FL|DR-FR' out.wav
變更帶通混合。指令的語法為:「mix」
- 應用一個二極巴特沃斯帶阻濾波器,其中心頻率為 frequency,(3dB 點)頻寬為 width。濾波器以每八度音程 6dB(每十年 20dB)的速度滾降。
ffmpeg -i in.wav -filter 'channelmap=1|2|0|5|3|4:5.1' out.wav
8.75 channelsplit
變更帶阻頻率。指令的語法為:「frequency」
它接受以下參數
- 請注意,當設定為非零值時,濾波器延遲將正好是這麼多樣本。
變更帶阻 width_type。指令的語法為:「width_type」
- 取樣率
變更帶阻寬度。指令的語法為:「width」
變更帶阻混合。指令的語法為:「mix」
8.75.1 範例
- 使用二極擱架式濾波器(其響應類似於標準高保真音響的音調控制)增強或削減音訊的低音(較低)頻率。這也稱為擱架式等化 (EQ)。
ffmpeg -i in.mp3 -filter_complex channelsplit out.mkv
gain, g
- 給出 0 Hz 的增益。其有用範圍約為 -20(用於大幅度削減)到 +20(用於大幅度增強)。使用正增益時請注意削波。
ffmpeg -i in.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
- frequency
ffmpeg -i in.wav -filter_complex 'channelsplit=channel_layout=5.1:channels=LFE[LFE]' -map '[LFE]' lfe.wav
8.76 chorus
設定濾波器的中心頻率,因此可用於擴展或縮減要增強或削減的頻率範圍。預設值為 100
Hz。
width_type
確定濾波器的擱架式過渡有多陡峭。
它接受以下參數
- 自動從偵測濾鏡收集臨界值。預設為「disabled」。此選項可用於偵測輸入音訊串流特定時間範圍內的臨界值,在這種情況下,選項值會在執行時變更。
請注意,對於 ffmpeg 4.4 及更早版本,零 pad_dur 或 whole_dur 也會導致濾波器無限期地添加靜音。
- 「disabled」
設定輸出增益。預設值為 0.4。
- 設定濾鏡處理的去相關性階段。允許範圍為從 1 到 16。預設值為 6。
設定延遲。一般的延遲時間約為 40 毫秒到 60 毫秒。
- 停止選取臨界值。
設定衰減。
- 速度
設定速度。
- 深度
設定深度。
8.76.1 範例
- 單一延遲
chorus=0.7:0.9:55:0.4:0.25:2
- 兩個延遲
chorus=0.6:0.9:50|60:0.4|0.32:0.25|0.4:2|1.3
- 使用三個延遲以獲得更飽滿的合唱效果
chorus=0.5:0.9:50|60|40:0.4|0.32|0.3:0.25|0.4|0.3:2|2.3|1.3
8.77 compand
壓縮或擴展音訊的動態範圍。
它接受以下參數
- 起音 (attacks)
- 停止選取臨界值。
每個聲道的時間列表(以秒為單位),輸入訊號的瞬時音量在此時間內被平均,以確定其音量。attacks 指的是音量增加,而 decays 指的是音量減少。在大多數情況下,起音時間(對音訊變大的反應)應短於衰減時間(對音訊變小的反應),因為人耳對突然變大的音訊比對突然變小的音訊更敏感。典型的起音值為 0.3 秒,典型的衰減值為 0.8 秒。如果指定的起音和衰減數量少於聲道數,則最後設定的起音/衰減將用於所有剩餘聲道。
- 點 (points)
傳輸函數的點列表,以相對於最大可能訊號幅度的 dB 為單位指定。每個關鍵點列表都必須使用以下語法定義:
x0/y0|x1/y1|x2/y2|....
或x0/y0 x1/y1 x2/y2 ....
輸入值必須嚴格遞增,但傳輸函數不必單調遞增。點
0/0
是假定的,但可以被覆蓋(通過0/out-dBn
)。傳輸函數的典型值為-70/-70|-60/-20|1/0
。- 柔膝 (soft-knee)
設定所有接合點的曲線半徑,單位為 dB。預設值為 0.01。
- 增益 (gain)
設定要應用於傳輸函數上所有點的額外增益,單位為 dB。這允許輕鬆調整整體增益。預設值為 0。
- 音量 (volume)
設定每個聲道在濾波開始時假定的初始音量,單位為 dB。這允許使用者提供一個初始的標稱音量,例如,在壓縮開始運作之前,不會對初始訊號音量應用非常大的增益。對於最初很安靜的音訊,典型值為 -90 dB。預設值為 0。
- 確保音訊輸出將至少包含 10000 個樣本,如果需要,則在輸入中填充靜音
設定延遲,單位為秒。輸入音訊會立即被分析,但音訊在饋送到音量調整器之前會被延遲。指定一個約等於起音/衰減時間的延遲,可以使濾波器有效地以預測模式而不是反應模式運作。預設值為 0。
8.77.1 範例
- 使音樂的安靜和響亮段落都適合在嘈雜環境中聆聽
compand=.3|.3:1|1:-90/-60|-60/-40|-40/-30|-20/-20:6:0:-90:0.2
另一個用於包含耳語和爆炸聲的音訊範例
compand=0|0:1|1:-90/-900|-70/-70|-30/-9|0/-3:6:0:0:0
- 當雜訊水平低於訊號水平時使用的雜訊閘
compand=.1|.1:.2|.2:-900/-900|-50.1/-900|-50/-50:.01:0:-90:.1
- 這是另一個雜訊閘,這次適用於雜訊水平高於訊號水平的情況(在某些方面使其類似於靜噪)
compand=.1|.1:.1|.1:-45.1/-45.1|-45/-900|0/-900:.01:45:-90:.1
- 從 -6dB 開始的 2:1 壓縮
compand=points=-80/-80|-6/-6|0/-3.8|20/3.5
- 從 -9dB 開始的 2:1 壓縮
compand=points=-80/-80|-9/-9|0/-5.3|20/2.9
- 從 -12dB 開始的 2:1 壓縮
compand=points=-80/-80|-12/-12|0/-6.8|20/1.9
- 從 -18dB 開始的 2:1 壓縮
compand=points=-80/-80|-18/-18|0/-9.8|20/0.7
- 從 -15dB 開始的 3:1 壓縮
compand=points=-80/-80|-15/-15|0/-10.8|20/-5.2
- 壓縮器/閘 (Compressor/Gate)
compand=points=-80/-105|-62/-80|-15.4/-15.4|0/-12|20/-7.6
- 擴展器 (Expander)
compand=attacks=0:points=-80/-169|-54/-80|-49.5/-64.6|-41.1/-41.1|-25.8/-15|-10.8/-4.5|0/0|20/8.3
- 在 -6dB 的硬式限制器 (Hard limiter)
compand=attacks=0:points=-80/-80|-6/-6|20/-6
- 在 -12dB 的硬式限制器 (Hard limiter)
compand=attacks=0:points=-80/-80|-12/-12|20/-12
- 在 -35 dB 的硬式雜訊閘 (Hard noise gate)
compand=attacks=0:points=-80/-115|-35.1/-80|-35/-35|20/20
- 柔式限制器 (Soft limiter)
compand=attacks=0:points=-80/-80|-12.4/-12.4|-6/-8|0/-6.8|20/-2.8
8.78 compensationdelay
補償延遲線 (Compensation Delay Line) 是一種基於公制的延遲,用於補償麥克風或喇叭的不同位置。
例如,您使用放置在不同位置的兩個麥克風錄製了吉他。由於聲波前進在正常條件下具有固定的速度,因此麥克風的相位可能會有所不同,並且取決於它們的位置和相互位置。當這些麥克風同相位(同步)時,可以獲得最佳的聲音混音。請注意,麥克風之間約 30 公分的距離會使一個麥克風捕捉到的訊號與另一個麥克風的訊號反相。這會使最終混音聽起來沉悶。此濾波器通過為每個麥克風軌道添加不同的延遲並使其同步來幫助解決相位問題。
當您將一個軌道作為基準並將其他軌道逐一與其同步時,可以達到最佳效果。請記住,同步/延遲容限也取決於取樣率。較高的取樣率將提供更大的容限。
此濾波器接受以下參數
- mm
設定毫米距離。這是用於微調的補償距離。預設值為 0。
- cm
設定公分距離。這是用於收緊距離設定的補償距離。預設值為 0。
- m
設定公尺距離。這是用於硬性距離設定的補償距離。預設值為 0。
- dry
設定乾訊號量。未處理(乾)訊號的量。預設值為 0。
- wet
設定濕訊號量。已處理(濕)訊號的量。預設值為 1。
- temp
設定攝氏溫度。這是環境溫度。預設值為 20。
8.78.1 指令
此濾鏡支援以上所有選項作為 commands。
8.79 crossfeed
套用耳機聲場 (headphone crossfeed) 濾波器。
聲場 (Crossfeed) 是混合立體聲音訊錄音的左右聲道的過程。它主要用於減少低頻的極端立體聲分離。
目的是為聽者產生更像喇叭的聲音。
濾鏡接受以下選項
- 強度 (strength)
設定聲場 (crossfeed) 的強度。預設值為 0.2。允許範圍為 0 到 1。這設定立體聲影像側邊部分的低頻擱架濾波器的增益。預設值為 -6dB。當強度設定為 1 時,最大允許值為 -30db。
- 設定用於偵測濾鏡的偵測頻率(以 Hz 為單位),該偵測濾鏡用於觸發等化。預設值為 1000 Hz。允許範圍介於 2 和 1000000 Hz 之間。
設定聲場寬度 (soundstage wideness)。預設值為 0.5。允許範圍為 0 到 1。這設定低頻擱架濾波器的截止頻率。預設值為接近 1550 Hz 的截止頻率。當範圍設定為 1 時,截止頻率設定為 2100 Hz。
- 斜率
設定低頻擱架濾波器的曲線斜率。預設值為 0.5。允許範圍為 0.01 到 1。
- level_in
設定輸入增益。預設值為 0.9。
- level_out
設定輸出增益。預設值為 1。
- block_size
設定傾斜的中心頻率,單位為 Hz。預設值為 10000 Hz。
傾斜方向
8.79.1 指令
此濾鏡支援以上所有選項作為 commands。
8.80 crystalizer
用於音訊雜訊銳化的簡單演算法。
此濾波器線性地增加每個音訊樣本之間的差異。
濾鏡接受以下選項
- i
設定效果強度(預設值:2.0)。必須在 -10.0 到 0(聲音不變)到 10.0(最大效果)的範圍內。要反轉濾波,請使用負值。
- c
啟用削波 (clipping)。預設為啟用。
8.80.1 指令
此濾鏡支援以上所有選項作為 commands。
8.81 dcshift
對音訊套用直流偏移 (DC shift)。
這可用於從音訊中移除直流偏移(可能由錄音鏈中的硬體問題引起)。直流偏移的效果是降低動態餘裕 (headroom),進而降低音量。astats 濾波器可用於確定訊號是否具有直流偏移。
- shift
設定直流偏移量,允許範圍為 [-1, 1]。它表示音訊的偏移量。
- limitergain
可選。它應該有一個遠小於 1 的值(例如 0.05 或 0.02),用於防止削波 (clipping)。
8.82 deesser
對音訊樣本套用齒音消除 (de-essing)。
- i
設定觸發齒音消除 (de-essing) 的強度。允許範圍為 0 到 1。預設值為 0。
- m
設定對聲音高音部分進行衰減 (ducking) 的程度。允許範圍為 0 到 1。預設值為 0.5。
- nb_channels
齒音消除 (de-essing) 時要保留多少原始頻率內容。允許範圍為 0 到 1。預設值為 0.5。
- s
設定輸出模式。
設定叢發融合,以視窗大小的百分比表示。允許範圍為
0
到10
。預設值為2
。如果偵測為雜訊的任何兩個樣本之間的間隔小於此值,則這兩個樣本之間的任何樣本也將被偵測為雜訊。- i
傳遞未更改的輸入。
- o
通過濾除的齒音 (ess)。
- e
僅通過齒音 (ess)。
預設值為 o。
8.83 dialoguenhance
增強立體聲音訊中的對話。
此濾波器接受立體聲輸入並產生環繞聲 (3.0) 聲道輸出。新產生的前置中央聲道具有增強的語音對話,最初在立體聲聲道中可用。此濾波器輸出的前置左聲道和前置右聲道與立體聲輸入中的聲道相同。
濾鏡接受以下選項
- 原始 (original)
設定在前置中央聲道輸出中保留的原始中央聲道因子。允許範圍為 0 到 1。預設值為 1。
- 增強 (enhance)
設定要放入前置中央聲道輸出的對話增強因子。允許範圍為 0 到 3。預設值為 1。
- 語音 (voice)
設定語音偵測因子。允許範圍為 2 到 32。預設值為 2。
8.83.1 指令
此濾鏡支援以上所有選項作為 commands。
8.84 drmeter
測量音訊動態範圍。
DR 值為 14 或更高時,表示非常動態的素材。DR 值為 8 到 13 時,表示過渡素材。任何小於 8 的值都具有非常差的動態,並且被高度壓縮。
濾鏡接受以下選項
- length
設定用於將音訊分割成相等長度片段的視窗長度,單位為秒。預設值為 3 秒。
8.85 dynaudnorm
動態音訊正規化器 (Dynamic Audio Normalizer)。
此濾波器對輸入音訊應用一定量的增益,以使其峰值幅度達到目標水平(例如 0 dBFS)。但是,與更「簡單」的正規化演算法相比,動態音訊正規化器會*動態地*重新調整輸入音訊的增益因子。這允許對音訊的「安靜」部分應用額外增益,同時避免「響亮」部分的失真或削波 (clipping)。換句話說:動態音訊正規化器將「均勻化」安靜和響亮部分的音量,從某種意義上說,每個部分的音量都被帶到相同的目標水平。但是請注意,動態音訊正規化器在實現此目標時*沒有*應用「動態範圍壓縮」。它將保留音訊檔案每個部分*內* 100% 的動態範圍。
- framelen, f
設定幀長度,單位為毫秒。範圍從 10 到 8000 毫秒。預設值為 500 毫秒。動態音訊正規化器以小塊處理輸入音訊,稱為幀。這是必需的,因為峰值幅度對於僅單個樣本值沒有意義。相反,我們需要確定連續樣本值序列的峰值幅度。雖然「標準」正規化器只會使用完整檔案的峰值幅度,但動態音訊正規化器會單獨確定每個幀的峰值幅度。幀的長度以毫秒為單位指定。預設情況下,動態音訊正規化器使用 500 毫秒的幀長度,這已被發現對於大多數檔案都能提供良好的結果。請注意,幀的確切長度(以樣本數為單位)將根據個別輸入音訊檔案的取樣率自動確定。
- gausssize, g
設定高斯濾波器視窗大小。範圍從 3 到 301,必須為奇數。預設值為 31。動態音訊正規化器最重要的參數可能是高斯平滑濾波器的
視窗大小
。濾波器的視窗大小以幀為單位指定,以當前幀為中心。為了簡單起見,這必須是一個奇數。因此,預設值 31 會考慮到當前幀,以及前 15 個幀和後 15 個幀。使用較大的視窗會產生更強的平滑效果,從而減少增益變化,即較慢的增益適應。相反,使用較小的視窗會產生較弱的平滑效果,從而產生更多的增益變化,即更快的增益適應。換句話說,您越增加此值,動態音訊正規化器的行為就越像「傳統」正規化濾波器。相反,您越減少此值,動態音訊正規化器的行為就越像動態範圍壓縮器。- peak, p
設定目標峰值。這指定正規化音訊輸入的最高允許幅度水平。此濾波器將嘗試盡可能接近目標峰值幅度,但同時它也確保正規化訊號永遠不會超過峰值幅度。幀的最大本地增益因子直接由目標峰值幅度施加。預設值為 0.95,因此保留了 5%* 的動態餘裕 (headroom)。不建議超過此值。
- maxgain, m
設定最大增益因子。範圍從 1.0 到 100.0。預設值為 10.0。動態音訊正規化器確定每個輸入幀的最大可能(本地)增益因子,即不會導致削波 (clipping) 或失真的最大增益因子。最大增益因子由幀的最高幅度樣本確定。但是,動態音訊正規化器還將幀的最大增益因子限制在預定的(全域)最大增益因子內。這樣做的目的是為了避免在「靜音」或幾乎靜音的幀中出現過大的增益因子。預設情況下,最大增益因子為 10.0。對於大多數輸入,預設值應該足夠,通常不建議增加此值。但是,對於整體音量水平極低的輸入,可能有必要允許更高的增益因子。但是請注意,動態音訊正規化器並非簡單地應用「硬」閾值(即,切斷高於閾值的值)。相反,將應用「S 型」閾值函數。這樣,增益因子將平滑地接近閾值,但永遠不會超過該值。
- targetrms, r
設定目標 RMS。範圍從 0.0 到 1.0。預設值為 0.0 - 停用。預設情況下,動態音訊正規化器執行「峰值」正規化。這表示每個幀的最大本地增益因子僅由幀的最高幅度樣本定義。這樣,樣本可以被盡可能地放大,而不會超過最大訊號水平,即不會削波 (clipping)。但是,可選地,動態音訊正規化器也可以考慮幀的均方根值 (root mean square),縮寫為 RMS。在電機工程中,RMS 通常用於確定時變訊號的功率。因此,人們認為 RMS 比僅查看訊號的峰值幅度更能近似「感知響度」。因此,通過將所有幀調整為恆定的 RMS 值,可以建立均勻的「感知響度」。如果已指定目標 RMS 值,則幀的本地增益因子被定義為將導致該 RMS 值的因子。但是請注意,最大本地增益因子仍然受到幀的最高幅度樣本的限制,以防止削波 (clipping)。
- coupling, n
啟用聲道耦合 (channels coupling)。預設為啟用。預設情況下,動態音訊正規化器將所有聲道放大相同的量。這表示相同的增益因子將應用於所有聲道,即最大可能的增益因子由「最響亮」的聲道確定。但是,在某些錄音中,不同聲道的音量可能會不均勻,例如,一個聲道可能比其他聲道「安靜」。在這種情況下,可以使用此選項停用聲道耦合。這樣,增益因子將針對每個聲道獨立確定,僅取決於個別聲道的最高幅度樣本。這允許協調不同聲道的音量。
- correctdc, c
啟用直流偏移校正 (DC bias correction)。預設為停用。音訊訊號(在時域中)是樣本值序列。在動態音訊正規化器中,這些樣本值以 -1.0 到 1.0 的範圍表示,而與原始輸入格式無關。通常,音訊訊號或「波形」應以零點為中心。這表示如果我們計算檔案中或單個幀中所有樣本的平均值,則結果應為 0.0 或至少非常接近該值。但是,如果平均值與 0.0 有顯著偏差,無論是正方向還是負方向,這都稱為直流偏移或 DC 偏移。由於直流偏移顯然是不希望有的,因此動態音訊正規化器提供可選的直流偏移校正。啟用直流偏移校正後,動態音訊正規化器將確定每個輸入幀的平均值或「直流校正」偏移量,並從幀的所有樣本值中減去該值,這確保了這些樣本再次以 0.0 為中心。此外,為了避免幀邊界處出現「間隙」,直流校正偏移值將在相鄰幀之間平滑插值。
- altboundary, b
啟用替代邊界模式 (alternative boundary mode)。預設為停用。動態音訊正規化器會考慮每個幀周圍的特定鄰域。這包括先前的幀以及後續的幀。但是,對於位於音訊檔案最開始和最結尾的「邊界」幀,並非所有相鄰幀都可用。特別是,對於音訊檔案中的前幾個幀,先前的幀是未知的。並且,類似地,對於音訊檔案中的最後幾個幀,後續的幀是未知的。因此,問題出現了,對於「邊界」區域中遺失的幀,應該假定哪些增益因子。動態音訊正規化器實作了兩種模式來處理這種情況。預設邊界模式假設遺失幀的增益因子正好為 1.0,從而在輸入的開始和結尾分別產生平滑的「淡入」和「淡出」。
- compress, s
設定壓縮因子。範圍從 0.0 到 30.0。預設值為 0.0。預設情況下,動態音訊正規化器不應用「傳統」壓縮。這表示訊號峰值不會被修剪,因此每個本地鄰域內將保留完整的動態範圍。但是,在某些情況下,可能希望將動態音訊正規化器的正規化演算法與更「傳統」的壓縮結合使用。為此,動態音訊正規化器提供可選的壓縮(閾值)函數。如果(且僅當)啟用壓縮功能時,所有輸入幀都將在實際正規化過程之前通過柔膝閾值函數處理。簡而言之,閾值函數將修剪所有幅度超過特定閾值的樣本。但是,動態音訊正規化器並非簡單地應用固定的閾值。相反,閾值將針對每個個別幀進行調整。通常,較小的參數會導致更強的壓縮,反之亦然。不建議使用低於 3.0 的值,因為可能會出現可聽見的失真。
- 設定視窗重疊,以視窗大小的百分比表示。允許範圍為從
50
到95
。預設值為75
%。將此設定為非常高的值會增加脈衝雜訊移除,但會使整個過程慢得多。 設定目標閾值。這指定將被正規化的音訊輸入的最低允許幅度水平。如果輸入幀音量高於此值,則幀將被正規化。否則,幀可能根本不會被正規化。預設值設定為 0,表示所有輸入幀都將被正規化。如果不想放大數位雜訊,此選項最有用。
- channels, h
指定要濾波的聲道,預設情況下會濾波所有可用的聲道。
- overlap, o
指定幀的重疊。如果設定為 0(預設值),則不進行幀重疊。使用 >0 和 <1 的值將進行不太保守的增益調整,就像當 framelen 選項設定為較小值時一樣,如果 framelen 選項值針對非零重疊進行補償,則增益調整在時間上將比零重疊情況更平滑。
- curve, v
指定峰值映射曲線表達式,該表達式將用於計算應用於幀的增益。最大輸出幀增益仍將受到此濾波器先前提及的其他選項的限制。
pulse
- 新增脈衝訊號。
預設值為
dc
。- 計算音訊串流的導數/積分。
依序套用兩個濾鏡會產生原始音訊。
- 將頻譜動態範圍控制器濾鏡套用於輸入音訊串流。
transfer
- 設定傳輸表達式。
表達式可以包含以下常數
- ch
目前聲道號碼
- sn
當前幀峰值
8.85.1 指令
此濾鏡支援以上所有選項作為 commands。
8.86 earwax
使音訊在耳機上更容易聆聽。
此濾波器向 44.1kHz 立體聲(即音訊 CD 格式)音訊添加「提示」,以便在耳機上聆聽時,立體聲影像從您的頭部內部(耳機的標準)移動到聽者外部和前方(喇叭的標準)。
從 SoX 移植。
8.87 equalizer
套用雙極峰值等化 (EQ) 濾波器。使用此濾波器,可以在選定頻率及其周圍增加或減少訊號水平,同時(與帶通和帶阻濾波器不同)所有其他頻率的訊號水平保持不變。
為了產生複雜的等化曲線,可以多次給定此濾波器,每次使用不同的中心頻率。
濾鏡接受以下選項
- frequency, f
設定濾波器的中心頻率,單位為 Hz。
- width_type, t
設定指定濾波器頻寬的方法。
- h
Hz
- q
Q 因子
- o
octave
- s
斜率
- k
kHz
- width, w
以 width_type 單位指定濾波器的頻寬。
- end
設定所需的增益或衰減,單位為 dB。使用正增益時請注意削波 (clipping)。
- mix, m
輸出中使用濾波訊號的量。預設值為 1。範圍介於 0 和 1 之間。
- channels, c
指定要濾波的聲道,預設情況下會濾波所有可用聲道。
- normalize, n
正規化雙二階係數,預設為停用。啟用後,它將在 DC 將幅度響應正規化為 0dB。
- transform, a
設定 IIR 濾波器的轉換類型。
- di
- dii
- tdi
- tdii
- latt
- svf
- zdf
- precision, r
設定濾波精度。
- auto
根據環繞濾波器選擇自動樣本格式。
- s16
始終使用有符號 16 位元。
- s32
始終使用有符號 32 位元。
- f32
始終使用浮點 32 位元。
- f64
始終使用浮點 64 位元。
- frequency
設定傾斜的中心頻率,單位為 Hz。預設值為 10000 Hz。
傾斜方向
8.87.1 範例
- 在 1000 Hz 衰減 10 dB,頻寬為 200 Hz
equalizer=f=1000:t=h:width=200:g=-10
- 在 1000 Hz 套用 2 dB 增益,Q 值為 1,並在 100 Hz 衰減 5 dB,Q 值為 2
equalizer=f=1000:t=q:w=1:g=2,equalizer=f=100:t=q:w=2:g=-5
8.87.2 指令
此濾波器支援以下指令
- frequency, f
變更等化器頻率。指令的語法為:「<var>frequency</var>」
- width_type, t
變更等化器 width_type。指令的語法為:「<var>width_type</var>」
- width, w
變更等化器寬度。指令的語法為:「<var>width</var>」
- end
變更等化器增益。指令的語法為:「<var>gain</var>」
- mix, m
變更等化器混音。指令的語法為:「<var>mix</var>」
8.88 extrastereo
線性地增加左右聲道之間的差異,這為播放添加某種「現場」效果。
濾鏡接受以下選項
- m
設定差異係數(預設值:2.5)。0.0 表示單聲道聲音(兩個聲道的平均值),1.0 表示聲音不變,-1.0 表示左右聲道將被交換。
- c
啟用削波 (clipping)。預設為啟用。
8.88.1 指令
此濾鏡支援以上所有選項作為 commands。
8.89 firequalizer
使用任意頻率響應套用 FIR 等化。
stages
- 增益 (gain)
設定增益曲線方程式(單位為 dB)。表達式可以包含變數
- nb_channels
已評估的頻率
- ch
目前聲道號碼
- 新增脈衝訊號。
聲道號碼,當停用多聲道評估時設定為 0
- chid
聲道 ID,請參閱 libavutil/channel_layout.h,當停用多聲道評估時設定為第一個聲道 ID
- chs
transfer
- 例如,要將每幀樣本數設定為 1234 並停用最後一幀的填充,請使用
channel_layout,請參閱 libavutil/channel_layout.h
和函數
- gain_interpolate(f)
根據 gain_entry 在頻率 f 上插值增益
- cubic_interpolate(f)
與 gain_interpolate 相同,但更平滑
此選項也可用作指令。預設值為
gain_interpolate(f)
。- gain_entry
為 gain_interpolate 函數設定增益條目。表達式可以包含函數
- entry(f, g)
以值 g 在頻率 f 處儲存增益條目
此選項也可用作指令。
- 確保音訊輸出將至少包含 10000 個樣本,如果需要,則在輸入中填充靜音
設定濾波器延遲,單位為秒。值越高表示越準確。預設值為
0.01
。- accuracy
設定濾波器準確度,單位為 Hz。值越低表示越準確。預設值為
5
。- wfunc
設定視窗函數。可接受的值為
- rectangular
矩形視窗,當增益曲線已經平滑時很有用
- hann
漢恩 (hann) 視窗(預設值)
- hamming
漢明 (hamming) 視窗
- blackman
布萊克曼 (blackman) 視窗
- nuttall3
3 項連續一階導數納塔爾 (nuttall) 視窗
- mnuttall3
最小 3 項不連續納塔爾 (nuttall) 視窗
- nuttall
4 項連續一階導數納塔爾 (nuttall) 視窗
- bnuttall
最小 4 項不連續納塔爾 (nuttall)(布萊克曼-納塔爾 (blackman-nuttall))視窗
- bharris
布萊克曼-哈里斯 (blackman-harris) 視窗
- tukey
圖基 (tukey) 視窗
- fixed
如果啟用,則使用固定數量的音訊樣本。這提高了使用大延遲進行濾波時的速度。預設為停用。
- multi
在增益上啟用多聲道評估。預設為停用。
- zero_phase
通過減去時間戳以補償延遲來啟用零相位模式。預設為停用。
- scale
設定增益使用的比例。可接受的值為
- linlin
線性頻率,線性增益
- linlog
線性頻率,對數(以 dB 為單位)增益(預設值)
- loglin
對數(在 20 Hz 為 0 的八度音階中)頻率,線性增益
- loglog
對數頻率,對數增益
- dumpfile
設定用於轉儲的檔案,適用於 gnuplot。
- dumpscale
設定 dumpfile 的比例。可接受的值與 scale 選項相同。預設值為 linlog。
- fft2
啟用使用複數 FFT 的 2 聲道迴旋積。這顯著提高了速度。預設為停用。
- min_phase
啟用最小相位脈衝響應。預設為停用。
8.89.1 範例
- 在 1000 Hz 的低通濾波器
firequalizer=gain='if(lt(f,1000), 0, -INF)'
- 在 1000 Hz 的低通濾波器,帶有 gain_entry
firequalizer=gain_entry='entry(1000,0); entry(1001, -INF)'
- 自訂等化
firequalizer=gain_entry='entry(100,0); entry(400, -4); entry(1000, -6); entry(2000, 0)'
- 具有零相位以補償延遲的更高延遲
firequalizer=delay=0.1:fixed=on:zero_phase=on
- 左聲道的低通濾波器,右聲道的高通濾波器
firequalizer=gain='if(eq(chid,1), gain_interpolate(f), if(eq(chid,2), gain_interpolate(1e6+f), 0))' :gain_entry='entry(1000, 0); entry(1001,-INF); entry(1e6+1000,0)':multi=on
8.90 flanger
對音訊套用鑲邊 (flanging) 效果。
濾鏡接受以下選項
- 確保音訊輸出將至少包含 10000 個樣本,如果需要,則在輸入中填充靜音
設定基礎延遲,單位為毫秒。範圍從 0 到 30。預設值為 0。
- 深度 (depth)
設定新增的掃頻延遲,單位為毫秒。範圍從 0 到 10。預設值為 2。
- regen
設定再生百分比(延遲訊號回饋)。範圍從 -95 到 95。預設值為 0。
- 設定心理聲學削波器的迭代次數。允許範圍為 1 到 20。預設值為 10。
設定與原始訊號混合的延遲訊號的百分比。範圍從 0 到 100。預設值為 71。
- 設定輸入增益。預設值為 0.4。
設定每秒掃頻次數 (Hz)。範圍從 0.1 到 10。預設值為 0.5。
- 形狀 (shape)
設定掃頻波形狀,可以是 <var>triangular</var> 或 <var>sinusoidal</var>。預設值為 <var>sinusoidal</var>。
- 相位 (phase)
設定多聲道的掃頻波形百分比偏移。範圍從 0 到 100。預設值為 25。
- interp
設定延遲線插值,<var>linear</var> 或 <var>quadratic</var>。預設值為 <var>linear</var>。
8.91 haas
對音訊套用哈斯 (Haas) 效果。
請注意,這最適合應用於單聲道訊號。將此濾波器應用於單聲道訊號,可以賦予其方向性並擴展其立體聲影像。
濾鏡接受以下選項
- level_in
設定輸入音量。預設值為 <var>1</var>,或 0dB
- level_out
設定輸出音量。預設值為 <var>1</var>,或 0dB。
- side_gain
設定應用於訊號側邊部分的增益。預設值為 <var>1</var>。
- middle_source
設定中間訊號源的種類。可以是以下之一
- ‘<samp>left</samp>’
選擇左聲道。
- ‘<samp>right</samp>’
選擇右聲道。
- ‘<samp>mid</samp>’
選擇立體聲影像的中間部分訊號。
- ‘<samp>side</samp>’
選擇立體聲影像的側邊部分訊號。
- middle_phase
變更中間相位。預設為停用。
- left_delay
設定左聲道延遲。預設值為 <var>2.05</var> 毫秒。
- left_balance
設定左聲道平衡。預設值為 <var>-1</var>。
- left_gain
設定左聲道增益。預設值為 <var>1</var>。
- left_phase
變更左相位。預設為停用。
- right_delay
設定右聲道延遲。預設值為 <var>2.12</var> 毫秒。
- right_balance
設定右聲道平衡。預設值為 <var>1</var>。
- right_gain
設定右聲道增益。預設值為 <var>1</var>。
- right_phase
變更右相位。預設為啟用。
8.92 hdcd
解碼高解析度相容數位 (HDCD) 數據。具有嵌入式 HDCD 代碼的 16 位元 PCM 流被擴展為 20 位元 PCM 流。
此濾波器支援 HDCD 的峰值擴展和低音量增益調整功能,並偵測瞬態濾波器標誌。
ffmpeg -i HDCD16.flac -af hdcd OUT24.flac
將此濾波器與 wav 結合使用時,請注意 wav 的預設編碼為 16 位元,因此產生的 20 位元流將被截斷回 16 位元。在濾波器後使用類似 -acodec pcm_s24le
的命令,以獲得 24 位元 PCM 輸出。
ffmpeg -i HDCD16.wav -af hdcd OUT16.wav ffmpeg -i HDCD16.wav -af hdcd -c:a pcm_s24le OUT24.wav
濾鏡接受以下選項
- disable_autoconvert
停用濾波器圖中的任何自動格式轉換或重新取樣。
- process_stereo
一起處理立體聲聲道。如果聲道之間的 target_gain 不匹配,則視為無效並使用最後一個有效的 target_gain。
- cdt_ms
設定代碼偵測計時器週期,單位為毫秒。
- force_pe
即使未發出 PE 訊號,也始終擴展高於 -3dBFS 的峰值。
- analyze_mode
用純音取代音訊並調整幅度以指示解碼過程的某些特定方面。輸出檔案可以與原始檔案一起載入音訊編輯器中,以協助分析。
analyze_mode=pe:force_pe=true
可用於查看 PE 水平以上的所有樣本。模式為
- ‘<samp>0, off</samp>’
停用
- ‘<samp>1, lle</samp>’
每個樣本的增益調整水平
- ‘<samp>2, pe</samp>’
發生峰值擴展的樣本
- ‘<samp>3, cdt</samp>’
代碼偵測計時器處於活動狀態的樣本
- ‘<samp>4, tgm</samp>’
聲道之間的目標增益不匹配的樣本
8.93 headphone
套用頭部相關傳輸函數 (HRTF) 以在使用者周圍創建虛擬喇叭,以便通過耳機進行雙耳聆聽。HRIR 通過額外的流提供,每個聲道需要一個立體聲輸入流。
濾鏡接受以下選項
- block_size, b
設定用於迴旋積的輸入流映射。參數是以「|」分隔的聲道名稱列表,順序與它們作為濾波器的額外流輸入給出的順序相同。這也指定了輸入流的數量。輸入流的數量必須不小於第一個流中的聲道數加一。
- 增益 (gain)
設定應用於音訊的增益。值以 dB 為單位。預設值為 0。
- 將第二個聲道延遲 500 個樣本,將第三個聲道延遲 700 個樣本,並保持第一個聲道(和可能存在的任何其他聲道)不變。
設定處理類型。可以是 <var>time</var> 或 <var>freq</var>。<var>time</var> 是在時域中處理音訊,速度較慢。<var>freq</var> 是在頻域中處理音訊,速度較快。預設值為 <var>freq</var>。
- lfe
設定 LFE 聲道的自訂增益。值以 dB 為單位。預設值為 0。
- size
設定幀大小,單位為樣本數,將一次處理。預設值為 <var>1024</var>。允許範圍為 1024 到 96000。
- hrir
設定 hrir 流的格式。預設值為 <var>stereo</var>。替代值為 <var>multich</var>。如果值設定為 <var>stereo</var>,則額外流的數量應大於或等於第一個輸入流中的輸入聲道數。此外,每個額外流應具有立體聲聲道數。如果值設定為 <var>multich</var>,則額外流的數量應正好為一個。此外,額外流的輸入聲道數應等於或大於第一個輸入流的聲道數的兩倍。
8.93.1 範例
- 完整範例,使用 wav 檔案作為係數,並使用 amovie 濾波器進行 7.1 降混,每個 amovie 濾波器使用具有 IR 係數的立體聲檔案作為輸入。這些檔案提供每個虛擬喇叭位置的係數
ffmpeg -i input.wav -filter_complex "amovie=azi_270_ele_0_DFC.wav[sr];amovie=azi_90_ele_0_DFC.wav[sl];amovie=azi_225_ele_0_DFC.wav[br];amovie=azi_135_ele_0_DFC.wav[bl];amovie=azi_0_ele_0_DFC.wav,asplit[fc][lfe];amovie=azi_35_ele_0_DFC.wav[fl];amovie=azi_325_ele_0_DFC.wav[fr];[0:a][fl][fr][fc][lfe][bl][br][sl][sr]headphone=FL|FR|FC|LFE|BL|BR|SL|SR" output.wav
- 完整範例,使用 wav 檔案作為係數,並使用 amovie 濾波器進行 7.1 降混,但現在採用 <var>multich</var> <var>hrir</var> 格式。
ffmpeg -i input.wav -filter_complex "amovie=minp.wav[hrirs];[0:a][hrirs]headphone=map=FL|FR|FC|LFE|BL|BR|SL|SR:hrir=multich" output.wav
8.94 highpass
套用 3dB 點頻率的高通濾波器。濾波器可以是單極或雙極(預設值)。濾波器滾降為每極每八度音程 6dB(每極每十年 20dB)。
濾鏡接受以下選項
- frequency, f
設定頻率,單位為 Hz。預設值為 3000。
- poles, p
end_pts
- width_type, t
設定指定濾波器頻寬的方法。
- h
Hz
- q
Q 因子
- o
octave
- s
斜率
- k
kHz
- width, w
以 width_type 單位指定濾波器的頻寬。僅適用於雙極濾波器。預設值為 0.707q,並提供巴特沃斯 (Butterworth) 響應。
- mix, m
輸出中使用濾波訊號的量。預設值為 1。範圍介於 0 和 1 之間。
- channels, c
指定要濾波的聲道,預設情況下會濾波所有可用聲道。
- normalize, n
正規化雙二階係數,預設為停用。啟用後,它將在 DC 將幅度響應正規化為 0dB。
- transform, a
設定 IIR 濾波器的轉換類型。
- di
- dii
- tdi
- tdii
- latt
- svf
- zdf
- precision, r
設定濾波精度。
- auto
根據環繞濾波器選擇自動樣本格式。
- s16
始終使用有符號 16 位元。
- s32
始終使用有符號 32 位元。
- f32
始終使用浮點 32 位元。
- f64
始終使用浮點 64 位元。
- frequency
設定傾斜的中心頻率,單位為 Hz。預設值為 10000 Hz。
傾斜方向
8.94.1 指令
此濾波器支援以下指令
- frequency, f
變更高通濾波器頻率。指令的語法為:「<var>frequency</var>」
- width_type, t
變更高通濾波器 width_type。指令的語法為:「<var>width_type</var>」
- width, w
變更高通濾波器寬度。指令的語法為:「<var>width</var>」
- mix, m
變更高通濾波器混音。指令的語法為:「<var>mix</var>」
8.95 join
將多個輸入流合併為一個多聲道流。
它接受以下參數
- inputs
輸入流的數量。預設值為 2。
- 請注意,當設定為非零值時,濾波器延遲將正好是這麼多樣本。
所需的輸出聲道佈局。預設值為立體聲。
- block_size, b
將聲道從輸入映射到輸出。參數是以「|」分隔的映射列表,每個映射的格式為
<var>input_idx</var>.<var>in_channel</var>-<var>out_channel</var>
。<var>input_idx</var> 是輸入流的從 0 開始的索引。<var>in_channel</var> 可以是輸入聲道的名稱(例如 FL 代表前置左聲道)或其在指定輸入流中的索引。<var>out_channel</var> 是輸出聲道的名稱。
當未明確指定映射時,濾波器將嘗試猜測映射。它通過首先嘗試找到未使用的匹配輸入聲道來完成此操作,如果失敗,則選擇第一個未使用的輸入聲道。
合併 3 個輸入(具有正確設定的聲道佈局)
ffmpeg -i INPUT1 -i INPUT2 -i INPUT3 -filter_complex join=inputs=3 OUTPUT
從 6 個單聲道流建立 5.1 輸出
ffmpeg -i fl -i fr -i fc -i sl -i sr -i lfe -filter_complex 'join=inputs=6:channel_layout=5.1:map=0.0-FL|1.0-FR|2.0-FC|3.0-SL|4.0-SR|5.0-LFE' out
8.96 ladspa
載入 LADSPA(Linux 音訊開發人員簡易外掛程式 API)外掛程式。
要啟用此濾波器的編譯,您需要使用 --enable-ladspa
配置 FFmpeg。
- file, f
指定要載入的 LADSPA 外掛程式庫的名稱。如果定義了環境變數
LADSPA_PATH
,則 LADSPA 外掛程式將在LADSPA_PATH
中以冒號分隔的列表指定的每個目錄中搜尋,否則在標準 LADSPA 路徑中搜尋,順序如下:<samp>HOME/.ladspa/lib/</samp>、<samp>/usr/local/lib/ladspa/</samp>、<samp>/usr/lib/ladspa/</samp>。- plugin, p
指定庫中的外掛程式。某些庫僅包含一個外掛程式,但其他庫包含許多外掛程式。如果未設定此項,濾波器將列出指定庫中的所有可用外掛程式。
- controls, c
設定「|」分隔的控制項列表,這些控制項是零個或多個浮點值,用於確定載入的外掛程式的行為(例如延遲、閾值或增益)。控制項需要使用以下語法定義:c0=<var>value0</var>|c1=<var>value1</var>|c2=<var>value2</var>|...,其中 <var>valuei</var> 是在第 <var>i</var> 個控制項上設定的值。或者,它們也可以使用以下語法定義:<var>value0</var>|<var>value1</var>|<var>value2</var>|...,其中 <var>valuei</var> 是在第 <var>i</var> 個控制項上設定的值。如果 <samp>controls</samp> 設定為
help
,則會印出所有可用的控制項及其有效範圍。- sample_rate, s
指定取樣率,預設值為 44100。僅在外掛程式具有零輸入時使用。
- nb_samples, n
設定每個輸出幀中每個聲道的樣本數,預設值為 1024。僅在外掛程式具有零輸入時使用。
- duration, d
設定來源音訊的最小持續時間。請參閱 <a href="ffmpeg-utils.html#time-duration-syntax">(ffmpeg-utils)ffmpeg-utils(1) 手冊中的時間持續時間章節</a>,了解接受的語法。請注意,結果持續時間可能大於指定的持續時間,因為產生的音訊始終在完整幀的末尾被剪切。如果未指定,或表示的持續時間為負數,則音訊應永久產生。僅在外掛程式具有零輸入時使用。
- latency, l
啟用延遲補償,預設為停用。僅在外掛程式具有輸入時使用。
8.96.1 範例
- 列出 amp(LADSPA 範例外掛程式)庫中的所有可用外掛程式
ladspa=file=amp
- 列出
VCF
庫中vcf_notch
外掛程式的所有可用控制項及其有效範圍ladspa=f=vcf:p=vcf_notch:c=help
- 使用
Computer Music Toolkit
(CMT) 外掛程式庫模擬低品質音訊設備ladspa=file=cmt:plugin=lofi:controls=c0=22|c1=12|c2=12
- 使用 TAP-plugins(Tom’s Audio Processing plugins)向音訊添加殘響
ladspa=file=tap_reverb:tap_reverb
- 產生白雜訊,振幅為 0.2
ladspa=file=cmt:noise_source_white:c=c0=.2
- 使用
C* Audio Plugin Suite
(CAPS) 庫中的外掛程式C* Click - Metronome
產生 20 bpm 的滴答聲ladspa=file=caps:Click:c=c1=20'
- 套用
C* Eq10X2 - Stereo 10-band equaliser
效果ladspa=caps:Eq10X2:c=c0=-48|c9=-24|c3=12|c4=2
- 使用 Steve Harris
SWH Plugins
合集中的快速前瞻限制器將音量增加 20dBladspa=fast_lookahead_limiter_1913:fastLookaheadLimiter:20|0|2
- 使用 Steve Harris
SWH Plugins
合集中的 Multiband EQ 衰減低頻ladspa=mbeq_1197:mbeq:-24|-24|-24|0|0|0|0|0|0|0|0|0|0|0|0
- 使用
C* Audio Plugin Suite
(CAPS) 庫中的Narrower
縮減立體聲影像ladspa=caps:Narrower
- 另一個白雜訊,現在使用
C* Audio Plugin Suite
(CAPS) 庫ladspa=caps:White:.2
- 一些碎形雜訊,使用
C* Audio Plugin Suite
(CAPS) 庫ladspa=caps:Fractal:c=c1=1
- 使用
VLevel
外掛程式進行動態音量正規化ladspa=vlevel-ladspa:vlevel_mono
8.96.2 指令
此濾波器支援以下指令
- cN
修改第 <var>N</var> 個控制值。
如果指定的值無效,則會被忽略並保留先前的值。
8.97 loudnorm
EBU R128 響度正規化。包括動態和線性正規化模式。支援單次傳遞(直播、檔案)和雙次傳遞(檔案)模式。此演算法可以針對 IL、LRA 和最大真實峰值。在動態模式下,為了準確偵測真實峰值,音訊流將被升取樣至 192 kHz。使用 -ar
選項或 aresample
濾波器來明確設定輸出取樣率。
濾鏡接受以下選項
- I, i
設定整合響度目標。範圍為 -70.0 - -5.0。預設值為 -24.0。
- LRA, lra
設定響度範圍目標。範圍為 1.0 - 50.0。預設值為 7.0。
- TP, tp
設定最大真實峰值。範圍為 -9.0 - +0.0。預設值為 -2.0。
- measured_I, measured_i
輸入檔案的測量 IL。範圍為 -99.0 - +0.0。
- measured_LRA, measured_lra
輸入檔案的測量 LRA。範圍為 0.0 - 99.0。
- measured_TP, measured_tp
輸入檔案的測量真實峰值。範圍為 -99.0 - +99.0。
- measured_thresh
輸入檔案的測量閾值。範圍為 -99.0 - +0.0。
- offset
設定偏移增益。增益在真實峰值限制器之前應用。範圍為 -99.0 - +99.0。預設值為 +0.0。
- linear
通過線性縮放來源音訊進行正規化。必須指定
measured_I
、measured_LRA
、measured_TP
和measured_thresh
。目標 LRA 不應低於來源 LRA,並且整合響度的變化不應導致真實峰值超過目標 TP。如果未滿足任何這些條件,正規化模式將恢復為 <var>dynamic</var>。選項為true
或false
。預設值為true
。- dual_mono
將單聲道輸入檔案視為「雙單聲道」。如果單聲道檔案旨在在立體聲系統上播放,則其 EBU R128 測量在感知上將不正確。如果設定為
true
,則此選項將補償此效果。多聲道輸入檔案不受此選項的影響。選項為 true 或 false。預設值為 false。- print_format
設定統計資訊的列印格式。選項為 summary、json 或 none。預設值為 none。
8.98 lowpass
套用 3dB 點頻率的低通濾波器。濾波器可以是單極或雙極(預設值)。濾波器滾降為每極每八度音程 6dB(每極每十年 20dB)。
濾鏡接受以下選項
- frequency, f
設定頻率,單位為 Hz。預設值為 500。
- poles, p
end_pts
- width_type, t
設定指定濾波器頻寬的方法。
- h
Hz
- q
Q 因子
- o
octave
- s
斜率
- k
kHz
- width, w
以 width_type 單位指定濾波器的頻寬。僅適用於雙極濾波器。預設值為 0.707q,並提供巴特沃斯 (Butterworth) 響應。
- mix, m
輸出中使用濾波訊號的量。預設值為 1。範圍介於 0 和 1 之間。
- channels, c
指定要濾波的聲道,預設情況下會濾波所有可用聲道。
- normalize, n
正規化雙二階係數,預設為停用。啟用後,它將在 DC 將幅度響應正規化為 0dB。
- transform, a
設定 IIR 濾波器的轉換類型。
- di
- dii
- tdi
- tdii
- latt
- svf
- zdf
- precision, r
設定濾波精度。
- auto
根據環繞濾波器選擇自動樣本格式。
- s16
始終使用有符號 16 位元。
- s32
始終使用有符號 32 位元。
- f32
始終使用浮點 32 位元。
- f64
始終使用浮點 64 位元。
- frequency
設定傾斜的中心頻率,單位為 Hz。預設值為 10000 Hz。
傾斜方向
8.98.1 範例
- 僅對 LFE 聲道進行低通濾波,如果不存在 LFE 聲道,則不執行任何操作
lowpass=c=LFE
8.98.2 指令
此濾波器支援以下指令
- frequency, f
變更低通濾波器頻率。指令的語法為:「<var>frequency</var>」
- width_type, t
變更低通濾波器 width_type。指令的語法為:「<var>width_type</var>」
- width, w
變更低通濾波器寬度。指令的語法為:「<var>width</var>」
- mix, m
變更低通濾波器混音。指令的語法為:「<var>mix</var>」
8.99 lv2
載入 LV2(LADSPA 版本 2)外掛程式。
要啟用此濾波器的編譯,您需要使用 --enable-lv2
配置 FFmpeg。
- plugin, p
指定外掛程式 URI。您可能需要跳脫字元「:」。
- controls, c
設定「|」分隔的控制項列表,這些控制項是零個或多個浮點值,用於確定載入的外掛程式的行為(例如延遲、閾值或增益)。如果 <samp>controls</samp> 設定為
help
,則會印出所有可用的控制項及其有效範圍。- sample_rate, s
指定取樣率,預設值為 44100。僅在外掛程式具有零輸入時使用。
- nb_samples, n
設定每個輸出幀中每個聲道的樣本數,預設值為 1024。僅在外掛程式具有零輸入時使用。
- duration, d
設定來源音訊的最小持續時間。請參閱 <a href="ffmpeg-utils.html#time-duration-syntax">(ffmpeg-utils)ffmpeg-utils(1) 手冊中的時間持續時間章節</a>,了解接受的語法。請注意,結果持續時間可能大於指定的持續時間,因為產生的音訊始終在完整幀的末尾被剪切。如果未指定,或表示的持續時間為負數,則音訊應永久產生。僅在外掛程式具有零輸入時使用。
8.99.1 範例
- 套用 Calf 的低音增強器外掛程式
lv2=p=http\\\\://calf.sourceforge.net/plugins/BassEnhancer:c=amount=2
- 套用 Calf 的黑膠唱片外掛程式
lv2=p=http\\\\://calf.sourceforge.net/plugins/Vinyl:c=drone=0.2|aging=0.5
- 套用 ArtyFX 的位元破壞器外掛程式
lv2=p=http\\\\://www.openavproductions.com/artyfx#bitta:c=crush=0.3
8.99.2 指令
此濾波器支援外掛程式作為指令匯出的所有選項。
8.100 mcompand
多頻段壓縮或擴展音訊的動態範圍。
輸入音訊使用 4 階林克維茨-瑞利 (Linkwitz-Riley) IIR 分頻器分為多個頻段。這類似於喇叭的分頻器,並且在沒有壓縮器動作時會產生平坦的頻率響應。
它接受以下參數
- args
此選項語法為:attack,decay,[attack,decay..] soft-knee points crossover_frequency [delay [initial_volume [gain]]] | attack,decay ... 有關每個項目的說明,請參閱 compand 濾波器文件。
8.101 pan
以特定的增益水平混合聲道。此濾波器接受輸出聲道佈局,後跟一組聲道定義。
此濾波器也旨在有效率地重新映射音訊流的聲道。
此濾波器接受以下形式的參數:「<var>l</var>|<var>outdef</var>|<var>outdef</var>|...」
- l
輸出聲道佈局或聲道數
- outdef
輸出聲道規格,格式為:「<var>out_name</var>=[<var>gain</var>*]<var>in_name</var>[(+-)[<var>gain</var>*]<var>in_name</var>...]」
- out_name
要定義的輸出聲道,可以是聲道名稱(FL、FR 等)或聲道號碼(c0、c1 等)
- 增益 (gain)
聲道的乘法係數,1 表示音量不變
- in_name
要使用的輸入聲道,請參閱 out_name 以了解詳細資訊;無法混合命名和編號的輸入聲道
如果聲道規格中的「=」被「<」取代,則該規格的增益將被重新正規化,以使總和為 1,從而避免削波雜訊。
8.101.1 混音範例
例如,如果您想從立體聲降混到單聲道,但左聲道的因子更大
pan=1c|c0=0.9*c0+0.1*c1
自訂降混到立體聲,可自動適用於 3 聲道、4 聲道、5 聲道和 7 聲道環繞聲
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
整合的預設降混(和升混)系統(請參閱 "-ac" 選項)。
8.101.2 重新映射範例
聲道重新映射將在以下情況下有效,且僅在以下情況下有效
- 增益係數為零或一,
- 每個聲道輸出僅一個輸入,
如果所有這些條件都滿足,濾波器將通知使用者(「偵測到純聲道映射」),並使用最佳化且無損的方法進行重新映射。
例如,如果您有一個 5.1 來源,並想通過捨棄額外聲道來獲得立體聲音訊流
pan="stereo| c0=FL | c1=FR"
給定相同的來源,您也可以切換前置左聲道和前置右聲道,並保持輸入聲道佈局
pan="5.1| c0=c1 | c1=c0 | c2=c2 | c3=c3 | c4=c4 | c5=c5"
如果輸入是立體聲音訊流,您可以使用以下命令將前置左聲道靜音(並仍然保持立體聲聲道佈局)
pan="stereo|c1=c1"
仍然使用立體聲音訊流輸入,您可以將右聲道複製到前置左聲道和右聲道
pan="stereo| c0=FR | c1=FR"
8.102 replaygain
ReplayGain 掃描器濾波器。此濾波器將音訊流作為輸入並按原樣輸出。在濾波結束時,它會顯示 track_gain
和 track_peak
。
此濾波器接受以下匯出的唯讀選項
- track_gain
在流結束時匯出的軌道增益,單位為 dB。
- track_peak
在流結束時匯出的軌道峰值。
8.103 resample
轉換音訊樣本格式、取樣率和聲道佈局。不應直接使用。
8.104 rubberband
使用 librubberband 套用時間伸縮和音調偏移。
要啟用此濾波器的編譯,您需要使用 --enable-librubberband
配置 FFmpeg。
濾鏡接受以下選項
- feedback
設定速度縮放因子。
- pitch
設定音調縮放因子。
- transients
設定瞬態偵測器。可能的值為
- crisp
- mixed
- smooth
- detector
設定偵測器。可能的值為
- compound
- percussive
- soft
- 相位 (phase)
設定相位。可能的值為
- laminar
- independent
- window
設定處理視窗大小。可能的值為
- standard
- short
- long
- smoothing
設定平滑。可能的值為
- off
- on
- formant
在偏移音調時啟用共振峰保留。可能的值為
- shifted
- preserved
- pitchq
設定音調品質。可能的值為
- quality
- 設定輸入增益。預設值為 0.4。
- consistency
- 取樣率
channels
- 設定聲道。可能的值為
- apart
8.104.1 指令
此濾波器支援以下指令
- feedback
設定延遲線回饋增益值。允許範圍為 0 到 1。預設值為 0.9。
- pitch
together
8.105 sidechaincompress
變更濾波器音調縮放因子。指令的語法為:「<var>pitch</var>」
濾鏡接受以下選項
- level_in
設定輸入增益。預設值為 1。範圍介於 0.015625 和 64 之間。
- mode
設定壓縮器操作模式。可以是
upward
或downward
。預設值為downward
。- threshold
此濾波器的作用類似於普通壓縮器,但能夠使用第二個輸入訊號壓縮偵測到的訊號。它需要兩個輸入流並返回一個輸出流。第一個輸入流將根據第二個流訊號進行處理。然後,濾波後的訊號可以在處理的後續階段使用其他濾波器進行濾波。請參閱 <a href="#pan">pan</a> 和 <a href="#amerge">amerge</a> 濾波器。
- ratio
如果第二個流的訊號升至此水平以上,則會影響第一個流的增益降低。預設值為 0.125。範圍介於 0.00097563 和 1 之間。
- attack
訊號必須在臨界值之上上升多少毫秒才能開始增益衰減。預設值為 20。範圍介於 0.01 和 2000 之間。
- release
訊號必須在臨界值之下下降多少毫秒,衰減才會再次減少。預設值為 250。範圍介於 0.01 和 9000 之間。
- makeup
設定訊號在處理後將被放大多少。預設值為 1。範圍介於 1 和 64 之間。
- knee
彎曲臨界值周圍的尖銳轉折點,以更柔和地進入增益衰減。預設值為 2.82843。範圍介於 1 和 8 之間。
- link
設定訊號降低的比率。1:2 表示如果水平升高到閾值以上 4dB,則降低後將僅高出 2dB。預設值為 2。範圍介於 1 和 20 之間。
- detection
選擇側鏈流的所有聲道之間的
average
水平或側鏈流的較響亮 (maximum
) 聲道是否會影響降低。預設值為average
。- 在
peak
的情況下應採用精確訊號,還是在rms
的情況下應採用 RMS 訊號。預設值為rms
,這主要是更平滑。 level_sc
- mix
在輸出中使用壓縮訊號的程度。預設值為 1。範圍介於 0 和 1 之間。
8.105.1 指令
此濾鏡支援以上所有選項作為 commands。
8.105.2 範例
- 設定側鏈增益。預設值為 1。範圍介於 0.015625 和 64 之間。
ffmpeg -i main.flac -i sidechain.flac -filter_complex "[1:a]asplit=2[sc][mix];[0:a][sc]sidechaincompress[compr];[compr][mix]amerge"
8.106 sidechaingate
完整 ffmpeg 範例,採用 2 個音訊輸入,第一個輸入根據第二個輸入的訊號進行壓縮,然後將壓縮後的訊號與第二個輸入合併
濾鏡接受以下選項
- level_in
設定濾波前的輸入音量。預設值為 1。允許範圍為 0.015625 到 64。
- mode
設定操作模式。可以是
upward
或downward
。預設值為downward
。如果設定為upward
模式,則訊號的較高部分將被放大,向上擴展動態範圍。否則,在downward
模式下,訊號的較低部分將被減少。- 設定用於偵測濾鏡的偵測頻率(以 Hz 為單位),該偵測濾鏡用於觸發等化。預設值為 1000 Hz。允許範圍介於 2 和 1000000 Hz 之間。
設定訊號低於閾值時的增益減少量。預設值為 0.06125。允許範圍為 0 到 1。將其設定為 0 會停用減少,然後濾波器的行為類似於擴展器。
- threshold
如果訊號上升到此水平以上,則會釋放增益減少。預設值為 0.125。允許範圍為 0 到 1。
- ratio
側鏈閘的作用類似於普通(寬頻)閘,但能夠在將偵測到的訊號發送到增益降低階段之前對其進行濾波。通常,閘使用全頻訊號來偵測高於閾值的水平。例如:如果您從側鏈訊號中切斷所有低頻,則只有在高頻不夠的情況下,閘才會降低軌道的音量。使用此技術,您可以減少自然鼓的共振或消除嚴重失真吉他的悶音「隆隆聲」。它需要兩個輸入流並返回一個輸出流。第一個輸入流將根據第二個流訊號進行處理。
- attack
訊號必須高於閾值多少毫秒才能停止增益減少。預設值為 20 毫秒。允許範圍為 0.01 到 9000。
- release
訊號必須低於閾值多少毫秒才能再次增加減少量。預設值為 250 毫秒。允許範圍為 0.01 到 9000。
- makeup
設定處理後訊號的放大倍數。預設值為 1。允許範圍為 1 到 64。
- knee
使閾值周圍的尖銳轉折變彎曲,以更柔和地進入增益減少。預設值為 2.828427125。允許範圍為 1 到 8。
- detection
設定訊號降低的比率。預設值為 2。允許範圍為 1 到 9000。
- link
選擇應採用精確訊號進行偵測,還是應採用類似 RMS 的訊號。預設值為 rms。可以是 peak 或 rms。
- 在
peak
的情況下應採用精確訊號,還是在rms
的情況下應採用 RMS 訊號。預設值為rms
,這主要是更平滑。 選擇所有聲道之間的平均水平還是較響亮的聲道影響降低。預設值為 average。可以是 average 或 maximum。
8.106.1 指令
此濾鏡支援以上所有選項作為 commands。
8.107 silencedetect
設定側鏈增益。預設值為 1。範圍介於 0.015625 和 64 之間。
偵測音訊流中的靜音。
當偵測到輸入音訊音量小於或等於雜訊容限值且持續時間大於或等於最小偵測到的雜訊持續時間時,此濾波器會記錄訊息。
印出的時間和持續時間以秒為單位表示。lavfi.silence_start
或 lavfi.silence_start.X
元數據鍵設定在時間戳等於或超過偵測持續時間的第一個幀上,並且它包含靜音的第一個幀的時間戳。
濾鏡接受以下選項
- noise, n
lavfi.silence_duration
或lavfi.silence_duration.X
和lavfi.silence_end
或lavfi.silence_end.X
元數據鍵設定在靜音之後的第一個幀上。如果啟用 <samp>mono</samp>,並且每個聲道都單獨評估,則使用帶有 <code>.X</code> 後綴的鍵,並且 <code>X</code> 對應於聲道號碼。- duration, d
設定雜訊容限。可以以 dB(如果指定值後附加「dB」)或振幅比率指定。預設值為 -60dB 或 0.001。
- 設定靜音持續時間,直到通知(預設值為 2 秒)。請參閱 <a href="ffmpeg-utils.html#time-duration-syntax">(ffmpeg-utils)ffmpeg-utils(1) 手冊中的時間持續時間章節</a>,了解接受的語法。
mono, m
8.107.1 範例
- 單獨處理每個聲道,而不是組合處理。預設為停用。
silencedetect=n=-50dB:d=5
- 偵測 5 秒的靜音,雜訊容限為 -50dB
ffmpeg -i silence.mp3 -af silencedetect=noise=0.0001 -f null -
8.108 silenceremove
使用 <code>ffmpeg</code> 的完整範例,以偵測 <samp>silence.mp3</samp> 中雜訊容限為 0.0001 的靜音
濾鏡接受以下選項
- 從音訊的開頭、中間或結尾移除靜音。
start_periods
- 此值用於指示是否應在音訊開頭修剪音訊。值為零表示不應從開頭修剪靜音。當指定非零值時,它會修剪音訊,直到找到非靜音。通常,當從音訊開頭修剪靜音時,<var>start_periods</var> 將為 <code>1</code>,但可以增加到更高的值以修剪所有音訊,直到特定的非靜音週期計數。預設值為 <code>0</code>。
start_duration
- 指定在停止修剪音訊之前必須偵測到非靜音的時間量。通過增加持續時間,突發雜訊可以被視為靜音並修剪掉。預設值為 <code>0</code>。
start_threshold
- 這表示應將哪個樣本值視為靜音。對於數位音訊,值 <code>0</code> 可能很好,但對於從類比錄製的音訊,您可能希望增加值以考慮背景雜訊。可以以 dB(如果指定值後附加「dB」)或振幅比率指定。預設值為 <code>0</code>。
start_silence
- 指定在修剪後將保留的開頭靜音的最大持續時間。預設值為 0,這等於修剪所有偵測為靜音的樣本。
start_mode
- 指定多聲道音訊開頭靜音結束偵測模式。可以是 <var>any</var> 或 <var>all</var>。預設值為 <var>any</var>。使用 <var>any</var> 時,從任何聲道偵測到的任何樣本為非靜音都將觸發音訊流開頭的靜音修剪結束。使用 <var>all</var> 時,只有當從每個聲道的每個樣本都偵測為非靜音時,才會觸發音訊流開頭的靜音修剪結束,使用受限。
stop_periods
- 設定從音訊結尾修剪靜音的計數。當指定正值時,它會在找到指定的靜音週期後修剪音訊。要從檔案中間移除靜音,請指定一個負數的 <var>stop_periods</var>。然後此值被視為正值,並用於指示效果應按 <var>stop_periods</var> 指定的方式重新開始處理,使其適用於移除音訊中間的靜音週期。預設值為 <code>0</code>。
stop_duration
- 指定必須存在的靜音持續時間,之後將不再複製音訊。通過指定更長的持續時間,可以將想要的靜音保留在音訊中。預設值為 <code>0</code>。
stop_threshold
- 這與 <samp>start_threshold</samp> 相同,但用於從音訊結尾修剪靜音。可以以 dB(如果指定值後附加「dB」)或振幅比率指定。預設值為 <code>0</code>。
stop_silence
- 指定在修剪後將保留的結尾靜音的最大持續時間。預設值為 0,這等於修剪所有偵測為靜音的樣本。
stop_mode
- detection
指定多聲道音訊開始後靜音開始偵測模式。可以是 <var>any</var> 或 <var>all</var>。預設值為 <var>all</var>。使用 <var>any</var> 時,從任何聲道偵測到的任何樣本為靜音都將觸發音訊流開始後的靜音修剪開始,使用受限。使用 <var>all</var> 時,只有當從每個聲道的每個樣本都偵測為靜音時,才會觸發音訊流開始後的靜音修剪開始。
- 設定如何偵測靜音。
avg
- 移動視窗中樣本絕對值的平均值。
rms
- 移動視窗中樣本絕對值的均方根值。
peak
- 移動視窗中樣本絕對值的最大值。
median
- 移動視窗中樣本絕對值的中位數。
ptp
- 移動視窗中樣本的最大峰值與最小峰值差異的絕對值。
dev
移動視窗中樣本值的標準差。
- window
預設值為 <code>rms</code>。
- 設定用於計算視窗大小(以樣本數為單位)以偵測靜音的持續時間,單位為秒。使用 <code>0</code> 將有效地停用任何視窗化,並且僅對每個聲道使用單個樣本進行靜音偵測。在這種情況下,可能還需要將 <samp>start_silence</samp> 和/或 <samp>stop_silence</samp> 設定為非零值,同時也將 <samp>start_duration</samp> 和/或 <samp>stop_duration</samp> 設定為非零值。預設值為 <code>0.02</code>。允許範圍為 <code>0</code> 到 <code>10</code>。
timestamp
- 設定每個音訊幀輸出時間戳的處理模式。
write
- 完整時間戳重寫,僅保留第一個輸出幀的開始時間。
copy
未丟棄的幀保留與輸入音訊幀相同時間戳。
8.108.1 範例
- 預設值為 <code>write</code>。
silenceremove=start_periods=1:start_duration=5:start_threshold=0.02
- 以下範例示範如何使用此濾波器來開始錄音,該錄音不包含通常在按下錄音按鈕和表演開始之間發生的開頭延遲
silenceremove=stop_periods=-1:stop_duration=1:stop_threshold=-90dB
- 修剪從開頭到結尾遇到的所有靜音,其中音訊中有超過 1 秒的靜音
silenceremove=window=0:detection=peak:stop_mode=all:start_mode=all:stop_periods=-1:stop_threshold=0
- 使用峰值偵測,從開頭到結尾修剪所有數位靜音樣本,其中音訊中有超過 0 個數位靜音樣本,並且在流中相同位置的所有聲道中都偵測到數位靜音
silenceremove=stop_periods=-2:stop_duration=1:stop_threshold=-90dB
- 從開頭到結尾修剪每第 2 個遇到的靜音週期,其中每個靜音週期的音訊中有超過 1 秒的靜音
silenceremove=stop_periods=-2:stop_duration=1:stop_threshold=-90dB:stop_silence=0.5
- 與上面類似,但從每個修剪週期保留最多 0.5 秒的靜音
silenceremove=stop_periods=-2:stop_duration=1:stop_threshold=-90dB:stop_silence=0.5:start_periods=1:start_duration=1:start_silence=1.5:stop_threshold=-90dB
8.108.2 指令
與上面類似,但從音訊開頭保留最多 1.5 秒的靜音
8.109 sofalizer
此濾波器支援以上一些選項作為 <a href="#commands">指令</a>。
SOFAlizer 使用頭部相關傳輸函數 (HRTF) 以在使用者周圍創建虛擬喇叭,以便通過耳機進行雙耳聆聽(支援最多 9 個聲道的音訊格式)。HRTF 儲存在 SOFA 檔案中(有關資料庫,請參閱 <a href="http://www.sofacoustics.org/">http://www.sofacoustics.org/</a>)。SOFAlizer 由奧地利科學院聲學研究所 (ARI) 開發。
濾鏡接受以下選項
- 要啟用此濾波器的編譯,您需要使用 <code>--enable-libmysofa</code> 配置 FFmpeg。
sofa
- 增益 (gain)
設定應用於音訊的增益。值以 dB 為單位。預設值為 0。
- 設定用於渲染的 SOFA 檔案。
rotation
- 設定虛擬喇叭的旋轉角度,單位為度。預設值為 0。
elevation
- 設定虛擬喇叭的仰角,單位為度。預設值為 0。
radius
- 將第二個聲道延遲 500 個樣本,將第三個聲道延遲 700 個樣本,並保持第一個聲道(和可能存在的任何其他聲道)不變。
設定處理類型。可以是 <var>time</var> 或 <var>freq</var>。<var>time</var> 是在時域中處理音訊,速度較慢。<var>freq</var> 是在頻域中處理音訊,速度較快。預設值為 <var>freq</var>。
- 設定喇叭與近場 HRTF 聽者之間的距離,單位為公尺。預設值為 1。
speakers
- 設定虛擬喇叭的自訂位置。此選項的語法為:<CH> <AZIM> <ELEV>[|<CH> <AZIM> <ELEV>|...]。每個虛擬喇叭都使用簡短的聲道名稱進行描述,後跟方位角和仰角,單位為度。每個虛擬喇叭描述都以「|」分隔。例如,要覆寫前置左聲道和前置右聲道位置,請使用:「speakers=FL 45 15|FR 345 15」。具有無法辨識的聲道名稱的描述將被忽略。
設定 LFE 聲道的自訂增益。值以 dB 為單位。預設值為 0。
- lfegain
framesize
- 將每個輸入音訊串流的權重指定為以空格分隔的數字序列。如果指定的權重少於輸入數量,則最後一個權重將分配給剩餘的輸入。每個輸入的預設權重為 1。
設定自訂幀大小,單位為樣本數。預設值為 1024。允許範圍為 1024 到 96000。僅當選項「<samp>type</samp>」設定為 <var>freq</var> 時使用。
- normalize
是否應在匯入 SOFA 檔案時正規化所有 IR。預設為啟用。
- interpolate
如果精確位置不匹配,是否應將最近的 IR 與相鄰的 IR 內插。預設為停用。
- minphase
在載入 SOFA 檔案時,對所有 IR 進行最小相位處理。預設為停用。
- anglestep
設定相鄰搜尋角度步長。僅當啟用 <var>interpolate</var> 選項時使用。
8.109.1 範例
- radstep
sofalizer=sofa=/path/to/ClubFritz6.sofa:type=freq:radius=1
- 設定相鄰搜尋半徑步長。僅當啟用 <var>interpolate</var> 選項時使用。
sofalizer=sofa=/path/to/ClubFritz12.sofa:type=freq:radius=2:rotation=5
- 使用 ClubFritz6 sofa 檔案
"sofalizer=sofa=/path/to/ClubFritz6.sofa:type=freq:radius=2:speakers=FL 45|FR 315|BL 135|BR 225:gain=28"
8.110 speechnorm
使用 ClubFritz12 sofa 檔案和更大的半徑,並帶有小的旋轉
與上面類似,但具有前置左聲道、前置右聲道、後置左聲道和後置右聲道的自訂喇叭位置,以及自訂增益
濾鏡接受以下選項
- peak, p
語音正規化器 (Speech Normalizer)。
- 此濾波器根據閾值擴展或壓縮音訊樣本的每個半週期(所有高於或所有低於零且在兩個最近的過零點之間的樣本的本地集合),因此音訊在受以下選項控制的條件下達到目標峰值。
peak_target, t
- 設定擴展目標峰值。這指定正規化音訊輸入的最高允許絕對幅度水平。預設值為 0.95。允許範圍為 0.0 到 1.0。
expansion, e
- 設定視窗重疊,以視窗大小的百分比表示。允許範圍為從
50
到95
。預設值為75
%。將此設定為非常高的值會增加脈衝雜訊移除,但會使整個過程慢得多。 設定最大擴展因子。允許範圍為 1.0 到 50.0。預設值為 2.0。此選項控制樣本最大本地半週期擴展。最大擴展應使本地峰值達到目標峰值,但永遠不會超過它,並且新峰值與先前峰值之間的比例不會超過此選項值。
- compression, c
設定最大壓縮因子。允許範圍為 1.0 到 50.0。預設值為 2.0。此選項控制樣本最大本地半週期壓縮。僅當 <samp>threshold</samp> 選項設定為大於 0.0 的值時才使用此選項,在這種情況下,當本地峰值低於或等於 <samp>threshold</samp> 設定的值時,屬於該峰值半週期的所有樣本將按當前壓縮因子壓縮。
- threshold, h
設定閾值。預設值為 0.0。允許範圍為 0.0 到 1.0。此選項指定將壓縮哪些樣本的半週期,以及擴展哪些樣本的半週期。任何半週期樣本,如果其本地峰值低於或等於此選項值,將按當前壓縮因子壓縮,否則,如果大於閾值,它們將以擴展因子擴展,使其可以達到峰值目標值,但永遠不會超過它。
- channels, h
指定要濾波的聲道,預設情況下會濾波所有可用的聲道。
- raise, r
設定每個樣本半週期的擴展升高量。預設值為 0.001。允許範圍為 0.0 到 1.0。這控制擴展因子在每個新的半週期中升高速度,直到達到 <samp>expansion</samp> 值。將此選項設定得太高可能會導致失真。
- fall, f
設定每個樣本半週期的壓縮升高量。預設值為 0.001。允許範圍為 0.0 到 1.0。這控制壓縮因子在每個新的半週期中升高速度,直到達到 <samp>compression</samp> 值。
- invert, i
啟用反向濾波,預設為停用。這反轉了 <samp>threshold</samp> 選項的解釋。啟用後,任何半週期樣本,如果其本地峰值低於或等於 <samp>threshold</samp> 選項,將被擴展,否則將被壓縮。
8.110.1 指令
此濾鏡支援以上所有選項作為 commands。
8.110.2 範例
- link, l
speechnorm=e=3:r=0.00001:l=1
- 在計算應用於每個濾波聲道樣本的增益時連結聲道,預設為停用。停用後,每個濾波聲道增益計算都是獨立的,否則,當啟用此選項時,將使用每個濾波聲道的所有可能增益的最小值。
speechnorm=e=6.25:r=0.00001:l=1
- rms, m
speechnorm=e=12.5:r=0.0001:l=1
- 設定擴展目標 RMS 值。這指定正規化音訊輸入的最高允許 RMS 水平。預設值為 0.0,因此停用。允許範圍為 0.0 到 1.0。
speechnorm=e=25:r=0.0001:l=1
- 微弱且緩慢的放大
speechnorm=e=50:r=0.0001:l=1
8.111 stereotools
中等且緩慢的放大
濾鏡接受以下選項
- level_in
強烈且快速的放大
- level_out
非常強烈且快速的放大
- 極端且快速的放大
此濾波器具有一些方便的工具來管理立體聲訊號、將 M/S 立體聲錄音轉換為 L/R 訊號,同時控制參數或擴展主軌的立體聲影像。
- in_gain
設定濾波前兩個聲道的輸入音量。預設值為 1。允許範圍為 0.015625 到 64。
- out_gain
設定濾波後兩個聲道的輸出音量。預設值為 1。允許範圍為 0.015625 到 64。
- balance_in
設定兩個聲道之間的輸入平衡。預設值為 0。允許範圍為 -1 到 1。
- balance_out
設定兩個聲道之間的輸出平衡。預設值為 0。允許範圍為 -1 到 1。
- softclip
啟用柔削波 (softclipping)。產生類比失真而不是刺耳的數位 0dB 削波 (clipping)。預設為停用。
- mutel
使左聲道靜音。預設為停用。
- mode
muter
- 使右聲道靜音。預設為停用。
phasel
- 變更左聲道的相位。預設為停用。
phaser
- 變更右聲道的相位。預設為停用。
stereo_mode
- 設定立體聲模式。可用值為
‘<samp>lr>lr</samp>’
- 左/右到左/右,這是預設值。
‘<samp>lr>ms</samp>’
- 左/右到中/側。
‘<samp>ms>lr</samp>’
- 中/側到左/右。
‘<samp>lr>ll</samp>’
- 左/右到左/左。
‘<samp>lr>rr</samp>’
- 左/右到右/右。
‘<samp>lr>l+r</samp>’
- 左/右到左 + 右。
‘<samp>lr>rl</samp>’
- 左/右到右/左。
‘<samp>ms>ll</samp>’
- 中/側到左/左。
‘<samp>ms>rr</samp>’
- 中/側到右/右。
‘<samp>ms>rl</samp>’
- 中/側到右/左。
‘<samp>lr>l-r</samp>’
- 左/右到左 - 右。
slev
- 設定側邊訊號的音量。預設值為 1。允許範圍為 0.015625 到 64。
sbal
- 確保音訊輸出將至少包含 10000 個樣本,如果需要,則在輸入中填充靜音
設定側邊訊號的平衡。預設值為 0。允許範圍為 -1 到 1。
- mlev
設定中間訊號的音量。預設值為 1。允許範圍為 0.015625 到 64。
- 相位 (phase)
mpan
- 設定中間訊號的聲像 (pan)。預設值為 0。允許範圍為 -1 到 1。
base
設定單聲道和反相聲道之間的立體聲基礎。預設值為 0。允許範圍為 -1 到 1。
- delay
設定延遲,單位為毫秒,表示將左聲道從右聲道延遲多少,反之亦然。預設值為 0。允許範圍為 -20 到 20。
- sclevel
設定 S/C 音量。預設值為 1。允許範圍為 1 到 100。
- stereo_phase
設定立體聲相位,單位為度。預設值為 0。允許範圍為 0 到 360。
8.111.1 指令
此濾鏡支援以上所有選項作為 commands。
8.111.2 範例
- bmode_in, bmode_out
stereotools=mlev=0.015625
- 設定 balance_in/balance_out 選項的平衡模式。
"stereotools=mode=ms>lr"
8.112 stereowiden
可以是以下之一
濾鏡接受以下選項
- 確保音訊輸出將至少包含 10000 個樣本,如果需要,則在輸入中填充靜音
‘<samp>balance</samp>’
- 樣本數
經典平衡模式。一次衰減一個聲道。增益最多提高到 1。
- ‘<samp>amplitude</samp>’
與上面的經典模式類似,但增益最多提高到 2。
- ‘<samp>power</samp>’
等功率分佈,範圍從 -6dB 到 +6dB。
8.112.1 指令
套用類似卡拉 OK 的效果
8.113 superequalizer
將 M/S 訊號轉換為 L/R
濾鏡接受以下選項
- 此濾波器通過抑制兩個聲道共有的訊號並通過將左聲道的訊號延遲到右聲道中,反之亦然,從而增強立體聲效果,從而擴大立體聲效果。
delay
- 將左訊號延遲到右訊號中以及反之亦然的時間,單位為毫秒。預設值為 20 毫秒。
level
- 延遲訊號到右訊號中以及反之亦然的增益量。產生左訊號在右輸出中以及反之亦然的延遲效果,從而產生擴展效果。預設值為 0.3。
crossfeed
- 將左訊號以反相饋送到右訊號中。這有助於抑制單聲道。如果值為 1,它將消除兩個聲道共有的所有訊號。預設值為 0.3。
drymix
- 設定原始聲道的輸入訊號音量。預設值為 0.8。
此濾波器支援除 <code>delay</code> 之外的所有上述選項作為 <a href="#commands">指令</a>。
- 套用 18 頻段等化器。
1b
- 設定 65Hz 頻段增益。
2b
- 設定 92Hz 頻段增益。
3b
- 設定 131Hz 頻段增益。
4b
- 設定 185Hz 頻段增益。
5b
- 設定 262Hz 頻段增益。
6b
- 設定 370Hz 頻段增益。
7b
- 設定 523Hz 頻段增益。
8b
- 設定 740Hz 頻段增益。
9b
- 設定 1047Hz 頻段增益。
10b
- 設定 1480Hz 頻段增益。
11b
- 設定 2093Hz 頻段增益。
12b
- 設定 2960Hz 頻段增益。
13b
8.114 surround
設定 4186Hz 頻段增益。
14b
濾鏡接受以下選項
- 設定 5920Hz 頻段增益。
15b
請參閱 (ffmpeg-utils)ffmpeg-utils(1) 手冊中的聲道佈局章節 以了解所需的語法。
- 設定 8372Hz 頻段增益。
16b
請參閱 (ffmpeg-utils)ffmpeg-utils(1) 手冊中的聲道佈局章節 以了解所需的語法。
- level_in
設定 11840Hz 頻段增益。
- level_out
17b
- lfe
設定 16744Hz 頻段增益。
- 18b
設定 20000Hz 頻段增益。
- 套用音訊環繞升混濾波器。
此濾波器允許從音訊流產生多聲道輸出。
- chl_out
設定輸出聲道佈局。預設情況下,這是 <var>5.1</var>。
- smooth
chl_in
- 設定輸入聲道佈局。預設情況下,這是 <var>stereo</var>。
in_gain
- 設定輸入音量水平。預設情況下,這是 <var>1</var>。
out_gain
- 設定輸出音量水平。預設情況下,這是 <var>1</var>。
lfe
- 如果輸出聲道佈局具有 LFE 聲道,則啟用 LFE 聲道輸出。預設情況下,這是啟用的。
lfe_low
- 設定 LFE 低截止頻率。預設情況下,這是 <var>128</var> Hz。
lfe_high
- 設定 LFE 高截止頻率。預設情況下,這是 <var>256</var> Hz。
lfe_mode
- 設定 LFE 模式,可以是 <var>add</var> 或 <var>sub</var>。預設值為 <var>add</var>。在 <var>add</var> 模式下,LFE 聲道從輸入音訊創建並添加到輸出。在 <var>sub</var> 模式下,LFE 聲道從輸入音訊創建並添加到輸出,但所有非 LFE 輸出聲道也從輸出 LFE 聲道中減去。
smooth
- 設定時間平滑強度,用於在時間上轉換立體聲時逐漸改變因子。允許範圍為 <var>0.0</var> 到 <var>1.0</var>。使用大於 <var>0.0</var> 的 <var>focus</var> 選項值時,有助於提高輸出品質。預設值為 <var>0.0</var>。僅在此範圍內且沒有邊緣的值才有效。
angle
- 設定立體聲環繞聲轉換的角度,允許範圍為 <var>0</var> 到 <var>360</var>。預設值為 <var>90</var>。
focus
- 設定立體聲環繞聲轉換的焦點,允許範圍為 <var>-1</var> 到 <var>1</var>。預設值為 <var>0</var>。
fc_in
- 設定前置中央聲道輸入音量。預設情況下,這是 <var>1</var>。
fc_out
- 設定前置中央聲道輸出音量。預設情況下,這是 <var>1</var>。
fl_in
- 設定前置左聲道輸入音量。預設情況下,這是 <var>1</var>。
fl_out
- 設定前置左聲道輸出音量。預設情況下,這是 <var>1</var>。
fr_in
- 設定前置右聲道輸入音量。預設情況下,這是 <var>1</var>。
設定後置右聲道輸入音量。預設值為 1。
- br_out
設定後置右聲道輸出音量。預設值為 1。
- bc_in
設定後置中置聲道輸入音量。預設值為 1。
- bc_out
設定後置中置聲道輸出音量。預設值為 1。
- lfe_in
設定 LFE 輸入音量。預設值為 1。
- lfe_out
設定 LFE 輸出音量。預設值為 1。
- allx
設定立體聲影像在 X 軸上對於所有聲道的擴散使用量。允許範圍從 -1 到 15。預設值為負值 -1,因此未使用。
- ally
設定立體聲影像在 Y 軸上對於所有聲道的擴散使用量。允許範圍從 -1 到 15。預設值為負值 -1,因此未使用。
- fcx, flx, frx, blx, brx, slx, srx, bcx
設定立體聲影像在 X 軸上對於每個聲道的擴散使用量。允許範圍從 0.06 到 15。預設值為 0.5。
- fcy, fly, fry, bly, bry, sly, sry, bcy
設定立體聲影像在 Y 軸上對於每個聲道的擴散使用量。允許範圍從 0.06 到 15。預設值為 0.5。
- win_size
設定視窗大小。允許範圍從 1024 到 65536。預設大小為 4096。
- win_func
設定視窗函數。
設定叢發融合,以視窗大小的百分比表示。允許範圍為
0
到10
。預設值為2
。如果偵測為雜訊的任何兩個樣本之間的間隔小於此值,則這兩個樣本之間的任何樣本也將被偵測為雜訊。- ‘rect’
- ‘bartlett’
- ‘hann, hanning’
- ‘hamming’
- ‘blackman’
- ‘welch’
- ‘flattop’
- ‘bharris’
- ‘bnuttall’
- ‘bhann’
- ‘sine’
- ‘nuttall’
- ‘lanczos’
- ‘gauss’
- ‘tukey’
- ‘dolph’
- ‘cauchy’
- ‘parzen’
- ‘poisson’
- ‘bohman’
- ‘kaiser’
預設值為
hann
。- overlap
設定視窗重疊量。若設定為 1,將會選取建議用於所選視窗函數的重疊量。預設值為
0.5
。
8.115 tiltshelf
使用雙極性擱架式濾波器,以類似於標準高傳真音響的音調控制方式,增強或削減音訊的低頻,並削減或增強高頻。這也稱為擱架式等化 (EQ)。
濾鏡接受以下選項
- end
指定將丟棄的第一個音訊樣本的時間,即時間戳記為 end 的音訊樣本之前的音訊樣本將是輸出中的最後一個樣本。
- frequency, f
設定濾波器的中心頻率,因此可用於擴展或縮減要增強或削減的頻率範圍。預設值為
3000
Hz。- width_type, t
設定指定濾波器頻寬的方法。
- h
Hz
- q
Q 因子
- o
octave
- s
斜率
- k
kHz
- width, w
與 start 相同,不同之處在於此選項以樣本而不是秒為單位設定開始時間戳記。
- poles, p
end_pts
- mix, m
輸出中使用濾波訊號的量。預設值為 1。範圍介於 0 和 1 之間。
- channels, c
指定要濾波的聲道,預設情況下會濾波所有可用聲道。
- normalize, n
正規化雙二階係數,預設為停用。啟用後,它將在 DC 將幅度響應正規化為 0dB。
- transform, a
設定 IIR 濾波器的轉換類型。
- di
- dii
- tdi
- tdii
- latt
- svf
- zdf
- precision, r
設定濾波精度。
- auto
根據環繞濾波器選擇自動樣本格式。
- s16
始終使用有符號 16 位元。
- s32
始終使用有符號 32 位元。
- f32
始終使用浮點 32 位元。
- f64
始終使用浮點 64 位元。
- frequency
設定傾斜的中心頻率,單位為 Hz。預設值為 10000 Hz。
傾斜方向
8.115.1 指令
此濾波器支援一些選項,如同 commands。
8.116 treble, highshelf
使用雙極性擱架式濾波器,以類似於標準高傳真音響的音調控制方式,增強或削減音訊的高頻(高音)。這也稱為擱架式等化 (EQ)。
濾鏡接受以下選項
- end
給出在約 22 kHz 和奈奎斯特頻率中較低者的增益。其可用範圍約為 -20(大幅削減)到 +20(大幅增強)。使用正增益時請注意削波。
- frequency, f
設定濾波器的中心頻率,因此可用於擴展或縮減要增強或削減的頻率範圍。預設值為
3000
Hz。- width_type, t
設定指定濾波器頻寬的方法。
- h
Hz
- q
Q 因子
- o
octave
- s
斜率
- k
kHz
- width, w
與 start 相同,不同之處在於此選項以樣本而不是秒為單位設定開始時間戳記。
- poles, p
end_pts
- mix, m
輸出中使用濾波訊號的量。預設值為 1。範圍介於 0 和 1 之間。
- channels, c
指定要濾波的聲道,預設情況下會濾波所有可用聲道。
- normalize, n
正規化雙二階係數,預設為停用。啟用後,它將在 DC 將幅度響應正規化為 0dB。
- transform, a
設定 IIR 濾波器的轉換類型。
- di
- dii
- tdi
- tdii
- latt
- svf
- zdf
- precision, r
設定濾波精度。
- auto
根據環繞濾波器選擇自動樣本格式。
- s16
始終使用有符號 16 位元。
- s32
始終使用有符號 32 位元。
- f32
始終使用浮點 32 位元。
- f64
始終使用浮點 64 位元。
- frequency
設定傾斜的中心頻率,單位為 Hz。預設值為 10000 Hz。
傾斜方向
8.116.1 指令
此濾波器支援以下指令
- frequency, f
變更高音頻率。指令的語法為:「frequency」。
- width_type, t
變更高音寬度類型。指令的語法為:「width_type」。
- width, w
變更高音寬度。指令的語法為:「width」。
- end
變更高音增益。指令的語法為:「gain」。
- mix, m
變更高音混合。指令的語法為:「mix」。
8.117 tremolo
正弦波幅度調變。
濾鏡接受以下選項
- nb_channels
調變頻率,單位為赫茲。次諧波範圍(20 赫茲或更低)內的調變頻率將產生顫音效果。此濾波器也可作為環狀調變器使用,方法是指定高於 20 赫茲的調變頻率。範圍為 0.1 - 20000.0。預設值為 5.0 赫茲。
- d
調變深度,以百分比表示。範圍為 0.0 - 1.0。預設值為 0.5。
8.118 vibrato
正弦波相位調變。
濾鏡接受以下選項
- nb_channels
調變頻率,單位為赫茲。範圍為 0.1 - 20000.0。預設值為 5.0 赫茲。
- d
調變深度,以百分比表示。範圍為 0.0 - 1.0。預設值為 0.5。
8.119 virtualbass
套用音訊虛擬低音濾波器。
此濾波器接受立體聲輸入,並產生具有 LFE (2.1) 聲道輸出的立體聲。新產生的 LFE 聲道具有增強的虛擬低音,最初是從兩個立體聲聲道獲得的。此濾波器輸出前置左聲道和前置右聲道,與立體聲輸入中提供的聲道相同,未經變更。
濾鏡接受以下選項
- 訊號達到 Min_level 或 Max_level 的次數(不是樣本數)
設定虛擬低音截止頻率。預設值為 250 赫茲。允許範圍從 100 到 500 赫茲。
- 強度 (strength)
設定虛擬低音強度。允許範圍從 0.5 到 3。預設值為 3。
8.120 volume
調整輸入音訊音量。
它接受以下參數
- 音量 (volume)
設定音訊音量表達式。
輸出值會被削波到最大值。
輸出音訊音量由以下關係式給出
output_volume = volume * input_volume
volume 的預設值為「1.0」。
- precision
此參數代表數學精度。
它決定了允許哪些輸入取樣格式,這會影響音量縮放的精度。
- fixed
8 位元定點;這將輸入取樣格式限制為 U8、S16 和 S32。
- float
32 位元浮點;這將輸入取樣格式限制為 FLT。(預設)
- double
64 位元浮點;這將輸入取樣格式限制為 DBL。
- replaygain
選擇在輸入訊框中遇到 ReplayGain 邊資訊時的行為。
- drop
移除 ReplayGain 邊資訊,忽略其內容(預設)。
- ignore
忽略 ReplayGain 邊資訊,但將其留在訊框中。
- track
如果存在,優先使用音軌增益。
- album
如果存在,優先使用專輯增益。
- replaygain_preamp
以前置放大增益 (dB) 套用至選定的 replaygain 增益。
replaygain_preamp 的預設值為 0.0。
- replaygain_noclip
透過限制套用的增益來防止削波。
replaygain_noclip 的預設值為 1。
- eval
設定評估音量表達式的時機。
設定叢發融合,以視窗大小的百分比表示。允許範圍為
0
到10
。預設值為2
。如果偵測為雜訊的任何兩個樣本之間的間隔小於此值,則這兩個樣本之間的任何樣本也將被偵測為雜訊。- 「once」
僅在濾波器初始化期間或傳送「volume」指令時評估表達式一次
- 「frame」
針對每個輸入訊框評估表達式
預設值為「once」。
音量表達式可以包含以下參數。
- n
訊框編號(從零開始)
- 將頻譜動態範圍控制器濾鏡套用於輸入音訊串流。
transfer
- nb_consumed_samples
濾波器消耗的取樣數
- 設定輸出取樣率。預設值為 44100 Hz。
nb_samples
- pos
檔案中原始訊框位置;已棄用,請勿使用
- pts
frame_pts
- sample_rate
目前聲道號碼
- startpts
串流開始時的 PTS
- startt
串流開始時的時間
- 設定傳輸表達式。
frame_time
- tb
時間戳記時基
- 音量 (volume)
val
請注意,當 eval 設定為「once」時,只有 sample_rate 和 tb 變數可用,所有其他變數都將評估為 NAN。
8.120.1 指令
此濾波器支援以下指令
- 音量 (volume)
修改音量表達式。指令接受與對應選項相同的語法。
如果指定的表達式無效,則會保持其目前值。
8.120.2 範例
- volume
volume=volume=0.5 volume=volume=1/2 volume=volume=-6.0206dB
在以上所有範例中,volume 的具名鍵可以省略,例如在
volume=0.5
- volume
volume=volume=6dB:precision=fixed
- volume
volume='if(lt(t,10),1,max(1-(t-10)/5,0))':eval=frame
8.121 volumedetect
detect
此濾波器沒有參數。它僅支援 16 位元帶號整數取樣,因此在需要時會轉換輸入。當輸入串流結束時,音量統計資訊將會印在記錄中。
特別是,它將顯示平均音量(均方根)、最大音量(以每個取樣為基礎)以及已註冊音量值的直方圖的開頭(從最大值到累積的 1/1000 取樣)。
所有音量均以分貝為單位,相對於最大 PCM 值。
8.121.1 範例
以下是輸出的摘錄
[Parsed_volumedetect_0 0xa23120] mean_volume: -27 dB [Parsed_volumedetect_0 0xa23120] max_volume: -4 dB [Parsed_volumedetect_0 0xa23120] histogram_4db: 6 [Parsed_volumedetect_0 0xa23120] histogram_5db: 62 [Parsed_volumedetect_0 0xa23120] histogram_6db: 286 [Parsed_volumedetect_0 0xa23120] histogram_7db: 1042 [Parsed_volumedetect_0 0xa23120] histogram_8db: 2551 [Parsed_volumedetect_0 0xa23120] histogram_9db: 4609 [Parsed_volumedetect_0 0xa23120] histogram_10db: 8409
這表示
- 均方能量約為 -27 dB,或 10^-2.7。
- 最大取樣為 -4 dB,或更精確地說,介於 -4 dB 和 -5 dB 之間。
- 有 6 個取樣在 -4 dB,62 個在 -5 dB,286 個在 -6 dB,依此類推。
換句話說,將音量提高 +4 dB 不會造成任何削波,將其提高 +5 dB 會導致 6 個取樣削波,依此類推。
9 音訊來源
以下是目前可用的音訊來源的說明。
9.1 abuffer
緩衝音訊訊框,並使其可用於濾波器鏈。
此來源主要用於程式化用途,特別是透過 libavfilter/buffersrc.h 中定義的介面。
它接受以下參數
- time_base
將用於提交訊框的時間戳記的時基。它必須是浮點數或 numerator/denominator 形式。
- sample_rate
sample_rate
- sample_fmt
輸入音訊緩衝區的取樣格式。取樣格式名稱或其在 libavutil/samplefmt.h 中來自列舉 AVSampleFormat 的對應整數表示法
- 請注意,當設定為非零值時,濾波器延遲將正好是這麼多樣本。
channel_layout
- 取樣率
channels
9.1.1 範例
abuffer=sample_rate=44100:sample_fmt=s16p:channel_layout=stereo
將指示來源接受 44100Hz 的平面 16 位元帶號立體聲。由於名稱為「s16p」的取樣格式對應於數字 6,而「stereo」聲道佈局對應於值 0x3,因此這等效於
abuffer=sample_rate=44100:sample_fmt=6:channel_layout=0x3
9.2 aevalsrc
abuffer
abuffer
abuffer
- exprs
設定每個獨立聲道的「|」分隔表達式清單。如果未指定 channel_layout 選項,則選定的聲道佈局取決於提供的表達式數量。否則,最後指定的表達式將套用於剩餘的輸出聲道。
- channel_layout, c
設定聲道佈局。指定佈局中的聲道數目必須等於指定的表達式數目。
- duration, d
設定來源音訊的最小持續時間。請參閱 (ffmpeg-utils)ffmpeg-utils(1) 手冊中的「時間持續時間」章節,以取得接受的語法。請注意,產生的持續時間可能大於指定的持續時間,因為產生的音訊始終在完整訊框的末尾被截斷。
如果未指定,或表達的持續時間為負數,則音訊應永遠產生。
- nb_samples, n
設定每個輸出訊框每個聲道的取樣數,預設為 1024。
- sample_rate, s
指定取樣率,預設為 44100。
exprs
- n
已評估樣本的編號,從 0 開始
- 設定傳輸表達式。
t
- s
目前聲道號碼
9.2.1 範例
- silence
aevalsrc=0
- sine
aevalsrc="sin(440*2*PI*t):s=8000"
- sine
aevalsrc="sin(420*2*PI*t)|cos(430*2*PI*t):c=FC|BC"
- anoisesrc
aevalsrc="-2+random(0)"
- amovie
aevalsrc="sin(10*2*PI*t)*sin(880*2*PI*t)"
- binauralbeat
aevalsrc="0.1*sin(2*PI*(360-2.5/2)*t) | 0.1*sin(2*PI*(360+2.5/2)*t)"
9.3 afdelaysrc
afir_coeffs
產生的串流可以與 afir 濾波器搭配使用,以濾波音訊訊號。
濾鏡接受以下選項
- delay, d
設定分數延遲。預設值為 0。
- model, m
設定取樣率,預設為 44100。
- nb_samples, n
設定每個訊框的取樣數。預設值為 1024。
- taps, t
設定輸出音訊串流中濾波器係數的數量。預設值為 0。
- channel_layout, c
channel_layout
9.4 afireqsrc
aequalizer_coeffs
產生的串流可以與 afir 濾波器搭配使用,以濾波音訊訊號。
濾鏡接受以下選項
- preset, p
設定等化器預設。預設預設為
flat
。可用的預設為
- 「custom」
- 「flat」
- 「acoustic」
- 「bass」
- 「beats」
- 「classic」
- 「clear」
- 「deep bass」
- 「dubstep」
- 「electronic」
- 「hard-style」
- 「hip-hop」
- 「jazz」
- 「metal」
- 「movie」
- 「pop」
- 「r&b」
- 「rock」
- 「vocal booster」
- gains, g
設定每個頻段的自訂增益。僅當預設選項設定為
custom
時使用。增益以空格分隔,每個增益都以 dBFS 設定。預設值為0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
。- bands, b
設定自訂頻段,從中設定自訂等化器增益。這必須嚴格遞增。僅當預設選項設定為
custom
時使用。頻段以空格分隔,每個頻段代表頻率,單位為赫茲。預設值為25 40 63 100 160 250 400 630 1000 1600 2500 4000 6300 10000 16000 24000
。- taps, t
taps, t
- model, m
sample_rate, r
- nb_samples, n
frame_size, fs
- interp, i
設定 FIR 等化器係數的內插法。可以是
linear
或cubic
。- phase, h
設定 FIR 濾波器的相位類型。可以是
linear
或min
:最小相位。預設為最小相位濾波器。
9.5 afirsrc
afrequency_coeffs
產生的串流可以與 afir 濾波器搭配使用,以濾波音訊訊號。
濾鏡接受以下選項
- taps, t
taps, t
- frequency, f
frequency, f
- magnitude, m
設定由 frequency 設定的每個頻率點的幅度值。值的數量必須與頻率點的數量相同。值以空格分隔。
- phase, p
設定由 frequency 設定的每個頻率點的相位值。值的數量必須與頻率點的數量相同。值以空格分隔。
- model, m
sample_rate, r
- nb_samples, n
frame_size, fs
- win_func, w
設定視窗函數。預設為 blackman。
9.6 anullsrc
anullsrc
abuffer
- channel_layout, cl
-
Specifies the channel layout, and can be either an integer or a string representing a channel layout. The default value of channel_layout is "stereo".
Check the channel_layout_map definition in libavutil/channel_layout.c for the mapping between strings and channel layout values.
- model, m
sample_rate, r
- nb_samples, n
frame_size, fs
- duration, d
duration, d
如果未指定,或表達的持續時間為負數,則音訊應永遠產生。
9.6.1 範例
- anullsrc
anullsrc=r=48000:cl=4
- anullsrc
anullsrc=r=48000:cl=mono
anullsrc
9.7 flite
flite
若要啟用此濾波器的編譯,您需要使用 --enable-libflite
配置 FFmpeg。
請注意,2.0 之前的 flite 程式庫版本不是安全執行緒。
濾鏡接受以下選項
- list_voices
若設定為 1,列出可用語音的名稱並立即結束。預設值為 0。
- nb_samples, n
frame_size, fs
- textfile
設定包含要說出的文字的檔案名稱。
- text
設定要說出的文字。
- voice, v
設定用於語音合成的語音。預設值為
kal
。另請參閱 list_voices 選項。
9.7.1 範例
- flite
flite=textfile=speech.txt
- flite
flite=text='So fare thee well, poor devil of a Sub-Sub, whose commentator I am':voice=slt
- flite
ffmpeg -f lavfi -i flite=text='So fare thee well, poor devil of a Sub-Sub, whose commentator I am':voice=slt
- flite
ffplay -f lavfi flite=text='No more be grieved for which that thou hast done.'
如需有關 libflite 的更多資訊,請查看:http://www.festvox.org/flite/
9.8 anoisesrc
anoisesrc
濾鏡接受以下選項
- model, m
sample_rate, r
- amplitude, a
指定產生音訊串流的振幅 (0.0 - 1.0)。預設值為 1.0。
- duration, d
duration, d
- color, colour, c
指定雜訊的顏色。可用的雜訊顏色為白色、粉紅色、棕色、藍色、紫色和絲絨色。預設顏色為白色。
- seed, s
指定用於設定 PRNG 種子的值。
- nb_samples, n
frame_size, fs
- density
設定絲絨雜訊產生器的密度 (0.0 - 1.0),預設值為 0.05。
9.8.1 範例
- anoisesrc
anoisesrc=d=60:c=pink:r=44100:a=0.5
9.9 hilbert
hilbert_coeffs
產生的串流可以與 afir 濾波器搭配使用,以將訊號相移 90 度。
這用於許多矩陣編碼方案和分析訊號產生。此過程通常寫為乘以 i(或 j),即虛數單位。
濾鏡接受以下選項
- sample_rate, s
sample_rate, r
- taps, t
length, l
- nb_samples, n
frame_size, fs
- win_func, w
win_func, w
9.10 sinc
asinc_coeffs
產生的串流可以與 afir 濾波器搭配使用,以濾波音訊訊號。
濾鏡接受以下選項
- model, m
sample_rate, r
- nb_samples, n
frame_size, fs
- hp
設定高通頻率。預設值為 0。
- lp
設定低通頻率。預設值為 0。如果高通頻率低於低通頻率,且低通頻率高於 0,則濾波器將建立帶通濾波器係數,否則為帶拒濾波器係數。
- 相位 (phase)
phase_response, pr
- beta
設定 Kaiser 視窗 beta。
- att
設定阻帶衰減。預設值為 120dB,允許範圍從 40 到 180 dB。
- round
啟用捨入,預設為停用。
- hptaps
設定高通濾波器的抽頭數。
- lptaps
設定低通濾波器的抽頭數。
9.11 sine
asine
音訊訊號是位元精確的。
濾鏡接受以下選項
- frequency, f
frequency, f
- beep_factor, b
samples_per_frame
- model, m
sample_rate, r
- duration, d
duration, d
- samples_per_frame
frame_size, fs
pulse
- n
n
- pts
pts
- 設定傳輸表達式。
t
- tb
timebase
frame_size, fs
9.11.1 範例
- asine
sine
- asine
sine=220:4:d=5 sine=f=220:b=4:d=5 sine=frequency=220:beep_factor=4:duration=5
- asine
sine=1000:samples_per_frame='st(0,mod(n,5)); 1602-not(not(eq(ld(0),1)+eq(ld(0),3)))'
10 音訊接收器
以下是目前可用的音訊接收器的說明。
10.1 abuffersink
abuffersink
此接收器主要用於程式化用途,特別是透過 libavfilter/buffersink.h 中定義的介面或選項系統。
它接受 AVABufferSinkContext 結構的指標,該結構定義了傳入緩衝區的格式,要作為不透明參數傳遞給 avfilter_init_filter
以進行初始化。
10.2 anullsink
anullsink
11 視訊濾鏡
當您配置 FFmpeg 建置時,可以使用 --disable-filters
停用任何現有的濾波器。配置輸出將顯示您的建置中包含的視訊濾波器。
以下是目前可用的視訊濾波器的說明。
11.1 addroi
區域標記
訊框資料會保持不變地傳遞,但中繼資料會附加到訊框,指示感興趣的區域,這些區域可能會影響後續編碼的行為。可以透過多次套用濾波器來標記多個區域。
- x
區域與訊框左邊緣的距離,以像素為單位。
- y
區域與訊框頂部邊緣的距離,以像素為單位。
- f
w
- h
h
參數 x、y、w 和 h 是表達式,可能包含以下變數
- iw
輸入訊框的寬度。
- ih
輸入訊框的高度。
- qoffset
在區域內套用的量化偏移。
這必須是 -1 到 +1 範圍內的實數值。值為零表示品質沒有變化。負值要求更好的品質(更少的量化),而正值要求更差的品質(更多的量化)。
範圍經過校準,因此極端值表示最大的可能偏移 - 如果訊框的其餘部分以最差的可能品質編碼,則 -1 的偏移表示此區域應始終以最佳的可能品質編碼。然後,中間值會以某種編解碼器相關的方式內插。
例如,在 10 位元 H.264 中,量化參數在 -12 到 51 之間變化。因此,典型的 qoffset 值 -1/10 表示此區域應以比訊框其餘部分好約十分之一的完整範圍的 QP 編碼。因此,如果訊框的大部分要以約 30 的 QP 編碼,則此區域將獲得約 24 的 QP(偏移約為 -1/10 * (51 - -12) = -6.3)。-1 的極端值表示此區域應以最佳的可能品質編碼,而與訊框其餘部分的處理方式無關 - 也就是說,應以 -12 的 QP 編碼。
- clear
若設定為 true,則在新增新區域之前,移除在訊框上標記的任何現有感興趣區域。
11.1.1 範例
- 區域標記
addroi=iw/4:ih/4:iw/2:ih/2:-1/10
- 區域標記
addroi=0:0:100:ih:+1/5
11.2 alphaextract
alphaextract
11.3 alphamerge
alphamerge
alphamerge
movie=in_alpha.mkv [alpha]; [in][alpha] alphamerge [out]
11.4 amplify
amplify
此濾波器還能夠拉伸/壓縮音訊資料以使其與時間戳記匹配,或注入靜音/剪切音訊以使其與時間戳記匹配,執行兩者的組合或兩者都不執行。
- 設定虛擬喇叭的仰角,單位為度。預設值為 0。
radius
- factor
設定放大差異的係數。預設值為 2。允許範圍從 0 到 65535。
- threshold
threshold
- tolerance
low
- low
high
- high
planes
- planes
planes
11.4.1 指令
amplify
- factor
- threshold
- tolerance
- low
- high
- planes
11.5 ass
ass
ass
- shaping
設定塑形引擎
提升高於偵測臨界值的頻率。
- 「auto」
預設 libass 塑形引擎,是可用的最佳引擎。
- 「simple」
快速、字型無關的塑形器,只能進行替換
- 「complex」
較慢的塑形器,使用 OpenType 進行替換和定位
預設值為
auto
。
11.6 atadenoise
atadenoise
濾鏡接受以下選項
- 0a
設定第 1 個平面的閾值 A。預設值為 0.02。有效範圍為 0 到 0.3。
- 0b
設定第 1 個平面的閾值 B。預設值為 0.04。有效範圍為 0 到 5。
- 1a
設定第 2 個平面的閾值 A。預設值為 0.02。有效範圍為 0 到 0.3。
- 此濾波器通過抑制兩個聲道共有的訊號並通過將左聲道的訊號延遲到右聲道中,反之亦然,從而增強立體聲效果,從而擴大立體聲效果。
1b
- 2a
設定第 3 個平面的閾值 A。預設值為 0.02。有效範圍為 0 到 0.3。
- 將左訊號延遲到右訊號中以及反之亦然的時間,單位為毫秒。預設值為 20 毫秒。
2b
閾值 A 設計用於對輸入訊號的突發變化做出反應,而閾值 B 設計用於對輸入訊號的持續變化做出反應。
- s
size
- sn
planes
- a
設定濾波器將用於平均的演算法變體。預設值為
p
平行。或者,可以設定為s
序列。平行可能比序列更快,而反之則不然。平行將在第一個變化大於閾值時提前中止,而序列將繼續處理訊框的另一側(如果它們等於或低於閾值)。
- 0s
- 1s
- 2s
atadenoise
11.6.1 指令
atadenoise
11.7 avgblur
avgblur
濾鏡接受以下選項
- sizeX
設定水平半徑大小。
- planes
planes
- sizeY
設定垂直半徑大小,如果為零,則與
sizeX
相同。預設值為0
。
11.7.1 指令
avgblur
如果指定的表達式無效,則會保持其目前值。
11.8 backgroundkey
backgroundkey
stages
- threshold
delta
- similarity
similarity
- blend
blend
11.8.1 指令
此濾鏡支援以上所有選項作為 commands。
11.9 bbox
bbox
bbox
stages
- min_val
設定最小亮度值。預設值為
16
。
11.9.1 指令
此濾鏡支援以上所有選項作為 commands。
11.10 bilateral
bilateral
濾鏡接受以下選項
- sigmaS
設定高斯函數的 sigma 以計算空間權重。允許範圍為 0 到 512。預設值為 0.1。
- sigmaR
設定高斯函數的 sigma 以計算範圍權重。允許範圍為 0 到 1。預設值為 0.1。
- planes
planes
11.10.1 指令
此濾鏡支援以上所有選項作為 commands。
11.11 bilateral_cuda
bilateral_cuda
濾鏡接受以下選項
- sigmaS
sigmaS
- sigmaR
sigmaR
- window_size
設定雙邊函數的視窗大小,以決定要迴圈處理的鄰居數目。如果輸入的數字是偶數,則會自動新增一個。允許範圍為 1 到 255。預設值為 1。
11.11.1 範例
- bilateral_cuda
./ffmpeg -v verbose \ -hwaccel cuda -hwaccel_output_format cuda -i input.mp4 \ -init_hw_device cuda \ -filter_complex \ " \ [0:v]scale_cuda=format=yuv444p[scaled_video]; [scaled_video]bilateral_cuda=window_size=9:sigmaS=3.0:sigmaR=50.0" \ -an -sn -c:v h264_nvenc -cq 20 out.mp4
11.12 bitplanenoise
bitplanenoise
濾鏡接受以下選項
- bitplane
設定要分析的平面。預設值為
1
。- filter
bitplanenoise
11.13 blackdetect
blackdetect
blackdetect
blackdetect
濾鏡接受以下選項
- black_min_duration, d
black_min_duration, d
預設值為 2.0。
- picture_black_ratio_th, pic_th
picture_black_ratio_th, pic_th
nb_black_pixels / nb_pixels
預設值為 0.98。
- pixel_black_th, pix_th
pixel_black_th, pix_th
pixel_black_th, pix_th
absolute_threshold = luma_minimum_value + pixel_black_th * luma_range_size
luma_range_size 和 luma_minimum_value 取決於輸入視訊格式,範圍對於 YUV 全範圍格式為 [0-255],對於 YUV 非全範圍格式為 [16-235]。
預設值為 0.10。
blackdetect
blackdetect=d=2:pix_th=0.00
11.14 blackframe
blackframe
blackframe
blackframe
它接受以下參數
- amount
percent
- threshold, thresh
threshold, thresh
11.15 blend
blend
blend
tblend
以下是接受選項的描述。
- c0_mode
- c1_mode
- c2_mode
- c3_mode
- all_mode
blend
blend
- 「addition」
- 「and」
- 「average」
- 「bleach」
- 「burn」
- 「darken」
- 「difference」
- 「divide」
- 「dodge」
- 「exclusion」
- 「extremity」
- 「freeze」
- 「geometric」
- 「glow」
- 「grainextract」
- 「grainmerge」
- 「hardlight」
- 「hardmix」
- 「hardoverlay」
- 「harmonic」
- 「heat」
- 「interpolate」
- 「lighten」
- 「linearlight」
- 「multiply」
- 「multiply128」
- 「negation」
- 「normal」
- 「or」
- 「overlay」
- 「phoenix」
- 「pinlight」
- 「reflect」
- 「screen」
- 「softdifference」
- 「softlight」
- 「stain」
- 「subtract」
- 「vividlight」
- 「xor」
- c0_opacity
- c1_opacity
- c2_opacity
- c3_opacity
- all_opacity
blend
- c0_expr
- c1_expr
- c2_expr
- c3_expr
- all_expr
blend
blend
- n
blend
- x
- y
blend
- w
- h
blend
- sw
- sh
blend
- t
blend
- top, a
blend
- bottom, b
blend
blend
11.15.1 範例
- blend
blend=all_expr='A*(if(gte(T,10),1,T/10))+B*(1-(if(gte(T,10),1,T/10)))'
- blend
blend=all_expr='A*(X/W)+B*(1-X/W)'
- blend
blend=all_expr='if(eq(mod(X,2),mod(Y,2)),A,B)'
- blend
blend=all_expr='if(gte(N*SW+X,W),A,B)'
- blend
blend=all_expr='if(gte(Y-N*SH,0),A,B)'
- blend
blend=all_expr='if(gte(T*SH*40+Y,H)*gte((T*40*SW+X)*W/H,W),A,B)'
- blend
blend=all_expr='if(gt(X,Y*(W/H)),A,B)'
- tblend
tblend=all_mode=grainextract
11.15.2 指令
blend
11.16 blockdetect
blockdetect
blockdetect
濾鏡接受以下選項
- period_min
- period_max
blockdetect
- planes
planes
11.16.1 範例
- blockdetect
blockdetect=period_min=8:period_max=32:planes=1
11.17 blurdetect
blurdetect
blurdetect
濾鏡接受以下選項
- low
- high
threshold
threshold
threshold
threshold
- 設定虛擬喇叭的仰角,單位為度。預設值為 0。
max_radius
- block_pct
block_pct
- block_width
block_width
- block_height
block_height
- planes
planes
11.17.1 範例
- blurdetect
blurdetect=block_width=32:block_height=32:block_pct=80
11.18 bm3d
bm3d
bm3d
- sigma
sigma
- block
block
- bstep
bstep
- group
group
- 設定用於偵測濾鏡的偵測頻率(以 Hz 為單位),該偵測濾鏡用於觸發等化。預設值為 1000 Hz。允許範圍介於 2 和 1000000 Hz 之間。
radius
- mstep
mstep
- thmse
thmse
- hdthr
hdthr
- estim
estim
- ref
ref
- planes
planes
11.18.1 範例
- bm3d
bm3d=sigma=3:block=4:bstep=2:group=1:estim=basic
- bm3d
bm3d=sigma=3:block=4:bstep=2:group=1:estim=basic:planes=1
- bm3d
split[a][b],[a]bm3d=sigma=3:block=4:bstep=2:group=1:estim=basic[a],[b][a]bm3d=sigma=3:block=4:bstep=2:group=16:estim=final:ref=1
- bm3d
split[a][b],[a]nlmeans=s=3:r=7:p=3[a],[b][a]bm3d=sigma=3:block=4:bstep=2:group=16:estim=final:ref=1
11.19 boxblur
boxblur
它接受以下參數
- luma_radius, lr
- luma_power, lp
- chroma_radius, cr
- chroma_power, cp
- alpha_radius, ar
- alpha_power, ap
以下是接受選項的描述。
- luma_radius, lr
- chroma_radius, cr
- alpha_radius, ar
boxblur
boxblur
boxblur
boxblur
- f
- h
w
- cw
- 新增脈衝訊號。
boxblur
- hsub
- vsub
boxblur
- luma_power, lp
- chroma_power, cp
- alpha_power, ap
boxblur
boxblur
boxblur
11.19.1 範例
- boxblur
boxblur=luma_radius=2:luma_power=1 boxblur=2:1
- boxblur
boxblur=2:1:cr=0:ar=0
- boxblur
boxblur=luma_radius=min(h\,w)/10:luma_power=1:chroma_radius=min(cw\,ch)/10:chroma_power=1
11.20 bwdif
bwdif
bwdif
- mode
mode
- 0, send_frame
mode
- 1, send_field
mode
mode
- parity
parity
- 0, tff
parity
- 1, bff
parity
- -1, auto
parity
parity
- deint
deint
- 0, all
deint
- 1, interlaced
deint
deint
11.21 bwdif_cuda
bwdif_cuda
它接受以下參數
- mode
mode
- 0, send_frame
mode
- 1, send_field
mode
mode
- parity
parity
- 0, tff
parity
- 1, bff
parity
- -1, auto
parity
parity
- deint
deint
- 0, all
deint
- 1, interlaced
deint
deint
11.22 ccrepack
cc708
cc708
11.23 cas
cas
濾鏡接受以下選項
- 強度 (strength)
sharpness
- planes
planes
11.23.1 指令
blend
11.24 chromahold
colorkey
濾鏡接受以下選項
- color
color
- similarity
similarity
- blend
blend
- yuv
yuv
yuv
11.24.1 指令
colorkey
如果指定的表達式無效,則會保持其目前值。
11.25 chromakey
chromakey
濾鏡接受以下選項
- color
color
- similarity
similarity
chromakey
- blend
blend
chromakey
chromakey
- yuv
yuv
yuv
11.25.1 指令
colorkey
如果指定的表達式無效,則會保持其目前值。
11.25.2 範例
- chromakey
ffmpeg -i input.png -vf chromakey=green out.png
- chromakey
ffmpeg -f lavfi -i color=c=black:s=1280x720 -i video.mp4 -shortest -filter_complex "[1:v]chromakey=0x70de77:0.1:0.2[ckout];[0:v][ckout]overlay[out]" -map "[out]" output.mkv
11.26 chromakey_cuda
chromakey_cuda
chromakey_cuda
11.26.1 範例
- chromakey_cuda
./ffmpeg \ -hwaccel cuda -hwaccel_output_format cuda -i input_green.mp4 \ -hwaccel cuda -hwaccel_output_format cuda -i base_video.mp4 \ -init_hw_device cuda \ -filter_complex \ " \ [0:v]chromakey_cuda=0x25302D:0.1:0.12:1[overlay_video]; \ [1:v]scale_cuda=format=yuv420p[base]; \ [base][overlay_video]overlay_cuda" \ -an -sn -c:v h264_nvenc -cq 20 output.mp4
- concat
./ffmpeg -init_hw_device cuda=cuda -filter_hw_device cuda \ -f lavfi -i color=size=800x600:color=white,format=yuv420p \ -f lavfi -i yuvtestsrc=size=200x200,format=yuv420p \ -filter_complex \ " \ [0]hwupload[under]; \ [1]hwupload,chromakey_cuda=green:0.1:0.12[over]; \ [under][over]overlay_cuda" \ -c:v hevc_nvenc -cq 18 -preset slow output.mp4
11.27 chromanr
convolution
濾鏡接受以下選項
- thres
thres
- sizew
sizew
- sizeh
sizeh
- stepw
stepw
- steph
steph
- threy
threy
- threu
threu
- threv
threv
- distance
distance
- 「manhattan」
distance
- 「euclidean」
distance
distance
11.27.1 指令
colorkey
11.28 chromashift
chromashift
濾鏡接受以下選項
- cbh
cbh
- cbv
cbv
- crh
crh
- crv
crv
- edge
edge
11.28.1 指令
此濾鏡支援以上所有選項作為 commands。
11.29 ciescope
ciescope
濾鏡接受以下選項
- system
system
- 「ntsc, 470m」
- 「ebu, 470bg」
- 「smpte」
- 「240m」
- 「apple」
- 「widergb」
- 「cie1931」
- 「rec709, hdtv」
- 「uhdtv, rec2020」
- 「dcip3」
- cie
cie
- 「xyy」
- 「ucs」
- 「luv」
- gamuts
gamuts
gamuts
- size, s
size, s
- intensity, i
intensity, i
- contrast
contrast
- corrgamma
corrgamma
- showwhite
showwhite
- gamma
gamma
- fill
fill
11.30 codecview
codecview
codecview
stages
- block
codecview
- mv
mv
mv
- 「pf」
mv
- 「bf」
mv
- 「bb」
mv
- qp
qp
- mv_type, mvt
mv_type, mvt
mv_type, mvt
- 「fp」
mv_type, mvt
- 「bp」
mv_type, mvt
- frame_type, ft
frame_type, ft
frame_type, ft
- 「if」
frame_type, ft
- 「pf」
frame_type, ft
- 「bf」
frame_type, ft
11.30.1 範例
- codecview
ffplay -flags2 +export_mvs input.mp4 -vf codecview=mv_type=fp
- codecview
ffplay -flags2 +export_mvs input.mp4 -vf codecview=mv=pf+bf+bb
11.31 colorbalance
colorbalance
colorbalance
colorbalance
濾鏡接受以下選項
- rs
- gs
- bs
colorbalance
- rm
- gm
- bm
colorbalance
- rh
- gh
- bh
colorbalance
colorbalance
- pl
pl
11.31.1 範例
- colorbalance
colorbalance=rs=.3
11.31.2 指令
此濾鏡支援以上所有選項作為 commands。
11.32 colorcontrast
colorcontrast
濾鏡接受以下選項
- rc
rc
- gm
gm
- by
by
- rcw
- gmw
- byw
rcw
- pl
protect
11.32.1 指令
此濾鏡支援以上所有選項作為 commands。
11.33 colorcorrect
colorlevels
濾鏡接受以下選項
- rl
rl
- bl
bl
- rh
rh
- bh
bh
- saturation
saturation
- analyze
analyze
analyze
- 「manual」
- 「average」
- 「minmax」
- 「median」
analyze
11.33.1 指令
此濾鏡支援以上所有選項作為 commands。
11.34 colorchannelmixer
colormatrix
colormatrix
red=red*rr + blue*rb + green*rg + alpha*ra
濾鏡接受以下選項
- rr
- rg
- rb
- ra
colormatrix
- gr
- gg
- gb
- ga
colormatrix
- br
- bg
- bb
- ba
colormatrix
- ar
- ag
- ab
- dc
aa
colormatrix
- pc
pc
- 「none」
pc
- 「lum」
pc
- 「max」
pc
- 「avg」
pc
- 「sum」
pc
- 「nrm」
pc
- 「pwr」
pc
- pa
pa
11.34.1 範例
- colormatrix
colorchannelmixer=.3:.4:.3:0:.3:.4:.3:0:.3:.4:.3
- colormatrix
colorchannelmixer=.393:.769:.189:0:.349:.686:.168:0:.272:.534:.131
11.34.2 指令
此濾鏡支援以上所有選項作為 commands。
11.35 colorize
coloroverlay
濾鏡接受以下選項
- hue
hue
- saturation
saturation
- lightness
lightness
- mix
mix
11.35.1 指令
此濾鏡支援以上所有選項作為 commands。
11.36 colorkey
colorkey_rgb
濾鏡接受以下選項
- color
color
- similarity
radius
- blend
blend
11.36.1 範例
- chromakey
ffmpeg -i input.png -vf colorkey=green out.png
- colorkey_rgb
ffmpeg -i background.png -i video.mp4 -filter_complex "[1:v]colorkey=0x3BBD1E:0.3:0.2[ckout];[0:v][ckout]overlay[out]" -map "[out]" output.flv
11.36.2 指令
colorkey
如果指定的表達式無效,則會保持其目前值。
11.37 colorhold
colorhold
濾鏡接受以下選項
- color
color
- similarity
similarity
- blend
blend
11.37.1 指令
colorkey
如果指定的表達式無效,則會保持其目前值。
11.38 colorlevels
levels
濾鏡接受以下選項
- rimin
- gimin
- bimin
- aimin
levels
- rimax
- gimax
- bimax
- aimax
levels
levels
- romin
- gomin
- bomin
- aomin
levels
- romax
- gomax
- bomax
- aomax
levels
levels
- preserve_opacity, po
pc
- 「none」
pc
- 「lum」
pc
- 「max」
pc
- 「avg」
pc
- 「sum」
pc
- 「nrm」
pc
- 「pwr」
pc
11.38.1 範例
- levels
colorlevels=rimin=0.058:gimin=0.058:bimin=0.058
- levels
colorlevels=rimin=0.039:gimin=0.039:bimin=0.039:rimax=0.96:gimax=0.96:bimax=0.96
- levels
colorlevels=rimax=0.902:gimax=0.902:bimax=0.902
- levels
colorlevels=romin=0.5:gomin=0.5:bomin=0.5
11.38.2 指令
此濾鏡支援以上所有選項作為 commands。
11.39 colormap
lut2d
lut2d
濾鏡接受以下選項
- patch_size
patch_size
- nb_patches
nb_patches
- 將第二個聲道延遲 500 個樣本,將第三個聲道延遲 700 個樣本,並保持第一個聲道(和可能存在的任何其他聲道)不變。
adjust
- kernel
kernel
kernel
- 「euclidean」
- 「weuclidean」
kernel
11.40 colormatrix
lutyuv
濾鏡接受以下選項
- src
- dst
lutyuv
kernel
- 「bt709」
lutyuv
- 「fcc」
lutyuv
- 「bt601」
lutyuv
- 「bt470」
lutyuv
- 「bt470bg」
lutyuv
- 「smpte170m」
lutyuv
- 「smpte240m」
lutyuv
- 「bt2020」
lutyuv
lutyuv
colormatrix=bt601:smpte240m
11.41 colorspace
lut3d
濾鏡接受以下選項
- 設定用於設定跨聲道樣本延遲的隨機種子。
lut3d
kernel
- 「bt470m」
lut3d
- 「bt470bg」
lutyuv
- 「bt601-6-525」
lut3d
- 「bt601-6-625」
lut3d
- 「bt709」
lutyuv
- 「smpte170m」
lutyuv
- 「smpte240m」
lutyuv
- 「bt2020」
lutyuv
- space
space
kernel
- 「bt709」
lutyuv
- 「fcc」
lutyuv
- 「bt470bg」
space
- 「smpte170m」
space
- 「smpte240m」
lutyuv
- 「ycgco」
space
- 「bt2020ncl」
space
- trc
trc
kernel
- 「bt709」
lutyuv
- 「bt470m」
lut3d
- 「bt470bg」
lutyuv
- 「gamma22」
trc
- 「gamma28」
trc
- 「smpte170m」
trc
- 「smpte240m」
lutyuv
- 「srgb」
trc
- 「iec61966-2-1」
trc
- 「iec61966-2-4」
trc
- 「xvycc」
trc
- 「bt2020-10」
trc
- 「bt2020-12」
trc
- primaries
primaries
kernel
- 「bt709」
lutyuv
- 「bt470m」
lut3d
- 「bt470bg」
space
- 「smpte170m」
space
- 「smpte240m」
lutyuv
- 「film」
primaries
- 「smpte431」
primaries
- 「smpte432」
primaries
- 「bt2020」
lutyuv
- 「jedec-p22」
primaries
- 設定用於偵測濾鏡的偵測頻率(以 Hz 為單位),該偵測濾鏡用於觸發等化。預設值為 1000 Hz。允許範圍介於 2 和 1000000 Hz 之間。
range
kernel
- 「tv」
range
- 「mpeg」
range
- 「pc」
range
- 「jpeg」
range
- format
format
kernel
- 「yuv420p」
format
- 「yuv420p10」
format
- 「yuv420p12」
format
- 「yuv422p」
format
- 「yuv422p10」
format
- 「yuv422p12」
format
- 「yuv444p」
format
- 「yuv444p10」
format
- 「yuv444p12」
format
- fast
fast
- dither
dither
kernel
- 「none」
dither
- 「fsb」
dither
- wpadapt
wpadapt
kernel
- 「bradford」
wpadapt
- 「vonkries」
wpadapt
- 「identity」
wpadapt
- iall
iall
- ispace
ispace
- iprimaries
iprimaries
- itrc
itrc
- irange
irange
lut3d
lut3d
colorspace=smpte240m
11.42 colorspace_cuda
lut3d_cuda
lut3d_cuda
濾鏡接受以下選項
- 設定用於偵測濾鏡的偵測頻率(以 Hz 為單位),該偵測濾鏡用於觸發等化。預設值為 1000 Hz。允許範圍介於 2 和 1000000 Hz 之間。
range
kernel
- 「tv」
range
- 「mpeg」
range
- 「pc」
range
- 「jpeg」
range
11.43 colortemperature
তাপমাত্রা
濾鏡接受以下選項
- temperature
temperature
- mix
mix
- pl
protect
11.43.1 指令
blend
11.44 convolution
convolve
濾鏡接受以下選項
- 0m
- 1m
- 2m
- 3m
convolve
- 0rdiv
- 1rdiv
- 2rdiv
- 3rdiv
convolve
- 0bias
- 1bias
- 2偏移量
- 3偏移量
設定每個平面的偏移量。此值會加到乘法結果。適用於使整體影像更亮或更暗。預設值為 0.0。
- 0模式
- 1模式
- 2模式
- 3模式
設定每個平面的矩陣模式。可以是 square、row 或 column。預設值為 square。
11.44.1 指令
此濾鏡支援以上所有選項作為 commands。
11.44.2 範例
- 套用銳化
convolution="0 -1 0 -1 5 -1 0 -1 0:0 -1 0 -1 5 -1 0 -1 0:0 -1 0 -1 5 -1 0 -1 0:0 -1 0 -1 5 -1 0 -1 0"
- 套用模糊
convolution="1 1 1 1 1 1 1 1 1:1 1 1 1 1 1 1 1 1:1 1 1 1 1 1 1 1 1:1 1 1 1 1 1 1 1 1:1/9:1/9:1/9:1/9"
- 套用邊緣增強
convolution="0 0 0 -1 1 0 0 0 0:0 0 0 -1 1 0 0 0 0:0 0 0 -1 1 0 0 0 0:0 0 0 -1 1 0 0 0 0:5:1:1:1:0:128:128:128"
- 套用邊緣偵測
convolution="0 1 0 1 -4 1 0 1 0:0 1 0 1 -4 1 0 1 0:0 1 0 1 -4 1 0 1 0:0 1 0 1 -4 1 0 1 0:5:5:5:1:0:128:128:128"
- 套用包含對角線的拉普拉斯邊緣偵測器
convolution="1 1 1 1 -8 1 1 1 1:1 1 1 1 -8 1 1 1 1:1 1 1 1 -8 1 1 1 1:1 1 1 1 -8 1 1 1 1:5:5:5:1:0:128:128:0"
- 套用浮雕
convolution="-2 -1 0 -1 1 1 0 1 2:-2 -1 0 -1 1 1 0 1 2:-2 -1 0 -1 1 1 0 1 2:-2 -1 0 -1 1 1 0 1 2"
11.45 convolve
使用第二個串流作為脈衝,在頻域中套用視訊串流的 2D 卷積。
濾鏡接受以下選項
- planes
設定要處理的平面。
- 脈衝
設定將處理哪些脈衝視訊影格,可以是 first 或 all。預設值為 all。
convolve
濾鏡也支援 framesync 選項。
11.46 copy
將輸入視訊來源不變地複製到輸出。這主要用於測試目的。
11.47 coreimage
在 OSX 上使用 Apple 的 CoreImage API 進行 GPU 視訊濾鏡處理。
硬體加速基於 OpenGL 環境。通常,這表示它由視訊硬體處理。然而,存在基於軟體的 OpenGL 實作,這表示不保證硬體處理。這取決於各自的 OSX。
Apple 提供了許多濾鏡和影像產生器,它們帶有各種各樣的選項。濾鏡必須通過其名稱及其選項來引用。
coreimage 濾鏡接受以下選項
- list_filters
列出所有可用的濾鏡和產生器,以及它們各自的所有選項,以及可能的最小值和最大值以及預設值。
list_filters=true
- filter
通過各自的名稱和選項指定所有濾鏡。使用 list_filters 來確定所有有效的濾鏡名稱和選項。數值選項由浮點值指定,並自動鉗制在其各自的值範圍內。向量和顏色選項必須由空格分隔的浮點值列表指定。必須完成字元跳脫。特殊的選項名稱
default
可用於濾鏡的預設選項。必須指定
default
或至少一個濾鏡選項。所有省略的選項都使用其預設值。濾鏡字串的語法如下filter=<NAME>@<OPTION>=<VALUE>[@<OPTION>=<VALUE>][@...][#<NAME>@<OPTION>=<VALUE>[@<OPTION>=<VALUE>][@...]][#...]
- output_rect
指定一個矩形,濾鏡鏈的輸出將複製到輸入影像中。它由空格分隔的浮點值列表給出
output_rect=x\ y\ width\ height
如果未給出,則輸出矩形等於輸入影像的尺寸。輸出矩形會在輸入影像的邊界處自動裁剪。負值對於每個組件都有效。
output_rect=25\ 25\ 100\ 100
可以鏈接多個濾鏡以進行連續處理,而無需 GPU-HOST 傳輸,從而可以快速處理複雜的濾鏡鏈。目前,僅支援具有零個(產生器)或正好一個(濾鏡)輸入影像和一個輸出影像的濾鏡。此外,過渡濾鏡尚無法按預期使用。
某些濾鏡會根據各自的濾鏡核心產生帶有額外邊距的輸出影像。邊距會自動移除,以確保濾鏡輸出與輸入影像具有相同的大小。
對於影像產生器,輸出影像的大小由濾鏡鏈的先前輸出影像或整個濾鏡鏈的輸入影像決定。產生器不使用此影像的像素資訊來產生其輸出。然而,產生的輸出會混合到此影像上,導致輸出影像的部分或完全覆蓋。
coreimagesrc 視訊來源可用於產生直接饋入濾鏡鏈的輸入影像。通過使用它,不需要通過另一個視訊來源或輸入視訊來提供輸入影像。
11.47.1 範例
- 列出所有可用的濾鏡
coreimage=list_filters=true
- 使用預設選項的 CIBoxBlur 濾鏡來模糊影像
coreimage=filter=CIBoxBlur@default
- 使用具有預設值的 CISepiaTone 和中心在 100x100 且半徑為 50 像素的 CIVignetteEffect 的濾鏡鏈
coreimage=filter=CIBoxBlur@default#CIVignetteEffect@inputCenter=100\ 100@inputRadius=50
- 使用 nullsrc 和 CIQRCodeGenerator 為 FFmpeg 首頁建立 QR 碼,以 Apple 標準 bash shell 的完整且跳脫的命令列形式給出
ffmpeg -f lavfi -i nullsrc=s=100x100,coreimage=filter=CIQRCodeGenerator@inputMessage=https\\\\\://FFmpeg.org/@inputCorrectionLevel=H -frames:v 1 QRCode.png
11.48 corr
取得兩個輸入視訊之間的相關性。
此濾鏡採用兩個輸入視訊。
為了使此濾鏡正常工作,兩個輸入視訊必須具有相同的解析度和像素格式。此外,它假設兩個輸入具有相同數量的影格,這些影格將逐個比較。
獲得的每個組件、平均值、最小值和最大值相關性通過日誌系統列印。
濾鏡將每個影格的計算相關性儲存在影格元數據中。
此濾鏡也支援 framesync 選項。
在以下範例中,正在處理的輸入檔案 main.mpg 與參考檔案 ref.mpg 進行比較。
ffmpeg -i main.mpg -i ref.mpg -lavfi corr -f null -
11.49 cover_rect
覆蓋矩形物件
設定視窗長度,以樣本為單位。預設值為 2048。允許範圍為 32 到 65536。
- cover
可選覆蓋影像的檔案路徑,需要為 yuv420。
- mode
設定覆蓋模式。
設定叢發融合,以視窗大小的百分比表示。允許範圍為
0
到10
。預設值為2
。如果偵測為雜訊的任何兩個樣本之間的間隔小於此值,則這兩個樣本之間的任何樣本也將被偵測為雜訊。- ‘cover’
用提供的影像覆蓋它
- ‘blur’
通過內插周圍的像素來覆蓋它
預設值為 blur。
11.49.1 範例
- 使用
ffmpeg
通過給定視訊的提供的影像覆蓋矩形物件ffmpeg -i file.ts -vf find_rect=newref.pgm,cover_rect=cover.jpg:mode=cover new.mkv
11.50 crop
將輸入視訊裁剪為給定的尺寸。
它接受以下參數
- w, out_w
輸出視訊的寬度。預設值為
iw
。此表達式僅在濾鏡配置期間或發送 ‘w’ 或 ‘out_w’ 命令時評估一次。- h, out_h
輸出視訊的高度。預設值為
ih
。此表達式僅在濾鏡配置期間或發送 ‘h’ 或 ‘out_h’ 命令時評估一次。- x
輸出視訊左邊緣在輸入視訊中的水平位置。預設值為
(in_w-out_w)/2
。此表達式是逐影格評估的。- y
輸出視訊頂部邊緣在輸入視訊中的垂直位置。預設值為
(in_h-out_h)/2
。此表達式是逐影格評估的。- keep_aspect
如果設定為 1,將通過更改輸出樣本縱橫比,強制輸出顯示縱橫比與輸入相同。預設值為 0。
- exact
啟用精確裁剪。如果啟用,子採樣視訊將按指定的精確寬度/高度/x/y 裁剪,並且不會四捨五入到最接近的較小值。預設值為 0。
out_w、out_h、x、y 參數是包含以下常數的表達式
- x
- y
x 和 y 的計算值。它們是為每個新影格評估的。
- in_w
- in_h
輸入寬度和高度。
- iw
- ih
這些與 in_w 和 in_h 相同。
- out_w
- out_h
輸出(裁剪後)寬度和高度。
- ow
- oh
這些與 out_w 和 out_h 相同。
- a
與 iw / ih 相同
- sar
輸入樣本縱橫比
- dar
輸入顯示縱橫比,它與 (iw / ih) * sar 相同
- hsub
- vsub
水平和垂直色度子採樣值。例如,對於像素格式 "yuv422p",hsub 為 2,vsub 為 1。
- n
輸入影格的編號,從 0 開始。
- pos
輸入影格在檔案中的位置,如果未知,則為 NAN;已棄用,請勿使用
- 設定傳輸表達式。
以秒為單位表示的時間戳記。如果輸入時間戳記未知,則為 NAN。
out_w 的表達式可能取決於 out_h 的值,而 out_h 的表達式可能取決於 out_w,但它們不能取決於 x 和 y,因為 x 和 y 是在 out_w 和 out_h 之後評估的。
x 和 y 參數指定輸出(非裁剪)區域的左上角位置的表達式。它們是為每個影格評估的。如果評估值無效,則將其近似為最接近的有效值。
x 的表達式可能取決於 y,而 y 的表達式可能取決於 x。
11.50.1 範例
- 在位置 (12,34) 裁剪大小為 100x100 的區域。
crop=100:100:12:34
使用具名選項,以上範例變為
crop=w=100:h=100:x=12:y=34
- 裁剪大小為 100x100 的中央輸入區域
crop=100:100
- 裁剪大小為輸入視訊 2/3 的中央輸入區域
crop=2/3*in_w:2/3*in_h
- 裁剪輸入視訊中央正方形
crop=out_w=in_h crop=in_h
- 劃定矩形,其左上角放置在位置 100:100,右下角對應於輸入影像的右下角。
crop=in_w-100:in_h-100:100:100
- 從左邊界和右邊界裁剪 10 個像素,從頂部邊界和底部邊界裁剪 20 個像素
crop=in_w-2*10:in_h-2*20
- 僅保留輸入影像的右下四分之一
crop=in_w/2:in_h/2:in_w/2:in_h/2
- 裁剪高度以獲得希臘和諧
crop=in_w:1/PHI*in_w
- 套用顫抖效果
crop=in_w/2:in_h/2:(in_w-out_w)/2+((in_w-out_w)/2)*sin(n/10):(in_h-out_h)/2 +((in_h-out_h)/2)*sin(n/7)
- 套用取決於時間戳記的不穩定相機效果
crop=in_w/2:in_h/2:(in_w-out_w)/2+((in_w-out_w)/2)*sin(t*10):(in_h-out_h)/2 +((in_h-out_h)/2)*sin(t*13)
- 根據 y 的值設定 x
crop=in_w/2:in_h/2:y:10+10*sin(n/10)
11.50.2 指令
此濾波器支援以下指令
- w, out_w
- h, out_h
- x
- y
設定輸出視訊的寬度/高度以及輸入視訊中的水平/垂直位置。該命令接受相應選項的相同語法。
如果指定的表達式無效,則會保持其目前值。
11.51 cropdetect
自動偵測裁剪大小。
它計算必要的裁剪參數,並通過日誌系統列印建議的參數。偵測到的尺寸對應於輸入視訊的非黑色或視訊區域,根據 mode。
它接受以下參數
- mode
根據 mode,裁剪偵測基於周圍像素的純黑色值或運動向量和邊緣像素的組合。
- ‘black’
偵測播放視訊周圍的黑色像素。為了精細控制,請使用選項 limit。
- ‘mvedges’
通過視訊內部的運動向量偵測播放視訊,並掃描通常形成播放視訊邊界的邊緣像素。
- limit
設定更高的黑色值閾值,可以選擇從無 (0) 到所有 (8 位元格式為 255) 指定。強度值大於設定值被視為非黑色。預設值為 24。您還可以指定介於 0.0 和 1.0 之間的值,該值將根據像素格式的位元深度進行縮放。
- round
寬度/高度應可被整除的值。預設值為 16。偏移量會自動調整以使視訊居中。使用 2 僅獲得偶數尺寸(4:2:2 視訊需要)。編碼為大多數視訊編解碼器時,16 是最佳的。
- skip
設定要跳過評估的初始影格數。預設值為 2。範圍為 0 到 INT_MAX。
- reset_count, reset
設定計數器,該計數器確定在多少影格後,cropdetect 將重置先前偵測到的最大視訊區域,並重新開始偵測當前最佳裁剪區域。預設值為 0。
當頻道標誌扭曲視訊區域時,這可能很有用。0 表示「永不重置」,並傳回播放期間遇到的最大區域。
- mv_threshold
以像素單位設定運動作為運動偵測的閾值。預設值為 8。
- low
- high
threshold
threshold
threshold
low 的預設值為
5/255
,high 的預設值為15/255
。
11.51.1 範例
- 查找黑色邊框環繞的視訊區域
ffmpeg -i file.mp4 -vf cropdetect,metadata=mode=print -f null -
- 查找嵌入式視訊區域,預先產生運動向量
ffmpeg -i file.mp4 -vf mestimate,cropdetect=mode=mvedges,metadata=mode=print -f null -
- 查找嵌入式視訊區域,使用來自解碼器的運動向量
ffmpeg -flags2 +export_mvs -i file.mp4 -vf cropdetect=mode=mvedges,metadata=mode=print -f null -
11.51.2 指令
此濾波器支援以下指令
- limit
該命令接受相應選項的相同語法。如果指定的表達式無效,則將其保留為當前值。
11.52 cue
延遲視訊濾鏡處理,直到給定的掛鐘時間戳記。濾鏡首先傳遞 preroll 量的影格,然後緩衝最多 buffer 量的影格並等待提示。到達提示後,它會轉發緩衝的影格以及隨後輸入的任何影格。
濾鏡可用於同步多個 ffmpeg 進程的輸出,用於即時輸出設備(如 decklink)。通過將延遲放在濾鏡鏈中並預緩衝影格,進程可以在達到目標掛鐘時間戳記後幾乎立即將資料傳遞到輸出。
無法保證完美的影格準確性,但結果對於某些用例來說已經足夠好了。
- cue
以微秒為單位的 UNIX 時間戳記表示的提示時間戳記。預設值為 0。
- preroll
以秒為單位表示的預先滾動傳遞內容的持續時間。預設值為 0。
- buffer
等待提示之前要緩衝的最大內容持續時間,以秒為單位表示。預設值為 0。
11.53 curves
使用曲線套用色彩調整。
此濾鏡類似於 Adobe Photoshop 和 GIMP 曲線工具。每個組件(紅色、綠色和藍色)的值由 N 個關鍵點定義,這些關鍵點使用平滑曲線相互連接。x 軸表示來自輸入影格的像素值,y 軸表示要為輸出影格設定的新像素值。
預設情況下,組件曲線由兩個點 (0;0) 和 (1;1) 定義。這會建立一條直線,其中每個原始像素值都「調整」為其自身的值,這表示影像沒有變化。
濾鏡允許您重新定義這兩個點並新增更多點。將定義一條新曲線,以平滑地穿過所有這些新坐標。新定義的點需要在 x 軸上嚴格遞增,並且它們的 x 和 y 值必須在 [0;1] 區間內。曲線是通過使用自然或單調三次樣條內插形成的,具體取決於 interp 選項(預設值:natural
)。natural
樣條通常產生更平滑的曲線,而單調 (pchip
) 樣條保證指定點之間的過渡是單調的。如果計算出的曲線恰好超出向量空間,則值將被相應地裁剪。
濾鏡接受以下選項
- preset
選擇可用的顏色預設之一。此選項可以與 r、g、b 參數一起使用;在這種情況下,後面的選項優先於預設值。可用的預設值為
- 「none」
- ‘color_negative’
- ‘cross_process’
- ‘darker’
- ‘increase_contrast’
- ‘lighter’
- ‘linear_contrast’
- ‘medium_contrast’
- ‘negative’
- ‘strong_contrast’
- ‘vintage’
預設值為
none
。- master, m
設定主關鍵點。這些點將定義第二次傳遞映射。它有時被稱為「亮度」或「值」映射。它可以與 r、g、b 或 all 一起使用,因為它的作用類似於後處理 LUT。
- red, r
設定紅色組件的關鍵點。
- green, g
設定綠色組件的關鍵點。
- blue, b
設定藍色組件的關鍵點。
- 設定用於設定跨聲道樣本延遲的隨機種子。
all
- 設定所有組件(不包括主組件)的關鍵點。可以與其他關鍵點組件選項結合使用。在這種情況下,未設定的組件將回退到此 all 設定。
psfile
- 指定 Photoshop 曲線檔案 (
.acv
) 以從中導入設定。 plot
- interp
將曲線的 Gnuplot 腳本儲存在指定檔案中。
- interp
指定內插種類。可用的演算法有
- ‘natural’
自然三次樣條,使用分段三次多項式,該多項式是兩次連續可微分的。
‘pchip’
11.53.1 指令
blend
11.53.2 範例
- 單調三次樣條,使用分段三次 Hermite 內插多項式 (PCHIP)。
curves=blue='0/0 0.5/0.58 1/1'
- 為了避免某些濾鏡圖語法衝突,每個關鍵點列表都需要使用以下語法定義:
x0/y0 x1/y1 x2/y2 ...
。curves=r='0/0.11 .42/.51 1/0.95':g='0/0 0.50/0.48 1/1':b='0/0.22 .49/.44 1/0.8'
稍微增加藍色的中間層級
- 復古效果
(0;0.11) (0.42;0.51) (1;0.95)
- 在這裡,我們獲得每個組件的以下坐標
(0;0) (0.50;0.48) (1;1)
- 紅色
(0;0.22) (0.49;0.44) (1;0.80)
- 綠色
curves=preset=vintage
- 藍色
curves=vintage
- 先前的範例也可以通過相關的內建預設值來實現
curves=psfile='MyCurvesPresets/purple.acv':green='0/0 0.45/0.53 1/1'
- 或只是
ffmpeg -f lavfi -i color -vf curves=cross_process:plot=/tmp/curves.plt -frames:v 1 -f null - gnuplot -p /tmp/curves.plt
11.54 datascope
使用 Photoshop 預設值並重新定義綠色組件的點
使用 ffmpeg
和 gnuplot
檢查 cross_process
配置文件的曲線
濾鏡接受以下選項
- size, s
視訊資料分析濾鏡。
- x
此濾鏡顯示部分視訊的十六進制像素值。
- y
size
- mode
設定輸出視訊大小。
- x
設定從何處選取像素的 x 偏移量。
- y
設定從何處選取像素的 y 偏移量。
- mode
設定範圍模式,可以是以下之一
- ‘mono’
在黑色背景上用白色繪製十六進制像素值。
- ‘color’
在黑色背景上用輸入視訊像素顏色繪製十六進制像素值。
- format
‘color2’
- 在從輸入視訊中選取的彩色背景上繪製十六進制像素值,文字顏色以使其始終可見的方式選取。
axis
11.54.1 指令
在視訊的左側和頂部繪製行號和列號。
11.55 dblur
opacity
濾鏡接受以下選項
- 設定輸入聲道佈局。預設情況下,這是 <var>stereo</var>。
設定背景不透明度。
- 設定虛擬喇叭的仰角,單位為度。預設值為 0。
format
- planes
planes
11.55.1 指令
colorkey
如果指定的表達式無效,則會保持其目前值。
11.56 dctdnoiz
設定顯示數字格式。可以是 hex
或 dec
。預設值為 hex
。
components
濾鏡接受以下選項
- 設定要顯示的像素組件。預設情況下,顯示所有像素組件。
此濾鏡支援與選項相同的 commands,不包括
size
選項。套用方向模糊濾鏡。
angle
設定方向模糊的角度。預設值為
45
。- overlap
radius
設定方向模糊的半徑。預設值為
5
。使用 2D DCT(頻域濾鏡處理)對影格進行去噪。
- 此濾鏡並非為即時設計。
sigma, s
設定雜訊 sigma 常數。
此 sigma 定義了
3 * sigma
的硬閾值;低於此閾值的每個 DCT 係數(絕對值)都將被丟棄。如果您需要更進階的濾鏡處理,請參閱 expr。
- n
預設值為
0
。overlap
11.56.1 範例
設定每個區塊的重疊像素數。由於濾鏡可能很慢,您可能需要降低此值,但代價是濾鏡效果較差以及出現各種偽影的風險。
dctdnoiz=4.5
如果重疊值不允許處理整個輸入寬度或高度,則會顯示警告,並且相應的邊界將不會被去噪。
dctdnoiz=e='gte(c, 4.5*3)'
預設值為 blocksize-1,這是最佳設定。
dctdnoiz=15:n=4
11.57 deband
expr, e
濾鏡接受以下選項
- 設定係數因子表達式。
- 對於 DCT 區塊的每個係數,此表達式將評估為係數的乘數值。
- 如果設定此選項,則將忽略 sigma 選項。
- 可以通過 c 變數存取係數的絕對值。
bits
- 使用位元數設定 blocksize。
1<<n
定義 blocksize,它是處理區塊的寬度和高度。 預設值為 3 (8x8),可以提高到 4 以獲得 blocksize 為 16x16。請注意,更改此設定對速度處理有巨大的影響。此外,更大的區塊大小並不一定意味著更好的去噪。
- 套用 sigma 為
4.5
的去噪 可以使用表達式系統實現相同的操作
- 使用
16x16
的區塊大小進行暴力去噪 從輸入視訊中移除條帶偽影。它的工作原理是用參考像素的平均值替換條帶像素。
- 1thr
2thr
11.57.1 指令
此濾鏡支援以上所有選項作為 commands。
11.58 deblock
3thr
濾鏡接受以下選項
- filter
4thr
- block
設定每個平面的條帶偵測閾值。預設值為 0.02。有效範圍為 0.00003 到 0.5。如果當前像素與參考像素之間的差異小於閾值,則將其視為條帶。
- range, r
- beta
- gamma
- delta
像素條帶偵測範圍。預設值為 16。如果為正數,將使用範圍 0 到設定值之間的隨機數。如果為負數,將使用精確的絕對值。範圍定義了當前像素周圍四個像素的正方形。
- planes
direction, d
11.58.1 範例
- 設定弧度方向,將從該方向比較四個像素。如果為正數,將選取從 0 到設定方向的隨機方向。如果為負數,將選取絕對值的精確值。例如,方向 0、-PI 或 -2*PI 弧度將僅選取同一行上的像素,而 -PI/2 將僅選取同一列上的像素。
deblock=filter=weak:block=4
- blur, b
deblock=filter=strong:block=4:alpha=0.12:beta=0.07:gamma=0.06:delta=0.05
- 如果啟用,當前像素將與所有四個周圍像素的平均值進行比較。預設情況下為啟用。如果禁用,當前像素將與所有四個周圍像素進行比較。只有當與周圍像素的所有四個差異都小於閾值時,像素才被視為條帶。
deblock=filter=strong:block=4:alpha=0.12:beta=0.07:gamma=0.06:delta=0.05:planes=1
- coupling, c
deblock=filter=strong:block=4:alpha=0.12:beta=0.07:gamma=0.06:delta=0.05:planes=6
11.58.2 指令
此濾鏡支援以上所有選項作為 commands。
11.59 decimate
如果啟用,則僅當所有像素組件都為條帶時才更改當前像素,例如,為所有顏色組件觸發條帶偵測閾值。預設情況下為禁用。
濾鏡接受以下選項
- 從輸入視訊中移除區塊偽影。
filter
- 設定濾鏡類型,可以是 weak 或 strong。預設值為 strong。這控制應用哪種類型的去塊。
block
- 設定區塊的大小,允許的範圍為 4 到 512。預設值為 8。
alpha
- 設定區塊偵測閾值。允許的範圍為 0 到 1。預設值為:alpha 為 0.098,其餘為 0.05。使用更高的閾值可提供更強的去塊強度。設定 alpha 控制區塊精確邊緣的閾值偵測。剩餘選項控制邊緣附近的閾值偵測。每個選項用於下方/上方或左側/右側。將其中任何一個設定為 0 會禁用去塊。
- planes
設定要濾鏡處理的平面。預設值為濾鏡處理所有可用的平面。
- 使用弱濾鏡和 4 像素的區塊大小進行去塊。
使用強濾鏡、4 像素的區塊大小和自訂閾值進行去塊,以去塊更多邊緣。
- 與上述類似,但僅濾鏡處理第一個平面。
與上述類似,但僅濾鏡處理第二個和第三個平面。
- mixed
以規律的間隔丟棄重複的影格。
11.60 deconvolve
cycle
濾鏡接受以下選項
- planes
設定要處理的平面。
- 脈衝
設定將處理哪些脈衝視訊影格,可以是 first 或 all。預設值為 all。
- 設定將丟棄一個影格的影格數。將此值設定為 N 表示每批 N 個影格中將丟棄一個影格。預設值為
5
。 dupthresh
設定重複偵測的閾值。如果影格的差異度量小於或等於此值,則將其宣告為重複。預設值為 1.1
11.61 dedot
scthresh
設定視窗長度,以樣本為單位。預設值為 2048。允許範圍為 32 到 65536。
- m
設定場景變更閾值。預設值為
15
。- blockx
blocky
- 設定度量計算期間使用的 x 軸和 y 軸區塊的大小。較大的區塊可提供更好的雜訊抑制,但也使小運動的偵測效果更差。必須是 2 的冪。預設值為
32
。 ppsrc
- 將主輸入標記為預處理輸入並啟用乾淨來源輸入串流。這允許使用各種濾鏡預處理輸入,以幫助度量計算,同時保持影格選擇無損。當設定為
1
時,第一個串流用於預處理輸入,第二個串流是乾淨來源,從中選擇保留的影格。預設值為0
。 chroma
- 設定是否在度量計算中考慮色度。預設值為
1
。 partial
11.62 deflate
設定輸入是否僅部分包含要縮減取樣的內容。預設值為 false
。如果啟用,視訊輸出串流將採用可變影格率。
使用第二個串流作為脈衝,在頻域中套用視訊串流的 2D 反卷積。
設定視窗長度,以樣本為單位。預設值為 2048。允許範圍為 32 到 65536。
- noise
- 設定執行除法時的雜訊。預設值為 0.0000001。當寬度和高度不相同且不是 2 的冪,或者卷積之前的串流有雜訊時很有用。
deconvolve
濾鏡也支援 framesync 選項。- 減少視訊中的交叉亮度(點爬行)和交叉顏色(彩虹)。
mode
11.62.1 指令
此濾鏡支援以上所有選項作為 commands。
11.63 deflicker
設定操作模式。可以是 dotcrawl(用於交叉亮度減少)和/或 rainbows(用於交叉顏色減少)的組合。
設定視窗長度,以樣本為單位。預設值為 2048。允許範圍為 32 到 65536。
- size, s
lt
- 設定空間亮度閾值。較低的值會增加交叉亮度的減少。
tl
提升高於偵測臨界值的頻率。
- 設定時間亮度容差。較高的值會增加交叉亮度的減少。
tc
- 設定色度時間變化的容差。較高的值會增加交叉顏色的減少。
ct
- 設定時間色度閾值。較低的值會增加交叉顏色的減少。
將放氣效果套用到視訊。
- 此濾鏡通過僅考慮小於像素的值,用局部 (3x3) 平均值替換像素。
threshold0
- threshold1
threshold2
- threshold3
限制每個平面的最大變化,預設值為 65535。如果為 0,則平面將保持不變。
- 「median」
移除時間影格亮度變化。
- size
以影格為單位設定移動平均濾鏡大小。預設值為 5。允許的範圍為 2 - 129。
11.64 dejudder
mode, m
設定平均模式以平滑時間亮度變化。
‘am’
- 從輸入視訊中移除區塊偽影。
算術平均值
‘gm’
- 幾何平均值
‘hm’
- 調和平均值
‘qm’
- 二次平均值
‘cm’
立方平均值
11.65 delogo
‘pm’
它接受以下參數
- x
- y
冪平均值
- f
- h
median
- 中位數
bypass
實際上不修改影格。當只想使用元數據時很有用。
11.65.1 範例
- 移除由部分交錯電視電影內容產生的顫動。
delogo=x=0:y=0:w=100:h=77
11.66 derain
例如,pullup 濾鏡可能會引入顫動。如果原始來源是部分電視電影內容,則 pullup,dejudder
的輸出將具有可變影格率。可能會更改容器的記錄影格率。除了該更改之外,此濾鏡不會影響恆定影格率視訊。
- 此濾鏡中可用的選項為
cycle
濾鏡接受以下選項
- 指定顫動重複的窗口長度。
接受任何大於 1 的整數。有用的值為
- ‘4’
如果原始影片是從 24 fps 電影膠片轉換為 30 fps (電影到 NTSC)。
- ‘5’
如果原始影片是從 25 fps PAL 轉換為 30 fps (PAL 到 NTSC)。
‘20’
- 如果兩者混合。
預設值為 ‘4’。
- 通過簡單地內插周圍的像素來抑制電視台標誌。只需設定一個覆蓋標誌的矩形,然後觀看它消失(有時甚至會出現更醜陋的東西 - 效果因情況而異)。
x
- 指定標誌的左上角坐標。它們必須指定。
w
指定要清除的標誌的寬度和高度。它們必須指定。
11.67 deshake
show
濾鏡接受以下選項
- x
- y
- f
- h
當設定為 1 時,會在螢幕上繪製一個綠色矩形,以簡化查找正確的 x、y、w 和 h 參數。預設值為 0。
矩形繪製在最外層像素上,這些像素將(部分)被內插值替換。每個方向上緊鄰此矩形外部的下一個像素的值將用於計算矩形內部的內插像素值。
設定一個矩形,覆蓋左上角坐標為 0,0 且大小為 100x77 的區域
通過應用基於卷積神經網路的去雨方法,移除輸入影像/視訊中的雨水。支援的模型
- 循環擠壓和激勵上下文聚合網路 (RESCAN)。請參閱 http://openaccess.thecvf.com/content_ECCV_2018/papers/Xia_Li_Recurrent_Squeeze-and-Excitation_Context_ECCV_2018_paper.pdf。
- 訓練以及模型產生腳本在 https://github.com/XueweiMeng/derain_filter.git 的儲存庫中提供。
filter_type
- edge
指定要使用的濾鏡。此選項接受以下值
- ‘derain’
去雨濾鏡。要執行去雨濾鏡,您需要使用去雨模型。
- ‘dehaze’
去霧濾鏡。要執行去霧濾鏡,您需要使用去霧模型。
- 預設值為 ‘derain’。
dnn_backend
- 指定要用於模型載入和執行的 DNN 後端。此選項接受以下值
‘tensorflow’
TensorFlow 後端。要啟用此後端,您需要安裝 TensorFlow for C 庫(請參閱 https://tensorflow.dev.org.tw/install/lang_c)並使用
--enable-libtensorflow
配置 FFmpeg- model
設定模型檔案的路徑,該檔案指定網路架構及其參數。請注意,不同的後端使用不同的檔案格式。TensorFlow 只能載入其格式的檔案。
- contrast
要獲得完整功能(例如異步執行),請使用 dnn_processing 濾鏡。
- 嘗試修復水平和/或垂直偏移的微小變化。此濾鏡有助於消除手持相機、碰撞三腳架、在車輛上移動等引起的相機抖動。
motion_区域
- 指定一個矩形區域,在其中限制運動向量的搜尋。如果需要,可以將運動向量的搜尋限制在影格的矩形區域內,該區域由其左上角、寬度和高度定義。這些參數的含義與 drawbox 濾鏡相同,drawbox 濾鏡可用於視覺化邊界框的位置。
當影格內主體的同時運動可能會被運動向量搜尋誤認為是相機運動時,這很有用。
- 如果 x、y、w 和 h 中的任何一個或全部設定為 -1,則使用整個影格。這允許稍後設定選項,而無需為運動向量搜尋指定邊界框。
預設值 - 搜尋整個影格。
rx
- ry
指定 x 和 y 方向上的最大移動範圍,範圍為 0-64 像素。預設值為 16。
11.68 despill
邊緣
此濾波器還能夠拉伸/壓縮音訊資料以使其與時間戳記匹配,或注入靜音/剪切音訊以使其與時間戳記匹配,執行兩者的組合或兩者都不執行。
- 將第二個聲道延遲 500 個樣本,將第三個聲道延遲 700 個樣本,並保持第一個聲道(和可能存在的任何其他聲道)不變。
指定如何產生像素以填充影格邊緣的空白。可用的值為
- mix
‘blank, 0’
- 在空白位置填充零
‘original, 1’
- 復古效果
空白位置的原始影像
- 在這裡,我們獲得每個組件的以下坐標
‘clamp, 2’
- 紅色
空白位置的擠壓邊緣值
- ‘mirror, 3’
空白位置的鏡像邊緣
- range, r
預設值為 ‘mirror’。
11.68.1 指令
此濾鏡支援以上所有選項作為 commands。
11.69 detelecine
blocksize
此濾波器還能夠拉伸/壓縮音訊資料以使其與時間戳記匹配,或注入靜音/剪切音訊以使其與時間戳記匹配,執行兩者的組合或兩者都不執行。
- 指定用於運動搜尋的區塊大小。範圍 4-128 像素,預設值為 8。
- contrast
指定區塊的對比度閾值。僅考慮對比度(最暗像素和最亮像素之間的差異)大於指定對比度的區塊。範圍 1-255,預設值為 125。
- search
指定搜尋策略。可用的值為
- ‘exhaustive, 0’
設定窮盡搜尋
- ‘less, 1’
設定較少窮盡搜尋。
11.70 dilation
預設值為 ‘exhaustive’。
logfile
設定視窗長度,以樣本為單位。預設值為 2048。允許範圍為 32 到 65536。
- noise
- 設定執行除法時的雜訊。預設值為 0.0000001。當寬度和高度不相同且不是 2 的冪,或者卷積之前的串流有雜訊時很有用。
deconvolve
濾鏡也支援 framesync 選項。- 減少視訊中的交叉亮度(點爬行)和交叉顏色(彩虹)。
mode
- filename
如果設定,則運動搜尋的詳細日誌將寫入指定的檔案。
移除前景顏色的不必要污染,這些污染是由綠幕或藍幕的反射顏色引起的。
1 2 3 4 5 6 7 8
11.70.1 指令
此濾鏡支援以上所有選項作為 commands。
11.71 displace
type
設定要使用的去除溢色類型。
method
設定將如何產生溢色圖。
以下是接受選項的描述。
- edge
expand
提升高於偵測臨界值的頻率。
- 設定要去除多少剩餘溢色。
red
- 控制溢色區域中的紅色量。
green
- 控制溢色區域中的綠色量。綠幕應為 -1。
blue
- 控制溢色區域中的藍色量。藍幕應為 -1。
brightness
控制溢色區域的亮度,同時保留顏色。
11.71.1 範例
- alpha
ffmpeg -i INPUT -f lavfi -i nullsrc=s=hd720,lutrgb=128:128:128 -f lavfi -i nullsrc=s=hd720,geq='r=128+30*sin(2*PI*X/400+T):g=128+30*sin(2*PI*X/400+T):b=128+30*sin(2*PI*X/400+T)' -lavfi '[0][1][2]displace' OUTPUT
- 從產生的溢色圖修改 alpha。
ffmpeg -i INPUT -f lavfi -i nullsrc=hd720,geq='r=128+80*(sin(sqrt((X-W/2)*(X-W/2)+(Y-H/2)*(Y-H/2))/220*2*PI+T)):g=128+80*(sin(sqrt((X-W/2)*(X-W/2)+(Y-H/2)*(Y-H/2))/220*2*PI+T)):b=128+80*(sin(sqrt((X-W/2)*(X-W/2)+(Y-H/2)*(Y-H/2))/220*2*PI+T))' -lavfi '[1]split[x][y],[0][x][y]displace' OUTPUT
11.72 dnn_classify
套用電視電影操作的精確逆運算。它需要使用 pattern 選項指定的預定義模式,該模式必須與傳遞給電視電影濾鏡的模式相同。
濾鏡接受以下選項
- 如果兩者混合。
first_field
- 指定標誌的左上角坐標。它們必須指定。
‘top, t’
- 頂場優先
‘bottom, b’
- 音訊資料的 Adler-32 檢查碼(以十六進制列印)。對於平面音訊,資料被視為所有平面都已連接。
底場優先。預設值為
top
。- pattern
表示您要套用的下拉模式的數字字串。預設值為
23
。- start_frame
表示相對於電視電影模式的第一個影格位置的數字。如果串流被剪切,則使用此選項。預設值為
0
。- 將擴張效果套用到視訊。
此濾鏡用局部 (3x3) 最大值替換像素。
coordinates
11.73 dnn_detect
標記,用於指定要參考的像素。預設值為 255,即使用所有八個像素。
濾鏡接受以下選項
- 如果兩者混合。
first_field
- 指定標誌的左上角坐標。它們必須指定。
‘top, t’
- 頂場優先
‘bottom, b’
- 音訊資料的 Adler-32 檢查碼(以十六進制列印)。對於平面音訊,資料被視為所有平面都已連接。
底場優先。預設值為
top
。- pattern
表示您要套用的下拉模式的數字字串。預設值為
23
。- start_frame
標記到局部 3x3 坐標的映射,如下所示
- 將擴張效果套用到視訊。
根據第二個和第三個輸入串流指示的方式置換像素。
11.74 dnn_processing
它採用三個輸入串流並輸出一個串流,第一個輸入是來源,第二個和第三個輸入是置換圖。
濾鏡接受以下選項
- 如果兩者混合。
預設值為 ‘4’。
- 通過簡單地內插周圍的像素來抑制電視台標誌。只需設定一個覆蓋標誌的矩形,然後觀看它消失(有時甚至會出現更醜陋的東西 - 效果因情況而異)。
x
- 第二個輸入指定沿 x 軸置換像素的量,而第三個輸入指定沿 y 軸置換像素的量。如果其中一個置換圖串流終止,將使用來自該置換圖的最後一個影格。
請注意,一旦產生,置換圖可以重複使用。
- 邊界
設定超出範圍的像素的置換行為。
- 指定標誌的左上角坐標。它們必須指定。
‘blank’
- 頂場優先
‘bottom, b’
- 音訊資料的 Adler-32 檢查碼(以十六進制列印)。對於平面音訊,資料被視為所有平面都已連接。
底場優先。預設值為
top
。- 將擴張效果套用到視訊。
根據第二個和第三個輸入串流指示的方式置換像素。
遺失的像素將被黑色像素替換。
11.74.1 範例
- ‘smear’
./ffmpeg -i rain.jpg -vf format=rgb24,dnn_processing=dnn_backend=tensorflow:model=can.pb:input=x:output=y derain.jpg
- 相鄰像素將展開以替換遺失的像素。
./ffmpeg -i 480p.jpg -vf format=yuv420p,scale=w=iw*2:h=ih*2,dnn_processing=dnn_backend=tensorflow:model=srcnn.pb:input=x:output=y -y srcnn.jpg
- ‘wrap’
./ffmpeg -i 480p.jpg -vf format=yuv420p,dnn_processing=dnn_backend=tensorflow:model=espcn.pb:input=x:output=y:backend_configs=sess_config=0x10022805320e09cdccccccccccec3f20012a01303801 -y tmp.espcn.jpg
11.75 drawbox
超出範圍的像素將被包裹,以便它們指向另一側的像素。
它接受以下參數
- x
- y
‘mirror’
- width, w
- 超出範圍的像素將被鏡像像素替換。
預設值為 ‘smear’。
- 向 hd720 視訊大小的 rgb 輸入新增波紋效果
向 hd720 視訊大小的 rgb 輸入新增波浪效果
- 使用基於邊界框的深度神經網路進行分類。
dnn_backend
指定要用於模型載入和執行的 DNN 後端。此選項現在僅接受 openvino,將新增 tensorflow 後端。
- model
設定模型檔案的路徑,該檔案指定網路架構及其參數。請注意,不同的後端使用不同的檔案格式。
input
- dar
設定 dnn 網路的輸入名稱。
- hsub
- vsub
水平和垂直色度子採樣值。例如,對於像素格式 "yuv422p",hsub 為 2,vsub 為 1。
- output
- 設定 dnn 網路的輸出名稱。
輸入寬度和高度。
- sar
confidence
- x
- y
設定置信度閾值(預設值:0.5)。
- f
- h
labels
- 設定標籤檔案的路徑,該檔案指定標籤 ID 和名稱之間的映射。每個標籤名稱都寫在一行中,跳過尾隨空格和空行。第一行是標籤 ID 0 的名稱,第二行是標籤 ID 1 的名稱,依此類推。如果未提供標籤檔案,則標籤 ID 將被視為名稱。
backend_configs
設定要傳遞到後端的配置
- 設定傳輸表達式。
對於 tensorflow 後端,您可以使用 sess_config 選項設定其配置,請使用 tools/python/tf_sess_config.py 來獲取系統的配置。
使用深度神經網路進行物件偵測。
11.75.1 範例
- labels
drawbox
- 設定標籤檔案的路徑,該檔案指定標籤 ID 和名稱之間的映射。每個標籤名稱都寫在一行中,跳過尾隨空格和空行。第一行是標籤 ID 0 的名稱(通常為「背景」),第二行是標籤 ID 1 的名稱,依此類推。如果未提供標籤檔案,則標籤 ID 將被視為名稱。
drawbox=10:20:200:60:red@0.5
backend_configs
drawbox=x=10:y=20:w=200:h=60:color=red@0.5
- 設定要傳遞到後端的配置。要使用異步執行,請設定 async(預設值:設定)。如果後端不支持異步,則回退到同步執行。
drawbox=x=10:y=10:w=100:h=100:color=pink@0.5:t=fill
- 使用深度神經網路進行影像處理。它與另一個濾鏡一起工作,該濾鏡將影格的像素格式轉換為 dnn 網路所需的内容。
drawbox=x=-t:y=0.5*(ih-iw/2.4)-t:w=iw+t*2:h=iw/2.4+t*2:t=2:c=red
11.75.2 指令
avgblur
如果指定的表達式無效,則會保持其目前值。
11.76 drawgraph
dnn_backend
它接受以下參數
- ‘openvino’
OpenVINO 後端。要啟用此後端,您需要構建並安裝 OpenVINO for C 庫(請參閱 https://github.com/openvinotoolkit/openvino/blob/master/build-instruction.md)並使用
--enable-libopenvino
配置 FFmpeg(如果標頭檔案和庫未安裝到系統路徑中,則可能需要 –extra-cflags=-I... –extra-ldflags=-L...)- ‘torch’
Libtorch 後端。要啟用此後端,您需要構建並安裝 Libtroch for C++ 庫。請下載 cxx11 ABI 版本(請參閱 https://pytorch.dev.org.tw/get-started/locally)並使用
--enable-libtorch --extra-cflags=-I/libtorch_root/libtorch/include --extra-cflags=-I/libtorch_root/libtorch/include/torch/csrc/api/include --extra-ldflags=-L/libtorch_root/libtorch/lib/
配置 FFmpeg- model
設定模型檔案的路徑,該檔案指定網路架構及其參數。請注意,不同的後端使用不同的檔案格式。TensorFlow、OpenVINO 和 Libtorch 後端只能載入其格式的檔案。
- backend_configs
對於 tensorflow 後端,您可以使用 sess_config 選項設定其配置,請使用 tools/python/tf_sess_config.py 來獲取系統的 TensorFlow 後端的配置。
- 使用 can.pb 移除 rgb24 影格中的雨水(請參閱 derain 濾鏡)
對於 yuv420p 格式(支援平面 YUV 格式)的影格,使用 srcnn.pb 處理 Y 通道(請參閱 sr 濾鏡)
- 對於格式為 yuv420p(支援平面 YUV 格式)的影格,使用 espcn.pb 處理 Y 通道(請參閱 sr 濾鏡),這會更改影格大小,請使用 tools/python/tf_sess_config.py 來獲取系統的 TensorFlow 後端的配置。
在輸入影像上繪製彩色框。
- x, left
指定框的左上角坐標的表達式。預設值為 0。
- height, h
y, top
- min
指定框的左上角坐標的表達式。預設值為 0。
- max
width, w
- bg
height, h
- mode
指定框的寬度和高度的表達式;如果為 0,則將其解釋為輸入寬度和高度。預設值為 0。
color, c
- 指定要寫入的框的顏色。有關此選項的通用語法,請查看 (ffmpeg-utils) 手冊中的「顏色」部分。如果使用特殊值
invert
,則框邊緣顏色與反轉亮度的視訊相同。 - thickness, t
- 設定框邊緣厚度的表達式。值
fill
將建立一個填充框。預設值為3
。
請參閱下文以獲取接受的常數列表。
- 指定要寫入的框的顏色。有關此選項的通用語法,請查看 (ffmpeg-utils) 手冊中的「顏色」部分。如果使用特殊值
- replace
如果輸入具有 alpha,則適用。值為
1
時,繪製框的像素將覆蓋視訊的顏色和 alpha 像素。預設值為0
,它將框複合到輸入上,使視訊的 alpha 保持不變。用於 x、y、w 和 h 以及 t 的參數是包含以下常數的表達式
- 「frame」
dar
- 輸入顯示縱橫比,它與 (w / h) * sar 相同。
in_h, ih
- in_w, iw
sar
- 輸入樣本縱橫比。
x, box_x
- y, box_y
框的繪製位置的 x 和 y 偏移坐標。
w, box_w
- size
h, box_h
- 繪製框的寬度和高度。
box_source
如果想要使用側資料偵測邊界框中的框資料,則可以將框來源設定為 side_data_detection_bboxes。
- 如果設定了 box_source,則將忽略 x、y、width 和 height,並且仍然使用側資料偵測邊界框中的框資料。因此,如果您不確定框來源,請不要使用此參數。
t, thickness
- 繪製框的厚度。
這些常數允許 x、y、w、h 和 t 表達式相互引用,因此例如您可以指定
y=x/dar
或h=w/dar
。- 在輸入影像的邊緣周圍繪製一個黑色框
繪製一個顏色為紅色且不透明度為 50% 的框
先前的範例可以指定為
用粉紅色填充框
signalstats,drawgraph=lavfi.signalstats.YAVG:min=0:max=255
繪製一個 2 像素紅色 2.40:1 遮罩
ebur128=metadata=1,adrawgraph=lavfi.r128.M:min=-120:max=5
11.77 drawgrid
使用輸入視訊元數據繪製圖表。
它接受以下參數
- x
- y
m1
- width, w
- 超出範圍的像素將被鏡像像素替換。
設定第一個影格元數據鍵,將從中獲取元數據值以繪製圖表。
- 向 hd720 視訊大小的 rgb 輸入新增波紋效果
fg1
- 使用基於邊界框的深度神經網路進行分類。
設定第一個前景顏色表達式。
指定要用於模型載入和執行的 DNN 後端。此選項現在僅接受 openvino,將新增 tensorflow 後端。
- model
m2
input
- dar
設定 dnn 網路的輸入名稱。
- hsub
- vsub
水平和垂直色度子採樣值。例如,對於像素格式 "yuv422p",hsub 為 2,vsub 為 1。
- output
- 設定 dnn 網路的輸出名稱。
設定第二個影格元數據鍵,將從中獲取元數據值以繪製圖表。
- sar
confidence
- x
- y
fg2
- f
- h
設定第二個前景顏色表達式。
- 設定傳輸表達式。
m3
使用深度神經網路進行物件偵測。
11.77.1 範例
- 設定第三個影格元數據鍵,將從中獲取元數據值以繪製圖表。
drawgrid=width=100:height=100:thickness=2:color=red@0.5
- fg3
drawgrid=w=iw/3:h=ih/3:t=2:c=white@0.5
11.77.2 指令
avgblur
如果指定的表達式無效,則會保持其目前值。
11.78 drawtext
設定第三個前景顏色表達式。
m4
11.78.1 語法
它接受以下參數
- 設定第四個影格元數據鍵,將從中獲取元數據值以繪製圖表。
fg4
- 設定第四個前景顏色表達式。
min
- 設定元數據值的最小值。
- max
- 設定元數據值的最大值。
- bgcolor
設定圖表背景顏色。預設值為白色。
- mode
設定圖表模式。
模式的可用值為
- ‘bar’
‘dot’
- ‘line’
預設值為
line
。- slide
設定滑動模式。
- 滑動的可用值為
- ‘frame’
- 到達右邊界時繪製新影格。
‘replace’
- 用新的列替換舊的列。
‘scroll’
- 從右向左滾動。
‘rscroll’
從左向右滾動。
- ‘picture’
繪製單張圖片。
- 預設值為
frame
。 size
- 設定圖表視訊的大小。有關此選項的語法,請查看 (ffmpeg-utils) 手冊中的「視訊大小」部分。預設值為
900x256
。 rate, r
- 設定輸出影格率。預設值為
25
。 前景顏色表達式可以使用以下變數
MIN
- 元數據值的最小值。
MAX
- 元數據值的最大值。
VAL
- 當前元數據鍵值。
顏色定義為 0xAABBGGRR。
- range, r
使用來自 signalstats 濾鏡的元數據的範例
- 使用來自 ebur128 濾鏡的元數據的範例
在輸入影像上繪製網格。
- x, left
y, top
- 指定網格交叉點的某些點的坐標的表達式(旨在配置偏移量)。兩者都預設為 0。
width, w
height, h
- default
- 指定網格單元格的寬度和高度的表達式,如果為 0,則分別將其解釋為輸入寬度和高度,減去
thickness
,因此影像會被框起來。預設為 0。 - color, c
- 指定網格的顏色。有關此選項的通用語法,請查看 (ffmpeg-utils) 手冊中的「顏色」部分。如果使用特殊值
invert
,則網格顏色與反轉亮度的視訊相同。 - thickness, t
- 設定網格線條厚度的表達式。預設值為
1
。 - replace
- 如果輸入具有 alpha,則適用。值為
1
時,繪製網格的像素將覆蓋視訊的顏色和 alpha 像素。預設值為0
,它將網格複合到輸入上,使視訊的 alpha 保持不變。 - iw, grid_w
- ih, grid_h
- 輸入網格單元格寬度和高度。
- x, grid_x
- y, grid_y
- 網格交叉點的某些點的 x 和 y 坐標(旨在配置偏移量)。
- w, cell_w
h, cell_h
繪製單元格的寬度和高度。
- t, thickness
繪製單元格的厚度。
繪製單元格為 100x100 像素、厚度為 2 像素、顏色為紅色且不透明度為 50% 的網格
- 繪製不透明度為 50% 的白色 3x3 網格
使用 libfreetype 庫在視訊頂部繪製文字字串或來自指定檔案的文字。
- 要啟用此濾鏡的編譯,您需要使用
--enable-libfreetype
和--enable-libharfbuzz
配置 FFmpeg。要啟用預設字體回退和 font 選項,您需要使用--enable-libfontconfig
配置 FFmpeg。要啟用 text_shaping 選項,您需要使用--enable-libfribidi
配置 FFmpeg。 box
- 用於使用背景顏色在文字周圍繪製框。值必須為 1(啟用)或 0(禁用)。box 的預設值為 0。
- boxborderw
設定要使用 boxcolor 在框周圍繪製的邊框的寬度。必須使用以下格式之一指定值
boxborderw=10
將所有邊框的寬度設定為 10boxborderw=10|20
將頂部和底部邊框的寬度設定為 10,將左側和右側邊框的寬度設定為 20boxborderw=10|20|30
將頂部邊框的寬度設定為 10,將底部邊框的寬度設定為 30,將左側和右側邊框的寬度設定為 20boxborderw=10|20|30|40
將邊框寬度設定為 10(頂部)、20(右側)、30(底部)、40(左側)- boxborderw 的預設值為 "0"。
boxcolor
- 用於在文字周圍繪製框的顏色。有關此選項的語法,請查看 (ffmpeg-utils) 手冊中的「顏色」部分。
boxcolor 的預設值為 "白色"。
- line_spacing
設定行間距(以像素為單位)。line_spacing 的預設值為 0。
- text
text_align
- textfile
設定文字相對於框邊界的垂直和水平對齊方式。該值是標記的組合,一個用於垂直對齊(T=頂部,M=中間,B=底部),另一個用於水平對齊(L=左側,C=中心,R=右側)。請注意,僅當水平對齊方式為左側時,才支援 Tab 字元。
y_align
指定 y 值所指的內容。可能的值為
text
第一行文字的最高字形頂部放置在 y 處baseline
第一行文字的基線放置在 y 處font
第一行文字的基線放置在 y 加上字體度量中定義的上升高度(以像素為單位)- 為了向後兼容,y_align 的預設值為 "text"。
borderw
- x
- y
設定要使用 bordercolor 在文字周圍繪製的邊框的寬度。borderw 的預設值為 0。
bordercolor
設定用於在文字周圍繪製邊框的顏色。有關此選項的語法,請查看 (ffmpeg-utils) 手冊中的「顏色」部分。
bordercolor 的預設值為 "黑色"。
- dar
expansion
- hsub
- vsub
水平和垂直色度子採樣值。例如,對於像素格式 "yuv422p",hsub 為 2,vsub 為 1。
- 選擇如何展開 text。可以是
none
、strftime
(已棄用)或normal
(預設值)。請參閱下文的 文字展開 部分以獲取詳細資訊。 basetime
- 設定計數的開始時間。值以微秒為單位。僅應用於已棄用的
strftime
展開模式。要在正常展開模式下模擬,請使用pts
函數,並提供開始時間(以秒為單位)作為第二個參數。 fix_bounds
- 如果為 true,則檢查並修復文字坐標以避免裁剪。
fontcolor
- 用於繪製字體的顏色。有關此選項的語法,請查看 (ffmpeg-utils) 手冊中的「顏色」部分。
fontcolor 的預設值為 "黑色"。
- fontcolor_expr
字串,其展開方式與 text 相同,以獲得動態 fontcolor 值。預設情況下,此選項具有空值且未處理。設定此選項後,它會覆蓋 fontcolor 選項。
- font
用於繪製文字的字體系列。預設值為 Sans。
- fontfile
用於繪製文字的字體檔案。必須包含路徑。如果禁用了 fontconfig 支援,則此參數是強制性的。
- alpha
繪製文字時套用 alpha 混合。值可以是介於 0.0 和 1.0 之間的數字。表達式也接受相同的變數 x, y。預設值為 1。請參閱 fontcolor_expr。
- fontsize
用於繪製文字的字體大小。fontsize 的預設值為 16。
- text_shaping
如果設定為 1,則嘗試在繪製文字之前對文字進行整形(例如,反轉從右到左的文字的順序並連接阿拉伯字元)。否則,僅按給定的方式繪製文字。預設值為 1(如果支援)。
- ft_load_flags
用於載入字體的標記。
- n
標記映射 libfreetype 支援的相應標記,並且是以下值的組合
- no_scale
no_hinting
- sar
confidence
- 設定傳輸表達式。
以秒為單位的時間戳記,如果輸入時間戳記未知,則為 NAN
- render
no_bitmap
- vertical_layout
force_autohint
- x
- y
crop_bitmap
pedantic
- ignore_global_advance_width
no_recurse
- ignore_transform
monochrome
- duration
linear_design
- no_autohint
預設值為 "default"。
11.78.2 文字擴展
有關更多資訊,請查閱 FT_LOAD_* libfreetype 標記的文檔。
shadowcolor
用於在繪製文字後面繪製陰影的顏色。有關此選項的語法,請查看 (ffmpeg-utils) 手冊中的「顏色」部分。
shadowcolor 的預設值為 "黑色"。
boxw
設定要在文字周圍繪製的框的寬度。boxw 的預設值會自動計算以匹配文字寬度
boxh
此濾鏡並非為即時設計。
設定要在文字周圍繪製的框的高度。boxh 的預設值會自動計算以匹配文字高度
shadowx
shadowy
文字陰影位置相對於文字位置的 x 和 y 偏移量。它們可以是正值或負值。兩者的預設值均為 "0"。
start_number
n/frame_num 變數的起始影格編號。預設值為 "0"。
tabsize
用於呈現 Tab 的空格數大小。預設值為 4。
timecode
rolloff
以 "hh:mm:ss[:;.]ff" 格式設定初始時間碼表示形式。它可以與或不與 text 參數一起使用。必須指定 timecode_rate 選項。
timecode_rate, rate, r
設定時間碼影格率(僅限時間碼)。值將四捨五入到最接近的整數。最小值為 "1"。影格丟失時間碼支援影格率 30 和 60。
tc24hmax
如果設定為 1,則 timecode 選項的輸出將在 24 小時後環繞。預設值為 0(禁用)。
text
要繪製的文字字串。文字必須是 UTF-8 編碼字元的序列。如果未使用參數 textfile 指定檔案,則此參數是強制性的。
ignore_global_advance_width
textfile
pts
包含要繪製的文字的文字檔案。文字必須是 UTF-8 編碼字元的序列。
如果未使用參數 text 指定文字字串,則此參數是強制性的。
如果同時指定了 text 和 textfile,則會引發錯誤。
text_source
如果想要使用側資料偵測邊界框中的文字資料,則應將文字來源設定為 side_data_detection_bboxes。
11.78.3 指令
如果設定了文字來源,則將忽略 text 和 textfile,並且仍然使用側資料偵測邊界框中的文字資料。因此,如果您不確定文字來源,請不要使用此參數。
- reload
textfile 將在指定的影格間隔重新載入。請務必以原子方式更新 textfile,否則可能會部分讀取,甚至失敗。範圍為 0 到 INT_MAX。預設值為 0。
x, left
fontsize=56:fontcolor=green:text='Hello World'
y, top
sendcmd=c='56.0 drawtext reinit fontsize=56\:fontcolor=green\:text=Hello\\ World'
指定文字將在視訊影格內繪製的偏移量的表達式。它們相對於輸出影像的頂部/左側邊框。
x 和 y 的預設值為 "0"。
- x
- y
- range, r
- 使用來自 ebur128 濾鏡的元數據的範例
- 設定輸出影格率。預設值為
25
。 - mode
- 從右向左滾動。
- t, thickness
- 設定第四個影格元數據鍵,將從中獲取元數據值以繪製圖表。
- 繪製不透明度為 50% 的白色 3x3 網格
- 要啟用此濾鏡的編譯,您需要使用
--enable-libfreetype
和--enable-libharfbuzz
配置 FFmpeg。要啟用預設字體回退和 font 選項,您需要使用--enable-libfontconfig
配置 FFmpeg。要啟用 text_shaping 選項,您需要使用--enable-libfribidi
配置 FFmpeg。 - 設定第四個前景顏色表達式。
- ‘bar’
- ‘line’
- 用於使用背景顏色在文字周圍繪製框。值必須為 1(啟用)或 0(禁用)。box 的預設值為 0。
- boxborderw
- 用新的列替換舊的列。
11.78.4 範例
- 請參閱下文以獲取接受的常數和函數列表。
drawtext="fontfile=/usr/share/fonts/truetype/freefont/FreeSerif.ttf: text='Test Text'"
- 繪製字型為 FreeSerif、大小為 24 的「Test Text」,位置在 x=100 和 y=50(從螢幕左上角開始計算),文字顏色為黃色,並以紅色方框框住。文字和方框的透明度均為 20%。
drawtext="fontfile=/usr/share/fonts/truetype/freefont/FreeSerif.ttf: text='Test Text':\ x=100: y=50: fontsize=24: fontcolor=yellow@0.2: box=1: boxcolor=red@0.2"
請注意,如果參數列表中未使用空格,則雙引號不是必要的。
- 在視訊影格的中心顯示文字
drawtext="fontsize=30:fontfile=FreeSerif.ttf:text='hello world':x=(w-text_w)/2:y=(h-text_h)/2"
- 在隨機位置顯示文字,每 30 秒切換到新位置
drawtext="fontsize=30:fontfile=FreeSerif.ttf:text='hello world':x=if(eq(mod(t\,30)\,0)\,rand(0\,(w-text_w))\,x):y=if(eq(mod(t\,30)\,0)\,rand(0\,(h-text_h))\,y)"
- 在視訊影格的最後一行顯示從右向左滑動的文字行。檔案 LONG_LINE 假設包含單行文字,沒有換行符號。
drawtext="fontsize=15:fontfile=FreeSerif.ttf:text=LONG_LINE:y=h-line_h:x=-50*t"
- 在影格底部外顯示檔案 CREDITS 的內容並向上捲動。
drawtext="fontsize=20:fontfile=FreeSerif.ttf:textfile=CREDITS:y=h-20*t"
- 在輸入視訊的中心繪製單個綠色字母 "g"。字形基線放置在螢幕高度的一半位置。
drawtext="fontsize=60:fontfile=FreeSerif.ttf:fontcolor=green:text=g:x=(w-max_glyph_w)/2:y=h/2-ascent"
- 每 3 秒顯示文字 1 秒
drawtext="fontfile=FreeSerif.ttf:fontcolor=white:x=100:y=x/dar:enable=lt(mod(t\,3)\,1):text='blink'"
- 使用 fontconfig 設定字型。請注意,冒號需要跳脫字元。
drawtext='fontfile=Linux Libertine O-40\\:style=Semibold:text=FFmpeg'
- 繪製「Test Text」,字型大小取決於視訊的高度。
drawtext="text='Test Text': fontsize=h/30: x=(w-text_w)/2: y=(h-text_h*2)"
- 印出現場編碼的日期(請參閱
strftime
C 函數的文件)drawtext='fontfile=FreeSans.ttf:text=%{localtime\:%a %b %d %Y}'
- 顯示文字淡入和淡出(出現/消失)
#!/bin/sh DS=1.0 # display start DE=10.0 # display end FID=1.5 # fade in duration FOD=5 # fade out duration ffplay -f lavfi "color,drawtext=text=TEST:fontsize=50:fontfile=FreeSerif.ttf:fontcolor_expr=ff0000%{eif\\\\: clip(255*(1*between(t\\, $DS + $FID\\, $DE - $FOD) + ((t - $DS)/$FID)*between(t\\, $DS\\, $DS + $FID) + (-(t - $DE)/$FOD)*between(t\\, $DE - $FOD\\, $DE) )\\, 0\\, 255) \\\\: x\\\\: 2 }"
- 水平對齊多個獨立文字。請注意,max_glyph_a 和 fontsize 值包含在 y 偏移量中。
drawtext=fontfile=FreeSans.ttf:text=DOG:fontsize=24:x=10:y=20+24-max_glyph_a, drawtext=fontfile=FreeSans.ttf:text=cow:fontsize=24:x=80:y=20+24-max_glyph_a
- 如果存在特殊的中繼資料 lavf.image2dec.source_basename,則將其繪製到每個影格上。否則,繪製字串 "NA"。請注意,image2 解多工器必須具有選項 -export_path_metadata 1,特殊中繼資料欄位才能用於濾鏡。
drawtext="fontsize=20:fontcolor=white:fontfile=FreeSans.ttf:text='%{metadata\:lavf.image2dec.source_basename\:NA}':x=10:y=10"
有關 libfreetype 的更多資訊,請查看:http://www.freetype.org/。
有關 fontconfig 的更多資訊,請查看:http://freedesktop.org/software/fontconfig/fontconfig-user.html。
有關 libfribidi 的更多資訊,請查看:http://fribidi.org/。
有關 libharfbuzz 的更多資訊,請查看:https://github.com/harfbuzz/harfbuzz。
11.79 edgedetect
偵測並繪製邊緣。此濾鏡使用 Canny 邊緣偵測演算法。
濾鏡接受以下選項
- low
- high
threshold
threshold
threshold
threshold
- mode
定義繪圖模式。
- ‘wires’
在黑色背景上繪製白色/灰色線條。
- ‘colormix’
混合色彩以建立繪畫/卡通效果。
- ‘canny’
在所有選定的平面上套用 Canny 邊緣偵測器。
預設值為 wires。
- planes
選取要篩選的平面。預設情況下,會篩選所有可用的平面。
11.79.1 範例
- 使用自訂值進行遲滯閾值處理的標準邊緣偵測
edgedetect=low=0.1:high=0.4
- 無閾值處理的繪畫效果
edgedetect=mode=colormix:high=0
11.80 elbg
使用 ELBG (Enhanced LBG) 演算法套用色調分離效果。
對於每個輸入影像,此濾鏡將計算從輸入到輸出的最佳映射,給定碼本長度,即不同輸出色彩的數量。
此濾鏡接受以下選項。
- codebook_length, l
設定碼本長度。該值必須為正整數,並表示不同輸出色彩的數量。預設值為 256。
- nb_steps, n
設定用於計算最佳映射的最大迭代次數。值越高,結果越好,計算時間也越長。預設值為 1。
- seed, s
設定隨機種子,必須是介於 0 和 UINT32_MAX 之間的整數。如果未指定,或明確設定為 -1,則濾鏡將盡力使用良好的隨機種子。
- pal8
設定 pal8 輸出像素格式。此選項不適用於碼本長度大於 256 的情況。預設為停用。
- use_alpha
在量化計算中包含 alpha 值。允許建立具有多個 alpha 平滑混合的調色盤輸出影像 (例如 PNG8)。
11.81 entropy
測量視訊影格色彩通道直方圖中的灰階熵。
它接受以下參數
- mode
可以是 normal 或 diff。預設值為 normal。
diff 模式測量直方圖增量值(相鄰直方圖值之間的絕對差異)的熵。
11.82 epx
套用 EPX 放大濾鏡,該濾鏡專為像素藝術而設計。
設定柔削波的類型。
- n
設定縮放尺寸:
2
代表2xEPX
,3
代表3xEPX
。預設值為3
。
11.83 eq
設定亮度、對比度、飽和度和近似 gamma 調整。
濾鏡接受以下選項
- contrast
設定對比度表示式。該值必須是介於
-1000.0
到1000.0
之間的浮點值。預設值為 "1"。- ‘mirror, 3’
設定亮度表示式。該值必須是介於
-1.0
到1.0
之間的浮點值。預設值為 "0"。- saturation
設定飽和度表示式。該值必須是介於
0.0
到3.0
之間的浮點值。預設值為 "1"。- gamma
設定 gamma 表示式。該值必須是介於
0.1
到10.0
之間的浮點值。預設值為 "1"。- gamma_r
設定紅色的 gamma 表示式。該值必須是介於
0.1
到10.0
之間的浮點值。預設值為 "1"。- gamma_g
設定綠色的 gamma 表示式。該值必須是介於
0.1
到10.0
之間的浮點值。預設值為 "1"。- gamma_b
設定藍色的 gamma 表示式。該值必須是介於
0.1
到10.0
之間的浮點值。預設值為 "1"。- gamma_weight
設定 gamma 權重表示式。它可用於降低高 gamma 值對明亮影像區域的影響,例如,防止它們過度放大並變成純白色。該值必須是介於
0.0
到1.0
之間的浮點值。值為0.0
會完全關閉 gamma 校正,而1.0
會保持其完整強度。預設值為 "1"。- eval
設定何時評估亮度、對比度、飽和度和 gamma 表示式。
設定叢發融合,以視窗大小的百分比表示。允許範圍為
0
到10
。預設值為2
。如果偵測為雜訊的任何兩個樣本之間的間隔小於此值,則這兩個樣本之間的任何樣本也將被偵測為雜訊。- ‘init’
僅在濾鏡初始化期間或處理命令時評估表示式一次
- 「frame」
為每個傳入的影格評估表示式
預設值為 ‘init’。
表示式接受以下參數
- n
輸入影格的影格計數,從 0 開始
- pos
輸入檔案中對應封包的位元組位置,如果未指定則為 NAN;已棄用,請勿使用
- r
輸入視訊的影格率,如果輸入影格率未知則為 NAN
- 設定傳輸表達式。
以秒為單位的時間戳記,如果輸入時間戳記未知,則為 NAN
11.83.1 指令
此濾鏡支援以下命令
- contrast
設定對比度表示式。
- ‘mirror, 3’
設定亮度表示式。
- saturation
設定飽和度表示式。
- gamma
設定 gamma 表示式。
- gamma_r
設定 gamma_r 表示式。
- gamma_g
設定 gamma_g 表示式。
- gamma_b
設定 gamma_b 表示式。
- gamma_weight
設定 gamma_weight 表示式。
命令接受與對應選項相同的語法。
如果指定的表達式無效,則會保持其目前值。
11.84 erosion
將侵蝕效果套用於視訊。
此濾鏡將像素替換為局部 (3x3) 最小值。
設定視窗長度,以樣本為單位。預設值為 2048。允許範圍為 32 到 65536。
- noise
- 設定執行除法時的雜訊。預設值為 0.0000001。當寬度和高度不相同且不是 2 的冪,或者卷積之前的串流有雜訊時很有用。
deconvolve
濾鏡也支援 framesync 選項。- 減少視訊中的交叉亮度(點爬行)和交叉顏色(彩虹)。
mode
- filename
如果設定,則運動搜尋的詳細日誌將寫入指定的檔案。
移除前景顏色的不必要污染,這些污染是由綠幕或藍幕的反射顏色引起的。
1 2 3 4 5 6 7 8
11.84.1 指令
此濾鏡支援以上所有選項作為 commands。
11.85 estdif
為輸入視訊解交錯處理("estdif" 代表 "Edge Slope Tracing Deinterlacing Filter")。
僅空間濾鏡,使用邊緣斜率追蹤演算法來內插遺失的線條。它接受以下參數
- mode
mode
- frame
mode
- field
mode
預設值為
field
。- parity
parity
- tff
parity
- bff
parity
- auto
parity
parity
- deint
deint
- 設定用於設定跨聲道樣本延遲的隨機種子。
deint
- interlaced
deint
deint
- rslope
指定邊緣斜率追蹤的搜尋半徑。預設值為 1。允許範圍為 1 到 15。
- redge
指定最佳邊緣匹配的搜尋半徑。預設值為 2。允許範圍為 0 到 15。
- ecost
指定邊緣匹配的邊緣成本。預設值為 2。允許範圍為 0 到 50。
- mcost
指定邊緣匹配的中間成本。預設值為 1。允許範圍為 0 到 50。
- dcost
指定邊緣匹配的距離成本。預設值為 1。允許範圍為 0 到 50。
- interp
指定使用的內插法。預設為 4 點內插法。它接受以下值之一
- 2p
兩點內插法。
- 4p
四點內插法。
- 6p
六點內插法。
11.85.1 指令
blend
11.86 exposure
調整視訊串流的曝光。
濾鏡接受以下選項
- exposure
以 EV 為單位設定曝光校正。允許範圍為 -3.0 到 3.0 EV。預設值為 0 EV。
- black
設定黑階校正。允許範圍為 -1.0 到 1.0。預設值為 0。
11.86.1 指令
blend
11.87 extractplanes
從輸入視訊串流中提取色彩通道組件到獨立的灰階視訊串流中。
stages
- planes
設定要提取的平面。
平面的可用值為
- ‘y’
- ‘u’
- ‘v’
- ‘a’
- ‘r’
- ‘g’
- ‘b’
選擇輸入中不可用的平面將導致錯誤。這表示您無法同時選擇具有
y
、u
、v
平面的r
、g
、b
平面。
11.87.1 範例
- 從輸入視訊影格中提取亮度、u 和 v 色彩通道組件到 3 個灰階輸出
ffmpeg -i video.avi -filter_complex 'extractplanes=y+u+v[y][u][v]' -map '[y]' y.avi -map '[u]' u.avi -map '[v]' v.avi
11.88 fade
將淡入/淡出效果套用於輸入視訊。
它接受以下參數
- type, t
效果類型可以是 "in" 代表淡入,或 "out" 代表淡出效果。預設值為
in
。- start_frame, s
指定開始套用淡化效果的影格編號。預設值為 0。
- nb_frames, n
淡化效果持續的影格數。在淡入效果結束時,輸出視訊將具有與輸入視訊相同的強度。在淡出轉換結束時,輸出視訊將填滿選定的 color。預設值為 25。
- range, r
如果設定為 1,則僅淡化 alpha 通道(如果輸入中存在)。預設值為 0。
- start_time, st
指定開始套用淡化效果的影格時間戳記(以秒為單位)。如果同時指定了 start_frame 和 start_time,則淡化將在最後發生的時間開始。預設值為 0。
- duration, d
淡化效果必須持續的秒數。在淡入效果結束時,輸出視訊將具有與輸入視訊相同的強度,在淡出轉換結束時,輸出視訊將填滿選定的 color。如果同時指定了 duration 和 nb_frames,則使用 duration。預設值為 0(預設使用 nb_frames)。
- 向 hd720 視訊大小的 rgb 輸入新增波紋效果
指定淡化的色彩。預設值為 "black"。
11.88.1 範例
- 淡入視訊的前 30 個影格
fade=in:0:30
以上命令等同於
fade=t=in:s=0:n=30
- 淡出 200 個影格視訊的最後 45 個影格
fade=out:155:45 fade=type=out:start_frame=155:nb_frames=45
- 淡入 1000 個影格視訊的前 25 個影格,並淡出最後 25 個影格
fade=in:0:25, fade=out:975:25
- 將前 5 個影格設為黃色,然後從影格 5-24 淡入
fade=in:5:20:color=yellow
- 在視訊的前 25 個影格中淡入 alpha
fade=in:0:25:alpha=1
- 將前 5.5 秒設為黑色,然後淡入 0.5 秒
fade=t=in:st=5.5:d=0.5
11.89 feedback
套用回饋視訊濾鏡。
此濾鏡將裁切的輸入影格傳遞到第二個輸出。從那裡可以使用其他視訊濾鏡進行篩選。在濾鏡從第二個輸入接收到影格後,該影格會與來自第一個輸入的原始影格組合,並傳遞到第一個輸出。
典型的用法是僅篩選影格的一部分。
濾鏡接受以下選項
- x
- y
設定左上角裁切位置。
- f
- h
設定裁切尺寸。
11.89.1 範例
- 僅使用 gblur 濾鏡模糊視訊影格左上角 100x100 矩形部分。
[in][blurin]feedback=x=0:y=0:w=100:h=100[out][blurout];[blurout]gblur=8[blurin]
- 使用 drawbox 濾鏡在視訊影格左上角 100x100 部分繪製黑色方框。
[in][blurin]feedback=x=0:y=0:w=100:h=100[out][blurout];[blurout]drawbox=x=0:y=0:w=100:h=100:t=100[blurin]
- 使用 pixelize 濾鏡將視訊影格 100x100 矩形部分像素化。
[in][blurin]feedback=x=320:y=240:w=100:h=100[out][blurout];[blurout]pixelize[blurin]
11.90 fftdnoiz
使用 3D FFT(頻域濾波)對影格進行降噪。
濾鏡接受以下選項
- sigma
設定雜訊 sigma 常數。這會設定降噪強度。預設值為 1。允許範圍為 0 到 30。在高重疊率下使用非常高的 sigma 值可能會產生區塊偽影。
- amount
設定降噪量。預設情況下,會減少所有偵測到的雜訊。預設值為 1。允許範圍為 0 到 1。
- block
設定區塊的像素大小,預設值為 32,範圍為 8 到 256。
- overlap
設定區塊重疊率。預設值為 0.5。允許範圍為 0.2 到 0.8。
- method
設定降噪方法。預設值為
wiener
,也可以是hard
。- prev
設定用於降噪的先前影格數。預設值為 0。
- next
設定用於降噪的後續影格數。預設值為 0。
- planes
設定要篩選的平面,預設情況下會篩選所有可用的平面,alpha 除外。
11.91 fftfilt
將任意表示式套用於頻域中的樣本
- dc_Y
調整影像亮度平面的直流值(增益)。濾鏡接受介於
0
到1000
之間的整數值。預設值設定為0
。- dc_U
調整影像第一個色度平面的直流值(增益)。濾鏡接受介於
0
到1000
之間的整數值。預設值設定為0
。- dc_V
調整影像第二個色度平面的直流值(增益)。濾鏡接受介於
0
到1000
之間的整數值。預設值設定為0
。- weight_Y
設定亮度平面的頻域權重表示式。
- weight_U
設定第一個色度平面的頻域權重表示式。
- weight_V
設定第二個色度平面的頻域權重表示式。
- eval
設定何時評估表示式。
設定叢發融合,以視窗大小的百分比表示。允許範圍為
0
到10
。預設值為2
。如果偵測為雜訊的任何兩個樣本之間的間隔小於此值,則這兩個樣本之間的任何樣本也將被偵測為雜訊。- ‘init’
僅在濾鏡初始化期間評估表示式一次。
- 「frame」
為每個傳入的影格評估表示式。
預設值為 ‘init’。
濾鏡接受以下變數
- x
- y
目前樣本的座標。
- w
- h
影像的寬度和高度。
- n
輸入影格的編號,從 0 開始。
- WS
- HS
用於水平和垂直處理的 FFT 陣列大小。
11.91.1 範例
- 高通
fftfilt=dc_Y=128:weight_Y='squish(1-(Y+X)/100)'
- 低通
fftfilt=dc_Y=0:weight_Y='squish((Y+X)/100-1)'
- 銳化
fftfilt=dc_Y=0:weight_Y='1+squish(1-(Y+X)/100)'
- 模糊
fftfilt=dc_Y=0:weight_Y='exp(-4 * ((Y+X)/(W+H)))'
11.92 field
使用步幅算術從交錯影像中提取單個場景,以避免浪費 CPU 時間。輸出影格標記為非交錯。
濾鏡接受以下選項
- 將第二個聲道延遲 500 個樣本,將第三個聲道延遲 700 個樣本,並保持第一個聲道(和可能存在的任何其他聲道)不變。
指定要提取頂部場景(如果值為
0
或top
)還是底部場景(如果值為1
或bottom
)。
11.93 fieldhint
透過複製提示檔案中提供的周圍影格的頂部和底部場景來建立新影格。
- hint
設定包含提示的檔案:絕對/相對影格編號。
剪輯片段中的每個影格都必須有一行。每一行必須包含兩個以逗號分隔的數字,可選擇後面跟著
-
或+
。檔案每一行提供的數字不能超出 [N-1,N+1],其中 N 是absolute
模式的目前影格編號,或超出relative
模式的 [-1, 1] 範圍。第一個數字指出從哪個影格擷取頂部場景,第二個數字指出從哪個影格擷取底部場景。如果選擇性地跟著
+
,則輸出影格將標記為交錯,否則如果跟著-
,則輸出影格將標記為漸進式,否則它將標記為與輸入影格相同。如果選擇性地跟著t
,則輸出影格將僅使用頂部場景,或者在b
的情況下,它將僅使用底部場景。如果行以#
或;
開頭,則會跳過該行。- mode
可以是項目
absolute
或relative
或pattern
。預設值為absolute
。pattern
模式與relative
模式相同,除了檔案的最後一個條目,如果需要處理的影格多於hint
檔案,則會尋找回開頭。
relative
模式的 hint
檔案的前幾行範例
0,0 - # first frame 1,0 - # second frame, use third's frame top field and second's frame bottom field 1,0 - # third frame, use fourth's frame top field and third's frame bottom field 1,0 - 0,0 - 0,0 - 1,0 - 1,0 - 1,0 - 0,0 - 0,0 - 1,0 - 1,0 - 1,0 - 0,0 -
11.94 fieldmatch
用於反向電影電視轉換的場景匹配濾鏡。它旨在從電影電視轉換串流重建漸進式影格。此濾鏡不會刪除重複的影格,因此為了實現完整的反向電影電視轉換,fieldmatch
需要在濾鏡圖中接續使用抽取濾鏡,例如 decimate。
場景匹配和抽取的區隔顯著地受到在兩者之間插入解交錯濾鏡備用方案的可能性所驅動。如果來源具有混合的電影電視轉換和真實交錯內容,fieldmatch
將無法為交錯部分匹配場景。但是,這些剩餘的梳狀影格將標記為交錯,因此可以在抽取之前由後續濾鏡(例如 yadif)進行解交錯處理。
除了各種組態選項外,fieldmatch
還可以使用選用的第二個串流,透過 ppsrc 選項啟動。如果啟用,影格重建將基於來自此第二個串流的場景和影格。這允許預先處理第一個輸入,以協助濾鏡的各種演算法,同時保持輸出無損(假設場景已正確匹配)。通常,場景感知降噪器或亮度/對比度調整可能會有所幫助。
請注意,此濾鏡使用與 TIVTC/TFM (AviSynth 專案) 和 VIVTC/VFM (VapourSynth 專案) 相同的演算法。後者是 TFM 的輕量級複製品,fieldmatch
是基於該複製品。雖然語意和用法非常接近,但某些行為和選項名稱可能會有所不同。
decimate 濾鏡目前僅適用於恆定影格率輸入。如果您的輸入具有混合的電影電視轉換 (30fps) 和漸進式內容,且影格率較低(例如 24fps),請使用以下濾鏡鏈來產生必要的 cfr 串流:dejudder,fps=30000/1001,fieldmatch,decimate
。
濾鏡接受以下選項
- order
指定輸入串流的假設場景順序。可用值為
- 「auto」
自動偵測同位(使用 FFmpeg 的內部同位值)。
- ‘bff’
假設底部場景優先。
- ‘tff’
假設頂部場景優先。
請注意,有時建議不要信任串流宣告的同位。
預設值為 auto。
- mode
設定要使用的匹配模式或策略。pc 模式是最安全的,因為它不會冒著因重複影格而產生抖動的風險(在可能的情況下),但是如果存在錯誤的編輯或混合場景,它最終會輸出梳狀影格,即使可能實際上存在良好的匹配。另一方面,pcn_ub 模式在產生抖動方面風險最高,但幾乎總是可以找到良好的影格(如果存在)。其他值都介於 pc 和 pcn_ub 之間,在冒著抖動風險和建立重複影格與在具有錯誤編輯、孤立場景、混合場景等的部分中尋找良好匹配之間取得平衡。
有關 p/c/n/u/b 的更多詳細資訊,請參閱 p/c/n/u/b 意義 章節。
提升高於偵測臨界值的頻率。
- 「pc」
雙向匹配 (p/c)
- ‘pc_n’
雙向匹配,如果仍然是梳狀則嘗試第三次匹配 (p/c + n)
- ‘pc_u’
雙向匹配,如果仍然是梳狀則嘗試第三次匹配(相同順序)(p/c + u)
- ‘pc_n_ub’
雙向匹配,如果仍然是梳狀則嘗試第三次匹配,如果仍然是梳狀則嘗試第四次/第五次匹配 (p/c + n + u/b)
- ‘pcn’
三向匹配 (p/c/n)
- ‘pcn_ub’
三向匹配,如果原始匹配中的所有 3 個都被偵測為梳狀,則嘗試第四次/第五次匹配 (p/c/n + u/b)
結尾的括號表示假設 order=tff(且 field 為 auto 或 top)的情況下,該模式將使用的匹配項。
就速度而言,pc 模式是最快的,而 pcn_ub 是最慢的。
預設值為 pc_n。
- 使用弱濾鏡和 4 像素的區塊大小進行去塊。
將主要輸入串流標記為預先處理的輸入,並啟用第二個輸入串流作為乾淨的來源,以從中選取場景。有關更多詳細資訊,請參閱濾鏡簡介。它類似於 VFM/TFM 中的 clip2 功能。
預設值為
0
(停用)。- field
設定要從哪個場景進行匹配。建議將此設定為與 order 相同的值,除非您使用該設定時遇到匹配失敗。在某些情況下,變更用於匹配的場景可能會對匹配效能產生重大影響。可用值為
- 「auto」
自動(與 order 相同的值)。
- ‘bottom’
從底部場景匹配。
- ‘top’
從頂部場景匹配。
預設值為 auto。
- mchroma
設定在匹配比較期間是否包含色度。在大多數情況下,建議保持啟用狀態。只有當您的剪輯片段有嚴重的色度問題(例如嚴重的彩虹效應或其他偽影)時,才應將此設定為
0
。將此設定為0
也可用於加快速度,但會犧牲一些準確性。預設值為
1
。- y0
- y1
這些定義了一個排除帶,該排除帶會排除 y0 和 y1 之間的線條,使其不包含在場景匹配決策中。排除帶可用於忽略字幕、標誌或其他可能會干擾匹配的事物。y0 設定開始掃描線,y1 設定結束線;y0 和 y1 之間的所有線條(包括 y0 和 y1)都將被忽略。將 y0 和 y1 設定為相同的值將停用此功能。y0 和 y1 預設值為
0
。- 設定區塊的大小,允許的範圍為 4 到 512。預設值為 8。
將場景變更偵測閾值設定為亮度平面上最大變更的百分比。良好的值在
[8.0, 14.0]
範圍內。場景變更偵測僅在 combmatch=sc 的情況下相關。scthresh 的範圍為[0.0, 100.0]
。預設值為
12.0
。- combmatch
當 combatch 不是 none 時,
fieldmatch
將在決定使用哪個匹配作為最終匹配時,將考慮匹配的梳狀分數。可用值為- 「none」
不進行基於梳狀分數的最終匹配。
- ‘sc’
僅在偵測到場景變更時才使用梳狀分數。
- ‘full’
始終使用梳狀分數。
預設值為 sc。
- combdbg
強制
fieldmatch
計算某些匹配的梳狀度量並列印它們。此設定在 TFM/VFM 詞彙中稱為 micout。可用值為- 「none」
無強制計算。
- ‘pcn’
‘pcn’
- 強制 p/c/n 計算。
‘pcnub’
強制 p/c/n/u/b 計算。
- 預設值為 none。
cthresh
預設值為
9
。- 與上述類似,但僅濾鏡處理第一個平面。
設定在梳狀影格決策中是否考慮色度。僅當您的來源有色度問題(彩虹效應等)導致啟用色度時梳狀影格偵測出現問題時,才停用此功能。實際上,使用 chroma=0 通常更可靠,除非來源中存在僅色度的梳狀。
預設值為
0
。- 設定區塊偵測閾值。允許的範圍為 0 到 1。預設值為:alpha 為 0.098,其餘為 0.05。使用更高的閾值可提供更強的去塊強度。設定 alpha 控制區塊精確邊緣的閾值偵測。剩餘選項控制邊緣附近的閾值偵測。每個選項用於下方/上方或左側/右側。將其中任何一個設定為 0 會禁用去塊。
- planes
分別設定在梳狀影格偵測期間使用的視窗的 x 軸和 y 軸大小。這與 combpel 像素需要偵測為梳狀以宣告影格為梳狀的區域大小有關。有關更多資訊,請參閱 combpel 參數描述。可能的值是從 4 開始到 512 的任何 2 的冪次。
預設值為
16
。- combpel
影格上任何 blocky 乘 blockx 大小的區塊內部的梳狀像素數量,以便將影格偵測為梳狀。雖然 cthresh 控制梳狀必須「可見」的程度,但此設定控制影格上任何局部區域(由 blockx 和 blocky 設定定義的視窗)中必須有多少梳狀。最小值為
0
,最大值為blocky x blockx
(此時永遠不會偵測到任何影格為梳狀)。此設定在 TFM/VFM 詞彙中稱為 MI。預設值為
80
。
11.94.1 p/c/n/u/b 意義
11.94.1.1 p/c/n
我們假設以下電影電視轉換串流
Top fields: 1 2 2 3 4 Bottom fields: 1 2 3 4 4
數字對應於場景相關的漸進式影格。在這裡,前兩個影格是漸進式的,第三個和第四個是梳狀的,依此類推。
當 fieldmatch
設定為從底部執行匹配時 (field=bottom),輸入串流的轉換方式如下
Input stream: T 1 2 2 3 4 B 1 2 3 4 4 <-- matching reference Matches: c c n n c Output stream: T 1 2 3 4 4 B 1 2 3 4 4
由於場景匹配的結果,我們可以看到某些影格被重複了。若要執行完整的反向電影電視轉換,您需要在此操作之後依賴抽取濾鏡。例如,請參閱 decimate 濾鏡。
現在從頂部場景匹配的相同操作 (field=top) 如下所示
Input stream: T 1 2 2 3 4 <-- matching reference B 1 2 3 4 4 Matches: c c p p c Output stream: T 1 2 2 3 4 B 1 2 2 3 4
在這些範例中,我們可以看到 p、c 和 n 的含義;基本上,它們指的是相反同位的影格和場景
- p 匹配先前影格中相反同位的場景
- c 匹配目前影格中相反同位的場景
- n 匹配下一個影格中相反同位的場景
11.94.1.2 u/b
u 和 b 匹配有點特殊,因為它們從相反的同位旗標進行匹配。在以下範例中,我們假設目前正在匹配第二個影格(頂部:2,底部:2)。根據匹配,在每個匹配的場景上方和下方放置一個「x」。
使用底部匹配 (field=bottom)
Match: c p n b u x x x x x Top 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 Bottom 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 x x x x x Output frames: 2 1 2 2 2 2 2 2 1 3
使用頂部匹配 (field=top)
Match: c p n b u x x x x x Top 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 Bottom 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 x x x x x Output frames: 2 2 2 1 2 2 1 3 2 2
11.94.2 範例
頂部場景優先電影電視轉換串流的簡單 IVTC
fieldmatch=order=tff:combmatch=none, decimate
進階 IVTC,針對仍然是梳狀的影格備用 yadif
fieldmatch=order=tff:combmatch=full, yadif=deint=interlaced, decimate
11.95 fieldorder
轉換輸入視訊的場景順序。
它接受以下參數
- order
輸出場景順序。有效值為 tff 代表頂部場景優先,或 bff 代表底部場景優先。
預設值為 ‘tff’。
轉換是透過將圖片內容向上或向下移動一行,並使用適當的圖片內容填滿剩餘的線條來完成。此方法與大多數廣播場景順序轉換器一致。
如果輸入視訊未標記為交錯,或已標記為所需的輸出場景順序,則此濾鏡不會變更傳入的視訊。
當轉換為或從 PAL DV 素材轉換時,這非常有用,PAL DV 素材是底部場景優先。
例如
ffmpeg -i in.vob -vf "fieldorder=bff" out.dv
11.96 fillborders
填滿輸入視訊的邊框,而不會變更視訊串流尺寸。有時視訊的四個邊緣可能有垃圾,您可能不想裁切視訊輸入以保持尺寸為某個數字的倍數。
此濾波器還能夠拉伸/壓縮音訊資料以使其與時間戳記匹配,或注入靜音/剪切音訊以使其與時間戳記匹配,執行兩者的組合或兩者都不執行。
- left
從左邊框填滿的像素數。
- right
從右邊框填滿的像素數。
- top
從頂部邊框填滿的像素數。
- bottom
從底部邊框填滿的像素數。
- mode
設定填滿模式。
設定叢發融合,以視窗大小的百分比表示。允許範圍為
0
到10
。預設值為2
。如果偵測為雜訊的任何兩個樣本之間的間隔小於此值,則這兩個樣本之間的任何樣本也將被偵測為雜訊。- 控制溢色區域中的紅色量。
使用最外層的像素填滿像素
- 控制溢色區域中的藍色量。藍幕應為 -1。
使用鏡像(半樣本對稱)填滿像素
- ‘fixed’
使用常數值填滿像素
- 「reflect」
使用反射(全樣本對稱)填滿像素
- 控制溢色區域中的綠色量。綠幕應為 -1。
使用包裝填滿像素
- ‘fade’
將像素淡化為常數值
- ‘margins’
使用邊框附近像素的加權平均值填滿頂部和底部的像素
預設值為 smear。
- color
設定固定或淡化模式中像素的色彩。預設值為 black。
11.96.1 指令
colorkey
如果指定的表達式無效,則會保持其目前值。
11.97 find_rect
在輸入視訊中尋找矩形物件。
要搜尋的物件必須指定為以 object 選項指定的 gray8 影像。
對於每個可能的匹配,都會計算分數。如果分數達到指定的閾值,則認為已找到物件。
如果輸入視訊包含物件的多個實例,則濾鏡只會找到其中一個。
找到物件後,會在匹配影格中設定以下中繼資料條目
- lavfi.rect.w
物件的寬度
- lavfi.rect.h
物件的高度
- lavfi.rect.x
物件的 x 位置
- lavfi.rect.y
物件的 y 位置
- lavfi.rect.score
找到物件的匹配分數
設定視窗長度,以樣本為單位。預設值為 2048。允許範圍為 32 到 65536。
- object
物件影像的檔案路徑,需要為 gray8。
- threshold
偵測閾值,表示為 0-1 範圍內的十進位數字。
閾值為 0.01 表示僅精確匹配,閾值為 0.99 表示幾乎所有項目都匹配。
預設值為 0.5。
- mipmaps
mipmap 的數量,預設值為 3。
- xmin, ymin, xmax, ymax
指定要搜尋的矩形。
- discard
捨棄未偵測到物件的影格。預設為停用。
11.97.1 範例
- 使用
ffmpeg
通過給定視訊的提供的影像覆蓋矩形物件ffmpeg -i file.ts -vf find_rect=newref.pgm,cover_rect=cover.jpg:mode=cover new.mkv
- 使用
ffprobe
尋找每個影格中物件的位置,並將其寫入記錄檔ffprobe -f lavfi movie=test.mp4,find_rect=object=object.pgm:threshold=0.3 \ -show_entries frame=pkt_pts_time:frame_tags=lavfi.rect.x,lavfi.rect.y \ -of csv -o find_rect.csv
11.98 floodfill
使用另一個值填滿具有相同像素組件值的區域。
設定視窗長度,以樣本為單位。預設值為 2048。允許範圍為 32 到 65536。
- x
設定像素 x 座標。
- y
設定像素 y 座標。
- s0
設定來源 #0 組件值。
- s1
設定來源 #1 組件值。
- s2
設定來源 #2 組件值。
- s3
設定來源 #3 組件值。
- d0
設定目的地 #0 組件值。
- d1
設定目的地 #1 組件值。
- d2
設定目的地 #2 組件值。
- d3
設定目的地 #3 組件值。
11.99 format
將輸入視訊轉換為指定的像素格式之一。Libavfilter 將嘗試選取一個適合作為下一個濾鏡輸入的格式。
它接受以下參數
- pix_fmts
以「|」分隔的像素格式名稱清單,例如 "pix_fmts=yuv420p|monow|rgb24"。
- color_spaces
以「|」分隔的色彩空間名稱清單,例如 "color_spaces=bt709|bt470bg|bt2020nc"。
- color_ranges
以「|」分隔的色彩範圍名稱清單,例如 "color_spaces=tv|pc"。
11.99.1 範例
- 將輸入視訊轉換為 yuv420p 格式
format=pix_fmts=yuv420p
將輸入視訊轉換為清單中的任何格式
format=pix_fmts=yuv420p|yuv444p|yuv410p
11.100 fps
透過複製或捨棄影格,將視訊轉換為指定的恆定影格率。
它接受以下參數
- fps
所需的輸出影格率。它接受包含以下常數的表示式
- ‘source_fps’
輸入的影格率
- ‘ntsc’
NTSC 影格率為
30000/1001
- ‘pal’
PAL 影格率為
25.0
- 「film」
電影影格率為
24.0
- ‘ntsc_film’
NTSC 電影片影格率為
24000/1001
預設值為
25
。- start_time
假設第一個 PTS 應為給定的值(以秒為單位)。這允許在串流開始時進行填補/修剪。預設情況下,不會對第一個影格的預期 PTS 做出任何假設,因此不會進行填補或修剪。例如,如果視訊串流在音訊串流之後開始,則可以將其設定為 0,以使用第一個影格的重複項來填補開頭,或修剪任何具有負 PTS 的影格。
- round
時間戳記 (PTS) 四捨五入方法。
analyze
- zero
向 0 四捨五入
- inf
遠離 0 四捨五入
- down
向負無限大四捨五入
- up
向正無限大四捨五入
- near
四捨五入到最近的值
預設值為
near
。- eof_action
讀取最後一個影格時執行的動作。
analyze
- round
使用與其他影格相同時間戳記四捨五入方法。
- pass
如果尚未達到輸入持續時間,則傳遞最後一個影格。
預設值為
round
。
或者,選項可以指定為扁平字串:fps[:start_time[:round]]。
另請參閱 setpts 濾鏡。
11.100.1 範例
- 將 fps 設定為 25 的典型用法
fps=fps=25
- 將 fps 設定為 24,使用縮寫和四捨五入方法四捨五入到最近的值
fps=fps=film:round=near
11.101 framepack
將兩個不同的視訊串流封裝到立體視訊中,在支援的編解碼器上設定正確的中繼資料。兩個視圖應具有相同的大小和影格率,並且處理將在較短的視訊結束時停止。請注意,您可以使用 scale 和 fps 濾鏡方便地調整視圖屬性。
它接受以下參數
- format
所需的封裝格式。支援的值為
- sbs
視圖彼此相鄰(預設)。
- tab
視圖彼此堆疊。
- lines
視圖按行封裝。
- columns
視圖按列封裝。
- frameseq
視圖在時間上交錯。
一些範例
# Convert left and right views into a frame-sequential video ffmpeg -i LEFT -i RIGHT -filter_complex framepack=frameseq OUTPUT # Convert views into a side-by-side video with the same output resolution as the input ffmpeg -i LEFT -i RIGHT -filter_complex [0:v]scale=w=iw/2[left],[1:v]scale=w=iw/2[right],[left][right]framepack=sbs OUTPUT
11.102 framerate
透過從來源影格內插新的視訊輸出影格來變更影格率。
此濾鏡並非設計為與交錯媒體正確運作。如果您希望變更交錯媒體的影格率,則需要在此濾鏡之前進行解交錯處理,並在此濾鏡之後重新交錯。
以下是接受選項的描述。
- fps
指定每秒輸出影格數。此選項也可以單獨指定為值。預設值為
50
。- interp_start
指定範圍的開始位置,其中輸出影格將建立為兩個影格的線性內插。範圍為 [
0
-255
],預設值為15
。- interp_end
指定範圍的結束位置,其中輸出影格將建立為兩個影格的線性內插。範圍為 [
0
-255
],預設值為240
。- scene
指定偵測到場景變更的層級,值介於 0 到 100 之間,表示新場景;較低的值反映目前影格引入新場景的可能性較低,而較高的值表示目前影格更有可能成為新場景。預設值為
8.2
。- flags
指定影響濾鏡處理的旗標。
flags 的可用值為
- scene_change_detect, scd
使用選項 scene 的值啟用場景變更偵測。預設情況下啟用此旗標。
11.103 framestep
每 N 個影格選取一個影格。
此濾鏡接受以下選項
- step
每隔
step
個影格選取影格。允許值為大於 0 的正整數。預設值為1
。
11.104 freezedetect
偵測凍結的視訊。
當此濾鏡偵測到輸入視訊在指定的持續時間內內容沒有顯著變更時,它會記錄訊息並設定影格中繼資料。視訊凍結偵測會計算視訊影格所有組件的平均絕對差值,並將其與雜訊基底進行比較。
列印的時間和持續時間以秒為單位表示。lavfi.freezedetect.freeze_start
中繼資料金鑰設定在時間戳記等於或超過偵測持續時間的第一個影格上,並且它包含凍結的第一個影格的時間戳記。lavfi.freezedetect.freeze_duration
和 lavfi.freezedetect.freeze_end
中繼資料金鑰設定在凍結之後的第一個影格上。
濾鏡接受以下選項
- noise, n
設定雜訊容差。可以 dB 為單位指定(如果指定的數值後附加 "dB"),或指定為介於 0 和 1 之間的差異比率。預設值為 -60dB 或 0.001。
- duration, d
設定凍結持續時間直到通知(預設為 2 秒)。
11.105 freezeframes
凍結視訊影格。
此濾鏡使用來自第二個輸入的影格凍結視訊影格。
濾鏡接受以下選項
- 最短輸入的持續時間。
設定開始凍結的第一個影格編號。
- last
設定結束凍結的最後一個影格編號。
- model
設定將用於取代已取代影格的第二個輸入中的影格編號。
11.106 frei0r
將 frei0r 效果套用於輸入視訊。
若要啟用此濾鏡的編譯,您需要安裝 frei0r 標頭並使用 --enable-frei0r
設定 FFmpeg。
它接受以下參數
- filter_name
要載入的 frei0r 效果的名稱。如果定義了環境變數
FREI0R_PATH
,則會在FREI0R_PATH
中以冒號分隔的清單指定的每個目錄中搜尋 frei0r 效果。否則,將依此順序搜尋標準 frei0r 路徑:HOME/.frei0r-1/lib/、/usr/local/lib/frei0r-1/、/usr/lib/frei0r-1/。- filter_params
要傳遞給 frei0r 效果的以「|」分隔的參數清單。
frei0r 效果參數可以是布林值(其值為 "y" 或 "n")、雙精度浮點數、色彩(指定為 R/G/B,其中 R、G 和 B 是介於 0.0 和 1.0 之間(含)的浮點數)或色彩描述,如 ffmpeg-utils 手冊中的「色彩」章節中所指定、位置(指定為 X/Y,其中 X 和 Y 是浮點數)和/或字串。
參數的數量和類型取決於載入的效果。如果未指定效果參數,則會設定預設值。
11.106.1 範例
- 套用 distort0r 效果,設定前兩個雙精度浮點參數
frei0r=filter_name=distort0r:filter_params=0.5|0.01
- 套用 colordistance 效果,將色彩作為第一個參數
frei0r=colordistance:0.2/0.3/0.4 frei0r=colordistance:violet frei0r=colordistance:0x112233
- 套用 perspective 效果,指定左上角和右上角影像位置
frei0r=perspective:0.2/0.2|0.8/0.2
有關更多資訊,請參閱 http://frei0r.dyne.org
11.106.2 指令
此濾鏡支援作為 commands 的 filter_params 選項。
11.107 fspp
套用快速且簡單的後處理。它是 spp 的更快版本。
它將 (I)DCT 分割為水平/垂直通道。與簡單的後處理濾鏡不同,其中一個是每個區塊執行一次,而不是每個像素執行一次。這允許更高的速度。
濾鏡接受以下選項
- quality
設定品質。此選項定義平均的層級數。它接受介於 4-5 之間的整數。預設值為
4
。- qp
強制恆定量化參數。它接受介於 0-63 之間的整數。如果未設定,則濾鏡將使用來自視訊串流的 QP(如果可用)。
- 強度 (strength)
設定濾鏡強度。它接受介於 -15 到 32 之間的整數。較低的值表示更多細節,但也表示更多偽影,而較高的值使影像更平滑,但也更模糊。預設值為
0
− PSNR 最佳。- use_bframe_qp
如果設定為
1
,則啟用 B 影格中 QP 的使用。使用此選項可能會導致閃爍,因為 B 影格通常具有更大的 QP。預設值為0
(未啟用)。
11.108 fsync
使用來自檔案的外部映射同步視訊影格。
對於映射檔案中給定的每個輸入 PTS,它會捨棄或建立盡可能多的影格,以重新建立映射檔案中給定的輸出影格序列。
此濾鏡可用於重新建立 fps 濾鏡的影格率轉換的輸出影格,使用 ffmpeg 選項 -stats_mux_pre
記錄到映射檔案中,並對相應的影格執行進一步處理,例如品質比較。
映射檔案的每一行必須包含每個輸入影格的三個項目、輸入 PTS(十進位)、輸出 PTS(十進位)和輸出 TIMEBASE(十進位/十進位),以空格分隔。此檔案格式對應於 -stats_mux_pre_fmt="{ptsi} {pts} {tb}"
的輸出。
濾鏡假設映射檔案按遞增輸入 PTS 排序。
濾鏡接受以下選項
- file, f
要使用的映射檔案的檔案名稱。
範例
# Convert a video to 25 fps and record a MAP_FILE file with the default format of this filter ffmpeg -i INPUT -vf fps=fps=25 -stats_mux_pre MAP_FILE -stats_mux_pre_fmt "{ptsi} {pts} {tb}" OUTPUT # Sort MAP_FILE by increasing input PTS sort -n MAP_FILE # Use INPUT, OUTPUT and the MAP_FILE from above to compare the corresponding frames in INPUT and OUTPUT via SSIM ffmpeg -i INPUT -i OUTPUT -filter_complex '[0:v]fsync=file=MAP_FILE[ref];[1:v][ref]ssim' -f null -
11.109 gblur
套用高斯模糊濾鏡。
濾鏡接受以下選項
- sigma
設定水平 sigma,高斯模糊的標準差。預設值為
0.5
。- steps
設定高斯近似的步驟數。預設值為
1
。- planes
planes
- sigmaV
設定垂直 sigma,如果為負值,則與
sigma
相同。預設值為-1
。
11.109.1 指令
avgblur
如果指定的表達式無效,則會保持其目前值。
11.110 geq
將通用方程式套用於每個像素。
濾鏡接受以下選項
- lum_expr, lum
設定亮度表示式。
- cb_expr, cb
設定藍色色度表示式。
- cr_expr, cr
設定紅色色度表示式。
- alpha_expr, a
設定 alpha 表示式。
- red_expr, r
設定紅色表示式。
- green_expr, g
設定綠色表示式。
- blue_expr, b
設定藍色表示式。
色彩空間是根據指定的選項選取的。如果指定了 lum_expr、cb_expr 或 cr_expr 選項之一,則濾鏡將自動選取 YCbCr 色彩空間。如果指定了 red_expr、green_expr 或 blue_expr 選項之一,則將選取 RGB 色彩空間。
如果未定義色度表示式之一,則會回退到另一個。如果未指定 alpha 表示式,則將評估為不透明值。如果未指定任何色度表示式,則將評估為亮度表示式。
表示式可以使用以下變數和函數
- n
blend
- x
- y
目前樣本的座標。
- w
- h
影像的寬度和高度。
- sw
- sh
寬度和高度縮放取決於目前篩選的平面。它是對應亮度平面像素數與目前平面像素數之間的比率。例如,對於 YUV4:2:0,亮度平面的值為
1,1
,色度平面的值為0.5,0.5
。- t
blend
- p(x, y)
傳回目前平面的位置 (x,y) 處的像素值。
- lum(x, y)
傳回亮度平面的位置 (x,y) 處的像素值。
- cb(x, y)
傳回藍色差色度平面的位置 (x,y) 處的像素值。如果沒有這樣的平面,則傳回 0。
- cr(x, y)
傳回紅色差色度平面的位置 (x,y) 處的像素值。如果沒有這樣的平面,則傳回 0。
- r(x, y)
- g(x, y)
- b(x, y)
傳回紅色/綠色/藍色組件的位置 (x,y) 處的像素值。如果沒有這樣的組件,則傳回 0。
- alpha(x, y)
傳回 alpha 平面的位置 (x,y) 處的像素值。如果沒有這樣的平面,則傳回 0。
- psum(x,y), lumsum(x, y), cbsum(x,y), crsum(x,y), rsum(x,y), gsum(x,y), bsum(x,y), alphasum(x,y)
從 (0,0) 到 (x,y) 的矩形中樣本值的總和,這允許取得矩形內樣本的總和。請參閱沒有總和後綴的函數。
- interpolation
設定內插方法之一
- nearest, n
- bilinear, b
預設值為雙線性。
對於函數,如果 x 和 y 超出區域,則值將自動裁剪到較近的邊緣。
請注意,此濾鏡可以使用多個執行緒,在這種情況下,每個切片將具有其自己的表示式狀態。如果您只想使用單個表示式狀態,因為您的表示式取決於先前的狀態,則應將濾鏡執行緒的數量限制為 1。
11.110.1 範例
- 水平翻轉影像
geq=p(W-X\,Y)
- 產生二維正弦波,角度為
PI/3
,波長為 100 像素geq=128 + 100*sin(2*(PI/100)*(cos(PI/3)*(X-50*T) + sin(PI/3)*Y)):128:128
- 產生奇特的神秘移動光
nullsrc=s=256x256,geq=random(1)/hypot(X-cos(N*0.07)*W/2-W/2\,Y-sin(N*0.09)*H/2-H/2)^2*1000000*sin(N*0.02):128:128
- 產生快速浮雕效果
format=gray,geq=lum_expr='(p(X,Y)+(256-p(X-4,Y-4)))/2'
- 根據像素位置修改 RGB 組件
geq=r='X/W*r(X,Y)':g='(1-X/W)*g(X,Y)':b='(H-Y)/H*b(X,Y)'
- 建立與輸入大小相同的徑向漸層(另請參閱 vignette 濾鏡)
geq=lum=255*gauss((X/W-0.5)*3)*gauss((Y/H-0.5)*3)/gauss(0)/gauss(0),format=gray
11.111 gradfun
修復有時因截斷為 8 位元色彩深度而引入到接近平坦區域中的條帶偽影。內插應該在條帶所在位置的漸層,並對其進行抖動處理。
它僅適用於播放。請勿在有損壓縮之前使用它,因為壓縮往往會遺失抖動並帶回條帶。
它接受以下參數
- 強度 (strength)
濾鏡將變更任何一個像素的最大量。這也是偵測接近平坦區域的閾值。可接受的值範圍為 .51 到 64;預設值為 1.2。超出範圍的值將被裁剪到有效範圍。
- 設定虛擬喇叭的仰角,單位為度。預設值為 0。
要擬合漸層的鄰域。較大的半徑會產生更平滑的漸層,但也阻止濾鏡修改詳細區域附近的像素。可接受的值為 8-32;預設值為 16。超出範圍的值將被裁剪到有效範圍。
或者,選項可以指定為扁平字串:strength[:radius]
11.111.1 範例
- 以
3.5
強度和半徑8
套用濾鏡gradfun=3.5:8
- 指定半徑,省略強度(強度將回退到預設值)
gradfun=radius=8
11.112 graphmonitor
顯示各種濾鏡圖統計資訊。
使用此濾鏡,可以偵錯完整的濾鏡圖。特別是連結中填滿佇列影格的問題。
濾鏡接受以下選項
- size, s
設定視訊輸出大小。預設值為 hd720。
- opacity, o
設定視訊不透明度。預設值為 0.9。允許範圍為 0 到 1。
- 設定空間亮度閾值。較低的值會增加交叉亮度的減少。
設定輸出模式旗標。
旗標的可用值為
- ‘full’
無任何篩選。預設值。
- ‘compact’
僅顯示具有佇列影格的濾鏡。
- ‘nozero’
僅顯示具有非零統計資訊的濾鏡。
- ‘noeof’
僅顯示具有非 eof 統計資訊的濾鏡。
- ‘nodisabled’
僅顯示時間軸中啟用的濾鏡。
- flags, f
設定旗標,啟用視訊中顯示哪些統計資訊。
旗標的可用值為
- 「none」
所有旗標都已關閉。
- ‘all’
所有旗標都已開啟。
- ‘queue’
顯示每個連結中佇列影格的數量。
- ‘frame_count_in’
顯示從濾鏡中取得的影格數量。
- ‘frame_count_out’
顯示從濾鏡中輸出的影格數量。
- ‘frame_count_delta’
顯示上述兩個值之間的差異影格數量。
- ‘pts’
顯示目前篩選影格 pts。
- ‘pts_delta’
顯示目前影格和先前影格之間的 pts 差異。
- ‘time’
顯示目前篩選影格時間。
- ‘time_delta’
顯示目前影格和先前影格之間的時間差異。
- ‘timebase’
顯示濾鏡連結的時間基底。
- ‘format’
顯示濾鏡連結使用的格式。
- ‘size’
顯示視訊大小或濾鏡連結使用的音訊通道數(如果是音訊)。
- ‘rate’
顯示視訊影格率或濾鏡連結使用的音訊取樣率(如果是音訊)。
- ‘eof’
顯示連結輸出狀態。
- ‘sample_count_in’
顯示從濾鏡中取得的樣本數。
- ‘sample_count_out’
顯示從濾鏡中輸出的樣本數。
- ‘sample_count_delta’
顯示上述兩個值之間的差異樣本數。
- 預設模式為「cutbelow」。
顯示時間軸濾鏡狀態。
- 繪製框的寬度和高度。
設定輸出串流的視訊速率上限,預設值為 25。這保證輸出視訊影格率不會高於此值。
11.113 grayworld
色彩恆定性濾鏡,根據灰度世界假設套用色彩校正
該演算法使用線性光,因此應預先將輸入資料線性化(並可能正確標記)。
ffmpeg -i INPUT -vf zscale=transfer=linear,grayworld,zscale=transfer=bt709,format=yuv420p OUTPUT
11.114 greyedge
色彩恆定性變異濾鏡,透過灰邊緣演算法估計場景照明,並相應地校正場景色彩。
請參閱:https://staff.science.uva.nl/th.gevers/pub/GeversTIP07.pdf
濾鏡接受以下選項
- difford
要套用於場景的微分階數。必須在 [0,2] 範圍內選擇,預設值為 1。
- minknorm
用於計算 Minkowski 距離的 Minkowski 參數。必須在 [0,20] 範圍內選擇,預設值為 1。設定為 0 以取得最大值,而不是計算 Minkowski 距離。
- sigma
要套用於場景的高斯模糊的標準差。必須在 [0,1024.0] 範圍內選擇,預設值 = 1。floor( sigma * break_off_sigma(3) ) 不能等於 0,如果 difford 大於 0。
11.114.1 範例
- 灰邊緣
greyedge=difford=1:minknorm=5:sigma=2
- 最大邊緣
greyedge=difford=1:minknorm=0:sigma=2
11.115 guided
套用引導濾鏡以進行邊緣保留平滑、去霧等。
濾鏡接受以下選項
- 設定虛擬喇叭的仰角,單位為度。預設值為 0。
設定像素的方框半徑。允許範圍為 1 到 20。預設值為 3。
- 將正規化最小均方(NLMS)或正規化最小均四方(NLMS4)演算法應用於第一個音訊串流,並使用第二個音訊串流。
設定正規化參數(帶平方)。允許範圍為 0 到 1。預設值為 0.01。
- mode
設定濾鏡模式。可以是
basic
或fast
。預設值為basic
。- sub
設定
fast
模式的子取樣比率。範圍為 2 到 64。預設值為 4。basic
模式中不會發生子取樣。- guidance
設定引導模式。可以是
off
或on
。預設值為off
。如果為on
,則需要兩個相同解析度和像素格式的輸入。第二個輸入用作引導。- planes
planes
11.115.1 指令
此濾鏡支援以上所有選項作為 commands。
11.115.2 範例
- 使用引導濾鏡進行邊緣保留平滑
ffmpeg -i in.png -vf guided out.png
- 使用引導濾鏡進行去霧、結構轉換濾波、細節增強。如需產生引導影像,請參閱論文「引導影像濾波」。請參閱:http://kaiminghe.com/publications/pami12guidedfilter.pdf。
ffmpeg -i in.png -i guidance.png -filter_complex guided=guidance=on out.png
11.116 haldclut
將 Hald CLUT 套用於視訊串流。
第一個輸入是要處理的視訊串流,第二個輸入是 Hald CLUT。Hald CLUT 輸入可以是簡單的圖片或完整的視訊串流。
濾鏡接受以下選項
- clut
設定將從第二個輸入串流處理哪個 CLUT 視訊影格,可以是 first 或 all。預設值為 all。
- shortest
強制在最短的輸入終止時終止。預設值為
0
。- repeatlast
在串流結束後繼續套用最後一個 CLUT。值為
0
會在達到 CLUT 的最後一個影格後停用濾鏡。預設值為1
。
haldclut
也具有與 lut3d 相同的內插選項(兩個濾鏡共用相同的內部結構)。
此濾鏡也支援 framesync 選項。
有關 Hald CLUT 的更多資訊,請在 Eskil Steenberg 的網站(Hald CLUT 作者)上找到:http://www.quelsolaar.com/technology/clut.html。
11.116.1 指令
此濾鏡支援作為 commands 的 interp
選項。
11.116.2 工作流程範例
11.116.2.1 Hald CLUT 視訊串流
產生使用各種效果變更的身分 Hald CLUT 串流
ffmpeg -f lavfi -i haldclutsrc=8 -vf "hue=H=2*PI*t:s=sin(2*PI*t)+1, curves=cross_process" -t 10 -c:v ffv1 clut.nut
注意:請確保您使用無損編解碼器。
然後將其與 haldclut
一起使用,以將其套用於一些隨機串流
ffmpeg -f lavfi -i mandelbrot -i clut.nut -filter_complex '[0][1] haldclut' -t 20 mandelclut.mkv
Hald CLUT 將套用於前 10 秒(clut.nut 的持續時間),然後該 CLUT 串流的最新圖片將套用於 mandelbrot
串流的剩餘影格。
11.116.2.2 具有預覽的 Hald CLUT
Hald CLUT 應該是 Level*Level*Level
乘 Level*Level*Level
像素的方形影像。對於給定的 Hald CLUT,FFmpeg 將選取從圖片左上角開始的最大可能正方形。剩餘的填補像素(底部或右側)將被忽略。此區域可用於新增 Hald CLUT 的預覽。
通常,haldclut
濾鏡將支援以下產生的 Hald CLUT
ffmpeg -f lavfi -i haldclutsrc=8 -vf " pad=iw+320 [padded_clut]; smptebars=s=320x256, split [a][b]; [padded_clut][a] overlay=W-320:h, curves=color_negative [main]; [main][b] overlay=W-320" -frames:v 1 clut.png
它包含原始 CLUT 的效果預覽:SMPTE 色條顯示在右上方,下方是由色彩變更處理的相同色條。
然後,可以使用以下方法可視化此 Hald CLUT 的效果
ffplay input.mkv -vf "movie=clut.png, [in] haldclut"
11.117 hflip
水平翻轉輸入視訊。
例如,若要使用 ffmpeg
水平翻轉輸入視訊
ffmpeg -i in.avi -vf "hflip" out.avi
11.118 histeq
此濾鏡在逐個影格的基礎上套用全域色彩直方圖等化。
它可用於校正像素強度範圍壓縮的視訊。此濾鏡重新分配像素強度,以等化它們在強度範圍內的分布。它可以被視為「自動調整對比度濾鏡」。此濾鏡僅適用於校正劣化或拍攝效果不佳的來源視訊。
濾鏡接受以下選項
- 強度 (strength)
判斷要套用的等化量。隨著強度的降低,像素強度的分佈越來越接近輸入影格的分佈。該值必須是 [0,1] 範圍內的浮點數,預設值為 0.200。
- intensity
設定可以產生的最大強度並適當地縮放輸出值。應根據需要設定強度,然後可以限制強度(如果需要)以避免洗出色。該值必須是 [0,1] 範圍內的浮點數,預設值為 0.210。
- antibanding
設定反條帶層級。如果啟用,濾鏡將隨機將輸出像素的亮度變更少量,以避免直方圖出現條帶。可能的值為
none
、weak
或strong
。預設值為none
。
11.119 histogram
計算並繪製輸入視訊的色彩分布直方圖。
計算出的直方圖是影像中色彩組件分布的表示。
標準直方圖顯示影像中色彩組件的分布。顯示每個色彩組件的色彩圖形。根據輸入格式,顯示目前影格中 Y、U、V、A 或 R、G、B 組件的分布。每個圖形下方都會顯示色彩組件刻度儀。
濾鏡接受以下選項
- level_height
設定層級的高度。預設值為
200
。允許範圍為 [50, 2048]。- scale_height
設定色彩刻度的高度。預設值為
12
。允許範圍為 [0, 40]。- display_mode
設定顯示模式。它接受以下值
- ‘stack’
每個色彩組件圖形彼此堆疊放置。
- ‘parade’
每個色彩組件圖形並排放置。
- 「overlay」
呈現與
parade
中相同的資訊,除了表示色彩組件的圖形直接相互疊加。
預設值為
stack
。- levels_mode
設定模式。可以是
linear
或logarithmic
。預設值為linear
。- 在從輸入視訊中選取的彩色背景上繪製十六進制像素值,文字顏色以使其始終可見的方式選取。
設定要顯示的色彩組件。預設值為
7
。- fgopacity
設定前景不透明度。預設值為
0.7
。- bgopacity
設定背景不透明度。預設值為
0.5
。- colors_mode
設定色彩模式。它接受以下值
- ‘whiteonblack’
- ‘blackonwhite’
- ‘whiteongray’
- ‘blackongray’
- ‘coloronblack’
- ‘coloronwhite’
- ‘colorongray’
- ‘blackoncolor’
- ‘whiteoncolor’
- ‘grayoncolor’
預設值為
whiteonblack
。
11.119.1 範例
- 計算並繪製直方圖
ffplay -i input -vf histogram
11.120 hqdn3d
這是高精確度/高品質 3d 降噪濾鏡。它旨在減少影像雜訊,產生平滑的影像並使靜態影像真正靜止。它應該增強可壓縮性。
它接受以下選用參數
- luma_spatial
非負浮點數,指定空間亮度強度。預設值為 4.0。
- chroma_spatial
非負浮點數,指定空間色度強度。預設值為 3.0*luma_spatial/4.0。
- luma_tmp
浮點數,指定亮度時間強度。預設值為 6.0*luma_spatial/4.0。
- chroma_tmp
浮點數,指定色度時間強度。預設值為 luma_tmp*chroma_spatial/luma_spatial。
11.120.1 指令
colorkey
如果指定的表達式無效,則會保持其目前值。
11.121 hwdownload
將硬體影格下載到系統記憶體。
輸入必須為硬體影格,輸出為非硬體格式。並非所有格式都將在輸出上受到支援 - 可能需要在圖形中緊接其後插入額外的 format 濾鏡,以取得受支援格式的輸出。
11.122 hwmap
將硬體影格映射到系統記憶體或另一個裝置。
此濾鏡有多種不同的運作模式;使用哪一種取決於輸入和輸出格式
- 硬體影格輸入,一般影格輸出
將輸入影格映射到系統記憶體並將它們傳遞到輸出。如果稍後需要原始硬體影格(例如,在將其他內容覆蓋在其部分內容之後),則可以在下一個模式中再次使用 hwmap 濾鏡來擷取它。
- 一般影格輸入,硬體影格輸出
如果輸入實際上是軟體映射的硬體影格,則取消映射它 - 也就是說,傳回原始硬體影格。
否則,必須提供裝置。在該裝置上為輸出建立新的硬體表面,然後將它們映射回輸入的軟體格式,並將這些影格提供給先前的濾鏡。然後,這將像 hwupload 濾鏡一樣運作,但當輸入已採用相容格式時,可能會避免額外的複製。
- 硬體影格輸入和輸出
必須為輸出提供裝置,可以直接提供或使用 derive_device 選項提供。輸入和輸出裝置必須是不同類型且相容的 - 其確切含義取決於系統,但通常表示它們必須參考相同的底層硬體內容(例如,參考相同的圖形卡)。
如果輸入影格最初是在輸出裝置上建立的,則取消映射以檢索原始影格。
否則,將影格映射到輸出裝置 - 在輸出端建立新的硬體影格,對應於輸入端的影格。
接受以下額外參數
- mode
設定影格映射模式。以下組合的某種形式
- read
映射的影格應為可讀取的。
- 設定每個音訊幀輸出時間戳的處理模式。
映射的影格應為可寫入的。
- overwrite
映射將始終覆寫整個影格。
這在某些情況下可能會提高效能,因為不需要載入影格的原始內容。
- direct
映射不得涉及任何複製。
在某些情況下,當直接映射不可行或會產生意外屬性時,會建立到影格副本的間接映射。設定此旗標可確保映射是直接的,並且在不可能的情況下會失敗。
如果未指定,則預設為 read+write。
- derive_device type
不要使用初始化時提供的裝置,而是從輸入影格所在的裝置衍生一個新的 type 類型的裝置。
- reverse
在硬體到硬體的映射中,反向映射 - 在接收器中建立影格並將其映射回來源。在某些情況下,當需要單向映射,但裝置僅支援反向映射時,這可能是必要的。
此選項很危險 - 如果對該濾鏡的輸出有任何額外限制,則可能會以未定義的方式破壞先前的濾鏡。請勿在未完全理解其使用含義的情況下使用它。
11.123 hwupload
將系統記憶體影格上傳到硬體表面。
初始化濾鏡時必須提供上傳目標裝置。如果使用 ffmpeg,請使用 -filter_hw_device 選項或 derive_device 選項選擇適當的裝置。輸入和輸出裝置必須是不同類型且相容的 - 其確切含義取決於系統,但通常表示它們必須參考相同的底層硬體上下文(例如,參考相同的顯示卡)。
接受以下額外參數
- derive_device type
不要使用初始化時提供的裝置,而是從輸入影格所在的裝置衍生一個新的 type 類型的裝置。
11.124 hwupload_cuda
將系統記憶體影格上傳到 CUDA 裝置。
它接受以下選用參數
- device
要使用的 CUDA 裝置編號
11.125 hqx
套用專為像素藝術設計的高品質放大濾鏡。此濾鏡最初由 Maxim Stepin 建立。
設定柔削波的類型。
- n
設定縮放尺寸:
2
代表hq2x
,3
代表hq3x
,4
代表hq4x
。預設值為3
。
11.126 hstack
水平堆疊輸入影片。
所有串流必須具有相同的像素格式和相同的高度。
請注意,此濾鏡比使用 overlay 和 pad 濾鏡建立相同的輸出更快。
stages
- inputs
設定輸入串流的數量。預設值為 2。
- shortest
如果設定為 1,則強制輸出在最短的輸入終止時終止。預設值為 0。
11.127 hsvhold
將特定的 HSV 範圍轉換為灰階值。
此濾鏡測量選項中設定的 HSV 顏色與影片串流中測量的顏色之間的色差。根據選項,輸出顏色可以更改為灰色或不更改。
濾鏡接受以下選項
- hue
設定將用於色差計算的色相值。允許的範圍是從 -360 到 360。預設值為 0。
- sat
設定將用於色差計算的飽和度值。允許的範圍是從 -1 到 1。預設值為 0。
- val
設定將用於色差計算的值。允許的範圍是從 -1 到 1。預設值為 0。
- similarity
設定與關鍵色的相似度百分比。允許的範圍是從 0 到 1。預設值為 0.01。
0.00001 僅匹配精確的關鍵色,而 1.0 匹配所有顏色。
- blend
混合百分比。允許的範圍是從 0 到 1。預設值為 0。
0.0 使像素完全變成灰色,或完全不變成灰色。
值越高,產生的灰色像素越多,像素顏色越接近關鍵色,灰色像素越高。
11.128 hsvkey
將特定的 HSV 範圍轉換為透明度。
此濾鏡測量選項中設定的 HSV 顏色與影片串流中測量的顏色之間的色差。根據選項,可以透過新增 Alpha 通道將輸出顏色更改為透明。
濾鏡接受以下選項
- hue
設定將用於色差計算的色相值。允許的範圍是從 -360 到 360。預設值為 0。
- sat
設定將用於色差計算的飽和度值。允許的範圍是從 -1 到 1。預設值為 0。
- val
設定將用於色差計算的值。允許的範圍是從 -1 到 1。預設值為 0。
- similarity
設定與關鍵色的相似度百分比。允許的範圍是從 0 到 1。預設值為 0.01。
0.00001 僅匹配精確的關鍵色,而 1.0 匹配所有顏色。
- blend
混合百分比。允許的範圍是從 0 到 1。預設值為 0。
chromakey
chromakey
11.129 hue
修改輸入的色相和/或飽和度。
它接受以下參數
- h
將色相角指定為度數。它接受表達式,預設為 "0"。
- s
在 [-10,10] 範圍內指定飽和度。它接受表達式,預設為 "1"。
- h
將色相角指定為弧度。它接受表達式,預設為 "0"。
- b
在 [-10,10] 範圍內指定亮度。它接受表達式,預設為 "0"。
h 和 H 是互斥的,不能同時指定。
b、h、H 和 s 選項值是包含以下常數的表達式
- n
輸入影格的影格計數,從 0 開始
- pts
輸入影格的呈現時間戳記,以時間基底單位表示
- r
輸入視訊的影格率,如果輸入影格率未知則為 NAN
- 設定傳輸表達式。
以秒為單位的時間戳記,如果輸入時間戳記未知,則為 NAN
- tb
輸入影片的時間基底
11.129.1 範例
- 將色相設定為 90 度,飽和度設定為 1.0
hue=h=90:s=1
- 相同的指令,但以弧度表示色相
hue=H=PI/2:s=1
- 旋轉色相並使飽和度在一秒內在 0 到 2 之間擺動
hue="H=2*PI*t: s=sin(2*PI*t)+1"
- 套用從 0 開始的 3 秒飽和度淡入效果
hue="s=min(t/3\,1)"
一般的淡入表達式可以寫成
hue="s=min(0\, max((t-START)/DURATION\, 1))"
- 套用從 5 秒開始的 3 秒飽和度淡出效果
hue="s=max(0\, min(1\, (8-t)/3))"
一般的淡出表達式可以寫成
hue="s=max(0\, min(1\, (START+DURATION-t)/DURATION))"
11.129.2 指令
此濾波器支援以下指令
- b
- s
- h
- h
修改輸入影片的色相和/或飽和度和/或亮度。該命令接受與相應選項相同的語法。
如果指定的表達式無效,則會保持其目前值。
11.130 huesaturation
對輸入影片串流套用色相-飽和度-強度調整。
此濾鏡在 RGB 色彩空間中運作。
此濾波器還能夠拉伸/壓縮音訊資料以使其與時間戳記匹配,或注入靜音/剪切音訊以使其與時間戳記匹配,執行兩者的組合或兩者都不執行。
- hue
設定要套用的色相偏移量(以度為單位)。預設值為 0。允許的範圍是從 -180 到 180。
- saturation
設定飽和度偏移量。預設值為 0。允許的範圍是從 -1 到 1。
- intensity
設定強度偏移量。預設值為 0。允許的範圍是從 -1 到 1。
- mgain
設定將要調整的主要顏色和互補顏色。此選項透過提供一個或多個值來設定。這可以一次選擇多種顏色。預設情況下,會選取所有顏色。
- ‘r’
調整紅色。
- ‘y’
調整黃色。
- ‘g’
調整綠色。
- ‘c’
調整青色。
- ‘b’
調整藍色。
- ‘m’
調整洋紅色。
- ‘a’
調整所有顏色。
- 強度 (strength)
設定濾鏡的強度。允許的範圍是從 0 到 100。預設值為 1。
- rw, gw, bw
設定每個 RGB 成分的權重。允許的範圍是從 0 到 1。預設值設定為 0.333、0.334、0.333。這些選項用於飽和度和亮度處理。
- lightness
設定保留亮度,預設情況下停用。調整色相可能會改變原始 RGB 三元組的亮度,啟用此選項後,亮度將保持相同的值。
11.131 hysteresis
透過連接組件將第一個串流擴展到第二個串流。這使得建立更穩健的邊緣遮罩成為可能。
此濾波器還能夠拉伸/壓縮音訊資料以使其與時間戳記匹配,或注入靜音/剪切音訊以使其與時間戳記匹配,執行兩者的組合或兩者都不執行。
- planes
設定哪些平面將作為點陣圖處理,未處理的平面將從第一個串流複製。預設值為 0xf,所有平面都將被處理。
- threshold
設定濾鏡中使用的閾值。如果像素組件值高於此值,則會啟動連接組件的濾鏡演算法。預設值為 0。
hysteresis
濾鏡也支援 framesync 選項。
11.132 iccdetect
從嵌入的 ICC 設定檔(如果存在)偵測色彩空間,並相應地更新影格的標籤。
此濾波器還能夠拉伸/壓縮音訊資料以使其與時間戳記匹配,或注入靜音/剪切音訊以使其與時間戳記匹配,執行兩者的組合或兩者都不執行。
- force
如果為 true,則影格現有的色彩空間標籤將始終被從 ICC 設定檔偵測到的值覆寫。否則,它們只會在包含
unknown
時才被指派。預設啟用。
11.133 iccgen
產生 ICC 設定檔並將其附加到影格。
此濾波器還能夠拉伸/壓縮音訊資料以使其與時間戳記匹配,或注入靜音/剪切音訊以使其與時間戳記匹配,執行兩者的組合或兩者都不執行。
- color_primaries
- color_trc
設定將為其產生 ICC 設定檔的色彩空間。
auto
的預設值會從輸入影格的中繼資料推斷值,並適當地預設為 BT.709/sRGB。請參閱 setparams 濾鏡以取得可能值的列表,但請注意,
unknown
不是此濾鏡的有效值。- force
如果為 true,即使 ICC 設定檔會覆寫現有的 ICC 設定檔,也會產生 ICC 設定檔。預設停用。
11.134 identity
取得兩個輸入影片之間的識別分數。
此濾鏡採用兩個輸入視訊。
為了使此濾鏡正常工作,兩個輸入視訊必須具有相同的解析度和像素格式。此外,它假設兩個輸入具有相同數量的影格,這些影格將逐個比較。
獲得的每個組件、平均值、最小值和最大值識別分數會透過記錄系統列印出來。
濾鏡將每個影格的計算識別分數儲存在影格中繼資料中。
此濾鏡也支援 framesync 選項。
在以下範例中,正在處理的輸入檔案 main.mpg 與參考檔案 ref.mpg 進行比較。
ffmpeg -i main.mpg -i ref.mpg -lavfi identity -f null -
11.135 idet
偵測影片交錯類型。
此濾鏡嘗試偵測輸入影格是交錯、漸進式、頂場優先還是底場優先。它還將嘗試偵測在相鄰影格之間重複的場(電視電影的徵兆)。
單影格偵測在分類每個影格時僅考慮緊鄰的相鄰影格。多影格偵測納入了先前影格的分類歷史記錄。
濾鏡將記錄這些中繼資料值
- single.current_frame
使用單影格偵測偵測到的目前影格類型。以下之一:“tff”(頂場優先)、“bff”(底場優先)、“progressive”(漸進式)或 “undetermined”(未確定)
- single.tff
使用單影格偵測偵測為頂場優先的累積影格數。
- multiple.tff
使用多影格偵測偵測為頂場優先的累積影格數。
- single.bff
使用單影格偵測偵測為底場優先的累積影格數。
- multiple.current_frame
使用多影格偵測偵測到的目前影格類型。以下之一:“tff”(頂場優先)、“bff”(底場優先)、“progressive”(漸進式)或 “undetermined”(未確定)
- multiple.bff
使用多影格偵測偵測為底場優先的累積影格數。
- single.progressive
使用單影格偵測偵測為漸進式的累積影格數。
- multiple.progressive
使用多影格偵測偵測為漸進式的累積影格數。
- single.undetermined
無法使用單影格偵測分類的累積影格數。
- multiple.undetermined
無法使用多影格偵測分類的累積影格數。
- repeated.current_frame
目前影格中哪個場是從上一個影格重複的。以下之一:“neither”(皆非)、“top”(頂部)或 “bottom”(底部)。
- repeated.neither
沒有重複場的累積影格數。
- repeated.top
頂場從前一個影格的頂場重複的累積影格數。
- repeated.bottom
底場從前一個影格的底場重複的累積影格數。
濾鏡接受以下選項
- intl_thres
設定交錯閾值。
- prog_thres
設定漸進式閾值。
- rep_thres
重複場偵測的閾值。
- half_life
給定影格對統計資訊的貢獻減半(即,它對其分類的貢獻僅為 0.5)的影格數。預設值 0 表示所有看到的影格都永遠給予 1.0 的完整權重。
- analyze_interlaced_flag
當此值不為 0 時,idet 將使用指定的影格數來判斷交錯旗標是否準確,它不會計算未確定的影格。如果發現旗標準確,則將使用該旗標,而無需任何進一步的計算,如果發現旗標不準確,則將清除該旗標,而無需任何進一步的計算。這允許將 idet 濾鏡作為一種低計算量的方法插入,以清理交錯旗標
11.135.1 範例
以詳細模式檢查影片中前 360 個影格的場序
ffmpeg -i INPUT -filter:v idet,metadata=mode=print -frames:v 360 -an -f null -
idet 濾鏡將分析中繼資料新增到每個影格,然後將其丟棄。最後,濾鏡還將列印包含統計資訊的最終報告。
11.136 il
解交錯或交錯場。
此濾鏡允許使用者處理交錯影像場,而無需對其進行解交錯。解交錯將輸入影格分割成 2 個場(稱為半圖片)。奇數行移動到輸出影像的上半部分,偶數行移動到下半部分。您可以獨立處理(濾鏡)它們,然後重新交錯它們。
濾鏡接受以下選項
- luma_mode, l
- chroma_mode, c
- alpha_mode, a
luma_mode、chroma_mode 和 alpha_mode 的可用值為
- 「none」
不執行任何操作。
- ‘deinterleave, d’
解交錯場,將一個場放置在另一個場之上。
- ‘interleave, i’
交錯場。反轉解交錯的效果。
預設值為
none
。- luma_swap, ls
- chroma_swap, cs
- alpha_swap, as
交換亮度/色度/Alpha 場。交換偶數行和奇數行。預設值為
0
。
11.136.1 指令
此濾鏡支援以上所有選項作為 commands。
11.137 inflate
對影片套用膨脹效果。
此濾鏡透過僅考慮高於像素的值,用局部 (3x3) 平均值替換像素。
設定視窗長度,以樣本為單位。預設值為 2048。允許範圍為 32 到 65536。
- noise
- 設定執行除法時的雜訊。預設值為 0.0000001。當寬度和高度不相同且不是 2 的冪,或者卷積之前的串流有雜訊時很有用。
deconvolve
濾鏡也支援 framesync 選項。- 減少視訊中的交叉亮度(點爬行)和交叉顏色(彩虹)。
mode
11.137.1 指令
此濾鏡支援以上所有選項作為 commands。
11.138 interlace
來自漸進式內容的簡單交錯濾鏡。這會將奇數影格的上(或下)行與偶數影格的下(或上)行交錯,從而使影格率減半並保留影像高度。
Original Original New Frame Frame 'j' Frame 'j+1' (tff) ========== =========== ================== Line 0 --------------------> Frame 'j' Line 0 Line 1 Line 1 ----> Frame 'j+1' Line 1 Line 2 ---------------------> Frame 'j' Line 2 Line 3 Line 3 ----> Frame 'j+1' Line 3 ... ... ... New Frame + 1 will be generated by Frame 'j+2' and Frame 'j+3' and so on
它接受以下選用參數
- scan
這決定了交錯影格是從漸進式影格的偶數行(tff - 預設值)還是奇數行(bff)中取得。
- lowpass
垂直低通濾鏡,以避免推特交錯並減少摩爾紋圖案。
- ‘<samp>0, off</samp>’
停用垂直低通濾鏡
- ‘1, linear’
啟用線性濾鏡(預設值)
- ‘2, complex’
啟用複雜濾鏡。這將稍微減少推特和摩爾紋,但更好地保留細節和主觀清晰度印象。
11.139 kerndeint
透過套用 Donald Graft 的自適應核心解交錯來解交錯輸入影片。處理影片的交錯部分以產生漸進式影格。
接受的參數說明如下。
- thresh
設定閾值,該閾值會影響濾鏡在判斷是否必須處理像素行時的容差。它必須是 [0,255] 範圍內的整數,預設值為 10。值為 0 將導致在每個像素上套用該處理。
- block_size, b
如果設定為 1,則將超過閾值的像素繪製為白色。預設值為 0。
- order
設定場序。如果設定為 1,則交換場,如果設定為 0,則保持場不變。預設值為 0。
- sharp
如果設定為 1,則啟用額外的銳化。預設值為 0。
- twoway
如果設定為 1,則啟用雙向銳化。預設值為 0。
11.139.1 範例
- 套用預設值
kerndeint=thresh=10:map=0:order=0:sharp=0:twoway=0
- 啟用額外的銳化
kerndeint=sharp=1
- 將處理後的像素繪製成白色
kerndeint=map=1
11.140 kirsch
對輸入影片串流套用 Kirsch 運算子。
stages
- planes
設定將處理哪些平面,未處理的平面將被複製。預設值為 0xf,所有平面都將被處理。
- scale
設定將與濾鏡結果相乘的值。
- delta
設定將新增到濾鏡結果的值。
11.140.1 指令
此濾鏡支援以上所有選項作為 commands。
11.141 lagfun
緩慢更新較暗的像素。
此濾鏡使短暫的光閃爍看起來更長。此濾鏡接受以下選項
- 向輸入音訊添加相位效果。
設定衰減因子。預設值為 .95。允許的範圍是從 0 到 1。
- planes
planes
11.141.1 指令
此濾鏡支援以上所有選項作為 commands。
11.142 lenscorrection
校正徑向鏡頭失真
此濾鏡可用於校正因使用廣角鏡頭而導致的徑向失真,從而重新校正影像。若要找到正確的參數,可以使用例如 opencv 或簡單的試錯法中提供的工具。若要使用 opencv,請使用 opencv 來源中的校準範例(在 samples/cpp 下),並從結果矩陣中提取 k1 和 k2 係數。
請注意,實際上相同的濾鏡在 KDE 專案的開源工具 Krita 和 Digikam 中也可用。
與也可以用於補償鏡頭錯誤的 vignette 濾鏡相比,此濾鏡校正影像的失真,而 vignette 校正亮度分佈,因此您可能希望在某些情況下將這兩個濾鏡一起使用,但您必須注意順序,即漸暈應在鏡頭校正之前還是之後套用。
11.142.1 選項
濾鏡接受以下選項
- cx
影像焦點的相對 x 座標,以及失真的中心。此值的範圍為 [0,1],以影像寬度的百分比表示。預設值為 0.5。
- cy
影像焦點的相對 y 座標,以及失真的中心。此值的範圍為 [0,1],以影像高度的百分比表示。預設值為 0.5。
- k1
二次校正項的係數。此值的範圍為 [-1,1]。0 表示不校正。預設值為 0。
- k2
雙二次校正項的係數。此值的範圍為 [-1,1]。0 表示不校正。預設值為 0。
- i
設定內插類型。可以是
nearest
或bilinear
。預設值為nearest
。- fc
指定未映射像素的顏色。如需此選項的語法,請查看 (ffmpeg-utils) 手冊中的 "Color" 章節。預設顏色為
black@0
。
產生校正的公式為
r_src = r_tgt * (1 + k1 * (r_tgt / r_0)^2 + k2 * (r_tgt / r_0)^4)
其中 r_0 是影像對角線的一半,r_src 和 r_tgt 分別是來源影像和目標影像中到焦點的距離。
11.142.2 指令
此濾鏡支援以上所有選項作為 commands。
11.143 lensfun
透過 lensfun 函式庫 (http://lensfun.sourceforge.net/) 套用鏡頭校正。
lensfun
濾鏡需要相機製造商、相機型號和鏡頭型號才能套用鏡頭校正。濾鏡將載入 lensfun 資料庫並查詢它,以在資料庫中找到對應的相機和鏡頭條目。只要可以使用給定的選項找到這些條目,濾鏡就可以對影格執行校正。請注意,不完整的字串將導致濾鏡選擇與給定選項的最佳匹配,並且濾鏡將輸出選定的相機和鏡頭型號(以 "info" 層級記錄)。您必須按要求提供製造商、相機型號和鏡頭型號。
若要取得可用製造商和型號的列表,請省略 make
和 model
選項中的一個或兩個。濾鏡將以 INFO
層級將完整列表傳送到日誌。第一列是製造商,第二列是型號。若要取得可用鏡頭的列表,請為製造商和型號設定任何值,並省略 lens_model
選項。濾鏡將以 INFO
層級將鏡頭的完整列表傳送到日誌。ffmpeg 工具將在列印列表後退出。
濾鏡接受以下選項
- make
相機的製造商(例如 "Canon")。此選項為必填項。
- 指定標誌的左上角坐標。它們必須指定。
相機的型號(例如 "Canon EOS 100D")。此選項為必填項。
- lens_model
鏡頭的型號(例如 "Canon EF-S 18-55mm f/3.5-5.6 IS STM")。此選項為必填項。
- db_path
鏡頭資料庫資料夾的完整路徑。如果未設定,濾鏡將嘗試在建置函式庫時從安裝路徑載入資料庫。預設為未設定。
- mode
要套用的校正類型。以下值是有效選項
- ‘vignetting’
啟用修正鏡頭漸暈。
- ‘geometry’
啟用修正鏡頭幾何形狀。這是預設值。
- ‘subpixel’
啟用修正色差。
- ‘vig_geo’
啟用修正鏡頭漸暈和鏡頭幾何形狀。
- ‘vig_subpixel’
啟用修正鏡頭漸暈和色差。
- ‘distortion’
啟用修正鏡頭幾何形狀和色差。
- ‘all’
啟用所有可能的校正。
- focal_length
影像/影片的焦距(變焦;預計影片為常數)。例如,18–55mm 鏡頭的焦距範圍為 [18–55],因此在使用該鏡頭時應選擇該範圍內的值。預設值為 18。
- aperture
影像/影片的光圈(預計影片為常數)。請注意,光圈僅用於漸暈校正。預設值為 3.5。
- focus_distance
影像/影片的對焦距離(預計影片為常數)。請注意,對焦距離僅用於漸暈,並且僅輕微影響漸暈校正過程。如果未知,請將其保留為預設值(即 1000)。
- scale
變換後套用的縮放比例因子。校正後,影片不再一定是矩形的。此參數控制結果影像的可見程度。值 0 表示將自動選擇一個值,以便輸出影像中幾乎沒有或沒有未映射區域。1.0 表示不執行額外的縮放。較低的值可能會使更多校正後的影像可見,而較高的值可能會避免輸出中出現未映射區域。
- target_geometry
輸出影像/影片的目標幾何形狀。以下值是有效選項
- ‘rectilinear (default)’
- ‘fisheye’
- ‘panoramic’
- ‘equirectangular’
- ‘fisheye_orthographic’
- ‘fisheye_stereographic’
- ‘fisheye_equisolid’
- ‘fisheye_thoby’
- reverse
套用影像校正的反向操作(不是校正失真,而是套用失真)。
- interpolation
校正失真時使用的內插類型。以下值是有效選項
- ‘nearest’
- ‘linear (default)’
- ‘lanczos’
11.143.1 範例
- 套用鏡頭校正,製造商為 "Canon",相機型號為 "Canon EOS 100D",鏡頭型號為 "Canon EF-S 18-55mm f/3.5-5.6 IS STM",焦距為 "18",光圈為 "8.0"。
ffmpeg -i input.mov -vf lensfun=make=Canon:model="Canon EOS 100D":lens_model="Canon EF-S 18-55mm f/3.5-5.6 IS STM":focal_length=18:aperture=8 -c:v h264 -b:v 8000k output.mov
- 套用與之前相同的設定,但僅適用於影片的前 5 秒。
ffmpeg -i input.mov -vf lensfun=make=Canon:model="Canon EOS 100D":lens_model="Canon EF-S 18-55mm f/3.5-5.6 IS STM":focal_length=18:aperture=8:enable='lte(t\,5)' -c:v h264 -b:v 8000k output.mov
11.144 lcevc
基於 liblcevc_dec 的低複雜度增強影片編碼解碼器濾鏡 (https://github.com/v-novaltd/LCEVCdec)。
11.145 libplacebo
基於 libplacebo 的彈性 GPU 加速處理濾鏡 (https://code.videolan.org/videolan/libplacebo)。
11.145.1 選項
此濾鏡的選項分為以下幾個部分
11.145.1.1 輸出模式
這些選項控制整體輸出模式。預設情況下,libplacebo 將嘗試盡可能保留來源色度學和尺寸,但它將套用來源影格中存在的任何嵌入式膠片顆粒、杜比視界中繼資料或變形 SAR。
- inputs
設定輸入數量。這可以與
idx
變數一起使用,以允許在輸出影格內放置/混合多個輸入。這有效地啟用了類似於 hstack、overlay 等的功能。- f
- h
設定輸出影片尺寸表達式。預設值為
iw
和ih
。允許與 scale 濾鏡相同的表達式。
- crop_x
- crop_y
設定輸入裁剪 x/y 表達式,預設值為
(iw-cw)/2
和(ih-ch)/2
。- crop_w
- crop_h
設定輸入裁剪寬度/高度表達式,預設值為
iw
和ih
。- pos_x
- pos_y
設定輸出放置 x/y 表達式,預設值為
(ow-pw)/2
和(oh-ph)/2
。- pos_w
- pos_h
設定輸出放置寬度/高度表達式,預設值為
ow
和oh
。- fps
設定輸出影格率。這可以是合理的,例如
60000/1001
。如果設定為特殊字串none
(預設值),則輸入時間戳記將改為未修改地傳遞到輸出。否則,輸入影片影格將根據需要進行內插,以將影片重新縮放到指定的目標影格率,方式由 frame_mixer 選項決定。- format
設定輸出格式覆寫。如果未設定(預設值),則影格將以與各自的輸入影格相同的格式輸出。否則,將執行格式轉換。
- force_original_aspect_ratio
- force_divisible_by
與相同的 scale 濾鏡選項的工作方式相同。
- normalize_sar
如果啟用,輸出影格將始終具有 1:1 的像素縱橫比。這將根據需要引入額外的填充/裁剪。如果停用(預設值),則任何縱橫比不符的情況,包括來自例如變形影片來源的情況,都會轉發到輸出像素縱橫比。
- pad_crop_ratio
指定填充和裁剪之間的比例(介於
0.0
和1.0
之間),當輸入縱橫比與輸出縱橫比不符且 normalize_sar 生效時。預設值0.0
始終使用黑色邊框填充內容,而值1.0
始終裁剪掉部分內容。可以使用中間值,從而混合使用這兩種方法。- fillcolor
設定用於填充輸出影像未涵蓋的輸出區域的顏色,例如,由於 normalize_sar 的結果。如需此選項的一般語法,請查看 (ffmpeg-utils) 手冊中的 "Color" 章節。預設值為
black
。- corner_rounding
使用圓角呈現影格。該值以介於
0.0
和1.0
之間的浮點數給出,表示圓角的相對程度,從完全正方形到完全圓形。換句話說,它給出了半徑除以較小邊長度的一半。預設值為0.0
。- extra_opts
傳遞額外的 libplacebo 內部組態選項。這些可以指定為以 ':' 分隔的 key=value 對列表。以下範例顯示如何組態自訂濾鏡核心 ("EWA LanczosSharp") 並使用它將輸入影像解析度加倍
-vf "libplacebo=w=iw*2:h=ih*2:extra_opts='upscaler=custom\:upscaler_preset=ewa_lanczos\:upscaler_blur=0.9812505644269356'"
- colorspace
- color_primaries
- color_trc
- 設定用於偵測濾鏡的偵測頻率(以 Hz 為單位),該偵測濾鏡用於觸發等化。預設值為 1000 Hz。允許範圍介於 2 和 1000000 Hz 之間。
組態將在其中交付輸出影格的色彩空間。
auto
的預設值以與輸入影格相同的格式輸出影格,從而不會產生任何變更。對於任何其他值,將執行轉換。請參閱 setparams 濾鏡以取得可能值的列表。
- apply_filmgrain
如果來源影格中存在膠片顆粒(例如 AV1 或 H.274),則套用膠片顆粒,並從輸出中剝離它。預設啟用。
- apply_dolbyvision
如果來源影格中存在杜比視界 RPU 中繼資料,則套用杜比視界 RPU 中繼資料,並從輸出中剝離它。預設啟用。請注意,杜比視界將始終輸出 BT.2020+PQ,覆寫通常的輸入影格中繼資料。這些也將被選取為各自影格輸出選項的
auto
值。
除了 scale 濾鏡記錄的表達式常數外,crop_w、crop_h、crop_x、crop_y、pos_w、pos_h、pos_x 和 pos_y 選項還可以包含以下常數
- in_idx, idx
目前活動輸入串流的(從 0 開始的)數字索引。
- crop_w, cw
- crop_h, ch
crop_w 和 crop_h 的計算值。
- pos_w, pw
- pos_h, ph
pos_w 和 pos_h 的計算值。
- in_t, t
輸入影格時間戳記,以秒為單位。如果輸入時間戳記未知,則為 NAN。
- out_t, ot
輸入影格時間戳記,以秒為單位。如果輸入時間戳記未知,則為 NAN。
- n
輸入影格編號,從 0 開始。
11.145.1.2 縮放
本節中的選項控制 libplacebo 如何執行升級取樣和(如果需要)降級取樣。請注意,libplacebo 將始終在內部以 4:4:4 內容運作,因此任何子取樣色度格式(例如 yuv420p
)都將必須在呈現過程中進行升級取樣和降級取樣。這表示即使來源和目的地解析度相同,縮放也可能生效。
- upscaler
- downscaler
組態用於升級取樣和降級取樣的濾鏡核心。各自的預設值為
spline36
和mitchell
。如需可能值的完整列表,請將help
傳遞給這些選項。最重要的值為- 「none」
強制使用內建 GPU 紋理取樣(通常為雙線性)。速度極快,但品質差,尤其是在降級取樣時。
- ‘bilinear’
雙線性內插。通常可以在 GPU 上免費完成,除非這樣做會導致混疊。速度快且品質低。
- ‘nearest’
最近鄰內插。清晰但高度混疊。
- ‘oversample’
演算法看起來與最近鄰內插在視覺上相似,但嘗試保留像素縱橫比。適用於像素藝術,因為它會最大程度地減少藝術外觀的失真。
- ‘lanczos’
標準 sinc-sinc 內插核心。
- ‘spline36’
lanczos 的三次樣條近似值。效能上沒有差異,但振鈴效應稍有減輕。
- ‘ewa_lanczos’
lanczos 的橢圓加權平均版本,基於 jinc-sinc 核心。這也通常被稱為 "Jinc 縮放"。速度慢但品質非常高。
- ‘gaussian’
高斯核心。具有某些理想的數學屬性,但在主觀上非常模糊。
- ‘mitchell’
Mitchell 和 Netravali 建議的參數的三次 BC 樣條。振鈴效應非常小。
- frame_mixer
控制用於時間上混合影格的核心。預設值為
none
,這會停用影格混合。如需可能值的完整列表,請將help
傳遞給此選項。最重要的值為- 「none」
停用影格混合,產生與 "最近鄰" 語義等效的結果。
- ‘oversample’
過度取樣輸入影片以建立 "平滑運動" 類型效果:如果輸出影格恰好落在兩個影片影格之間的轉換上,則會根據相對重疊進行混合。只要需要保留原始主觀外觀,就建議使用此選項。
- ‘mitchell_clamp’
更大的濾鏡核心,可平滑地內插多個影格,其方式旨在盡可能消除振鈴和其他偽影。在需要最大視覺平滑度的任何地方都建議使用此選項。
- ‘linear’
影格之間的線性混合/淡入淡出。特別適用於建構例如幻燈片。
- lut_entries
組態縮放器 LUT 的大小,範圍從
1
到256
。預設值0
將選擇 libplacebo 的內部預設值,通常為64
。- antiringing
啟用抗振鈴(對於非 EWA 濾鏡)。該值(介於
0.0
和1.0
之間)組態抗振鈴演算法的強度。如果設定得太高,可能會增加混疊。預設停用。- sigmoid
在升級取樣期間啟用 S 型壓縮。稍微減少振鈴。預設啟用。
11.145.1.3 去色帶
Libplacebo 隨附內建去色帶濾鏡,該濾鏡擅長抵消許多常見的色帶和區塊效應來源。在需要品質時,強烈建議開啟此功能。
- deband
啟用(快速)去色帶演算法。預設停用。
- deband_iterations
去色帶演算法的去色帶迭代次數。每次迭代都以逐漸增加的半徑(和減小的閾值)執行。建議值在
1
到4
的範圍內。預設值為1
。- deband_threshold
去色帶濾鏡強度。數值越高,去色帶越積極。預設值為
4.0
。- deband_radius
去色帶濾鏡半徑。較高的半徑更適合緩慢的漸層,而較低的半徑更適合陡峭的漸層。預設值為
16.0
。- deband_grain
要新增的額外輸出顆粒量。有助於隱藏瑕疵。預設值為
6.0
。
11.145.1.4 色彩調整
一組主觀顏色控制項。不是很嚴謹,因此確切效果會因輸入原色和色彩空間而異。
- ‘mirror, 3’
亮度提升,介於
-1.0
和1.0
之間。預設值為0.0
。- contrast
對比度增益,介於
0.0
和16.0
之間。預設值為1.0
。- saturation
飽和度增益,介於
0.0
和16.0
之間。預設值為1.0
。- hue
色相偏移量(以弧度為單位),介於
-3.14
和3.14
之間。預設值為0.0
。這將旋轉 UV 子向量,RGB 輸入預設為 BT.709 係數。- gamma
Gamma 調整,介於
0.0
和16.0
之間。預設值為1.0
。- cones
用於色盲模擬的錐體模型。接受
l
、m
和s
的任意組合。以下是一些範例- ‘m’
Deuteranomaly / deuteranopia(影響 3%-4% 的人口)
- ‘l’
Protanomaly / protanopia(影響 1%-2% 的人口)
- ‘l+m’
Monochromacy(非常罕見)
- ‘l+m+s’
Achromatopsy(完全喪失白天視力,極其罕見)
- cone-strength
由
cones
指定的錐體的增益因子,介於0.0
和10.0
之間。值1.0
會導致色覺沒有任何變化。值0.0
(預設值)模擬完全喪失這些錐體。高於1.0
的值會導致誇大錐體之間的差異,這可能有助於補償降低的色覺。
11.145.1.5 峰值偵測
為了幫助處理僅具有靜態 HDR10 中繼資料(或根本沒有標記)的來源,libplacebo 使用其自己的內部影格分析計算著色器來分析來源影格,並即時調整色調映射函式。如果這太慢,或者如果需要精確可重現的影格完美結果,建議關閉此功能。
- peak_detect
啟用 HDR 峰值偵測。忽略靜態 MaxCLL/MaxFALL 值,而支援從輸入進行動態偵測。請注意,偵測到的值不會寫回輸出影格,它們僅引導內部色調映射過程。預設啟用。
- smoothing_period
峰值偵測平滑週期,介於
0.0
和1000.0
之間。值越高,峰值偵測對輸入變更的反應越慢。預設值為100.0
。- minimum_peak
偵測到的峰值的下限(相對於 SDR 白色),介於
0.0
和100.0
之間。預設值為1.0
。- scene_threshold_low
- scene_threshold_high
場景變更偵測的下限和上限閾值。以介於
0.0
和100.0
之間的對數刻度表示。預設值分別為5.5
和10.0
。將任一個設定為負值會停用此功能。- percentile
要用作色調映射的來源峰值的影格亮度直方圖的百分位數。預設值為
99.995
,這是一個相當保守的值。將其設定為100.0
會停用影格直方圖測量,而是使用真實峰值亮度進行色調映射。
11.145.1.6 色調映射
本節中的選項控制 libplacebo 在處理寬色域或 HDR 內容之間的不匹配時如何執行色調映射和色域映射。一般而言,libplacebo 依靠準確的來源標記和母帶顯示色域資訊來產生最佳結果。
- gamut_mode
如何處理可能因比色色域映射而發生的超出色域的顏色。
- ‘clip’
不執行任何操作,只需將超出範圍的顏色裁剪到 RGB 體積即可。品質低但速度極快。
- ‘perceptual’
在感知上將顏色柔和地裁剪到色域體積。這是預設值。
- ‘relative’
相對比色硬裁剪。與
perceptual
相似,但沒有軟膝部。- ‘saturation’
飽和度映射,將原色直接映射到 RGB 空間中的原色。除了需要明亮、飽和顯示器的人工電腦圖形外,不建議使用。
- ‘absolute’
絕對比色硬裁剪。不執行白點調整。
- ‘desaturate’
將超出色域的顏色向白色硬去飽和,同時保留亮度。傾向於扭曲明亮物體的視覺外觀。
- 「darken」
線性降低內容亮度以保留飽和細節,然後裁剪剩餘的超出色域的顏色。
- ‘warn’
醒目提示超出色域的像素(透過反轉/標記它們)。
- ‘linear’
線性降低整個影像的色度,使其適合目標顏色體積。在沒有正確母帶製作中繼資料的情況下在 BT.2020 來源上使用此功能時要小心,因為這樣做會導致過度去飽和。
- tonemapping
要使用的色調映射演算法。可用值為
- 「auto」
基於內部啟發式的自動選擇。這是預設值。
- ‘clip’
不執行色調映射,僅裁剪超出範圍的顏色。保留範圍內顏色的完美顏色準確度,但完全破壞超出範圍的資訊。不執行任何黑點調整。不可組態。
- ‘st2094-40’
來自 SMPTE ST 2094-40 附錄 B 的 EETF,它套用來自 HDR10+ 動態中繼資料的貝茲曲線,根據貝茲曲線執行色調映射。使用的 OOTF 會根據目標顯示峰值亮度與實際顯示峰值亮度之間的比例進行調整。
- ‘st2094-10’
來自 SMPTE ST 2094-10 附錄 B.2 的 EETF,除了最大值/最小值外,它還考慮了輸入訊號平均亮度。可組態的對比度參數會影響線性輸出段的斜率,預設值為
1.0
,表示對比度沒有增加/減少。請注意,這目前不包括附錄 B.3 中定義的主觀增益/偏移量/Gamma 控制項。- ‘bt.2390’
來自 ITU-R 報告 BT.2390 的 EETF,一種具有線性段的 Hermite 樣條滾降。膝點偏移量可組態。請注意,此參數預設為
1.0
,而不是 ITU-R 規範中的值0.5
。- ‘bt.2446a’
來自 ITU-R 報告 BT.2446 的 EETF,方法 A。專為良好母帶製作的 HDR 來源設計。可用於正向和反向色調映射。不可組態。
- ‘spline’
由兩個多項式組成的簡單樣條,由單個樞軸點連接。該參數給出樞軸點(在 PQ 空間中),預設值為
0.30
。可用於正向和反向色調映射。- ‘reinhard’
簡單的非線性、全域色調映射演算法。該參數指定顯示峰值處的局部對比度係數。基本上,參數
0.5
表示參考白色將約為裁剪時亮度的一半。預設值為0.5
,這會產生此函式的最簡單公式。- ‘mobius’
reinhard 色調映射演算法的推廣,以支援黑色附近的額外線性斜率。色調映射參數指示線性段和非線性段之間的權衡。基本上,對於給定的參數 x,每個低於 x 的顏色值都將線性映射,而較高的值將進行非線性色調映射。接近
1.0
的值使此曲線的行為類似於clip
,而接近0.0
的值使此曲線的行為類似於reinhard
。預設值為0.3
,這在比色準確度和保留超出色域的細節之間提供了良好的平衡。- ‘hable’
由 John Hable 開發的片段式、電影式色調映射演算法,用於 Uncharted 2,其靈感來自 Kodak 使用的類似色調映射演算法。因其在具有 HDR 呈現效果的電玩遊戲中的使用而普及。可以很好地保留暗部和亮部細節,但缺點是平均亮度變化非常顯著。這有點類似於參數為
0.24
的reinhard
。- ‘gamma’
擬合 Gamma(冪)函式以在來源和目標色彩空間之間轉換,有效地產生感知硬膝部,將兩個大致線性的段連接起來。這可以相當準確地保留所有比例的細節,但可能會產生外觀柔和或暗淡的影像。該參數用作截止點,預設值為
0.5
。- ‘linear’
在 PQ 空間中將輸入範圍線性延伸到輸出範圍。這將準確地保留所有細節,但會導致平均亮度明顯不同。除了常規色調映射外,還可用於反向色調映射。該參數可以用作額外的線性增益係數(預設值為
1.0
)。
- tonemapping_param
對於可調整的色調映射函式,此參數可用於微調曲線行為。請參閱
tonemapping
的文件。預設值0.0
會替換為曲線的首選預設設定。- inverse_tonemapping
如果啟用,此濾鏡也將嘗試延伸 SDR 訊號以填充 HDR 輸出顏色體積。預設停用。
- tonemapping_lut_size
色調映射 LUT 的大小,介於
2
和1024
之間。預設值為256
。請注意,當與peak_detect
結合使用時,此數字會平方。- contrast_recovery
對比度恢復強度。如果設定為高於
0.0
的值,則來源影像將分為高頻和低頻組件,並且一部分高頻影像會新增回色調映射輸出。可能會導致某些 HDR 來源出現過度振鈴偽影,但可以改善色調映射後影像中剩餘的主觀清晰度和細節。預設值為0.30
。- contrast_smoothness
對比度恢復低通核心大小。預設值為
3.5
。增加或減少此值將顯著影響視覺外觀。當contrast_recovery
停用時,無效。
11.145.1.7 抖動
預設情況下,libplacebo 將在必要時進行抖動,這包括呈現為任何低於 16 位元精度的整數格式。建議始終保持開啟此功能,因為不這樣做可能會導致輸出中出現可見的色帶,即使啟用了 debanding
濾鏡也是如此。如果需要最大效能,請使用 ordered_fixed
而不是停用抖動。
- dithering
要使用的抖動方法。接受以下值
- 「none」
完全停用抖動。可能會導致出現可見的色帶。
- ‘blue’
使用偽藍色雜訊進行抖動。這是預設值。
- ‘ordered’
可調整的有序抖動模式。
- ‘ordered_fixed’
速度更快的有序抖動,固定大小為
6
。無紋理。- ‘white’
使用白色雜訊進行抖動。無紋理。
- dither_lut_size
抖動 LUT 大小,以
1
和8
之間的 log base2 表示。預設值為6
,對應於64x64
的 LUT 大小。- dither_temporal
啟用時間抖動。預設停用。
11.145.1.8 自訂著色器
libplacebo 支援許多基於 mpv .hook GLSL 語法的自訂著色器。可以在這裡找到此類著色器的集合:https://github.com/mpv-player/mpv/wiki/User-Scripts#user-shaders
mpv 著色器格式的完整說明超出本節的範圍,但摘要可以在這裡找到:https://mpv.io/manual/master/#options-glsl-shader
- custom_shader_path
指定要在執行階段載入的自訂著色器檔案的路徑。
- custom_shader_bin
將完整的自訂著色器指定為原始字串。
11.145.1.9 偵錯 / 效能
本節中的所有選項預設為關閉。它們可能在嘗試以品質為代價來擠出最大效能時提供協助。
- skip_aa
降級取樣時停用反鋸齒。
- polar_cutoff
截斷低於此絕對大小的極座標 (EWA) 縮放器核心,介於
0.0
和1.0
之間。- disable_linear
停用線性光縮放。
- disable_builtin
停用內建 GPU 取樣(強制 LUT)。
- disable_fbos
強制停用 FBO,導致幾乎所有功能都喪失,但提供最大可能的速度。
11.145.2 指令
此濾鏡幾乎支援上述所有選項作為 commands。
11.145.3 範例
- 將輸入色調映射到標準色域 BT.709 輸出
libplacebo=colorspace=bt709:color_primaries=bt709:color_trc=bt709:range=tv
- 重新縮放輸入以適合標準 1080p,並進行高品質縮放
libplacebo=w=1920:h=1080:force_original_aspect_ratio=decrease:normalize_sar=true:upscaler=ewa_lanczos:downscaler=ewa_lanczos
- 內插低 FPS / VFR 輸入以平滑恆定 60 fps 輸出
libplacebo=fps=60:frame_mixer=mitchell_clamp
- 將輸入轉換為標準 sRGB JPEG
libplacebo=format=yuv420p:colorspace=bt470bg:color_primaries=bt709:color_trc=iec61966-2-1:range=pc
- 使用更高品質的去色帶設定
libplacebo=deband=true:deband_iterations=3:deband_radius=8:deband_threshold=6
- 在安裝 Mesa 的系統上(並停用最昂貴的選項)在 CPU 上執行此濾鏡
ffmpeg ... -init_hw_device vulkan:llvmpipe ... -vf libplacebo=upscaler=none:downscaler=none:peak_detect=false
- 在解碼器中抑制基於 CPU 的 AV1/H.274 膠片顆粒套用,而支援使用此濾鏡執行此操作。請注意,只有當影格已經在 GPU 上,或者您將 libplacebo 用於其他目的時,這才是一種優勢,因為否則 VRAM 往返將超過任何預期的加速。
ffmpeg -export_side_data +film_grain ... -vf libplacebo=apply_filmgrain=true
- 與 VAAPI hwdec 互通以避免透過 RAM 往返
ffmpeg -init_hw_device vulkan -hwaccel vaapi -hwaccel_output_format vaapi ... -vf libplacebo
11.146 libvmaf
計算參考/失真輸入影片組的 VMAF(影片多方法評估融合)分數。
第一個輸入是失真影片,第二個輸入是參考影片。
獲得的 VMAF 分數會透過記錄系統列印出來。
它需要 Netflix 的 vmaf 函式庫 (libvmaf) 作為先決條件。安裝函式庫後,可以使用以下命令啟用它:./configure --enable-libvmaf
。
濾鏡具有以下選項
- 指定標誌的左上角坐標。它們必須指定。
以 ‘|‘ 分隔的 vmaf 模型列表。每個模型都可以組態多個參數。預設值:
"version=vmaf_v0.6.1"
- feature
以 ‘|‘ 分隔的功能列表。每個功能都可以組態多個參數。
- log_path
設定用於儲存日誌檔案的檔案路徑。
- log_fmt
設定日誌檔案的格式(xml、json、csv 或 sub)。
- pool
設定用於計算 vmaf 的集區方法。選項為
min
、harmonic_mean
或mean
(預設值)。- n_threads
設定初始化 libvmaf 時要使用的執行緒數。預設值:
0
,無執行緒。- n_subsample
設定要使用的影格子取樣間隔。
此濾鏡也支援 framesync 選項。
11.146.1 範例
- 在以下範例中,失真影片 distorted.mpg 與參考檔案 reference.mpg 進行比較。
- 基本用法
ffmpeg -i distorted.mpg -i reference.mpg -lavfi libvmaf=log_path=output.xml -f null -
- 使用多個模型的範例
ffmpeg -i distorted.mpg -i reference.mpg -lavfi libvmaf='model=version=vmaf_v0.6.1\\:name=vmaf|version=vmaf_v0.6.1neg\\:name=vmaf_neg' -f null -
- 使用多個額外功能的範例
ffmpeg -i distorted.mpg -i reference.mpg -lavfi libvmaf='feature=name=psnr|name=ciede' -f null -
- 使用選項和不同容器的範例
ffmpeg -i distorted.mpg -i reference.mkv -lavfi "[0:v]settb=AVTB,setpts=PTS-STARTPTS[main];[1:v]settb=AVTB,setpts=PTS-STARTPTS[ref];[main][ref]libvmaf=log_fmt=json:log_path=output.json" -f null -
11.147 libvmaf_cuda
這是 libvmaf 濾鏡的 CUDA 變體。它僅接受 CUDA 影格。
它需要 Netflix 的 vmaf 函式庫 (libvmaf) 作為先決條件。安裝函式庫後,可以使用以下命令啟用它:./configure --enable-nonfree --enable-ffnvcodec --enable-libvmaf
。
11.147.1 範例
- 基本用法,顯示 CUVID 硬體解碼和使用 scale_cuda 進行 CUDA 縮放
ffmpeg \ -hwaccel cuda -hwaccel_output_format cuda -codec:v av1_cuvid -i dis.obu \ -hwaccel cuda -hwaccel_output_format cuda -codec:v av1_cuvid -i ref.obu \ -filter_complex " [0:v]scale_cuda=format=yuv420p[dis]; \ [1:v]scale_cuda=format=yuv420p[ref]; \ [dis][ref]libvmaf_cuda=log_fmt=json:log_path=output.json " \ -f null -
11.148 limitdiff
使用第二個和可選的第三個影片串流套用有限差異濾鏡。
濾鏡接受以下選項
- threshold
設定閾值,以在允許影片串流之間存在某些差異時使用。任何絕對差值低於或等於此閾值的值都將從第一個影片串流中選取像素組件。
- elasticity
設定處理影片串流時軟閾值的彈性。此值與第一個值相乘會設定第二個閾值。任何絕對差值大於或等於第二個閾值的值都將從第二個影片串流中選取像素組件。對於這兩個閾值之間的值,將使用第一個和第二個影片串流之間的線性內插。
- reference
啟用參考(第三個)影片串流處理。預設情況下停用。如果設定,此影片串流將用於計算與第一個影片串流的絕對差值。
- planes
指定將處理哪些平面。預設為所有可用平面。
11.148.1 指令
此濾鏡支援上述所有選項作為 commands,但選項 ‘reference’ 除外。
11.149 limiter
將像素組件值限制在指定的範圍 [min, max] 內。
濾鏡接受以下選項
- min
下限。預設值為輸入允許的最低值。
- max
上限。預設值為輸入允許的最高值。
- planes
指定將處理哪些平面。預設為所有可用平面。
11.149.1 指令
此濾鏡支援以上所有選項作為 commands。
11.150 loop
循環播放影片影格。
濾鏡接受以下選項
- loop
設定循環次數。將此值設定為 -1 將導致無限循環。預設值為 0。
- size
設定最大尺寸(以影格數為單位)。預設值為 0。
- start
設定循環的第一個影格。預設值為 0。
- time
以秒為單位設定循環開始時間。僅在名為 start 的選項設定為
-1
時使用。
11.150.1 範例
- 無限循環播放單個第一個影格
loop=loop=-1:size=1:start=0
- 循環播放單個第一個影格 10 次
loop=loop=10:size=1:start=0
- 循環播放前 10 個影格 5 次
loop=loop=5:size=10:start=0
11.151 lut1d
對輸入影片套用 1D LUT。
濾鏡接受以下選項
- file
設定 1D LUT 檔案名。
目前支援的格式
- ‘cube’
Iridas
- ‘csp’
cineSpace
- interp
選取內插模式。
提升高於偵測臨界值的頻率。
- ‘nearest’
使用來自最近定義點的值。
- ‘linear’
使用線性內插法內插值。
- ‘cosine’
使用餘弦內插法內插值。
- ‘cubic’
使用三次內插法內插值。
- ‘spline’
使用樣條內插法內插值。
11.151.1 指令
此濾鏡支援以上所有選項作為 commands。
11.152 lut3d
對輸入影片套用 3D LUT。
濾鏡接受以下選項
- file
設定 3D LUT 檔案名。
目前支援的格式
- ‘3dl’
AfterEffects
- ‘cube’
Iridas
- ‘dat’
DaVinci
- ‘m3d’
Pandora
- ‘csp’
cineSpace
- interp
選取內插模式。
提升高於偵測臨界值的頻率。
- ‘nearest’
使用來自最近定義點的值。
- ‘trilinear’
使用定義立方體的 8 個點內插值。
- ‘tetrahedral’
使用四面體內插值。
- ‘pyramid’
使用金字塔內插值。
- ‘prism’
使用棱鏡內插值。
11.152.1 指令
此濾鏡支援作為 commands 的 interp
選項。
11.153 lumakey
將某些亮度值轉換為透明度。
濾鏡接受以下選項
- threshold
設定將用作透明度基礎的亮度。預設值為
0
。- tolerance
設定要鍵控輸出的亮度值範圍。預設值為
0.01
。- softness
設定柔和度範圍。預設值為
0
。使用此選項可控制從零到完全透明的逐漸過渡。
11.153.1 指令
colorkey
如果指定的表達式無效,則會保持其目前值。
11.154 lut, lutrgb, lutyuv
計算查閱表,以將每個像素組件輸入值繫結到輸出值,並將其套用到輸入影片。
lutyuv 將查閱表套用到 YUV 輸入影片,lutrgb 套用到 RGB 輸入影片。
這些濾鏡接受以下參數
- c0
設定第一個像素組件表達式
- c1
設定第二個像素組件表達式
- c2
設定第三個像素組件表達式
- c3
設定第四個像素組件表達式,對應於 Alpha 組件
- r
r
- w
g
- b
b
- a
a
- y
y
- u
v
- 設定 V/Cr 組件表達式
每個選項都指定用於計算對應像素組件值的查閱表的表達式。
與每個 c* 選項關聯的確切組件取決於輸入的格式。
lut 濾鏡需要輸入為 YUV 或 RGB 像素格式,lutrgb 需要輸入為 RGB 像素格式,而 lutyuv 需要輸入為 YUV。
表達式可以包含以下常數和函式
val
- f
- h
輸入寬度和高度。
- val
像素組件的輸入值。
- clipval
輸入值,裁剪到 minval-maxval 範圍。
- maxval
像素組件的最大值。
- minval
像素組件的最小值。
- negval
像素組件值的負值,裁剪到 minval-maxval 範圍;它對應於表達式 "maxval-clipval+minval"。
- clip(val)
val 中計算的值,裁剪到 minval-maxval 範圍。
- gammaval(gamma)
像素組件值的計算 Gamma 校正值,裁剪到 minval-maxval 範圍。它對應於表達式 "pow((clipval-minval)/(maxval-minval)\,gamma)*(maxval-minval)+minval"
所有表達式預設為 "clipval"。
11.154.1 指令
blend
11.154.2 範例
- 反轉輸入影片
lutrgb="r=maxval+minval-val:g=maxval+minval-val:b=maxval+minval-val" lutyuv="y=maxval+minval-val:u=maxval+minval-val:v=maxval+minval-val"
以上與以下內容相同
lutrgb="r=negval:g=negval:b=negval" lutyuv="y=negval:u=negval:v=negval"
- 反轉亮度
lutyuv=y=negval
- 移除色度組件,將影片轉換為灰階影像
lutyuv="u=128:v=128"
- 套用亮度燒毀效果
lutyuv="y=2*val"
- 移除綠色和藍色組件
lutrgb="g=0:b=0"
- 在輸入上設定恆定的 Alpha 通道值
format=rgba,lutrgb=a="maxval-minval/2"
- 將亮度 Gamma 校正 0.5 倍
lutyuv=y=gammaval(0.5)
- 捨棄亮度的最低有效位元
lutyuv=y='bitand(val, 128+64+32)'
- 類似於 Technicolor 的效果
lutyuv=u='(val-maxval/2)*2+maxval/2':v='(val-maxval/2)*2+maxval/2'
11.155 lut2, tlut2
lut2
濾鏡採用兩個輸入串流並輸出一個串流。
tlut2
(時間 lut2)濾鏡從單個串流中取得兩個連續的影格。
此濾鏡接受以下參數
- c0
設定第一個像素組件表達式
- c1
設定第二個像素組件表達式
- c2
設定第三個像素組件表達式
- c3
設定第四個像素組件表達式,對應於 Alpha 組件
- d
d
lut2
濾鏡也支援 framesync 選項。
與每個 c* 選項關聯的確切組件取決於輸入的格式。
與每個 c* 選項關聯的確切組件取決於輸入中的格式。
boxblur
- f
- h
輸入寬度和高度。
- x
x
- y
y
- bdx
第一個輸入影片位元深度。
- bdy
第二個輸入影片位元深度。
所有表達式預設為 "x"。
11.155.1 指令
此濾鏡支援上述所有選項作為 commands,但選項 d
除外。
11.155.2 範例
- 醒目提示兩個 RGB 影片串流之間的差異
lut2='ifnot(x-y,0,pow(2,bdx)-1):ifnot(x-y,0,pow(2,bdx)-1):ifnot(x-y,0,pow(2,bdx)-1)'
- 醒目提示兩個 YUV 影片串流之間的差異
lut2='ifnot(x-y,0,pow(2,bdx)-1):ifnot(x-y,pow(2,bdx-1),pow(2,bdx)-1):ifnot(x-y,pow(2,bdx-1),pow(2,bdx)-1)'
- 顯示兩個影片串流之間的最大差異
lut2='if(lt(x,y),0,if(gt(x,y),pow(2,bdx)-1,pow(2,bdx-1))):if(lt(x,y),0,if(gt(x,y),pow(2,bdx)-1,pow(2,bdx-1))):if(lt(x,y),0,if(gt(x,y),pow(2,bdx)-1,pow(2,bdx-1)))'
11.156 maskedclamp
使用第二個輸入串流和第三個輸入串流鉗制第一個輸入串流。
傳回第一個串流的值,使其介於第二個輸入串流 - undershoot
和第三個輸入串流 + overshoot
之間。
此濾波器還能夠拉伸/壓縮音訊資料以使其與時間戳記匹配,或注入靜音/剪切音訊以使其與時間戳記匹配,執行兩者的組合或兩者都不執行。
- undershoot
預設值為
0
。- overshoot
預設值為
0
。- planes
設定哪些平面將作為點陣圖處理,未處理的平面將從第一個串流複製。預設值為 0xf,所有平面都將被處理。
11.156.1 指令
此濾鏡支援以上所有選項作為 commands。
11.157 maskedmax
使用第二個輸入串流與第一個輸入串流之間的絕對差值以及第三個輸入串流與第一個輸入串流之間的絕對差值,將第二個輸入串流和第三個輸入串流合併到輸出串流中。如果第二個絕對差值大於第一個絕對差值,則選取的值將來自第二個輸入串流,否則來自第三個輸入串流。
此濾波器還能夠拉伸/壓縮音訊資料以使其與時間戳記匹配,或注入靜音/剪切音訊以使其與時間戳記匹配,執行兩者的組合或兩者都不執行。
- planes
設定哪些平面將作為點陣圖處理,未處理的平面將從第一個串流複製。預設值為 0xf,所有平面都將被處理。
11.157.1 指令
此濾鏡支援以上所有選項作為 commands。
11.158 maskedmerge
使用第三個輸入串流中的每像素權重,將第一個輸入串流與第二個輸入串流合併。
第三個串流像素組件中的值 0 表示第一個串流的像素組件保持不變,而最大值(例如 8 位元影片為 255)表示第二個串流的像素組件保持不變。中間值定義兩個輸入串流的像素組件之間的合併量。
此濾波器還能夠拉伸/壓縮音訊資料以使其與時間戳記匹配,或注入靜音/剪切音訊以使其與時間戳記匹配,執行兩者的組合或兩者都不執行。
- planes
設定哪些平面將作為點陣圖處理,未處理的平面將從第一個串流複製。預設值為 0xf,所有平面都將被處理。
11.158.1 指令
此濾鏡支援以上所有選項作為 commands。
11.159 maskedmin
使用第二個輸入串流與第一個輸入串流之間的絕對差值以及第三個輸入串流與第一個輸入串流之間的絕對差值,將第二個輸入串流和第三個輸入串流合併到輸出串流中。如果第二個絕對差值小於第一個絕對差值,則選取的值將來自第二個輸入串流,否則來自第三個輸入串流。
此濾波器還能夠拉伸/壓縮音訊資料以使其與時間戳記匹配,或注入靜音/剪切音訊以使其與時間戳記匹配,執行兩者的組合或兩者都不執行。
- planes
設定哪些平面將作為點陣圖處理,未處理的平面將從第一個串流複製。預設值為 0xf,所有平面都將被處理。
11.159.1 指令
此濾鏡支援以上所有選項作為 commands。
11.160 maskedthreshold
透過比較兩個影片串流的絕對差值與固定閾值來選取像素。
如果第一個和第二個影片串流的像素組件之間的絕對差值等於或低於使用者提供的閾值,則選取第一個影片串流的像素組件,否則選取第二個影片串流的像素組件。
此濾波器還能夠拉伸/壓縮音訊資料以使其與時間戳記匹配,或注入靜音/剪切音訊以使其與時間戳記匹配,執行兩者的組合或兩者都不執行。
- threshold
設定從兩個輸入影片串流的絕對差值中選取像素時使用的閾值。
- planes
設定哪些平面將作為點陣圖處理,未處理的平面將從第二個串流複製。預設值為 0xf,所有平面都將被處理。
- mode
設定濾鏡運作模式。可以是
abs
或diff
。預設值為abs
。
11.160.1 指令
此濾鏡支援以上所有選項作為 commands。
11.161 maskfun
從輸入影片建立遮罩。
例如,在 tblend
濾鏡之後建立運動遮罩非常有用。
此濾波器還能夠拉伸/壓縮音訊資料以使其與時間戳記匹配,或注入靜音/剪切音訊以使其與時間戳記匹配,執行兩者的組合或兩者都不執行。
- low
設定低閾值。任何像素組件低於或等於此值的值都將設定為 0。
- high
設定高閾值。任何像素組件高於此值的值都將設定為目前像素格式允許的最大值。
- planes
設定要濾鏡的平面,預設情況下,所有可用平面都會被濾鏡。
- fill
使用此值填充所有影格像素。
- sum
設定影格的最大平均像素值。如果所有像素組件的總和高於此平均值,輸出影格將完全填滿由 fill 選項設定的值。通常與
tblend
濾鏡結合使用時,對於場景變換非常有用。
11.161.1 指令
此濾鏡支援以上所有選項作為 commands。
11.162 mcdeint
套用動態補償反交錯。
每個影格需要一個場景作為輸入,因此必須與 yadif=1/3 或同等功能一起使用。
此濾波器還能夠拉伸/壓縮音訊資料以使其與時間戳記匹配,或注入靜音/剪切音訊以使其與時間戳記匹配,執行兩者的組合或兩者都不執行。
- mode
設定反交錯模式。
它接受下列其中一個值
- ‘fast’
- ‘medium’
- ‘slow’
使用迭代動態估算
- ‘extra_slow’
類似 ‘slow’,但使用多個參考影格。
預設值為 ‘fast’。
- parity
設定輸入視訊所假設的圖像場景奇偶性。它必須是下列其中一個值
- ‘0, tff’
假設頂場優先
- ‘1, bff’
假設底場優先
預設值為 ‘bff’。
- qp
設定內部編碼器使用的每個區塊量化參數 (QP)。
較高的值應產生更平滑的動態向量場,但個別向量的最佳化程度較低。預設值為 1。
11.163 median
從由半徑定義的特定矩形中選取中間像素。
此濾波器還能夠拉伸/壓縮音訊資料以使其與時間戳記匹配,或注入靜音/剪切音訊以使其與時間戳記匹配,執行兩者的組合或兩者都不執行。
- 設定虛擬喇叭的仰角,單位為度。預設值為 0。
設定水平半徑大小。預設值為
1
。允許範圍為 1 到 127 的整數。- planes
設定要處理的平面。預設值為
15
,即所有可用的平面。- radiusV
設定垂直半徑大小。預設值為
0
。允許範圍為 0 到 127 的整數。如果為 0,則將從水平radius
選項中選取值。- percentile
設定中位數百分位數。預設值為
0.5
。預設值0.5
將始終選取中位數,而0
將選取最小值,1
將選取最大值。
11.163.1 指令
colorkey
如果指定的表達式無效,則會保持其目前值。
11.164 mergeplanes
從多個視訊串流合併色彩通道組件。
此濾鏡最多接受 4 個輸入串流,並將選定的輸入平面合併到輸出視訊。
此濾波器還能夠拉伸/壓縮音訊資料以使其與時間戳記匹配,或注入靜音/剪切音訊以使其與時間戳記匹配,執行兩者的組合或兩者都不執行。
- mapping
設定輸入到輸出平面的映射。預設值為
0
。映射指定為點陣圖。它應以十六進制數字的形式指定,如 0xAa[Bb[Cc[Dd]]]。「Aa」描述輸出串流第一個平面的映射。「A」設定要使用的輸入串流編號(從 0 到 3),「a」設定要使用的對應輸入的平面編號(從 0 到 3)。其餘映射類似,「Bb」描述輸出串流第二個平面的映射,「Cc」描述輸出串流第三個平面的映射,「Dd」描述輸出串流第四個平面的映射。
- format
設定輸出像素格式。預設值為
yuva444p
。- map0s
- map1s
- map2s
- map3s
設定輸出第 N 個平面的輸入到輸出串流映射。預設值為
0
。- map0p
- map1p
- map2p
- map3p
設定輸出第 N 個平面的輸入到輸出平面映射。預設值為
0
。
11.164.1 範例
- 將三個相同寬度和高度的灰度視訊串流合併為單個視訊串流
[a0][a1][a2]mergeplanes=0x001020:yuv444p
- 將第一個 yuv444p 串流和第二個灰度視訊串流合併為 yuva444p 視訊串流
[a0][a1]mergeplanes=0x00010210:yuva444p
- 在 yuva444p 串流中交換 Y 和 A 平面
format=yuva444p,mergeplanes=0x03010200:yuva444p
- 在 yuv420p 串流中交換 U 和 V 平面
format=yuv420p,mergeplanes=0x000201:yuv420p
- 將 rgb24 片段轉換為 yuv444p
format=rgb24,mergeplanes=0x000102:yuv444p
11.165 mestimate
使用區塊匹配演算法估算和匯出動態向量。動態向量儲存在影格邊數據中,供其他濾鏡使用。
此濾波器還能夠拉伸/壓縮音訊資料以使其與時間戳記匹配,或注入靜音/剪切音訊以使其與時間戳記匹配,執行兩者的組合或兩者都不執行。
- method
指定動態估算方法。接受下列其中一個值
- ‘esa’
窮舉搜尋演算法。
- ‘tss’
三步搜尋演算法。
- ‘tdls’
二維對數搜尋演算法。
- ‘ntss’
新三步搜尋演算法。
- ‘fss’
四步搜尋演算法。
- ‘ds’
菱形搜尋演算法。
- ‘hexbs’
基於六邊形的搜尋演算法。
- ‘epzs’
增強型預測區域搜尋演算法。
- ‘umh’
不均勻多六邊形搜尋演算法。
預設值為 ‘esa’。
- mb_size
巨集區塊大小。預設值
16
。- search_param
搜尋參數。預設值
7
。
11.166 midequalizer
使用兩個視訊串流套用中間影像均衡效果。
中間影像均衡調整一對影像,使其具有相同的直方圖,同時盡可能保持其動態範圍。它對於匹配一對立體相機的曝光非常有用。
此濾鏡有兩個輸入和一個輸出,它們必須具有相同的像素格式,但大小可能不同。濾鏡的輸出是第一個輸入,並使用兩個輸入的中間直方圖進行調整。
此濾鏡接受以下選項
- planes
設定要處理的平面。預設值為
15
,即所有可用的平面。
11.167 minterpolate
使用動態內插將視訊轉換為指定的影格率。
此濾波器還能夠拉伸/壓縮音訊資料以使其與時間戳記匹配,或注入靜音/剪切音訊以使其與時間戳記匹配,執行兩者的組合或兩者都不執行。
- fps
指定輸出影格率。這可以是有理數,例如
60000/1001
。如果 fps 低於來源 fps,則會丟棄影格。預設值60
。- mi_mode
動態內插模式。接受以下值
- ‘dup’
複製前一個或下一個影格以內插新影格。
- ‘blend’
混合來源影格。內插影格是前一個和下一個影格的平均值。
- ‘mci’
動態補償內插。當選取此模式時,以下選項有效
- ‘mc_mode’
動態補償模式。接受以下值
- ‘obmc’
重疊區塊動態補償。
- ‘aobmc’
自適應重疊區塊動態補償。視窗加權係數根據相鄰動態向量的可靠性自適應控制,以減少過度平滑。
預設模式為 ‘obmc’。
- ‘me_mode’
動態估算模式。接受以下值
- ‘bidir’
雙向動態估算。為每個來源影格在向前和向後方向上估算動態向量。
- ‘bilat’
雙邊動態估算。直接為內插影格估算動態向量。
預設模式為 ‘bilat’。
- ‘me’
用於動態估算的演算法。接受以下值
- ‘esa’
窮舉搜尋演算法。
- ‘tss’
三步搜尋演算法。
- ‘tdls’
二維對數搜尋演算法。
- ‘ntss’
新三步搜尋演算法。
- ‘fss’
四步搜尋演算法。
- ‘ds’
菱形搜尋演算法。
- ‘hexbs’
基於六邊形的搜尋演算法。
- ‘epzs’
增強型預測區域搜尋演算法。
- ‘umh’
不均勻多六邊形搜尋演算法。
預設演算法為 ‘epzs’。
- ‘mb_size’
巨集區塊大小。預設值
16
。- ‘search_param’
動態估算搜尋參數。預設值
32
。- ‘vsbmc’
啟用可變大小區塊動態補償。動態估算應用於物件邊界處的較小區塊大小,以使其不那麼模糊。預設值為
0
(停用)。
- scd
場景變換偵測方法。場景變換導致動態向量朝隨機方向。場景變換將內插影格替換為重複的影格。其他模式可能不需要。接受以下值
- 「none」
停用場景變換偵測。
- ‘fdiff’
影格差異。比較對應的像素值,如果滿足 scd_threshold,則偵測到場景變換。
預設方法為 ‘fdiff’。
- scd_threshold
場景變換偵測閾值。預設值為
10.
。
11.168 mix
將多個視訊輸入串流混合成一個視訊串流。
以下是接受選項的描述。
- inputs
輸入的數量。如果未指定,則預設為 2。
- 當輸入串流結束時,用於音量重新正規化的過渡時間,單位為秒。預設值為 2 秒。
將每個輸入視訊串流的權重指定為序列。每個權重以空格分隔。如果權重數量小於 frames 的數量,則最後指定的權重將用於所有剩餘未設定的權重。
- scale
指定縮放比例,如果設定,它將與每個權重乘以像素值的總和相乘,以得出最終目標像素值。預設情況下,scale 會自動縮放到權重總和。
- planes
planes
- duration
指定如何確定串流結束。
- ‘longest’
最長輸入的持續時間。(預設)
- ‘shortest’
shortest
- ‘first’
first
11.168.1 指令
此濾波器支援以下指令
- 當輸入串流結束時,用於音量重新正規化的過渡時間,單位為秒。預設值為 2 秒。
- scale
- planes
這會將一個人聲輸入和一個音樂輸入音訊串流混合到單個輸出,其持續時間與最長輸入相同。音樂的權重將為人聲的四分之一,並且輸入未正規化
11.169 monochrome
使用自訂色彩濾鏡將視訊轉換為灰度。
以下是接受選項的描述。
- cb
設定色度藍點。允許範圍為 -1 到 1。預設值為 0。
- cr
設定色度紅點。允許範圍為 -1 到 1。預設值為 0。
- size
設定色彩濾鏡大小。允許範圍為 .1 到 10。預設值為 1。
- high
設定高光強度。允許範圍為 0 到 1。預設值為 0。
11.169.1 指令
此濾鏡支援以上所有選項作為 commands。
11.170 morpho
此濾鏡允許套用主要的形態學灰度變換、腐蝕和膨脹,並在第二個輸入串流中設定任意結構。
與 腐蝕 和 膨脹 濾鏡中的樸素實作和較慢的效能不同,當速度至關重要時,應改用 morpho
濾鏡。
以下是接受選項的描述:
- mode
設定要套用的形態學變換,可以是
- ‘erode’
- ‘dilate’
- ‘open’
- ‘close’
- ‘gradient’
- ‘tophat’
- ‘blackhat’
預設值為
erode
。- planes
設定要濾鏡的平面,預設情況下,除了 alpha 之外的所有平面都會被濾鏡。
- structure
設定將從第二個輸入串流處理哪個結構視訊影格,可以是 first 或 all。預設值為 all。
morpho
濾鏡也支援 framesync 選項。
11.170.1 指令
blend
11.171 mpdecimate
丟棄與前一個影格差異不大的影格,以降低影格率。
此濾鏡的主要用途是用於極低位元率編碼(例如,透過撥接數據機串流),但在理論上,它可以用於修復反向電影膠捲轉換不正確的影片。
以下是接受選項的描述。
- max
設定可以連續丟棄的最大影格數(如果為正數),或丟棄影格之間的最小間隔(如果為負數)。如果值為 0,則會丟棄影格,而忽略先前循序丟棄的影格數。
預設值為 0。
- keep
設定在開始丟棄之前要忽略的最大連續相似影格數。如果值為 0,則會丟棄影格,而忽略先前循序相似的影格數。
預設值為 0。
- hi
- lo
- frac
設定丟棄閾值。
hi 和 lo 的值適用於 8x8 像素區塊,並表示實際像素值差異,因此 64 的閾值對應於每個像素 1 個單位的差異,或以不同方式分散在區塊上的相同差異。
如果沒有 8x8 區塊的差異超過 hi 的閾值,且沒有超過 frac 個區塊(1 表示整個影像)的差異超過 lo 的閾值,則該影格是丟棄的候選者。
hi 的預設值為 64*12,lo 的預設值為 64*5,frac 的預設值為 0.33。
11.172 msad
取得兩個輸入視訊之間的 MSAD(平均絕對差總和)。
此濾鏡採用兩個輸入視訊。
為了使此濾鏡正常工作,兩個輸入視訊必須具有相同的解析度和像素格式。此外,它假設兩個輸入具有相同數量的影格,這些影格將逐個比較。
獲得的每個組件、平均值、最小值和最大值 MSAD 會透過日誌系統印出。
濾鏡將每個影格的計算 MSAD 儲存在影格元數據中。
此濾鏡也支援 framesync 選項。
在以下範例中,正在處理的輸入檔案 main.mpg 與參考檔案 ref.mpg 進行比較。
ffmpeg -i main.mpg -i ref.mpg -lavfi msad -f null -
11.173 multiply
將第一個視訊串流像素值與第二個視訊串流像素值相乘。
濾鏡接受以下選項
- scale
設定套用於第二個視訊串流的縮放比例。預設值為
1
。允許範圍為0
到9
。- offset
設定套用於第二個視訊串流的偏移量。預設值為
0.5
。允許範圍為-1
到1
。- planes
指定將處理輸入視訊串流中的哪些平面。預設情況下,所有平面都會被處理。
11.173.1 指令
blend
11.174 negate
反轉(反相)輸入視訊。
設定柔削波的類型。
- 在從輸入視訊中選取的彩色背景上繪製十六進制像素值,文字顏色以使其始終可見的方式選取。
設定要反轉的組件。
組件的可用值為
- ‘y’
- ‘u’
- ‘v’
- ‘a’
- ‘r’
- ‘g’
- ‘b’
- negate_alpha
值為 1 時,它會反轉 alpha 組件(如果存在)。預設值為 0。
11.174.1 指令
blend
11.175 nlmeans
使用非局部均值演算法對影格進行去噪。
每個像素都會透過尋找具有相似內容的其他像素來調整。此內容相似性是透過比較其大小為 pxp 的周圍區塊來定義的。區塊在像素周圍 rxr 的區域中搜尋。
請注意,研究區域定義了區塊的中心,這表示某些區塊將由研究區域外部的像素組成。
bm3d
- s
設定去噪強度。預設值為 1.0。必須在 [1.0, 30.0] 範圍內。
- sn
設定區塊大小。預設值為 7。必須是 [0, 99] 範圍內的奇數。
- pc
與 p 相同,但適用於色度平面。
預設值為 0,表示自動。
- r
設定研究大小。預設值為 15。必須是 [0, 99] 範圍內的奇數。
- rc
與 r 相同,但適用於色度平面。
預設值為 0,表示自動。
11.176 nnedi
使用神經網路邊緣導向內插法對視訊進行反交錯。
此濾波器還能夠拉伸/壓縮音訊資料以使其與時間戳記匹配,或注入靜音/剪切音訊以使其與時間戳記匹配,執行兩者的組合或兩者都不執行。
- 當輸入串流結束時,用於音量重新正規化的過渡時間,單位為秒。預設值為 2 秒。
強制選項,沒有二進制檔案,濾鏡無法運作。目前可以在這裡找到檔案:https://github.com/dubhater/vapoursynth-nnedi3/blob/master/src/nnedi3_weights.bin
- deint
設定要反交錯哪些影格,預設值為
all
。可以是all
或interlaced
。- field
設定操作模式。
設定單聲道和反相聲道之間的立體聲基礎。預設值為 0。允許範圍為 -1 到 1。
- ‘af’
使用影格標誌,兩個場景。
- ‘a’
使用影格標誌,單個場景。
- 「t」
僅使用頂場。
- ‘b’
僅使用底場。
- ‘tf’
使用兩個場景,頂場優先。
- 「bf」
使用兩個場景,底場優先。
- planes
設定要處理哪些平面,預設情況下,濾鏡會處理所有影格。
- nsize
設定每個像素周圍局部鄰域的大小,供預測器神經網路使用。
設定單聲道和反相聲道之間的立體聲基礎。預設值為 0。允許範圍為 -1 到 1。
- ‘s8x6’
- ‘s16x6’
- ‘s32x6’
- ‘s48x6’
- ‘s8x4’
- ‘s16x4’
- ‘s32x4’
- nns
設定預測器神經網路中的神經元數量。可以是下列其中之一
- ‘n16’
- ‘n32’
- ‘n64’
- ‘n128’
- ‘n256’
- qual
控制混合在一起以計算最終輸出值的不同神經網路預測的數量。可以是
fast
、default 或slow
。- etype
設定預測器中要使用的權重集。可以是下列其中之一
- ‘a, abs’
經過訓練以最小化絕對誤差的權重
- ‘s, mse’
經過訓練以最小化均方誤差的權重
- pscrn
控制是否使用預篩選器神經網路來決定哪些像素應由預測器神經網路處理,哪些像素可以由簡單的立方內插法處理。預篩選器經過訓練,知道立方內插法是否足以處理像素,或者是否應由預測器神經網路預測。預篩選器神經網路的計算複雜度遠低於預測器神經網路。由於大多數像素都可以由立方內插法處理,因此使用預篩選器通常會導致更快的處理速度。預篩選器非常準確,因此使用它和不使用它之間的差異幾乎總是難以察覺。
設定單聲道和反相聲道之間的立體聲基礎。預設值為 0。允許範圍為 -1 到 1。
- 「none」
- ‘original’
- ‘new’
- ‘new2’
- ‘new3’
預設值為
new
。
11.176.1 指令
此濾鏡支援與選項相同的 指令,但不包括 weights 選項。
11.177 noformat
強制 libavfilter 不要對下一個濾鏡的輸入使用任何指定的像素格式。
它接受以下參數
- pix_fmts
像素格式名稱的「|」分隔清單,例如 pix_fmts=yuv420p|monow|rgb24"。
11.177.1 範例
- 強制 libavfilter 對 vflip 濾鏡的輸入使用與 yuv420p 不同的格式
noformat=pix_fmts=yuv420p,vflip
- 將輸入視訊轉換為未包含在清單中的任何格式
noformat=yuv420p|yuv444p|yuv410p
11.178 noise
在視訊輸入影格上新增雜訊。
濾鏡接受以下選項
- all_seed
- c0_seed
- c1_seed
- c2_seed
- c3_seed
設定特定像素組件或所有像素組件的雜訊種子,如果是 all_seed 的情況。預設值為
123457
。- all_strength, alls
- c0_strength, c0s
- c1_strength, c1s
- c2_strength, c2s
- c3_strength, c3s
設定特定像素組件或所有像素組件的雜訊強度,如果是 all_strength 的情況。預設值為
0
。允許範圍為 [0, 100]。- all_flags, allf
- c0_flags, c0f
- c1_flags, c1f
- c2_flags, c2f
- c3_flags, c3f
設定像素組件標誌,如果為 all_flags,則設定所有組件的標誌。組件標誌的可用值為
- ‘a’
平均時間雜訊(更平滑)
- ‘p’
將隨機雜訊與(半)規則模式混合
- 「t」
時間雜訊(影格之間的雜訊模式變化)
- ‘u’
均勻雜訊(否則為高斯雜訊)
11.178.1 範例
將時間和均勻雜訊新增至輸入視訊
noise=alls=20:allf=t+u
11.179 normalize
正規化 RGB 視訊(又稱直方圖拉伸、對比度拉伸)。請參閱:https://en.wikipedia.org/wiki/Normalization_(image_processing)
對於每個影格的每個通道,濾鏡會計算輸入範圍,並將其線性映射到使用者指定的輸出範圍。輸出範圍預設為從純黑色到純白色的完整動態範圍。
時間平滑可用於輸入範圍,以減少當小的黑暗或明亮物件進入或離開場景時引起的閃爍(亮度快速變化)。這類似於視訊攝影機上的自動曝光(自動增益控制),並且與視訊攝影機一樣,它可能會導致視訊的過度曝光或曝光不足一段時間。
R、G、B 通道可以獨立正規化,這可能會導致一些色彩偏移,或者可以連結在一起作為單個通道,這可以防止色彩偏移。連結正規化保留色調。獨立正規化則不會,因此可用於消除一些色偏。獨立正規化和連結正規化可以以任何比例組合。
正規化濾鏡接受以下選項
- blackpt
- whitept
定義輸出範圍的色彩。最小輸入值映射到 blackpt。最大輸入值映射到 whitept。預設值分別為黑色和白色。為 blackpt 指定白色,為 whitept 指定黑色將產生色彩反轉的正規化視訊。灰度陰影可用於減少動態範圍(對比度)。在此處指定飽和色彩可以產生一些有趣的效果。
- smoothing
用於時間平滑的前一個影格的數量。每個通道的輸入範圍都使用當前影格和 smoothing 前一個影格的滾動平均值進行平滑處理。預設值為 0(無時間平滑)。
- independence
控制獨立(色彩偏移)通道正規化與連結(色彩保留)正規化的比例。0.0 完全連結,1.0 完全獨立。預設值為 1.0(完全獨立)。
- 強度 (strength)
濾鏡的整體強度。1.0 為全強度。0.0 是一個相當昂貴的空操作。預設值為 1.0(全強度)。
11.179.1 指令
此濾鏡支援與選項相同的 指令,但不包括 smoothing 選項。指令接受與對應選項相同的語法。
如果指定的表達式無效,則會保持其目前值。
11.179.2 範例
拉伸視訊對比度以使用完整動態範圍,不進行時間平滑;可能會根據來源內容閃爍
normalize=blackpt=black:whitept=white:smoothing=0
與上述相同,但具有 50 個影格的時間平滑;應減少閃爍,具體取決於來源內容
normalize=blackpt=black:whitept=white:smoothing=50
與上述相同,但具有保留色調的連結通道正規化
normalize=blackpt=black:whitept=white:smoothing=50:independence=0
與上述相同,但強度減半
normalize=blackpt=black:whitept=white:smoothing=50:independence=0:strength=0.5
將最暗的輸入色彩映射為紅色,將最亮的輸入色彩映射為青色
normalize=blackpt=red:whitept=cyan
11.180 null
將視訊來源未經變更地傳遞到輸出。
11.181 ocr
光學字元辨識
此濾鏡使用 Tesseract 進行光學字元辨識。若要啟用此濾鏡的編譯,您需要使用 --enable-libtesseract
配置 FFmpeg。
設定視窗長度,以樣本為單位。預設值為 2048。允許範圍為 32 到 65536。
- datapath
設定 Tesseract 資料的路徑。預設值為使用安裝時設定的任何路徑。
- language
設定語言,預設值為 "eng"。
- whitelist
設定字元白名單。
- blacklist
設定字元黑名單。
濾鏡將辨識的文字匯出為影格元數據 lavfi.ocr.text
。濾鏡將辨識單字的信賴度匯出為影格元數據 lavfi.ocr.confidence
。
11.182 ocv
使用 libopencv 套用視訊變換。
若要啟用此濾鏡,請安裝 libopencv 程式庫和標頭,並使用 --enable-libopencv
配置 FFmpeg。
它接受以下參數
- filter_name
要套用的 libopencv 濾鏡的名稱。
- filter_params
要傳遞給 libopencv 濾鏡的參數。如果未指定,則假設為預設值。
請參閱官方 libopencv 文件以取得更精確的資訊:http://docs.opencv.org/master/modules/imgproc/doc/filtering.html
支援多種 libopencv 濾鏡;請參閱以下小節。
11.182.1 擴張
透過使用特定的結構元素來膨脹影像。它對應於 libopencv 函數 cvDilate
。
它接受參數:struct_el|nb_iterations。
struct_el 代表結構元素,其語法為:colsxrows+anchor_xxanchor_y/shape
cols 和 rows 代表結構元素的欄數和列數,anchor_x 和 anchor_y 代表錨點,shape 代表結構元素的形狀。shape 必須是 "rect"、"cross"、"ellipse" 或 "custom"。
如果 shape 的值為 "custom",則必須後跟 "=filename" 形式的字串。名稱為 filename 的檔案假設代表二進制影像,每個可列印的字元對應於一個亮像素。當使用自訂 shape 時,cols 和 rows 會被忽略,而是假設為讀取檔案的欄數和列數。
struct_el 的預設值為 "3x3+0x0/rect"。
nb_iterations 指定變換套用於影像的次數,預設值為 1。
一些範例
# Use the default values ocv=dilate # Dilate using a structuring element with a 5x5 cross, iterating two times ocv=filter_name=dilate:filter_params=5x5+2x2/cross|2 # Read the shape from the file diamond.shape, iterating two times. # The file diamond.shape may contain a pattern of characters like this # * # *** # ***** # *** # * # The specified columns and rows are ignored # but the anchor point coordinates are not ocv=dilate:0x0+2x2/custom=diamond.shape|2
11.182.2 侵蝕
透過使用特定的結構元素來腐蝕影像。它對應於 libopencv 函數 cvErode
。
它接受參數:struct_el:nb_iterations,其語法和語意與 dilate 濾鏡相同。
11.182.3 平滑化
平滑輸入視訊。
濾鏡採用以下參數:type|param1|param2|param3|param4。
type 是要套用的平滑濾鏡的類型,並且必須是以下值之一:"blur"、"blur_no_scale"、"median"、"gaussian" 或 "bilateral"。預設值為 "gaussian"。
param1、param2、param3 和 param4 的含義取決於平滑類型。param1 和 param2 接受整數正值或 0。param3 和 param4 接受浮點值。
param1 的預設值為 3。其他參數的預設值為 0。
這些參數對應於指派給 libopencv 函數 cvSmooth
的參數。
11.183 oscilloscope
2D 視訊示波器。
用於測量空間脈衝、步階響應、色度延遲等。
它接受以下參數
- x
設定示波器中心 x 位置。
- y
設定示波器中心 y 位置。
- s
設定示波器大小,相對於影格對角線。
- 設定傳輸表達式。
設定示波器傾斜/旋轉。
- o
設定追蹤不透明度。
- tx
設定追蹤中心 x 位置。
- ty
設定追蹤中心 y 位置。
- tw
設定追蹤寬度,相對於影格寬度。
- th
設定追蹤高度,相對於影格高度。
- c
設定要追蹤的組件。預設情況下,它會追蹤前三個組件。
- w
繪製追蹤網格。預設情況下為啟用。
- st
繪製一些統計資訊。預設情況下為啟用。
- sc
繪製示波器。預設情況下為啟用。
11.183.1 指令
colorkey
如果指定的表達式無效,則會保持其目前值。
11.183.2 範例
- 檢查視訊影格完整的第一列。
oscilloscope=x=0.5:y=0:s=1
- 檢查視訊影格完整的最後一列。
oscilloscope=x=0.5:y=1:s=1
- 檢查高度為 1080 的視訊影格的完整第 5 行。
oscilloscope=x=0.5:y=5/1080:s=1
- 檢查視訊影格完整的最後一欄。
oscilloscope=x=1:y=0.5:s=1:t=1
11.184 overlay
將一個視訊覆蓋在另一個視訊之上。
它接受兩個輸入並具有一個輸出。第一個輸入是「主要」視訊,第二個輸入覆蓋在該視訊之上。
它接受以下參數
以下是接受選項的描述。
- x
- y
設定主要視訊上覆蓋視訊的 x 和 y 坐標的表達式。兩個表達式的預設值均為 "0"。如果表達式無效,則會將其設定為一個很大的值(表示覆蓋將不會顯示在輸出可見區域內)。
- eof_action
請參閱 framesync。
- eval
設定何時評估 x 和 y 的表達式。
設定叢發融合,以視窗大小的百分比表示。允許範圍為
0
到10
。預設值為2
。如果偵測為雜訊的任何兩個樣本之間的間隔小於此值,則這兩個樣本之間的任何樣本也將被偵測為雜訊。- ‘init’
僅在濾鏡初始化期間或處理命令時評估表示式一次
- 「frame」
為每個傳入的影格評估表示式
預設值為 ‘frame’。
- shortest
請參閱 framesync。
- format
設定輸出視訊的格式。
設定叢發融合,以視窗大小的百分比表示。允許範圍為
0
到10
。預設值為2
。如果偵測為雜訊的任何兩個樣本之間的間隔小於此值,則這兩個樣本之間的任何樣本也將被偵測為雜訊。- ‘yuv420’
強制 YUV 4:2:0 8 位元平面輸出
- 「yuv420p10」
強制 YUV 4:2:0 10 位元平面輸出
- ‘yuv422’
強制 YUV 4:2:2 8 位元平面輸出
- 「yuv422p10」
強制 YUV 4:2:2 10 位元平面輸出
- ‘yuv444’
強制 YUV 4:4:4 8 位元平面輸出
- 「yuv444p10」
強制 YUV 4:4:4 10 位元平面輸出
- ‘rgb’
強制 RGB 8 位元封裝輸出
- ‘gbrp’
強制 RGB 8 位元平面輸出
- 「auto」
自動選取格式
預設值為 ‘yuv420’。
- repeatlast
請參閱 framesync。
- range, r
設定覆蓋視訊的 alpha 格式,它可以是 straight 或 premultiplied。預設值為 straight。
x 和 y 表達式可以包含以下參數。
- main_w, W
- main_h, H
主要輸入寬度和高度。
- overlay_w, w
- overlay_h, h
覆蓋輸入寬度和高度。
- x
- y
x 和 y 的計算值。它們是為每個新影格評估的。
- hsub
- vsub
輸出格式的水平和垂直色度子採樣值。例如,對於像素格式 "yuv422p",hsub 為 2,vsub 為 1。
- n
標記映射 libfreetype 支援的相應標記,並且是以下值的組合
- pos
輸入影格在檔案中的位置,如果未知,則為 NAN;已棄用,請勿使用
- 設定傳輸表達式。
時間戳記,以秒為單位表示。如果輸入時間戳記未知,則為 NAN。
此濾鏡也支援 framesync 選項。
請注意,n、t 變數僅在每個影格完成評估時可用,並且當 eval 設定為 ‘init’ 時,將評估為 NAN。
請注意,影格是從每個輸入視訊中按時間戳記順序取得的,因此,如果它們的初始時間戳記不同,最好將兩個輸入都透過 setpts=PTS-STARTPTS 濾鏡傳遞,以使它們以相同的零時間戳記開始,如 movie 濾鏡的範例所示。
您可以將更多覆蓋鏈接在一起,但您應該測試這種方法的效率。
11.184.1 指令
此濾波器支援以下指令
- x
- y
修改覆蓋輸入的 x 和 y。指令接受與對應選項相同的語法。
如果指定的表達式無效,則會保持其目前值。
11.184.2 範例
- 將覆蓋繪製在距主要視訊右下角 10 像素的位置
overlay=main_w-overlay_w-10:main_h-overlay_h-10
使用具名選項,上述範例變為
overlay=x=main_w-overlay_w-10:y=main_h-overlay_h-10
- 使用
ffmpeg
工具和-filter_complex
選項,在輸入的左下角插入透明 PNG 標誌ffmpeg -i input -i logo -filter_complex 'overlay=10:main_h-overlay_h-10' output
- 使用
ffmpeg
工具插入 2 個不同的透明 PNG 標誌(第二個標誌位於右下角)ffmpeg -i input -i logo1 -i logo2 -filter_complex 'overlay=x=10:y=H-h-10,overlay=x=W-w-10:y=H-h-10' output
- 在主要視訊之上新增透明色彩圖層;
WxH
必須指定覆蓋濾鏡主要輸入的大小color=color=red@.3:size=WxH [over]; [in][over] overlay [out]
- 使用
ffplay
工具並排播放原始視訊和已濾鏡版本(此處使用 deshake 濾鏡)ffplay input.avi -vf 'split[a][b]; [a]pad=iw*2:ih[src]; [b]deshake[filt]; [src][filt]overlay=w'
上述指令與以下指令相同
ffplay input.avi -vf 'split[b], pad=iw*2[src], [b]deshake, [src]overlay=w'
- 製作一個從螢幕左側滑動到右上方部分並從時間 2 開始出現的滑動覆蓋
overlay=x='if(gte(t,2), -w+(t-2)*20, NAN)':y=0
- 將兩個輸入視訊並排放置來組成輸出
ffmpeg -i left.avi -i right.avi -filter_complex " nullsrc=size=200x100 [background]; [0:v] setpts=PTS-STARTPTS, scale=100x100 [left]; [1:v] setpts=PTS-STARTPTS, scale=100x100 [right]; [background][left] overlay=shortest=1 [background+left]; [background+left][right] overlay=shortest=1:x=100 [left+right] "
- 透過將 delogo 濾鏡套用於某個區段來遮罩視訊的 10-20 秒
ffmpeg -i test.avi -codec:v:0 wmv2 -ar 11025 -b:v 9000k -vf '[in]split[split_main][split_delogo];[split_delogo]trim=start=360:end=371,delogo=0:0:640:480[delogoed];[split_main][delogoed]overlay=eof_action=pass[out]' masked.avi
- 以串聯方式鏈接多個覆蓋
nullsrc=s=200x200 [bg]; testsrc=s=100x100, split=4 [in0][in1][in2][in3]; [in0] lutrgb=r=0, [bg] overlay=0:0 [mid0]; [in1] lutrgb=g=0, [mid0] overlay=100:0 [mid1]; [in2] lutrgb=b=0, [mid1] overlay=0:100 [mid2]; [in3] null, [mid2] overlay=100:100 [out0]
11.185 overlay_cuda
將一個視訊覆蓋在另一個視訊之上。
這是 overlay 濾鏡的 CUDA 變體。它僅接受 CUDA 影格。底層輸入像素格式必須匹配。
它接受兩個輸入並具有一個輸出。第一個輸入是「主要」視訊,第二個輸入覆蓋在該視訊之上。
它接受以下參數
- x
- y
設定主要視訊上覆蓋視訊的 x 和 y 坐標的表達式。
它們可以包含以下參數
- main_w, W
- main_h, H
主要輸入寬度和高度。
- overlay_w, w
- overlay_h, h
覆蓋輸入寬度和高度。
- x
- y
x 和 y 的計算值。它們是為每個新影格評估的。
- n
主要輸入影格的序數索引,從 0 開始。
- pos
主要輸入影格檔案中的位元組偏移位置,如果未知,則為 NAN。已棄用,請勿使用。
- 設定傳輸表達式。
主要輸入影格的時間戳記,以秒為單位表示,如果未知,則為 NAN。
兩個表達式的預設值均為 "0"。
- eval
設定何時評估 x 和 y 的表達式。
設定叢發融合,以視窗大小的百分比表示。允許範圍為
0
到10
。預設值為2
。如果偵測為雜訊的任何兩個樣本之間的間隔小於此值,則這兩個樣本之間的任何樣本也將被偵測為雜訊。- init
在濾鏡初始化期間或處理指令時評估表達式一次。
- frame
為每個傳入影格評估表達式
預設值為 frame。
- eof_action
請參閱 framesync。
- shortest
請參閱 framesync。
- repeatlast
請參閱 framesync。
此濾鏡也支援 framesync 選項。
11.186 owdenoise
套用過完備小波去噪器。
濾鏡接受以下選項
- 深度 (depth)
設定深度。
較大的深度值將更多地對低頻組件進行去噪,但會減慢濾鏡速度。
必須是 8-16 範圍內的整數,預設值為
8
。- luma_strength, ls
設定亮度強度。
必須是 0-1000 範圍內的雙精度值,預設值為
1.0
。- chroma_strength, cs
設定色度強度。
必須是 0-1000 範圍內的雙精度值,預設值為
1.0
。
11.187 pad
將填充新增至輸入影像,並將原始輸入放置在提供的 x、y 坐標處。
它接受以下參數
- width, w
- 超出範圍的像素將被鏡像像素替換。
指定輸出影像大小的表達式,並新增填充。如果 width 或 height 的值為 0,則輸出將使用對應的輸入大小。
width 表達式可以參考 height 表達式設定的值,反之亦然。
width 和 height 的預設值為 0。
- x
- y
指定在填充區域內放置輸入影像的偏移量,相對於輸出影像的頂部/左側邊框。
x 表達式可以參考 y 表達式設定的值,反之亦然。
x 和 y 的預設值為 0。
如果 x 或 y 評估為負數,則會變更它們,使輸入影像在填充區域中居中。
- color
指定填充區域的色彩。有關此選項的語法,請查看 ffmpeg-utils 手冊中的 "(ffmpeg-utils)「Color」章節"。
color 的預設值為 "black"。
- eval
指定何時評估 width、height、x 和 y 表達式。
設定叢發融合,以視窗大小的百分比表示。允許範圍為
0
到10
。預設值為2
。如果偵測為雜訊的任何兩個樣本之間的間隔小於此值,則這兩個樣本之間的任何樣本也將被偵測為雜訊。- ‘init’
僅在濾鏡初始化期間或處理指令時評估表達式一次。
- 「frame」
為每個傳入的影格評估表示式。
預設值為 ‘init’。
- aspect
填充到縱橫比而不是解析度。
width、height、x 和 y 選項的值是包含以下常數的表達式
- in_w
- in_h
輸入視訊寬度和高度。
- iw
- ih
這些與 in_w 和 in_h 相同。
- out_w
- out_h
輸出寬度和高度(填充區域的大小),如 width 和 height 表達式所指定。
- ow
- oh
這些與 out_w 和 out_h 相同。
- x
- y
x 和 y 偏移量,如 x 和 y 表達式所指定,如果尚未指定,則為 NAN。
- a
與 iw / ih 相同
- sar
輸入樣本縱橫比
- dar
輸入顯示縱橫比,它與 (iw / ih) * sar 相同
- hsub
- vsub
水平和垂直色度子採樣值。例如,對於像素格式 "yuv422p",hsub 為 2,vsub 為 1。
11.187.1 範例
- 使用色彩 "violet" 將填充新增至輸入視訊。輸出視訊大小為 640x480,輸入視訊的左上角位於第 0 欄、第 40 列
pad=640:480:0:40:violet
上述範例等效於以下指令
pad=width=640:height=480:x=0:y=40:color=violet
- 填充輸入以取得尺寸增加 3/2 的輸出,並將輸入視訊放置在填充區域的中心
pad="3/2*iw:3/2*ih:(ow-iw)/2:(oh-ih)/2"
- 填充輸入以取得大小等於輸入寬度和高度之間最大值的正方形輸出,並將輸入視訊放置在填充區域的中心
pad="max(iw\,ih):ow:(ow-iw)/2:(oh-ih)/2"
- 填充輸入以取得 16:9 的最終寬高比
pad="ih*16/9:ih:(ow-iw)/2:(oh-ih)/2"
- 在變形寬螢幕視訊的情況下,為了正確設定輸出顯示縱橫比,必須在表達式中使用 sar,根據以下關係
(ih * X / ih) * sar = output_dar X = output_dar / sar
因此,先前的範例需要修改為
pad="ih*16/9/sar:ih:(ow-iw)/2:(oh-ih)/2"
- 將輸出大小加倍,並將輸入視訊放置在輸出填充區域的右下角
pad="2*iw:2*ih:ow-iw:oh-ih"
11.188 palettegen
為整個視訊串流產生一個調色盤。
設定視窗長度,以樣本為單位。預設值為 2048。允許範圍為 32 到 65536。
- max_colors
設定調色盤中要量化的最大色彩數。注意:調色盤仍將包含 256 種色彩;未使用的調色盤項目將為黑色。
- reserve_transparent
建立最多 255 種色彩的調色盤,並保留最後一種用於透明度。保留透明度色彩對於 GIF 優化非常有用。如果未設定,則調色盤中的最大色彩數為 256。您可能希望為獨立影像停用此選項。預設情況下設定。
- transparency_color
設定將用作透明度背景的色彩。
- stats_mode
設定統計模式。
設定叢發融合,以視窗大小的百分比表示。允許範圍為
0
到10
。預設值為2
。如果偵測為雜訊的任何兩個樣本之間的間隔小於此值,則這兩個樣本之間的任何樣本也將被偵測為雜訊。- ‘full’
計算完整影格直方圖。
- ‘diff’
僅針對與前一個影格不同的部分計算直方圖。如果背景是靜態的,這可能與更重視輸入的移動部分有關。
- ‘single’
為每個影格計算新的直方圖。
預設值為 full。
濾鏡還匯出影格元數據 lavfi.color_quant_ratio
(nb_color_in / nb_color_out
),您可以使用它來評估調色盤的色彩量化程度。此資訊在 info 日誌層級也可见。
11.188.1 範例
- 使用
ffmpeg
產生給定視訊的代表性調色盤ffmpeg -i input.mkv -vf palettegen palette.png
11.189 paletteuse
使用調色盤來降採樣輸入視訊串流。
濾鏡採用兩個輸入:一個視訊串流和一個調色盤。調色盤必須是 256 像素的影像。
設定視窗長度,以樣本為單位。預設值為 2048。允許範圍為 32 到 65536。
- dither
選取抖動模式。可用的演算法為
- ‘bayer’
有序 8x8 拜耳抖動(確定性)
- ‘heckbert’
Paul Heckbert 在 1982 年定義的抖動(簡單的錯誤擴散)。注意:此抖動有時被認為是「錯誤的」,並且作為參考包含在內。
- ‘floyd_steinberg’
Floyd 和 Steingberg 抖動(錯誤擴散)
- ‘sierra2’
Frankie Sierra 抖動 v2(錯誤擴散)
- ‘sierra2_4a’
Frankie Sierra 抖動 v2 "Lite"(錯誤擴散)
- ‘sierra3’
Frankie Sierra 抖動 v3(錯誤擴散)
- ‘burkes’
Burkes 抖動(錯誤擴散)
- ‘atkinson’
Apple Computer 的 Bill Atkinson 的 Atkinson 抖動(錯誤擴散)
- 「none」
停用抖動。
預設值為 sierra2_4a。
- bayer_scale
當選取 bayer 抖動時,此選項定義圖案的縮放比例(交叉影線圖案的可見程度)。低值表示圖案更可見以減少條帶,而高值表示圖案不太可見,但會以更多條帶為代價。
選項必須是 [0,5] 範圍內的整數值。預設值為 2。
- diff_mode
如果設定,則定義要處理的區域
- ‘rectangle’
僅將重新處理變更的矩形。這類似於 GIF 裁剪/偏移壓縮機制。如果只有影像的一部分正在變更,則此選項對於速度可能很有用,並且具有諸如將錯誤擴散 dither 的範圍限制為界定移動場景的矩形之類的用例(如果場景沒有太大變化,則會導致更具確定性的輸出,並因此減少移動雜訊並改善 GIF 壓縮)。
預設值為 none。
- new
為每個輸出影格採用新的調色盤。
- alpha_threshold
設定透明度的 alpha 閾值。高於此閾值的 Alpha 值將被視為完全不透明,而低於此閾值的 Alpha 值將被視為完全透明。
選項必須是 [0,255] 範圍內的整數值。預設值為 128。
11.189.1 範例
- 使用調色盤(例如使用 palettegen 產生)來使用
ffmpeg
編碼 GIFffmpeg -i input.mkv -i palette.png -lavfi paletteuse output.gif
11.190 perspective
校正未垂直於螢幕記錄的視訊的透視。
將最後設定的延遲用於所有剩餘聲道。預設為停用。如果啟用此選項,則會變更選項 delays
的解讀方式。
- x0
- y0
- x1
- y1
- x2
- y2
- x3
- y3
設定左上角、右上角、左下角和右下角的坐標表達式。預設值為
0:0:W:0:0:H:W:H
,透視將保持不變。如果sense
選項設定為source
,則指定的點將傳送到目的地的角落。如果sense
選項設定為destination
,則來源的角落將傳送到指定的坐標。blend
- w
- h
視訊影格的寬度和高度。
- in
輸入影格計數。
- on
輸出影格計數。
- interpolation
設定透視校正的內插法。
設定叢發融合,以視窗大小的百分比表示。允許範圍為
0
到10
。預設值為2
。如果偵測為雜訊的任何兩個樣本之間的間隔小於此值,則這兩個樣本之間的任何樣本也將被偵測為雜訊。- ‘linear’
- ‘cubic’
預設值為 ‘linear’。
- sense
設定坐標選項的解譯。
設定叢發融合,以視窗大小的百分比表示。允許範圍為
0
到10
。預設值為2
。如果偵測為雜訊的任何兩個樣本之間的間隔小於此值,則這兩個樣本之間的任何樣本也將被偵測為雜訊。- ‘0, source’
-
將給定坐標指定的來源點傳送到目的地的角落。
- ‘1, destination’
-
將來源的角落傳送到給定坐標指定的目的地點。
預設值為 ‘source’。
- eval
設定何時評估坐標 x0,y0,...x3,y3 的表達式。
設定叢發融合,以視窗大小的百分比表示。允許範圍為
0
到10
。預設值為2
。如果偵測為雜訊的任何兩個樣本之間的間隔小於此值,則這兩個樣本之間的任何樣本也將被偵測為雜訊。- ‘init’
僅在濾鏡初始化期間或處理命令時評估表示式一次
- 「frame」
為每個傳入的影格評估表示式
預設值為 ‘init’。
11.191 phase
將交錯視訊延遲一個場景時間,以便場景順序變更。
預期用途是修復以與電影到視訊傳輸相反的場景順序捕獲的 PAL 電影。
將最後設定的延遲用於所有剩餘聲道。預設為停用。如果啟用此選項,則會變更選項 delays
的解讀方式。
- mode
設定相位模式。
設定叢發融合,以視窗大小的百分比表示。允許範圍為
0
到10
。預設值為2
。如果偵測為雜訊的任何兩個樣本之間的間隔小於此值,則這兩個樣本之間的任何樣本也將被偵測為雜訊。- 「t」
捕獲場景順序頂場優先,傳輸底場優先。濾鏡將延遲底場。
- ‘b’
捕獲場景順序底場優先,傳輸頂場優先。濾鏡將延遲頂場。
- ‘p’
以相同的場景順序捕獲和傳輸。此模式僅為了記錄其他選項而存在,但如果您實際選取它,濾鏡將忠實地不做任何事情。
- ‘a’
捕獲場景順序由場景標誌自動確定,傳輸相反。濾鏡根據影格的場景標誌在 ‘t’ 和 ‘b’ 模式之間選取。如果沒有場景資訊可用,則此模式的工作方式與 ‘u’ 完全相同。
- ‘u’
捕獲未知或變更,傳輸相反。濾鏡透過分析影像並選取在場景之間產生最佳匹配的替代方案,在影格的 ‘t’ 和 ‘b’ 之間選取。
- ‘T’
捕獲頂場優先,傳輸未知或變更。濾鏡使用影像分析在 ‘t’ 和 ‘p’ 之間選取。
- ‘B’
捕獲底場優先,傳輸未知或變更。濾鏡使用影像分析在 ‘b’ 和 ‘p’ 之間選取。
- ‘A’
捕獲由場景標誌確定,傳輸未知或變更。濾鏡使用場景標誌和影像分析在 ‘t’、‘b’ 和 ‘p’ 之間選取。如果沒有場景資訊可用,則此模式的工作方式與 ‘U’ 完全相同。這是預設模式。
- ‘U’
捕獲和傳輸均未知或變更。濾鏡僅使用影像分析在 ‘t’、‘b’ 和 ‘p’ 之間選取。
11.191.1 指令
此濾鏡支援以上所有選項作為 commands。
11.192 photosensitivity
減少視訊中的各種閃爍,以協助癲癇症使用者。
設定視窗長度,以樣本為單位。預設值為 2048。允許範圍為 32 到 65536。
- frames, f
設定濾鏡時要使用的影格數。預設值為 30。
- 設定視窗重疊,以視窗大小的百分比表示。允許範圍為從
50
到95
。預設值為75
%。將此設定為非常高的值會增加脈衝雜訊移除,但會使整個過程慢得多。 設定偵測閾值因子。預設值為 1。較低的值更嚴格。
- skip
設定取樣影格時要跳過的像素數。預設值為 1。允許範圍為 1 到 1024。
- size
保持影格不變。預設情況下為停用。
11.193 pixdesctest
像素格式描述符號測試濾鏡,主要用於內部測試。輸出視訊應與輸入視訊相同。
例如
format=monow, pixdesctest
可用於測試 monowhite 像素格式描述符號定義。
11.194 pixelize
對視訊串流套用像素化效果。
濾鏡接受以下選項
- width, w
- 超出範圍的像素將被鏡像像素替換。
設定將用於像素化的區塊尺寸。預設值為
16
。- 設定空間亮度閾值。較低的值會增加交叉亮度的減少。
設定使用的像素化模式。
analyze
- 「avg」
- ‘min’
- 「max」
預設值為
avg
。- planes, p
設定要濾鏡的平面。預設值為濾鏡所有平面。
11.194.1 指令
此濾鏡支援所有選項作為 指令。
11.195 pixscope
顯示色彩通道的樣本值。主要用於檢查色彩和層級。支援的最小解析度為 640x480。
濾鏡接受以下選項
- x
設定示波器 X 位置,X 軸上的相對偏移量。
- y
設定示波器 Y 位置,Y 軸上的相對偏移量。
- f
設定示波器寬度。
- h
設定示波器高度。
- o
設定視窗不透明度。此視窗還包含有關像素區域的統計資訊。
- wx
設定視窗 X 位置,X 軸上的相對偏移量。
- wy
設定視窗 Y 位置,Y 軸上的相對偏移量。
11.195.1 指令
blend
11.196 pp
使用 libpostproc 啟用指定的後處理子濾鏡鏈。此程式庫應透過 GPL 建置 (--enable-gpl
) 自動選取。子濾鏡必須以 ‘/’ 分隔,並且可以透過在前面加上 ‘-’ 來停用。每個子濾鏡和某些選項都有一個短名稱和一個長名稱,可以互換使用,即 dr/dering 是相同的。
濾鏡接受以下選項
- subfilters
設定後處理子濾鏡字串。
所有子濾鏡共用決定其範圍的通用選項
- a/autoq
遵循此子濾鏡的品質指令。
- c/chrom
也執行色度濾鏡(預設)。
- y/nochrom
僅執行亮度濾鏡(無色度)。
- n/noluma
僅執行色度濾鏡(無亮度)。
這些選項可以附加在子濾鏡名稱之後,以 ‘|’ 分隔。
可用的子濾鏡為
- hb/hdeblock[|difference[|flatness]]
水平去區塊濾鏡
- difference
差異因子,較高的值表示更多的去區塊(預設值:
32
)。- param
平坦度閾值,較低的值表示更多的去區塊(預設值:
39
)。
- vb/vdeblock[|difference[|flatness]]
垂直去區塊濾鏡
- difference
差異因子,較高的值表示更多的去區塊(預設值:
32
)。- param
平坦度閾值,較低的值表示更多的去區塊(預設值:
39
)。
- ha/hadeblock[|difference[|flatness]]
精確水平去區塊濾鏡
- difference
差異因子,較高的值表示更多的去區塊(預設值:
32
)。- param
平坦度閾值,較低的值表示更多的去區塊(預設值:
39
)。
- va/vadeblock[|difference[|flatness]]
精確垂直去區塊濾鏡
- difference
差異因子,較高的值表示更多的去區塊(預設值:
32
)。- param
平坦度閾值,較低的值表示更多的去區塊(預設值:
39
)。
水平和垂直去區塊濾鏡共用差異和平坦度值,因此您無法設定不同的水平和垂直閾值。
- h1/x1hdeblock
實驗性水平去區塊濾鏡
- v1/x1vdeblock
實驗性垂直去區塊濾鏡
- dr/dering
去環狀效應濾鏡
- tn/tmpnoise[|threshold1[|threshold2[|threshold3]]], 時間雜訊降低器
- 設定執行除法時的雜訊。預設值為 0.0000001。當寬度和高度不相同且不是 2 的冪,或者卷積之前的串流有雜訊時很有用。
較大 -> 更強的濾鏡
deconvolve
濾鏡也支援 framesync 選項。較大 -> 更強的濾鏡
- 減少視訊中的交叉亮度(點爬行)和交叉顏色(彩虹)。
較大 -> 更強的濾鏡
- al/autolevels[:f/fullyrange], 自動亮度/對比度校正
- f/fullyrange
將亮度拉伸到
0-255
。
- lb/linblenddeint
線性混合反交錯濾鏡,透過使用
(1 2 1)
濾鏡濾鏡所有線條來對給定區塊進行反交錯。- li/linipoldeint
線性內插反交錯濾鏡,透過線性內插每隔一行來對給定區塊進行反交錯。
- ci/cubicipoldeint
立方內插反交錯濾鏡,透過立方內插每隔一行來對給定區塊進行反交錯。
- md/mediandeint
中值反交錯濾鏡,透過對每隔一行套用中值濾鏡來對給定區塊進行反交錯。
- fd/ffmpegdeint
FFmpeg 反交錯濾鏡,透過使用
(-1 4 2 4 -1)
濾鏡濾鏡每隔一行來對給定區塊進行反交錯。- l5/lowpass5
垂直套用的 FIR 低通反交錯濾鏡,透過使用
(-1 2 6 2 -1)
濾鏡濾鏡所有線條來對給定區塊進行反交錯。- fq/forceQuant[|quantizer]
使用您指定的常數量化器覆寫來自輸入的量化器表。
- quantizer
要使用的量化器
- de/default
預設 pp 濾鏡組合 (
hb|a,vb|a,dr|a
)- fa/fast
快速 pp 濾鏡組合 (
h1|a,v1|a,dr|a
)- 此濾鏡應放置在任何可能產生次常態數的濾鏡之前。
高品質 pp 濾鏡組合 (
ha|a|128|7,va|a,dr|a
)
11.196.1 範例
- 套用水平和垂直去區塊、去環狀效應和自動亮度/對比度
pp=hb/vb/dr/al
- 套用預設濾鏡,但不進行亮度/對比度校正
pp=de/-al
- 套用預設濾鏡和時間去噪器
pp=default/tmpnoise|1|2|3
- 僅在亮度上套用去區塊,並根據可用的 CPU 時間自動開啟或關閉垂直去區塊
pp=hb|y/vb|a
11.197 pp7
套用後處理濾鏡 7。它是 spp 濾鏡的變體,類似於 spp = 6,具有 7 點 DCT,其中僅在 IDCT 後使用中心樣本。
濾鏡接受以下選項
- qp
強制使用常數量化參數。它接受 0 到 63 範圍內的整數。如果未設定,濾鏡將使用來自視訊串流的 QP(如果可用)。
- mode
設定閾值模式。可用的模式為
- ‘hard’
設定硬閾值。
- ‘soft’
設定軟閾值(去環狀效應更好,但可能更模糊)。
- ‘medium’
設定中等閾值(良好結果,預設)。
11.198 premultiply
使用第二個串流的第一個平面作為 alpha,將 alpha 預乘效果套用於輸入視訊串流。
兩個串流必須具有相同的尺寸和相同的像素格式。
stages
- planes
設定將處理哪些平面,未處理的平面將被複製。預設值為 0xf,所有平面都將被處理。
- inplace
不需要第二個輸入進行處理,而是使用來自輸入串流的 alpha 平面。
11.199 prewitt
將 prewitt 運算子套用於輸入視訊串流。
stages
- planes
設定將處理哪些平面,未處理的平面將被複製。預設值為 0xf,所有平面都將被處理。
- scale
設定將與濾鏡結果相乘的值。
- delta
設定將新增到濾鏡結果的值。
11.199.1 指令
此濾鏡支援以上所有選項作為 commands。
11.200 pseudocolor
使用偽色彩變更視訊中的影格色彩。
此濾波器還能夠拉伸/壓縮音訊資料以使其與時間戳記匹配,或注入靜音/剪切音訊以使其與時間戳記匹配,執行兩者的組合或兩者都不執行。
- c0
設定像素第一個組件表達式
- c1
設定像素第二個組件表達式
- c2
設定像素第三個組件表達式
- c3
設定像素第四個組件表達式,對應於 alpha 組件
- index, i
設定要用作變更色彩基礎的組件
- preset, p
選取內建 LUT 之一。預設情況下設定為 none。
可用的 LUT
- ‘magma’
- ‘inferno’
- ‘plasma’
- ‘viridis’
- ‘turbo’
- ‘cividis’
- ‘range1’
- ‘range2’
- ‘shadows’
- ‘highlights’
- ‘solar’
- ‘nominal’
- ‘preferred’
- ‘total’
- ‘spectral’
- ‘cool’
- 「heat」
- ‘fiery’
- ‘blues’
- ‘green’
- ‘helix’
- ‘color’
設定輸出色彩的不透明度。允許範圍為 0 到 1。預設值設定為 1。
每個表達式選項都指定用於計算對應像素組件值的查找表的表達式。
val
- f
- h
輸入寬度和高度。
- val
像素組件的輸入值。
- ymin, umin, vmin, amin
允許的最小組件值。
- ymax, umax, vmax, amax
允許的最大組件值。
所有表達式的預設值均為 "val"。
11.200.1 指令
此濾鏡支援以上所有選項作為 commands。
11.200.2 範例
- 將過高的亮度值變更為漸層
pseudocolor="'if(between(val,ymax,amax),lerp(ymin,ymax,(val-ymax)/(amax-ymax)),-1):if(between(val,ymax,amax),lerp(umax,umin,(val-ymax)/(amax-ymax)),-1):if(between(val,ymax,amax),lerp(vmin,vmax,(val-ymax)/(amax-ymax)),-1):-1'"
11.201 psnr
取得兩個輸入視訊之間的平均值、最大值和最小值 PSNR(峰值訊噪比)。
此濾鏡輸入兩個輸入視訊,第一個輸入被視為「主要」來源,並未經變更地傳遞到輸出。第二個輸入用作計算 PSNR 的「參考」視訊。
兩個視訊輸入必須具有相同的解析度和像素格式,此濾鏡才能正常運作。此外,它假設兩個輸入具有相同的影格數,這些影格會逐一比較。
獲得的平均 PSNR 會透過日誌系統印出。
濾鏡儲存每個影格的累積 MSE(均方誤差),並且在處理結束時,它會在所有影格之間平均分配,並套用以下公式以獲得 PSNR
PSNR = 10*log10(MAX^2/MSE)
其中 MAX 是影像每個組件的最大值的平均值。
接受的參數說明如下。
- stats_file, f
如果指定,濾鏡將使用具名檔案來儲存每個個別影格的 PSNR。當檔案名稱等於 "-" 時,數據將傳送到標準輸出。
- stats_version
指定要使用的統計檔案格式的版本。每個格式的詳細資訊都寫在下面。預設值為 1。
- stats_add_max
決定是否將最大值輸出到統計日誌。預設值為 0。需要 stats_version >= 2。如果設定此值且 stats_version < 2,則濾鏡將傳回錯誤。
此濾鏡也支援 framesync 選項。
如果選取 stats_file,則印出的檔案包含每個比較的影格對的 key:value 形式的鍵/值對序列。
如果指定大於 1 的 stats_version,則標頭行會在每個影格對統計資訊清單之前,鍵值對遵循具有以下參數的影格格式
- psnr_log_version
日誌檔案格式的版本。將與 stats_version 匹配。
- fields
以逗號分隔的日誌中包含的每個影格對參數清單。
以下是每個顯示的每個影格對參數的描述
- n
輸入影格的循序編號,從 1 開始
- mse_avg
比較影格的逐像素平均差異的均方誤差,在所有影像組件上平均。
- mse_y, mse_u, mse_v, mse_r, mse_g, mse_b, mse_a
比較影格的逐像素平均差異的均方誤差,適用於後綴指定的組件。
- psnr_y, psnr_u, psnr_v, psnr_r, psnr_g, psnr_b, psnr_a
比較影格的峰值訊噪比,適用於後綴指定的組件。
- max_avg, max_y, max_u, max_v
每個通道允許的最大值,以及所有通道的平均值。
11.201.1 範例
- 例如
movie=ref_movie.mpg, setpts=PTS-STARTPTS [main]; [main][ref] psnr="stats_file=stats.log" [out]
在此範例中,正在處理的輸入檔案與參考檔案 ref_movie.mpg 進行比較。每個個別影格的 PSNR 儲存在 stats.log 中。
- 另一個具有不同容器的範例
ffmpeg -i main.mpg -i ref.mkv -lavfi "[0:v]settb=AVTB,setpts=PTS-STARTPTS[main];[1:v]settb=AVTB,setpts=PTS-STARTPTS[ref];[main][ref]psnr" -f null -
11.202 pullup
反向下拉(反向電影膠捲轉換)濾鏡,能夠處理混合的硬式電影膠捲轉換、24000/1001 fps 漸進式和 30000/1001 fps 漸進式內容。
pullup 濾鏡旨在利用未來的內容來做出決策。此濾鏡是無狀態的,因為它不會鎖定要遵循的模式,而是會向前看後續的場景,以識別匹配項並重建漸進式影格。
若要產生具有均勻影格率的內容,請在 pullup 之後插入 fps 濾鏡,如果輸入影格率為 29.97fps,則使用 fps=24000/1001
,對於 30fps 和(罕見的)電影膠捲轉換 25fps 輸入,則使用 fps=24
。
濾鏡接受以下選項
- jl
- jr
- jt
- jb
這些選項分別設定要忽略影像左側、右側、頂部和底部的「垃圾」量。左側和右側以 8 像素為單位,而頂部和底部以 2 行為單位。預設值為每側 8 像素。
- sb
設定嚴格中斷。將此選項設定為 1 將減少濾鏡產生偶爾不匹配影格的機率,但也可能導致在高動態序列期間丟棄過多的影格。相反,將其設定為 -1 將使濾鏡更容易匹配場景。這可能有助於處理場景之間略有模糊的視訊,但也可能導致輸出中存在交錯影格。預設值為
0
。- mp
設定要使用的度量平面。它接受以下值
- ‘l’
使用亮度平面。
- ‘u’
使用色度藍色平面。
- ‘v’
使用色度紅色平面。
可以設定此選項以使用色度平面而不是預設亮度平面來執行濾鏡的計算。這可以提高非常乾淨的來源素材的準確性,但更可能降低準確性,尤其是在存在色度雜訊(彩虹效應)或任何灰度視訊的情況下。將 mp 設定為色度平面的主要目的是降低 CPU 負載,並使 pullup 可在慢速機器上即時使用。
為了獲得最佳結果(輸出檔案中沒有重複的影格),有必要變更輸出影格率。例如,要反向電影膠捲轉換 NTSC 輸入
ffmpeg -i input -vf pullup -r 24000/1001 ...
11.203 qp
變更視訊量化參數 (QP)。
stages
- qp
設定量化參數的表達式。
表達式透過 eval API 評估,並且可以包含以下常數
- known
如果索引不是 129,則為 1,否則為 0。
- qp
從 -129 到 128 的循序索引。
11.203.1 範例
- 一些方程式,例如
qp=2+2*sin(PI*qp)
11.204 qrencode
使用 libqrencode 程式庫(請參閱 https://fukuchi.org/works/qrencode/)產生 QR 代碼,並將其覆蓋在目前影格之上。
若要啟用此濾鏡的編譯,您需要使用 --enable-libqrencode
配置 FFmpeg。
QR 代碼是從提供的文字或文字圖案產生的。對應的 QR 代碼會根據指定的選項進行縮放並覆蓋到視訊輸出中。
如果未指定任何文字,則不會覆蓋 QR 代碼。
此濾波器還能夠拉伸/壓縮音訊資料以使其與時間戳記匹配,或注入靜音/剪切音訊以使其與時間戳記匹配,執行兩者的組合或兩者都不執行。
- qrcode_width, q
- padded_qrcode_width, Q
指定已渲染 QR 代碼寬度的表達式,包括帶填充和不帶填充。 qrcode_width 表達式可以參考 padded_qrcode_width 表達式設定的值,反之亦然。預設情況下,padded_qrcode_width 設定為 qrcode_width,表示沒有填充。
這些表達式會針對每個新影格進行評估。
有關詳細資訊,請參閱 qrencode 表達式 章節。
- x
- y
指定用於定位填充 QR 代碼左上角的表達式。x 表達式可以參考 y 表達式設定的值,反之亦然。
預設情況下,x 和 y 設定為 0,表示 QR 代碼放置在輸入的左上角。
這些表達式會針對每個新影格進行評估。
有關詳細資訊,請參閱 qrencode 表達式 章節。
- case_sensitive, cs
指示 libqrencode 使用區分大小寫的編碼。預設情況下啟用此功能。可以停用此功能以減少 QR 編碼大小。
- level, l
指定 QR 編碼錯誤校正層級。使用較高的校正層級,編碼大小將增加,但代碼將更強大,更能抵抗損壞。較低層級為 L。
設定叢發融合,以視窗大小的百分比表示。允許範圍為
0
到10
。預設值為2
。如果偵測為雜訊的任何兩個樣本之間的間隔小於此值,則這兩個樣本之間的任何樣本也將被偵測為雜訊。- ‘L’
- ‘M’
- ‘Q’
- ‘H’
- ‘picture’
選取輸入文字的擴展方式。可以是
none
或normal
(預設)。有關詳細資訊,請參閱下面的 qrencode 文字擴展 章節。- text
- textfile
定義要渲染的文字。如果未指定兩者,則不會編碼 QR(僅為空彩色影格)。
如果啟用擴展,則文字將被視為文字範本,使用 qrencode 擴展機制。有關詳細資訊,請參閱下面的 qrencode 文字擴展 章節。
- background_color, bc
- foreground_color, fc
設定 QR 代碼和背景色彩。foreground_color 的預設值為 "black",background_color 的預設值為 "white"。
有關色彩選項的語法,請查看 ffmpeg-utils 手冊中的 "(ffmpeg-utils)「Color」章節"。
11.204.1 qrencode 表達式
選項設定的表達式包含以下常數和函數。
- dar
expansion
- duration
目前影格的持續時間,以秒為單位
- hsub
- vsub
水平和垂直色度子採樣值。例如,對於像素格式 "yuv422p",hsub 為 2,vsub 為 1。
- main_h, H
fix_bounds
- main_w, W
fontcolor
- n
標記映射 libfreetype 支援的相應標記,並且是以下值的組合
- ignore_global_advance_width
表示圖片類型的數字
- qr_w, w
編碼 QR 代碼的寬度
- rendered_qr_w, q
- rendered_padded_qr_w, Q
已渲染 QR 代碼的寬度,包括帶填充和不帶填充。
這些參數允許 q 和 Q 表達式相互參考,因此您可以例如指定
q=3/4*Q
。- no_scale
no_hinting
- sar
輸入樣本縱橫比
- 設定傳輸表達式。
以秒為單位的時間戳記,如果輸入時間戳記未知,則為 NAN
- x
- y
crop_bitmap
pedantic
11.204.2 qrencode 文字擴展
shadowcolor
用於在繪製文字後面繪製陰影的顏色。有關此選項的語法,請查看 (ffmpeg-utils) 手冊中的「顏色」部分。
shadowcolor 的預設值為 "黑色"。
boxw
設定要在文字周圍繪製的框的寬度。boxw 的預設值會自動計算以匹配文字寬度
boxh
text
傳回影格編號
pts
傳回目前影格的演示時間戳記。
它最多可以接受兩個引數。
第一個引數是時間戳記的格式;預設值為
flt
,表示以秒為單位的十進制數字,精確到微秒;hms
代表格式化的 [-]HH:MM:SS.mmm 時間戳記,精確到毫秒。gmtime
代表格式化為 UTC 時間的影格時間戳記;localtime
代表格式化為當地時區時間的影格時間戳記。如果格式設定為hms24hh
,則時間將以 24 小時格式 (00-23) 格式化。如果同時指定了 text 和 textfile,則會引發錯誤。
如果想要使用側資料偵測邊界框中的文字資料,則應將文字來源設定為 side_data_detection_bboxes。
此濾鏡並非為即時設計。
評估表達式的值並以雙精度輸出。
它必須採用一個引數,指定要評估的表達式,接受 qrencode_expressions 中定義的常數和函數。
expr_formatted, ef
評估表達式的值並以格式化的字串輸出。
start_number
n/frame_num 變數的起始影格編號。預設值為 "0"。
tabsize
用於呈現 Tab 的空格數大小。預設值為 4。
timecode
rolloff
以 "hh:mm:ss[:;.]ff" 格式設定初始時間碼表示形式。它可以與或不與 text 參數一起使用。必須指定 timecode_rate 選項。
timecode_rate, rate, r
設定時間碼影格率(僅限時間碼)。值將四捨五入到最接近的整數。最小值為 "1"。影格丟失時間碼支援影格率 30 和 60。
tc24hmax
在導致 qrencode 濾鏡的濾鏡中產生的字串元數據也可用。
no_scale
no_hinting
11.204.3 範例
- 產生編碼指定文字的 QR 代碼,具有預設大小,覆蓋在輸入視訊的左上角,具有預設大小
qrencode=text=www.ffmpeg.org
- 與下述相同,但選取藍色和粉紅色
qrencode=text=www.ffmpeg.org:bc=pink@0.5:fc=blue
- 將 QR 代碼放置在輸入視訊的右下角
qrencode=text=www.ffmpeg.org:x=W-Q:y=H-Q
- 產生寬度為 200 像素且具有填充的 QR 代碼,使填充寬度為 QR 代碼寬度的 4/3
qrencode=text=www.ffmpeg.org:q=200:Q=4/3*q
- 產生填充寬度為 200 像素且具有填充的 QR 代碼,使 QR 代碼寬度為填充寬度的 3/4
qrencode=text=www.ffmpeg.org:Q=200:q=3/4*Q
- 使 QR 代碼成為輸入視訊寬度的一部分
qrencode=text=www.ffmpeg.org:q=W/5
- 產生編碼影格編號的 QR 代碼
qrencode=text=%{n}
- 產生編碼 GMT 時間戳記的 QR 代碼
qrencode=text=%{gmtime}
- 產生編碼為浮點數的時間戳記的 QR 代碼
qrencode=text=%{pts}
11.205 quirc
使用 libquirc 程式庫(請參閱 https://github.com/dlbeer/quirc/)識別和解碼 QR 代碼,並印出識別的 QR 代碼位置和酬載作為元數據。
若要啟用此濾鏡的編譯,您需要使用 --enable-libquirc
配置 FFmpeg。
對於輸入視訊中找到的每個 QR 代碼,都會新增一些元數據條目,前綴為 lavfi.quirc.N,其中 N 是與 QR 代碼關聯的索引,從 0 開始。
以下是每個元數據值的描述
- lavfi.quirc.count
找到的 QR 代碼數量,如果未找到,則不會設定
- lavfi.quirc.N.corner.M.x
- lavfi.quirc.N.coreer.M.y
包含 QR 代碼的正方形的四個角落的 x/y 位置,其中 M 是角落的索引,從 0 開始
- lavfi.quirc.N.payload
QR 代碼的酬載
11.206 random
以隨機順序刷新來自影格內部快取記憶體的視訊影格。不會丟棄任何影格。靈感來自 frei0r nervous 濾鏡。
- frames
設定內部快取記憶體的大小,以影格數為單位,範圍為
2
到512
。預設值為30
。- 設定臨界值。允許範圍為從
1
到100
。預設值為10
。值越高,削波偵測的侵略性就越低。 設定隨機數字產生器的種子,必須是包含在
0
和UINT32_MAX
之間的整數。如果未指定,或明確設定為小於0
,則濾鏡將盡最大努力使用良好的隨機種子。
11.207 readeia608
從視訊影格的頂部行讀取隱藏式字幕 (EIA-608) 資訊。
此濾鏡為 lavfi.readeia608.X.cc
和 lavfi.readeia608.X.line
新增影格元數據,其中 X
是已識別的具有 EIA-608 數據的行號(從 0 開始)。以下是每個元數據值的描述
- lavfi.readeia608.X.cc
儲存為 EIA-608 數據的兩個位元組(以十六進制印出)。
- lavfi.readeia608.X.line
識別和讀取 EIA-608 數據的行號。
此濾波器還能夠拉伸/壓縮音訊資料以使其與時間戳記匹配,或注入靜音/剪切音訊以使其與時間戳記匹配,執行兩者的組合或兩者都不執行。
- scan_min
設定開始掃描 EIA-608 數據的行。預設值為
0
。- scan_max
設定結束掃描 EIA-608 數據的行。預設值為
29
。- spw
設定為同步代碼偵測保留的寬度比率。預設值為
0.27
。允許範圍為[0.1 - 0.7]
。- chp
啟用檢查奇偶校驗位元。如果發生奇偶校驗錯誤,濾鏡將為該字元輸出
0x00
。預設值為 false。- lp
在進一步處理之前對線條進行低通濾波。預設情況下為啟用。
11.207.1 指令
此濾鏡支援以上所有選項作為 commands。
11.207.2 範例
- 輸出 csv,其中包含演示時間和已識別的 EIA-608 字幕數據的前兩行。
ffprobe -f lavfi -i movie=captioned_video.mov,readeia608 -show_entries frame=pts_time:frame_tags=lavfi.readeia608.0.cc,lavfi.readeia608.1.cc -of csv
11.208 readvitc
從視訊影格的頂部行讀取垂直間隔時間碼 (VITC) 資訊。
如果偵測到有效時間碼,濾鏡會新增影格元數據鍵 lavfi.readvitc.tc_str
,其中包含時間碼值。此外,元數據鍵 lavfi.readvitc.found
會根據是否找到時間碼數據設定為 0/1。
此濾波器還能夠拉伸/壓縮音訊資料以使其與時間戳記匹配,或注入靜音/剪切音訊以使其與時間戳記匹配,執行兩者的組合或兩者都不執行。
- scan_max
設定要掃描 VITC 數據的最大行數。如果值設定為
-1
,則會掃描整個視訊影格。預設值為45
。- thr_b
設定黑色的亮度閾值。接受 [0.0,1.0] 範圍內的浮點數,預設值為
0.2
。該值必須等於或小於thr_w
。- thr_w
設定白色的亮度閾值。接受 [0.0,1.0] 範圍內的浮點數,預設值為
0.6
。該值必須等於或大於thr_b
。
11.208.1 範例
- 偵測並在視訊影格上繪製 VITC 數據;如果未偵測到有效的 VITC,則繪製
--:--:--:--
作為佔位符ffmpeg -i input.avi -filter:v 'readvitc,drawtext=fontfile=FreeMono.ttf:text=%{metadata\\:lavfi.readvitc.tc_str\\:--\\\\\\:--\\\\\\:--\\\\\\:--}:x=(w-tw)/2:y=400-ascent'
11.209 remap
使用第二個:Xmap 和第三個:Ymap 輸入視訊串流重新映射像素。
位置 (X, Y) 的目標像素將從來源 (x, y) 位置選取,其中 x = Xmap(X, Y) 且 y = Ymap(X, Y)。如果映射值超出範圍,目標像素將使用零值。
Xmap 和 Ymap 輸入視訊串流必須具有相同的尺寸。輸出視訊串流將具有 Xmap/Ymap 視訊串流尺寸。Xmap 和 Ymap 輸入視訊串流為 16 位元深度、單通道。
- format
指定此濾鏡輸出的像素格式。可以是
color
或gray
。預設值為color
。- fill
指定未映射像素的色彩。有關此選項的語法,請查看 ffmpeg-utils 手冊中的 "(ffmpeg-utils)「Color」章節"。預設色彩為
black
。
11.210 removegrain
removegrain 濾鏡是適用於漸進式視訊的空間去噪器。
- m0
設定第一個平面的模式。
- ‘openvino’
設定第二個平面的模式。
- model
設定第三個平面的模式。
- 使用 can.pb 移除 rgb24 影格中的雨水(請參閱 derain 濾鏡)
設定第四個平面的模式。
模式範圍為 0 到 24。以下是每個模式的描述
- 0
保持輸入平面不變。預設值。
- 1
使用 8 個相鄰像素的最小值和最大值剪裁像素。
- 2
使用 8 個相鄰像素的第二個最小值和最大值剪裁像素。
- 3
使用 8 個相鄰像素的第三個最小值和最大值剪裁像素。
- 4
使用 8 個相鄰像素的第四個最小值和最大值剪裁像素。這相當於中值濾鏡。
- 5
線條敏感型剪裁,提供最小的變更。
- 6
線條敏感型剪裁,中間。
- 7
線條敏感型剪裁,中間。
- 8
線條敏感型剪裁,中間。
- 9
在相鄰像素最接近的線上進行線條敏感型剪裁。
- 10
將目標像素替換為最接近的相鄰像素。
- 11
[1 2 1] 水平和垂直核心模糊。
- 12
與模式 11 相同。
- 13
Bob 模式,從相鄰像素最接近的線內插頂場。
- 14
Bob 模式,從鄰近像素最接近的線條內插底部圖場。
- 15
Bob 模式,內插頂部圖場。與模式 13 相同,但使用更複雜的內插公式。
- 16
Bob 模式,內插底部圖場。與模式 14 相同,但使用更複雜的內插公式。
- 17
剪裁像素,分別使用每對相對鄰近像素的最大值和最小值的最大值和最小值。
- 18
線條敏感剪裁,使用與目前像素距離最小的相對鄰近像素。
- 19
以其 8 個鄰近像素的平均值取代像素。
- 20
平均 9 個像素(水平和垂直 [1 1 1] 模糊)。
- 21
使用相對鄰近像素的平均值剪裁像素。
- 22
與模式 21 相同,但更簡單快速。
- 23
小型邊緣和光暈消除,但據稱無用。
- 24
與模式 23 類似。
11.211 removelogo
抑制電視台標誌,使用圖像檔案判斷哪些像素組成標誌。其運作方式是使用鄰近像素填滿組成標誌的像素。
濾鏡接受以下選項
- 檔案名稱,f
設定濾鏡點陣圖檔案,可以是 libavformat 支援的任何圖像格式。圖像檔案的寬度和高度必須與正在處理的視訊串流的寬度和高度相符。
所提供點陣圖圖像中值為零的像素不被視為標誌的一部分,非零像素則被視為標誌的一部分。如果您對標誌使用白色 (255),其餘部分使用黑色 (0),則會是安全的做法。為了製作濾鏡點陣圖,建議擷取一個黑色影格的螢幕截圖,其中標誌清晰可見,然後使用閾值濾鏡,接著使用侵蝕濾鏡一到兩次。
如果需要,可以手動修正小斑點。請記住,如果標誌像素未被覆蓋,濾鏡品質將會大幅降低。將過多像素標記為標誌的一部分不會造成太大損害,但會增加覆蓋圖像所需的模糊量,並破壞更多不必要的資訊,而且過多的像素會拖慢大型標誌的處理速度。
11.212 repeatfields
此濾鏡使用來自視訊 ES 標頭的 repeat_field 旗標,並根據其值硬性重複圖場。
11.213 reverse
反轉視訊片段。
bpm
11.213.1 範例
- 設定 bpm。預設值為 120。允許範圍為 [30 - 300]。僅在 timing 設定為 bpm 時使用。
trim=end=5,reverse
11.214 rgbashift
水平和/或垂直位移 R/G/B/A 像素。
濾鏡接受以下選項
- rh
設定水平位移紅色的量。
- rv
設定垂直位移紅色的量。
- gh
設定水平位移綠色的量。
- gv
設定垂直位移綠色的量。
- bh
設定水平位移藍色的量。
- bv
設定垂直位移藍色的量。
- ah
設定水平位移 Alpha 值的量。
- av
設定垂直位移 Alpha 值的量。
- edge
edge
11.214.1 指令
此濾鏡支援以上所有選項作為 commands。
11.215 roberts
將羅伯茲交叉運算元套用至輸入視訊串流。
stages
- planes
設定將處理哪些平面,未處理的平面將被複製。預設值為 0xf,所有平面都將被處理。
- scale
設定將與濾鏡結果相乘的值。
- delta
設定將新增到濾鏡結果的值。
11.215.1 指令
此濾鏡支援以上所有選項作為 commands。
11.216 rotate
依任意角度(以弧度表示)旋轉視訊。
濾鏡接受以下選項
以下是選用參數的說明。
- 角度,a
設定旋轉輸入視訊的時鐘方向角度的表達式,以弧度數表示。負值將導致逆時鐘旋轉。預設值設定為 "0"。
此表達式會針對每個影格進行評估。
- 輸出寬度,ow
設定輸出寬度表達式,預設值為 "iw"。此表達式僅在配置期間評估一次。
- 輸出高度,oh
設定輸出高度表達式,預設值為 "ih"。此表達式僅在配置期間評估一次。
- 雙線性
如果設定為 1,則啟用雙線性內插,值為 0 則停用。預設值為 1。
- 填滿顏色,c
設定用於填滿未被旋轉圖像覆蓋的輸出區域的顏色。如需此選項的通用語法,請查看 (ffmpeg-utils) ffmpeg-utils 手冊中的「顏色」章節。如果選擇特殊值 "none",則不會列印背景(例如,如果永遠不會顯示背景,則很有用)。
預設值為 "black"。
角度和輸出尺寸的表達式可以包含以下常數和函數
- n
輸入影格的循序編號,從 0 開始。在第一個影格被濾鏡處理之前,它始終為 NAN。
- 設定傳輸表達式。
輸入影格的時間(以秒為單位),在配置濾鏡時設定為 0。在第一個影格被濾鏡處理之前,它始終為 NAN。
- hsub
- vsub
水平和垂直色度子採樣值。例如,對於像素格式 "yuv422p",hsub 為 2,vsub 為 1。
- 設定 dnn 網路的輸出名稱。
- output
輸入視訊的寬度和高度
- 輸出寬度,ow
- 輸出高度,oh
輸出寬度和高度,即由 width 和 height 表達式指定的填補區域的大小
- rotw(a)
- roth(a)
完全包含旋轉 a 弧度的輸入視訊所需的最小寬度/高度。
這些僅在計算 out_w 和 out_h 表達式時可用。
11.216.1 範例
- 將輸入順時鐘旋轉 PI/6 弧度
rotate=PI/6
- 將輸入逆時鐘旋轉 PI/6 弧度
rotate=-PI/6
- 將輸入順時鐘旋轉 45 度
rotate=45*PI/180
- 套用週期為 T 的恆定旋轉,從 PI/3 的角度開始
rotate=PI/3+2*PI*t/T
- 使輸入視訊旋轉以 T 秒的週期和 A 弧度的振幅振盪
rotate=A*sin(2*PI/T*t)
- 旋轉視訊,選擇輸出尺寸,使整個旋轉輸入視訊始終完全包含在輸出中
rotate='2*PI*t:ow=hypot(iw,ih):oh=ow'
- 旋轉視訊,縮減輸出尺寸,使永遠不會顯示背景
rotate=2*PI*t:ow='min(iw,ih)/sqrt(2)':oh=ow:c=none
11.216.2 指令
此濾鏡支援以下命令
- a,角度
設定角度表達式。此命令接受與對應選項相同的語法。
如果指定的表達式無效,則會保持其目前值。
11.217 sab
套用形狀自適應模糊。
濾鏡接受以下選項
- luma_radius, lr
設定亮度模糊濾鏡強度,必須是 0.1-4.0 範圍內的值,預設值為 1.0。較大的值將導致更模糊的圖像,以及較慢的處理速度。
- 亮度預先濾鏡半徑,lpfr
設定亮度預先濾鏡半徑,必須是 0.1-2.0 範圍內的值,預設值為 1.0。
- luma_strength, ls
設定亮度像素之間的最大差異以仍被考慮,必須是 0.1-100.0 範圍內的值,預設值為 1.0。
- chroma_radius, cr
設定色度模糊濾鏡強度,必須是 -0.9-4.0 範圍內的值。較大的值將導致更模糊的圖像,以及較慢的處理速度。
- 色度預先濾鏡半徑,cpfr
設定色度預先濾鏡半徑,必須是 -0.9-2.0 範圍內的值。
- chroma_strength, cs
設定色度像素之間的最大差異以仍被考慮,必須是 -0.9-100.0 範圍內的值。
如果未明確指定,則每個色度選項值都會設定為對應的亮度選項值。
11.218 scale
使用 libswscale 函式庫縮放(調整大小)輸入視訊。
縮放濾鏡透過變更輸出取樣縱橫比,強制輸出顯示縱橫比與輸入相同。
如果輸入圖像格式與下一個濾鏡要求的格式不同,縮放濾鏡會將輸入轉換為要求的格式。
11.218.1 選項
此濾鏡接受以下選項,libswscale 縮放器支援的任何選項,以及任何 framesync 選項。
請參閱 (ffmpeg-scaler) ffmpeg-scaler 手冊,以取得完整的縮放器選項清單。
- width, w
- 超出範圍的像素將被鏡像像素替換。
設定輸出視訊尺寸表達式。預設值為輸入尺寸。
如果 width 或 w 值為 0,則輸出會使用輸入寬度。如果 height 或 h 值為 0,則輸出會使用輸入高度。
如果只有一個值為 -n 且 n >= 1,縮放濾鏡將使用一個值來維持輸入圖像的縱橫比,該縱橫比是根據另一個指定的尺寸計算得出。之後,它將確保計算出的尺寸可被 n 整除,並在必要時調整值。
如果兩個值都是 -n 且 n >= 1,則行為將與先前詳細說明的兩個值都設定為 0 相同。
請參閱下文,以取得可用於尺寸表達式的已接受常數清單。
- eval
指定何時評估 width 和 height 表達式。它接受以下值
- ‘init’
僅在濾鏡初始化期間或處理指令時評估表達式一次。
- 「frame」
為每個傳入的影格評估表示式。
預設值為 ‘init’。
- 交錯
設定交錯模式。它接受以下值
- 設定頻段的濾波器類型,可選,可以是
強制執行交錯感知縮放。
- 以 dB 為單位設定頻段增益。
不套用交錯縮放。
- ‘-1’
根據來源影格是否標記為交錯來選擇交錯感知縮放。
預設值為 ‘0’。
- flags
設定 libswscale 縮放旗標。請參閱 (ffmpeg-scaler) ffmpeg-scaler 手冊,以取得完整的值清單。如果未明確指定,濾鏡會套用預設旗標。
- param0,param1
為需要它們的縮放演算法設定 libswscale 輸入參數。請參閱 (ffmpeg-scaler) ffmpeg-scaler 手冊,以取得完整的說明文件。如果未明確指定,濾鏡會套用空的參數。
- 意圖
設定在不同色彩空間之間轉換時要使用的 ICC 渲染意圖。它接受以下值
- ‘perceptual’
使用感知引導的色調和色域映射曲線。所使用映射的確切細節可能隨時變更,不應將其視為穩定。此意圖建議用於在典型觀看設定中最終觀看圖像/視訊內容。
- ‘relative_colorimetric’
使用色度計剪裁曲線靜態剪裁超出色域的顏色,該曲線嘗試尋找在色度上最不相似的色域內顏色。此意圖執行白點適應和黑點適應。這是預設值。在需要忠實色彩重現至關重要的地方,即使以剪裁為代價,也建議使用此意圖。
- ‘absolute_colorimetric’
硬性剪裁超出色域的顏色,而不嘗試重現白點或黑點。假設輸出顯示器已適當校準,此意圖將在輸出顯示器上以 1:1 的比例重現色域內顏色,如同它們在參考顯示器上顯示一樣。
- ‘saturation’
執行飽和度映射 - 也就是說,以非線性方式將輸入色彩體積直接拉伸到輸出色彩體積上,以盡可能保留原始訊號外觀。此意圖建議用於訊號內容評估,因為它不會導致任何剪裁。它大致相當於不執行任何色彩映射,儘管它仍然考慮了母帶製作顯示器原色和編碼 TRC 的任何差異。
- size, s
設定視訊尺寸。如需此選項的語法,請查看 (ffmpeg-utils) ffmpeg-utils 手冊中的「視訊尺寸」章節。
- in_color_matrix
- out_color_matrix
設定輸入/輸出 YCbCr 色彩空間類型。
這允許覆寫自動偵測到的值,並允許強制輸出和編碼器使用特定值。
如果未指定,色彩空間類型取決於像素格式。
可能的值
- 「auto」
自動選擇。
- 「bt709」
符合國際電信聯盟 (ITU) 建議 BT.709 的格式。
- 「fcc」
設定符合美國聯邦通信委員會 (FCC) 聯邦法規彙編 (CFR) 第 47 篇(2003 年)73.682 (a) 的色彩空間。
- 「bt601」
- 「bt470」
- 「smpte170m」
設定符合以下規範的色彩空間
- 國際電信聯盟無線電通信部門 (ITU-R) 建議 BT.601
- ITU-R Rec. BT.470-6 (1998) 系統 B、B1 和 G
- 美國電影與電視工程師協會 (SMPTE) ST 170:2004
- 「smpte240m」
設定符合 SMPTE ST 240:1999 的色彩空間。
- 「bt2020」
設定符合 ITU-R BT.2020 非恆定亮度系統的色彩空間。
- in_range
- out_range
設定輸入/輸出 YCbCr 取樣範圍。
這允許覆寫自動偵測到的值,並允許強制輸出和編碼器使用特定值。如果未指定,範圍取決於像素格式。可能的值
- ‘auto/unknown’
自動選擇。
- ‘jpeg/full/pc’
設定全範圍(8 位元亮度時為 0-255)。
- ‘mpeg/limited/tv’
設定 "MPEG" 範圍(8 位元亮度時為 16-235)。
- in_chroma_loc
- out_chroma_loc
設定輸入/輸出色度取樣位置。如果未指定,預設會使用中心定位的色度。可能的值
- ‘auto, unknown’
- ‘<samp>left</samp>’
- ‘center’
- ‘topleft’
- ‘top’
- ‘bottomleft’
- ‘bottom’
- in_primaries
- out_primaries
設定輸入/輸出 RGB 原色。
這允許覆寫自動偵測到的值,並允許強制輸出和編碼器使用特定值。可能的值
- 「auto」
自動選擇。這是預設值。
- 「bt709」
- 「bt470m」
- 「bt470bg」
- 「smpte170m」
- 「smpte240m」
- 「film」
- 「bt2020」
- ‘smpte428’
- 「smpte431」
- 「smpte432」
- 「jedec-p22」
- ‘ebu3213’
- in_transfer
- out_transfer
設定輸入/輸出傳輸響應曲線 (TRC)。
這允許覆寫自動偵測到的值,並允許強制輸出和編碼器使用特定值。可能的值
- 「auto」
自動選擇。這是預設值。
- 「bt709」
- 「bt470m」
- 「gamma22」
- 「bt470bg」
- 「gamma28」
- 「smpte170m」
- 「smpte240m」
- ‘linear’
- 「iec61966-2-1」
- 「srgb」
- 「iec61966-2-4」
- 「xvycc」
- ‘bt1361e’
- 「bt2020-10」
- 「bt2020-12」
- ‘smpte2084’
- ‘smpte428’
- ‘arib-std-b67’
- force_original_aspect_ratio
如果需要,啟用減少或增加輸出視訊寬度或高度,以保持原始縱橫比。可能的值
- ‘disable’
依指定縮放視訊並停用此功能。
- ‘decrease’
如果需要,將自動減少輸出視訊尺寸。
- ‘increase’
如果需要,將自動增加輸出視訊尺寸。
此選項的一個有用實例是,當您知道特定裝置的最大允許解析度時,您可以使用此選項將輸出視訊限制為該解析度,同時保留縱橫比。例如,裝置 A 允許 1280x720 播放,而您的視訊為 1920x800。使用此選項(設定為 decrease)並在命令列中指定 1280x720,會使輸出變為 1280x533。
請注意,這與為 w 或 h 指定 -1 不同,您仍然需要指定輸出解析度才能使此選項生效。
- force_divisible_by
與 force_original_aspect_ratio 一起使用時,確保輸出尺寸(寬度和高度)都可被給定的整數整除。這與在 w 和 h 選項中使用
-n
類似。此選項尊重為 force_original_aspect_ratio 設定的值,並相應地增加或減少解析度。視訊的縱橫比可能會稍微修改。
如果您需要讓視訊在使用 force_original_aspect_ratio 的情況下符合或超出定義的解析度,但同時對寬度或高度的可整除性有限制,則此選項可能很方便。
w 和 h 選項的值是包含以下常數的表達式
- in_w
- in_h
輸入寬度和高度
- iw
- ih
這些與 in_w 和 in_h 相同。
- out_w
- out_h
輸出(縮放)寬度和高度
- ow
- oh
這些與 out_w 和 out_h 相同
- a
與 iw / ih 相同
- sar
輸入樣本縱橫比
- dar
輸入顯示縱橫比。從
(iw / ih) * sar
計算得出。- hsub
- vsub
水平和垂直輸入色度子取樣值。例如,對於像素格式 "yuv422p",hsub 為 2,vsub 為 1。
- ohsub
- ovsub
水平和垂直輸出色度子取樣值。例如,對於像素格式 "yuv422p",hsub 為 2,vsub 為 1。
- n
輸入影格的(循序)編號,從 0 開始。僅適用於
eval=frame
。- 設定傳輸表達式。
輸入影格的呈現時間戳記,以秒數表示。僅適用於
eval=frame
。- pos
影格在輸入串流中的位置(位元組偏移量),如果此資訊不可用和/或沒有意義(例如,在合成視訊的情況下),則為 NaN。僅適用於
eval=frame
。已棄用,請勿使用。- ref_w,rw
- ref_h,rh
- ref_a
- ref_dar,rdar
- ref_n
- ref_t
- ref_pos
與上述等效,但適用於第二個參考輸入。如果存在任何這些變數,此濾鏡會接受兩個輸入。
11.218.2 範例
- 將輸入視訊縮放為 200x100 的尺寸
scale=w=200:h=100
這相當於
scale=200:100
或
scale=200x100
- 為輸出尺寸指定尺寸縮寫
scale=qcif
也可以寫成
scale=size=qcif
- 將輸入縮放為 2 倍
scale=w=2*iw:h=2*ih
- 以上與以下內容相同
scale=2*in_w:2*in_h
- 將輸入縮放為 2 倍,並強制執行交錯縮放
scale=2*iw:2*ih:interl=1
- 將輸入縮放為一半大小
scale=w=iw/2:h=ih/2
- 增加寬度,並將高度設定為相同大小
scale=3/2*iw:ow
- 尋求希臘和諧
scale=iw:1/PHI*iw scale=ih*PHI:ih
- 增加高度,並將寬度設定為高度的 3/2
scale=w=3/2*oh:h=3/5*ih
- 增加尺寸,使尺寸成為色度子取樣值的倍數
scale="trunc(3/2*iw/hsub)*hsub:trunc(3/2*ih/vsub)*vsub"
- 將寬度增加到最大 500 像素,同時保持與輸入相同的縱橫比
scale=w='min(500\, iw*3/2):h=-1'
- 透過組合縮放和 setsar 使像素變成正方形
scale='trunc(ih*dar):ih',setsar=1/1
- 透過組合縮放和 setsar 使像素變成正方形,確保產生的解析度為偶數(某些編解碼器需要)
scale='trunc(ih*dar/2)*2:trunc(ih/2)*2',setsar=1/1
- 縮放字幕串流 (sub) 以符合主要視訊 (main) 的大小,然後再覆疊。(「scale2ref」)
'[main]split[a][b]; [ref][a]scale=rw:rh[c]; [b][c]overlay'
- 將標誌縮放到視訊高度的 1/10,同時保留其顯示縱橫比。
[logo-in][video-in]scale=w=oh*dar:h=rh/10[logo-out]
11.218.3 指令
此濾波器支援以下指令
- width, w
- 超出範圍的像素將被鏡像像素替換。
設定輸出視訊尺寸表達式。此命令接受與對應選項相同的語法。
如果指定的表達式無效,則會保持其目前值。
11.219 scale_cuda
使用加速 CUDA 核心縮放(調整大小)和轉換(像素格式)輸入視訊。設定輸出寬度和高度的方式與 scale 濾鏡相同。
濾鏡接受以下選項
- f
- h
設定輸出視訊尺寸表達式。預設值為輸入尺寸。
允許與 scale 濾鏡相同的表達式。
- interp_algo
設定用於縮放的演算法
- nearest
最近鄰
如果輸入參數符合所需的輸出,則預設使用。
- 雙線性
雙線性
- 雙立方
雙立方
這是預設值。
- 蘭索斯
蘭索斯
- format
控制輸出像素格式。依預設,或如果未指定,則會使用輸入像素格式。
此濾鏡不支援在 YUV 和 RGB 像素格式之間轉換。
- passthrough
如果設定為 0,則會處理每個影格,即使不需要轉換。此模式可用於將濾鏡用作下游影格消費者的緩衝區,該消費者耗盡了有限的解碼器影格池。
如果設定為 1,如果影格符合所需的輸出參數,則會按原樣傳遞影格。這是預設行為。
- 每個資料平面的 Adler-32 檢查碼列表。
演算法特定參數。
影響雙立方演算法的曲線。
- force_original_aspect_ratio
- force_divisible_by
與相同的 scale 濾鏡選項的工作方式相同。
11.219.1 範例
- 將輸入縮放到 720p,保持縱橫比並確保輸出為 yuv420p。
scale_cuda=-2:720:format=yuv420p
- 使用最近鄰演算法放大到 4K。
scale_cuda=4096:2160:interp_algo=nearest
- 不執行任何轉換或縮放,但將所有輸入影格複製到新分配的影格中。這可用於處理濾鏡和編碼鏈,否則會耗盡解碼器的影格池。
scale_cuda=passthrough=0
11.220 scale_npp
使用 NVIDIA Performance Primitives (libnpp) 在 CUDA 視訊影格上執行縮放和/或像素格式轉換。設定輸出寬度和高度的方式與 scale 濾鏡相同。
接受以下其他選項
- format
輸出 CUDA 影格的像素格式。如果設定為字串 "same"(預設值),則會保留輸入格式。請注意,硬體影格尚不支援自動格式協商和轉換
- interp_algo
用於調整大小的內插演算法。下列其中之一
- nn
最近鄰。
- linear
- 聲道佈局。
- cubic2p_bspline
2 參數立方(B=1,C=0)
- cubic2p_catmullrom
2 參數立方(B=0,C=1/2)
- cubic2p_b05c03
2 參數立方(B=1/2,C=3/10)
- 超取樣
超取樣
- 蘭索斯
- force_original_aspect_ratio
如果需要,啟用減少或增加輸出視訊寬度或高度,以保持原始縱橫比。可能的值
- ‘disable’
依指定縮放視訊並停用此功能。
- ‘decrease’
如果需要,將自動減少輸出視訊尺寸。
- ‘increase’
如果需要,將自動增加輸出視訊尺寸。
此選項的一個有用實例是,當您知道特定裝置的最大允許解析度時,您可以使用此選項將輸出視訊限制為該解析度,同時保留縱橫比。例如,裝置 A 允許 1280x720 播放,而您的視訊為 1920x800。使用此選項(設定為 decrease)並在命令列中指定 1280x720,會使輸出變為 1280x533。
請注意,這與為 w 或 h 指定 -1 不同,您仍然需要指定輸出解析度才能使此選項生效。
- force_divisible_by
與 force_original_aspect_ratio 一起使用時,確保輸出尺寸(寬度和高度)都可被給定的整數整除。這與在 w 和 h 選項中使用
-n
類似。此選項尊重為 force_original_aspect_ratio 設定的值,並相應地增加或減少解析度。視訊的縱橫比可能會稍微修改。
如果您需要讓視訊在使用 force_original_aspect_ratio 的情況下符合或超出定義的解析度,但同時對寬度或高度的可整除性有限制,則此選項可能很方便。
- eval
指定何時評估 width 和 height 表達式。它接受以下值
- ‘init’
僅在濾鏡初始化期間或處理指令時評估表達式一次。
- 「frame」
為每個傳入的影格評估表示式。
w 和 h 選項的值是包含以下常數的表達式
- in_w
- in_h
輸入寬度和高度
- iw
- ih
這些與 in_w 和 in_h 相同。
- out_w
- out_h
輸出(縮放)寬度和高度
- ow
- oh
這些與 out_w 和 out_h 相同
- a
與 iw / ih 相同
- sar
輸入樣本縱橫比
- dar
輸入顯示縱橫比。從
(iw / ih) * sar
計算得出。- n
輸入影格的(循序)編號,從 0 開始。僅適用於
eval=frame
。- 設定傳輸表達式。
輸入影格的呈現時間戳記,以秒數表示。僅適用於
eval=frame
。- pos
影格在輸入串流中的位置(位元組偏移量),如果此資訊不可用和/或沒有意義(例如,在合成視訊的情況下),則為 NaN。僅適用於
eval=frame
。已棄用,請勿使用。
11.221 scale2ref_npp
使用 NVIDIA Performance Primitives (libnpp) 根據參考視訊縮放(調整大小)輸入視訊。
請參閱 scale_npp 濾鏡以取得可用的選項,scale2ref_npp 支援相同的選項,但使用參考視訊而非主要輸入作為基礎。scale2ref_npp 也支援 w 和 h 選項的以下其他常數
- main_w
- main_h
主要輸入視訊的寬度和高度
- main_a
與 main_w / main_h 相同
- main_sar
主要輸入視訊的取樣縱橫比
- main_dar,mdar
主要輸入視訊的顯示縱橫比。從
(main_w / main_h) * main_sar
計算得出。- main_n
主要輸入影格的(循序)編號,從 0 開始。僅適用於
eval=frame
。- main_t
主要輸入影格的呈現時間戳記,以秒數表示。僅適用於
eval=frame
。- main_pos
影格在主要輸入串流中的位置(位元組偏移量),如果此資訊不可用和/或沒有意義(例如,在合成視訊的情況下),則為 NaN。僅適用於
eval=frame
。
11.221.1 範例
- 縮放字幕串流 (b) 以符合主要視訊 (a) 的大小,然後再覆疊
'scale2ref_npp[b][a];[a][b]overlay_cuda'
- 將標誌縮放到視訊高度的 1/10,同時保留其顯示縱橫比。
[logo-in][video-in]scale2ref_npp=w=oh*mdar:h=ih/10[logo-out][video-out]
11.222 scale_vt
使用 VTPixelTransferSession 縮放和轉換色彩參數。
濾鏡接受以下選項
- f
- h
設定輸出視訊尺寸表達式。預設值為輸入尺寸。
- color_matrix
設定輸出色彩空間矩陣。
- color_primaries
設定輸出原色。
- color_transfer
設定輸出傳輸特性。
11.223 scharr
將 Scharr 運算元套用至輸入視訊串流。
stages
- planes
設定將處理哪些平面,未處理的平面將被複製。預設值為 0xf,所有平面都將被處理。
- scale
設定將與濾鏡結果相乘的值。
- delta
設定將新增到濾鏡結果的值。
11.223.1 指令
此濾鏡支援以上所有選項作為 commands。
11.224 scroll
依恆定速度水平和/或垂直捲動輸入視訊。
濾鏡接受以下選項
- 水平,h
設定水平捲動速度。預設值為 0。允許範圍為 -1 到 1。負值會變更捲動方向。
- 垂直,v
設定垂直捲動速度。預設值為 0。允許範圍為 -1 到 1。負值會變更捲動方向。
- hpos
設定初始水平捲動位置。預設值為 0。允許範圍為 0 到 1。
- vpos
設定初始垂直捲動位置。預設值為 0。允許範圍為 0 到 1。
11.224.1 指令
此濾鏡支援以下 命令
- 水平,h
設定水平捲動速度。
- 垂直,v
設定垂直捲動速度。
11.225 scdet
偵測視訊場景變更。
此濾鏡設定影格中 mafd 的影格元資料、場景分數,並將影格轉發到下一個濾鏡,以便它們可以使用這些元資料來偵測場景變更或其他內容。
此外,當此濾鏡透過 threshold 偵測到場景變更時,它會記錄訊息並設定影格元資料。
lavfi.scd.mafd
元資料鍵會針對每個影格設定 mafd。
lavfi.scd.score
元資料鍵會針對每個影格設定場景變更分數,以偵測場景變更。
lavfi.scd.time
元資料鍵會設定當前濾鏡處理後的影格時間,以透過 threshold 偵測場景變更。
濾鏡接受以下選項
- 設定視窗重疊,以視窗大小的百分比表示。允許範圍為從
50
到95
。預設值為75
%。將此設定為非常高的值會增加脈衝雜訊移除,但會使整個過程慢得多。 設定場景變更偵測閾值,以最大變更的百分比表示。良好的值在
[8.0, 14.0]
範圍內。threshold 的範圍為[0., 100.]
。預設值為
10.
。- sc_pass,s
設定旗標以將場景變更影格傳遞到下一個濾鏡。預設值為
0
。如果您只想取得場景變更影格的快照,可以啟用它。
11.226 selectivecolor
將青色、洋紅色、黃色和黑色 (CMYK) 調整為特定顏色範圍(例如「紅色」、「黃色」、「綠色」、「青色」...)。調整範圍由顏色的「純度」(即,它已有多飽和)定義。
此濾鏡類似於 Adobe Photoshop 的「選取顏色」工具。
濾鏡接受以下選項
- correction_method
選取顏色校正方法。
提升高於偵測臨界值的頻率。
- ‘absolute’
指定的調整會「按原樣」套用(新增/減去原始像素元件值)。
- ‘relative’
指定的調整相對於原始元件值。
預設值為
absolute
。- 紅色
紅色像素的調整(紅色元件為最大值的像素)
- 黃色
黃色像素的調整(藍色元件為最小值的像素)
- 綠色
綠色像素的調整(綠色元件為最大值的像素)
- 青色
青色像素的調整(紅色元件為最小值的像素)
- 藍色
藍色像素的調整(藍色元件為最大值的像素)
- 洋紅色
洋紅色像素的調整(綠色元件為最小值的像素)
- 白色
白色像素的調整(所有元件都大於 128 的像素)
- 中性色
純黑色和純白色以外的所有像素的調整
- 黑色
黑色像素的調整(所有元件都小於 128 的像素)
- 設定所有組件(不包括主組件)的關鍵點。可以與其他關鍵點組件選項結合使用。在這種情況下,未設定的組件將回退到此 all 設定。
指定 Photoshop 選取顏色檔案 (
.asv
) 以從中匯入設定。
所有調整設定(reds、yellows、...)最多接受 4 個以空格分隔的浮點調整值,範圍為 [-1,1],分別用於調整其範圍像素的青色、洋紅色、黃色和黑色量。
11.226.1 範例
- 在每個綠色區域中增加 50% 的青色並減少 33% 的黃色,並在藍色區域中增加 27% 的洋紅色
selectivecolor=greens=.5 0 -.33 0:blues=0 .27
- 使用 Photoshop 選取顏色預設
selectivecolor=psfile=MySelectiveColorPresets/Misty.asv
11.227 separatefields
separatefields
採用基於影格的視訊輸入,並將每個影格分割為其元件圖場,產生一個新的半高片段,其影格速率和影格計數是原來的兩倍。
此濾鏡使用影格中的圖場主導資訊來決定在輸出中首先放置每對圖場中的哪一個。如果它弄錯了,請在 separatefields
濾鏡之前使用 setfield 濾鏡。
11.228 setdar, setsar
setdar
濾鏡為濾鏡輸出視訊設定顯示縱橫比。
這是透過根據以下方程式變更指定的取樣(又名像素)縱橫比來完成的
DAR = HORIZONTAL_RESOLUTION / VERTICAL_RESOLUTION * SAR
請記住,setdar
濾鏡不會修改視訊影格的像素尺寸。此外,由此濾鏡設定的顯示縱橫比可能會被濾鏡鏈中的後續濾鏡變更,例如,在縮放或套用另一個「setdar」或「setsar」濾鏡的情況下。
setsar
濾鏡為濾鏡輸出視訊設定取樣(又名像素)縱橫比。
請注意,由於套用此濾鏡,輸出顯示縱橫比將根據上述方程式變更。
請記住,由 setsar
濾鏡設定的取樣縱橫比可能會被濾鏡鏈中的後續濾鏡變更,例如,如果套用另一個「setsar」或「setdar」濾鏡。
它接受以下參數
- r、ratio、dar(僅
setdar
)、sar(僅setsar
) 設定濾鏡使用的縱橫比。
參數可以是浮點數字串或表達式。如果未指定參數,則會假設值為 "0",表示使用相同的輸入值。
- max
設定在將表達的縱橫比縮減為有理數時要使用的最大整數值。預設值為
100
。
參數 sar 是一個包含以下常數的表達式
- w,h
輸入寬度和高度。
- a
與 w / h 相同。
- sar
confidence
- dar
輸入顯示縱橫比。它與 (w / h) * sar 相同。
- hsub,vsub
水平和垂直色度子取樣值。例如,對於像素格式 "yuv422p",hsub 為 2,vsub 為 1。
11.228.1 範例
- 若要將顯示縱橫比變更為 16:9,請指定以下其中一項
setdar=dar=1.77777 setdar=dar=16/9
- 若要將取樣縱橫比變更為 10:11,請指定
setsar=sar=10/11
- 若要設定 16:9 的顯示縱橫比,並在縱橫比縮減中指定最大整數值 1000,請使用命令
setdar=ratio=16/9:max=1000
11.229 setfield
強制輸出視訊影格的圖場。
setfield
濾鏡標記輸出影格的交錯類型圖場。它不會變更輸入影格,而只會設定對應的屬性,這會影響後續濾鏡(例如 fieldorder
或 yadif
)如何處理影格。
濾鏡接受以下選項
- mode
提升高於偵測臨界值的頻率。
- 「auto」
保持相同的圖場屬性。
- ‘bff’
將影格標記為底圖場優先。
- ‘tff’
將影格標記為頂圖場優先。
- ‘prog’
將影格標記為循序掃描。
11.230 setparams
強制輸出視訊影格的影格參數。
setparams
濾鏡標記輸出影格的交錯和色彩範圍。它不會變更輸入影格,而只會設定對應的屬性,這會影響濾鏡/編碼器如何處理影格。
- field_mode
提升高於偵測臨界值的頻率。
- 「auto」
保持相同的圖場屬性(預設)。
- ‘bff’
將影格標記為底圖場優先。
- ‘tff’
將影格標記為頂圖場優先。
- ‘prog’
將影格標記為循序掃描。
- 設定用於偵測濾鏡的偵測頻率(以 Hz 為單位),該偵測濾鏡用於觸發等化。預設值為 1000 Hz。允許範圍介於 2 和 1000000 Hz 之間。
提升高於偵測臨界值的頻率。
- 「auto」
保持相同的色彩範圍屬性(預設)。
- ‘unspecified, unknown’
將影格標記為未指定的色彩範圍。
- ‘limited, tv, mpeg’
將影格標記為有限範圍。
- ‘full, pc, jpeg’
將影格標記為全範圍。
- color_primaries
設定原色。可用值為
- 「auto」
保持相同的原色屬性(預設)。
- 「bt709」
- ‘unknown’
- 「bt470m」
- 「bt470bg」
- 「smpte170m」
- 「smpte240m」
- 「film」
- 「bt2020」
- ‘smpte428’
- 「smpte431」
- 「smpte432」
- 「jedec-p22」
- color_trc
設定色彩傳輸。可用值為
- 「auto」
保持相同的色彩 trc 屬性(預設)。
- 「bt709」
- ‘unknown’
- 「bt470m」
- 「bt470bg」
- 「smpte170m」
- 「smpte240m」
- ‘linear’
- ‘log100’
- ‘log316’
- 「iec61966-2-4」
- ‘bt1361e’
- 「iec61966-2-1」
- 「bt2020-10」
- 「bt2020-12」
- ‘smpte2084’
- ‘smpte428’
- ‘arib-std-b67’
- colorspace
設定色彩空間。可用值為
- 「auto」
保持相同的色彩空間屬性(預設)。
- ‘gbr’
- 「bt709」
- ‘unknown’
- 「fcc」
- 「bt470bg」
- 「smpte170m」
- 「smpte240m」
- 「ycgco」
- ‘bt2020nc’
- ‘bt2020c’
- ‘smpte2085’
- ‘chroma-derived-nc’
- ‘chroma-derived-c’
- ‘ictcp’
- chroma_location
設定色度取樣位置。可用值為
- 「auto」
保持相同的色度位置(預設)。
- ‘unspecified, unknown’
- ‘<samp>left</samp>’
- ‘center’
- ‘topleft’
- ‘top’
- ‘bottomleft’
- ‘bottom’
11.231 sharpen_npp
使用 NVIDIA Performance Primitives (libnpp) 執行影像銳化,並具有邊框控制。
接受以下其他選項
- border_type
要用於影格邊框的取樣類型。下列其中之一
- replicate
複製像素值。
11.232 shear
將剪切變換套用至輸入視訊。
此濾鏡支援以下選項
- shx
X 方向的剪切因子。預設值為 0。允許範圍為 -2 到 2。
- shy
Y 方向的剪切因子。預設值為 0。允許範圍為 -2 到 2。
- 填滿顏色,c
設定用於填滿未被變換視訊覆蓋的輸出區域的顏色。如需此選項的通用語法,請查看 (ffmpeg-utils) ffmpeg-utils 手冊中的「顏色」章節。如果選擇特殊值 "none",則不會列印背景(例如,如果永遠不會顯示背景,則很有用)。
預設值為 "black"。
- interp
設定內插類型。可以是
bilinear
或nearest
。預設值為bilinear
。
11.232.1 指令
此濾鏡支援以上所有選項作為 commands。
11.233 showinfo
顯示包含每個輸入視訊影格各種資訊的行。輸入視訊未修改。
此濾鏡支援以下選項
- 顯示的行包含 key:value 形式的鍵/值對序列。
計算每個平面的檢查總和。依預設啟用。
- udu_sei_as_ascii
盡可能嘗試以 ASCII 字元列印使用者資料未註冊 SEI,否則以十六進位格式列印。
設定將濾波後的樣本混合到最終輸出中的程度。允許範圍為 -1 到 1。預設值為 1。負值是特殊的,它們設定在最終濾波器輸出中保留多少濾波後的雜訊。將此選項設定為 -1 以聽到從輸入訊號中移除的實際雜訊。
測量音訊訊號失真比。
- n
設定每個輸出音訊幀的樣本數。
- pts
輸入影格的呈現時間戳記,以時間基底單位數表示。時間基底單位取決於濾鏡輸入填充。
- nb_out_samples, n
輸入影格的呈現時間戳記,以秒數表示。
- pad, p
像素格式名稱。
- sar
輸入影格的取樣縱橫比,以 num/den 格式表示。
- s
輸入影格的大小。如需此選項的語法,請查看 (ffmpeg-utils) ffmpeg-utils 手冊中的「視訊尺寸」章節。
- i
交錯模式的類型(「P」代表「循序掃描」、「T」代表頂圖場優先、「B」代表底圖場優先)。
- iskey
如果影格是關鍵影格,則為 1,否則為 0。
- 將第二個聲道延遲 500 個樣本,將第三個聲道延遲 700 個樣本,並保持第一個聲道(和可能存在的任何其他聲道)不變。
輸入影格的圖片類型(「I」代表 I 影格、「P」代表 P 影格、「B」代表 B 影格,或「?」代表未知類型)。另請參閱
AVPictureType
列舉和 libavutil/avutil.h 中定義的av_get_picture_type_char
函數的文件。- 顯示的行包含 key:value 形式的鍵/值對序列。
輸入影格所有平面的 Adler-32 檢查總和(以十六進位列印)。
- plane_checksum
輸入影格每個平面的 Adler-32 檢查總和(以十六進位列印),以 "[c0 c1 c2 c3]" 格式表示。
- quintic
輸入影格每個平面中像素的平均值,以 "[mean0 mean1 mean2 mean3]" 格式表示。
- stdev
輸入影格每個平面中像素值的標準差,以 "[stdev0 stdev1 stdev2 stdev3]" 格式表示。
11.234 showpalette
顯示每個影格的 256 色調色盤。此濾鏡僅與 pal8 像素格式影格相關。
設定柔削波的類型。
- s
設定用於表示一個調色盤顏色條目的方塊大小。預設值為
30
(適用於30x30
像素方塊)。
11.235 shuffleframes
重新排序和/或複製和/或捨棄視訊影格。
它接受以下參數
- mapping
設定輸入影格的目的索引。這是以空格或「|」分隔的索引清單,將輸入影格對應到輸出影格。索引數也會設定每個索引可能具有的最大值。「-1」索引具有特殊含義,表示捨棄影格。
第一個影格的索引為 0。預設值是保持輸入不變。
11.235.1 範例
- 交換每三個輸入影格中的第二個和第三個影格
ffmpeg -i INPUT -vf "shuffleframes=0 2 1" OUTPUT
- 交換每十個輸入影格中的第十個和第一個影格
ffmpeg -i INPUT -vf "shuffleframes=9 1 2 3 4 5 6 7 8 0" OUTPUT
11.236 shufflepixels
重新排序視訊影格中的像素。
此濾波器還能夠拉伸/壓縮音訊資料以使其與時間戳記匹配,或注入靜音/剪切音訊以使其與時間戳記匹配,執行兩者的組合或兩者都不執行。
- 套用 sigma 為
4.5
的去噪 設定混洗方向。可以是向前或反向方向。預設方向為向前。
- 設定空間亮度閾值。較低的值會增加交叉亮度的減少。
設定混洗模式。可以是水平、垂直或區塊模式。
- width, w
- 超出範圍的像素將被鏡像像素替換。
設定混洗區塊大小。在水平混洗模式下,僅使用大小的寬度部分,而在垂直混洗模式下,僅使用大小的高度部分。
- seed, s
設定用於混洗像素的隨機種子。主要用於設定能夠反轉濾鏡處理以取得原始輸入。例如,若要反轉向前混洗,您需要使用相同的參數和完全相同的種子,並將方向設定為反向。
11.237 shuffleplanes
重新排序和/或複製視訊平面。
它接受以下參數
- map0
要用作第一個輸出平面的輸入平面的索引。
- map1
要用作第二個輸出平面的輸入平面的索引。
- map2
要用作第三個輸出平面的輸入平面的索引。
- map3
要用作第四個輸出平面的輸入平面的索引。
第一個平面的索引為 0。預設值是保持輸入不變。
11.237.1 範例
- 交換輸入的第二個和第三個平面
ffmpeg -i INPUT -vf shuffleplanes=0:2:1:3 OUTPUT
11.238 signalstats
評估各種視覺指標,以協助判斷與類比視訊媒體數位化相關的問題。
依預設,濾鏡將記錄這些元資料值
- YMIN
顯示輸入影格中包含的最小 Y 值。以 [0-255] 範圍表示。
- YLOW
顯示輸入影格中第 10 個百分位數的 Y 值。以 [0-255] 範圍表示。
- YAVG
顯示輸入影格中的平均 Y 值。以 [0-255] 範圍表示。
- YHIGH
顯示輸入影格中第 90 個百分位數的 Y 值。以 [0-255] 範圍表示。
- YMAX
顯示輸入影格中包含的最大 Y 值。以 [0-255] 範圍表示。
- UMIN
顯示輸入影格中包含的最小 U 值。以 [0-255] 範圍表示。
- ULOW
顯示輸入影格中第 10 個百分位數的 U 值。以 [0-255] 範圍表示。
- UAVG
顯示輸入影格中的平均 U 值。以 [0-255] 範圍表示。
- UHIGH
顯示輸入影格中第 90 個百分位數的 U 值。以 [0-255] 範圍表示。
- UMAX
顯示輸入影格中包含的最大 U 值。以 [0-255] 範圍表示。
- VMIN
顯示輸入影格中包含的最小 V 值。以 [0-255] 範圍表示。
- VLOW
顯示輸入影格中第 10 個百分位數的 V 值。以 [0-255] 範圍表示。
- VAVG
顯示輸入影格中的平均 V 值。以 [0-255] 範圍表示。
- VHIGH
顯示輸入影格中第 90 個百分位數的 V 值。以 [0-255] 範圍表示。
- VMAX
顯示輸入影格中包含的最大 V 值。以 [0-255] 範圍表示。
- SATMIN
顯示輸入影格中包含的最小飽和度值。以 [0-~181.02] 範圍表示。
- SATLOW
顯示輸入影格中第 10 個百分位數的飽和度值。以 [0-~181.02] 範圍表示。
- SATAVG
顯示輸入影格中的平均飽和度值。以 [0-~181.02] 範圍表示。
- SATHIGH
顯示輸入影格中第 90 個百分位數的飽和度值。以 [0-~181.02] 範圍表示。
- SATMAX
顯示輸入影格中包含的最大飽和度值。以 [0-~181.02] 範圍表示。
- HUEMED
顯示輸入影格中色相的中位數值。以 [0-360] 範圍表示。
- HUEAVG
顯示輸入影格中色相的平均值。以 [0-360] 範圍表示。
- YDIF
顯示目前影格中 Y 平面的所有值與先前輸入影格的對應值之間的取樣值差異平均值。以 [0-255] 範圍表示。
- UDIF
顯示目前影格中 U 平面的所有值與先前輸入影格的對應值之間的取樣值差異平均值。以 [0-255] 範圍表示。
- VDIF
顯示目前影格中 V 平面的所有值與先前輸入影格的對應值之間的取樣值差異平均值。以 [0-255] 範圍表示。
- YBITDEPTH
顯示目前影格中 Y 平面的位元深度。以 [0-16] 範圍表示。
- UBITDEPTH
顯示目前影格中 U 平面的位元深度。以 [0-16] 範圍表示。
- VBITDEPTH
顯示目前影格中 V 平面的位元深度。以 [0-16] 範圍表示。
濾鏡接受以下選項
- stat
- out
-
stat 指定影像分析的其他形式。out 輸出具有指定類型像素突顯的視訊。
兩個選項都接受以下值
- ‘tout’
識別 時間離群值 像素。時間離群值 是與同一圖場的鄰近像素不同的像素。時間離群值的範例包括視訊遺失、磁頭堵塞或磁帶追蹤問題的結果。
- ‘vrep’
識別 垂直線重複。垂直線重複包括影格內相似的像素行。在原生數位視訊中,垂直線重複很常見,但此模式在從類比來源數位化的視訊中不常見。當它發生在從類比來源數位化產生的視訊中時,可能表示來自遺失補償器的隱藏。
- ‘brng’
識別超出合法廣播範圍的像素。
- 向 hd720 視訊大小的 rgb 輸入新增波紋效果
為 out 選項設定突顯顏色。預設顏色為黃色。
11.238.1 範例
- 輸出各種視訊指標的資料
ffprobe -f lavfi movie=example.mov,signalstats="stat=tout+vrep+brng" -show_frames
- 輸出每個影格 Y 平面最小值和最大值的特定資料
ffprobe -f lavfi movie=example.mov,signalstats -show_entries frame_tags=lavfi.signalstats.YMAX,lavfi.signalstats.YMIN
- 播放視訊,同時以紅色突顯超出廣播範圍的像素。
ffplay example.mov -vf signalstats="out=brng:color=red"
- 播放視訊,並在影格上繪製 signalstats 元資料。
ffplay example.mov -vf signalstats=stat=brng+vrep+tout,drawtext=fontfile=FreeSerif.ttf:textfile=signalstat_drawtext.txt
命令中使用的 signalstat_drawtext.txt 的內容為
time %{pts:hms} Y (%{metadata:lavfi.signalstats.YMIN}-%{metadata:lavfi.signalstats.YMAX}) U (%{metadata:lavfi.signalstats.UMIN}-%{metadata:lavfi.signalstats.UMAX}) V (%{metadata:lavfi.signalstats.VMIN}-%{metadata:lavfi.signalstats.VMAX}) saturation maximum: %{metadata:lavfi.signalstats.SATMAX}
11.239 signature
計算 MPEG-7 視訊簽章。濾鏡可以處理多個輸入。在這種情況下,還可以額外計算輸入之間的匹配。濾鏡始終傳遞第一個輸入。每個串流的簽章可以寫入檔案。
設定視窗長度,以樣本為單位。預設值為 2048。允許範圍為 32 到 65536。
- detectmode
啟用或停用匹配程序。
提升高於偵測臨界值的頻率。
- 設定偵測濾鏡的類型,可以是以下之一
停用匹配計算(預設)。
- ‘full’
計算整個視訊的匹配,並輸出整個視訊是否匹配或僅部分匹配。
- ‘fast’
僅計算到找到匹配或視訊結束。在某些情況下應該更快。
- nb_inputs
設定輸入數量。選項值必須是非負整數。預設值為 1。
- ry
設定輸出寫入的路徑。如果有多個輸入,路徑必須是原型,即必須包含 %d 或 %0nd(其中 n 是正整數),這將被輸入編號取代。如果未指定檔案名稱,則不會寫入任何輸出。這是預設值。
- format
選擇輸出格式。
提升高於偵測臨界值的頻率。
- ‘binary’
使用指定的二進位表示法(預設)。
- ‘xml’
使用指定的 XML 表示法。
- th_d
設定閾值以偵測一個單字是否相似。選項值必須是> 0 的整數。預設值為 9000。
- th_dc
設定閾值以偵測所有單字是否相似。選項值必須是> 0 的整數。預設值為 60000。
- th_xh
設定閾值以偵測影格是否相似。選項值必須是> 0 的整數。預設值為 116。
- th_di
設定序列的最小長度(以影格為單位),以將其識別為匹配序列。選項值必須是非負整數值。預設值為 0。
- th_it
設定最小關係,即匹配影格必須具有與所有影格的關係。選項值必須是介於 0 和 1 之間的雙精度值。預設值為 0.5。
11.239.1 範例
- 若要計算輸入視訊的簽章並將其儲存在 signature.bin 中
ffmpeg -i input.mkv -vf signature=filename=signature.bin -map 0:v -f null -
- 若要偵測兩個視訊是否匹配,並以 XML 格式將簽章儲存在 signature0.xml 和 signature1.xml 中
ffmpeg -i input1.mkv -i input2.mkv -filter_complex "[0:v][1:v] signature=nb_inputs=2:detectmode=full:format=xml:filename=signature%d.xml" -map :v -f null -
11.240 siti
計算視訊的空間資訊 (SI) 和時間資訊 (TI) 分數,如 ITU-T Rec. P.910 (11/21) 中定義:多媒體應用程式的主觀視訊品質評估方法。可用的 PDF 位於 https://www.itu.int/rec/T-REC-P.910-202111-S/en。請注意,這是對應於已取代建議的舊版實作。如需最新版本,請參閱 ITU-T Rec. P.910 (07/22):https://www.itu.int/rec/T-REC-P.910-202207-I/en
設定柔削波的類型。
- print_summary
如果設定為 1,摘要統計資料將列印到主控台。預設值為 0。
11.240.1 範例
- 若要計算 SI/TI 指標並列印摘要
ffmpeg -i input.mp4 -vf siti=print_summary=1 -f null -
11.241 smartblur
模糊輸入視訊,而不影響輪廓。
設定視窗長度,以樣本為單位。預設值為 2048。允許範圍為 32 到 65536。
- luma_radius, lr
設定亮度半徑。選項值必須是 [0.1,5.0] 範圍內的浮點數,指定用於模糊影像的高斯濾鏡的變異數(值越大速度越慢)。預設值為 1.0。
- luma_strength, ls
設定亮度強度。選項值必須是 [-1.0,1.0] 範圍內的浮點數,設定模糊程度。包含在 [0.0,1.0] 中的值將模糊影像,而包含在 [-1.0,0.0] 中的值將銳化影像。預設值為 1.0。
- 亮度閾值,lt
設定亮度閾值,用作係數以判斷是否應模糊像素。選項值必須是 [-30,30] 範圍內的整數。值為 0 將過濾整個影像,包含在 [0,30] 中的值將過濾平面區域,而包含在 [-30,0] 中的值將過濾邊緣。預設值為 0。
- chroma_radius, cr
設定色度半徑。選項值必須是 [0.1,5.0] 範圍內的浮點數,指定用於模糊影像的高斯濾鏡的變異數(值越大速度越慢)。預設值為 luma_radius。
- chroma_strength, cs
設定色度強度。選項值必須是 [-1.0,1.0] 範圍內的浮點數,設定模糊程度。包含在 [0.0,1.0] 中的值將模糊影像,而包含在 [-1.0,0.0] 中的值將銳化影像。預設值為 luma_strength。
- 色度閾值,ct
設定色度閾值,用作係數以判斷是否應模糊像素。選項值必須是 [-30,30] 範圍內的整數。值為 0 將過濾整個影像,包含在 [0,30] 中的值將過濾平面區域,而包含在 [-30,0] 中的值將過濾邊緣。預設值為 luma_threshold。
- alpha_radius, ar
設定 Alpha 半徑。選項值必須是 [0.1,5.0] 範圍內的浮點數,指定用於模糊影像的高斯濾鏡的變異數(值越大速度越慢)。預設值為 luma_radius。
- Alpha 強度,as
設定 Alpha 強度。選項值必須是 [-1.0,1.0] 範圍內的浮點數,設定模糊程度。包含在 [0.0,1.0] 中的值將模糊影像,而包含在 [-1.0,0.0] 中的值將銳化影像。預設值為 luma_strength。
- Alpha 閾值,at
設定 Alpha 閾值,用作係數以判斷是否應模糊像素。選項值必須是 [-30,30] 範圍內的整數。值為 0 將過濾整個影像,包含在 [0,30] 中的值將過濾平面區域,而包含在 [-30,0] 中的值將過濾邊緣。預設值為 luma_threshold。
如果未明確設定色度或 Alpha 選項,則會設定對應的亮度值。
11.242 sobel
將索伯運算元套用至輸入視訊串流。
stages
- planes
設定將處理哪些平面,未處理的平面將被複製。預設值為 0xf,所有平面都將被處理。
- scale
設定將與濾鏡結果相乘的值。
- delta
設定將新增到濾鏡結果的值。
11.242.1 指令
此濾鏡支援以上所有選項作為 commands。
11.243 spp
套用簡單的後處理濾鏡,該濾鏡在多個(或在 quality 等級 6
的情況下為所有)位移中壓縮和解壓縮影像,並平均結果。
濾鏡接受以下選項
- quality
設定品質。此選項定義用於平均的等級數。它接受範圍 0-6 的整數。如果設定為
0
,則濾鏡將不會有任何效果。值為6
表示品質較高。對於該值的每次遞增,速度會下降大約 2 倍。預設值為3
。- qp
強制恆定量化參數。如果未設定,濾鏡將使用來自視訊串流的 QP(如果可用)。
- mode
設定閾值模式。可用的模式為
- ‘hard’
設定硬閾值(預設)。
- ‘soft’
設定軟閾值(去環狀效應更好,但可能更模糊)。
- use_bframe_qp
如果設定為
1
,則啟用 B 影格中 QP 的使用。使用此選項可能會導致閃爍,因為 B 影格通常具有更大的 QP。預設值為0
(未啟用)。
11.243.1 指令
此濾波器支援以下指令
- 品質,等級
設定品質等級。值
max
可用於設定最大等級,目前為6
。
11.244 sr
透過套用基於卷積神經網路的超解析度方法來縮放輸入。支援的模型
- 超解析度卷積神經網路模型 (SRCNN)。請參閱 https://arxiv.org/abs/1501.00092。
- 高效子像素卷積神經網路模型 (ESPCN)。請參閱 https://arxiv.org/abs/1609.05158。
訓練腳本以及用於模型檔案 (.pb) 儲存的腳本可以在 https://github.com/XueweiMeng/sr/tree/sr_dnn_native 中找到。原始儲存庫位於 https://github.com/HighVoltageRocknRoll/sr.git。
濾鏡接受以下選項
- 如果兩者混合。
預設值為 ‘4’。
- 通過簡單地內插周圍的像素來抑制電視台標誌。只需設定一個覆蓋標誌的矩形,然後觀看它消失(有時甚至會出現更醜陋的東西 - 效果因情況而異)。
x
- 指定標誌的左上角坐標。它們必須指定。
設定模型檔案的路徑,指定網路架構及其參數。請注意,不同的後端使用不同的檔案格式。TensorFlow、OpenVINO 後端只能載入其格式的檔案。
- scale_factor
設定 SRCNN 模型的縮放因子。允許值為
2
、3
和4
。預設值為2
。縮放因子對於 SRCNN 模型是必要的,因為它接受使用雙立方放大並具有適當縮放因子的放大輸入。
指定要清除的標誌的寬度和高度。它們必須指定。
11.245 ssim
取得兩個輸入視訊之間的 SSIM(結構相似性指標)。
此濾鏡接受兩個輸入視訊,第一個輸入被視為「主要」來源,並按原樣傳遞到輸出。第二個輸入用作計算 SSIM 的「參考」視訊。
兩個視訊輸入必須具有相同的解析度和像素格式,此濾鏡才能正常運作。此外,它假設兩個輸入具有相同的影格數,這些影格會逐一比較。
濾鏡儲存每個影格的計算 SSIM。
接受的參數說明如下。
- stats_file, f
如果指定,濾鏡將使用指定的檔案來儲存每個個別影格的 SSIM。當檔案名稱等於 "-" 時,資料會傳送到標準輸出。
如果選取 stats_file,則印出的檔案包含每個比較的影格對的 key:value 形式的鍵/值對序列。
以下是每個顯示參數的說明
- n
輸入影格的循序編號,從 1 開始
- Y、U、V、R、G、B
針對後綴指定的元件,比較影格的 SSIM。
- 全部
針對整個影格,比較影格的 SSIM。
- dB
與上述相同,但在 dB 表示法中。
此濾鏡也支援 framesync 選項。
11.245.1 範例
- 例如
movie=ref_movie.mpg, setpts=PTS-STARTPTS [main]; [main][ref] ssim="stats_file=stats.log" [out]
在此範例中,正在處理的輸入檔案會與參考檔案 ref_movie.mpg 進行比較。每個個別影格的 SSIM 儲存在 stats.log 中。
- 另一個同時具有 psnr 和 ssim 的範例
ffmpeg -i main.mpg -i ref.mpg -lavfi "ssim;[0:v][1:v]psnr" -f null -
- 另一個具有不同容器的範例
ffmpeg -i main.mpg -i ref.mkv -lavfi "[0:v]settb=AVTB,setpts=PTS-STARTPTS[main];[1:v]settb=AVTB,setpts=PTS-STARTPTS[ref];[main][ref]ssim" -f null -
11.246 stereo3d
在不同的立體影像格式之間轉換。
濾鏡接受以下選項
- in
設定輸入的立體影像格式。
輸入影像格式的可用值為
- ‘sbsl’
並排平行(左眼左側,右眼右側)
- ‘sbsr’
並排交叉眼(右眼左側,左眼右側)
- ‘sbs2l’
並排平行,解析度為半寬(左眼左側,右眼右側)
- ‘sbs2r’
並排交叉眼,解析度為半寬(右眼左側,左眼右側)
- ‘abl’
- ‘tbl’
上下(左眼在上,右眼在下)
- ‘abr’
- ‘tbr’
上下(右眼在上,左眼在下)
- ‘ab2l’
- ‘tb2l’
上下,解析度為半高(左眼在上,右眼在下)
- ‘ab2r’
- ‘tb2r’
上下,解析度為半高(右眼在上,左眼在下)
- ‘al’
交替影格(左眼優先,右眼第二個)
- ‘ar’
交替影格(右眼優先,左眼第二個)
- ‘irl’
交錯列(左眼具有頂列,右眼從下一列開始)
- ‘irr’
交錯列(右眼具有頂列,左眼從下一列開始)
- ‘icl’
交錯欄,左眼優先
- ‘icr’
交錯欄,右眼優先
預設值為 ‘sbsl’。
- out
設定輸出的立體影像格式。
- ‘sbsl’
並排平行(左眼左側,右眼右側)
- ‘sbsr’
並排交叉眼(右眼左側,左眼右側)
- ‘sbs2l’
並排平行,解析度為半寬(左眼左側,右眼右側)
- ‘sbs2r’
並排交叉眼,解析度為半寬(右眼左側,左眼右側)
- ‘abl’
- ‘tbl’
上下(左眼在上,右眼在下)
- ‘abr’
- ‘tbr’
上下(右眼在上,左眼在下)
- ‘ab2l’
- ‘tb2l’
上下,解析度為半高(左眼在上,右眼在下)
- ‘ab2r’
- ‘tb2r’
上下,解析度為半高(右眼在上,左眼在下)
- ‘al’
交替影格(左眼優先,右眼第二個)
- ‘ar’
交替影格(右眼優先,左眼第二個)
- ‘irl’
交錯列(左眼具有頂列,右眼從下一列開始)
- ‘irr’
交錯列(右眼具有頂列,左眼從下一列開始)
- ‘arbg’
浮雕紅/藍灰階(左眼紅色濾鏡,右眼藍色濾鏡)
- ‘argg’
浮雕紅/綠灰階(左眼紅色濾鏡,右眼綠色濾鏡)
- ‘arcg’
浮雕紅/青灰階(左眼紅色濾鏡,右眼青色濾鏡)
- ‘arch’
浮雕紅/青半彩色(左眼紅色濾鏡,右眼青色濾鏡)
- ‘arcc’
浮雕紅/青彩色(左眼紅色濾鏡,右眼青色濾鏡)
- ‘arcd’
浮雕紅/青彩色,使用杜布瓦最小平方投影最佳化(左眼紅色濾鏡,右眼青色濾鏡)
- ‘agmg’
浮雕綠/洋紅灰階(左眼綠色濾鏡,右眼洋紅色濾鏡)
- ‘agmh’
浮雕綠/洋紅半彩色(左眼綠色濾鏡,右眼洋紅色濾鏡)
- ‘agmc’
浮雕綠/洋紅色(左眼綠色濾鏡,右眼洋紅色濾鏡)
- ‘agmd’
浮雕綠/洋紅彩色,使用杜布瓦最小平方投影最佳化(左眼綠色濾鏡,右眼洋紅色濾鏡)
- ‘aybg’
浮雕黃/藍灰階(左眼黃色濾鏡,右眼藍色濾鏡)
- ‘aybh’
浮雕黃/藍半彩色(左眼黃色濾鏡,右眼藍色濾鏡)
- ‘aybc’
浮雕黃/藍彩色(左眼黃色濾鏡,右眼藍色濾鏡)
- ‘aybd’
浮雕黃/藍彩色,使用杜布瓦最小平方投影最佳化(左眼黃色濾鏡,右眼藍色濾鏡)
- ‘ml’
單聲道輸出(僅限左眼)
- ‘mr’
單聲道輸出(僅限右眼)
- ‘chl’
棋盤格,左眼優先
- ‘chr’
棋盤格,右眼優先
- ‘icl’
交錯欄,左眼優先
- ‘icr’
交錯欄,右眼優先
- ‘hdmi’
HDMI 影格封裝
預設值為 ‘arcd’。
11.246.1 範例
- 將輸入視訊從並排平行轉換為浮雕黃/藍杜布瓦
stereo3d=sbsl:aybd
- 將輸入視訊從上下(左眼在上,右眼在下)轉換為並排交叉眼。
stereo3d=abl:sbsr
11.247 streamselect, astreamselect
選取視訊或音訊串流。
濾鏡接受以下選項
- inputs
設定輸入數量。預設值為 2。
- block_size, b
設定要重新對應到輸出的輸入索引。
11.247.1 指令
streamselect
和 astreamselect
濾鏡支援以下命令
- block_size, b
設定要重新對應到輸出的輸入索引。
11.247.2 範例
- 選取前 5 秒的第一個串流,其餘時間選取第二個串流
sendcmd='5.0 streamselect map 1',streamselect=inputs=2:map=0
- 與上述相同,但適用於音訊
asendcmd='5.0 astreamselect map 1',astreamselect=inputs=2:map=0
11.248 subtitles
使用 libass 函式庫在輸入視訊頂部繪製字幕。
若要啟用此濾鏡的編譯,您需要使用 --enable-libass
配置 FFmpeg。此濾鏡還需要使用 libavcodec 和 libavformat 進行建置,才能將傳遞的字幕檔案轉換為 ASS(Advanced Substation Alpha)字幕格式。
濾鏡接受以下選項
- 檔案名稱,f
設定要讀取的字幕檔案的檔案名稱。必須指定。
- original_size
指定原始視訊的大小,即 ASS 檔案所撰寫的視訊。如需此選項的語法,請查看 (ffmpeg-utils) ffmpeg-utils 手冊中的「視訊尺寸」章節。由於 ASS 縱橫比算術中的錯誤設計,如果縱橫比已變更,則必須這樣做才能正確縮放字型。
- fontsdir
設定包含濾鏡可使用字型的目錄路徑。這些字型將與字型提供者使用的任何字型一起使用。
- range, r
處理 Alpha 通道,依預設 Alpha 通道保持不變。
- charenc
設定字幕輸入字元編碼。僅限
subtitles
濾鏡。僅在不是 UTF-8 時有用。- stream_index,si
設定字幕串流索引。僅限
subtitles
濾鏡。- force_style
覆寫字幕的預設樣式或腳本資訊參數。它接受一個字串,其中包含以 ASS 樣式格式
KEY=VALUE
配對,並以 "," 分隔。- wrap_unicode
根據 Unicode 行分隔演算法換行。可用性至少需要 libass 版本 0.17.0(或 LIBASS_VERSION 0x01600010),且 libass 必須已使用 libunibreak 建置。
依預設啟用此選項,但原生 ASS 除外。
如果未指定第一個鍵,則假定第一個值指定 filename。
例如,若要在輸入視訊頂部呈現檔案 sub.srt,請使用命令
subtitles=sub.srt
這相當於
subtitles=filename=sub.srt
若要從檔案 video.mkv 呈現預設字幕串流,請使用
subtitles=video.mkv
若要從該檔案呈現第二個字幕串流,請使用
subtitles=video.mkv:si=1
若要使來自 sub.srt 的字幕串流以 80% 透明藍色 DejaVu Serif
顯示,請使用
subtitles=sub.srt:force_style='Fontname=DejaVu Serif,PrimaryColour=&HCCFF0000'
11.249 super2xsai
使用 Super2xSaI(縮放和內插)像素藝術縮放演算法將輸入縮放 2 倍並平滑化。
適用於放大像素藝術影像,而不會降低清晰度。
11.250 swaprect
交換視訊中的兩個矩形物件。
此濾波器還能夠拉伸/壓縮音訊資料以使其與時間戳記匹配,或注入靜音/剪切音訊以使其與時間戳記匹配,執行兩者的組合或兩者都不執行。
- f
設定物件寬度。
- h
設定物件高度。
- x1
設定第一個矩形的 x 座標。
- y1
設定第一個矩形的 y 座標。
- x2
設定第二個矩形的 x 座標。
- y2
設定第二個矩形的 y 座標。
所有表達式都會針對每個影格評估一次。
所有選項都是包含以下常數的表達式
- f
- h
輸入寬度和高度。
- a
與 w / h 相同
- sar
輸入樣本縱橫比
- dar
expansion
- n
輸入影格的編號,從 0 開始。
- 設定傳輸表達式。
以秒為單位表示的時間戳記。如果輸入時間戳記未知,則為 NAN。
- pos
輸入影格在檔案中的位置,如果未知,則為 NAN;已棄用,請勿使用
11.250.1 指令
此濾鏡支援以上所有選項作為 commands。
11.251 swapuv
交換 U 和 V 平面。
11.252 tblend
混合連續視訊影格。
請參閱 blend
11.253 telecine
將電視電影程序套用至視訊。
此濾波器還能夠拉伸/壓縮音訊資料以使其與時間戳記匹配,或注入靜音/剪切音訊以使其與時間戳記匹配,執行兩者的組合或兩者都不執行。
- 指定用於運動搜尋的區塊大小。範圍 4-128 像素,預設值為 8。
- contrast
指定區塊的對比度閾值。僅考慮對比度(最暗像素和最亮像素之間的差異)大於指定對比度的區塊。範圍 1-255,預設值為 125。
- search
指定搜尋策略。可用的值為
- ‘exhaustive, 0’
設定窮盡搜尋
Some typical patterns: NTSC output (30i): 27.5p: 32222 24p: 23 (classic) 24p: 2332 (preferred) 20p: 33 18p: 334 16p: 3444 PAL output (25i): 27.5p: 12222 24p: 222222222223 ("Euro pulldown") 16.67p: 33 16p: 33333334
11.254 thistogram
計算並繪製輸入視訊在時間軸上的色彩分佈長條圖。
與僅顯示特定時間單個輸入影格長條圖的 histogram 視訊濾鏡不同,此濾鏡也顯示由 width
選項定義的影格數的過去長條圖。
計算出的直方圖是影像中色彩組件分布的表示。
濾鏡接受以下選項
- width, w
設定單個色彩元件輸出的寬度。預設值為
0
。值0
表示寬度將從輸入視訊中選取。這也會設定要保留的已傳遞長條圖的數量。允許範圍為 [0, 8192]。- display_mode,d
設定顯示模式。它接受以下值
- ‘stack’
每個色彩組件圖形彼此堆疊放置。
- ‘parade’
每個色彩組件圖形並排放置。
- 「overlay」
呈現與
parade
中相同的資訊,除了表示色彩組件的圖形直接相互疊加。
預設值為
stack
。- levels_mode,m
設定模式。可以是
linear
或logarithmic
。預設值為linear
。- components,c
設定要顯示的色彩組件。預設值為
7
。- bgopacity,b
設定背景不透明度。預設值為
0.9
。- envelope,e
顯示包絡線。預設為停用。
- ecolor,ec
設定包絡線顏色。預設值為
gold
。- replace
如果輸入具有 alpha,則適用。值為
1
時,繪製框的像素將覆蓋視訊的顏色和 alpha 像素。預設值為0
,它將框複合到輸入上,使視訊的 alpha 保持不變。用於 x、y、w 和 h 以及 t 的參數是包含以下常數的表達式
- 「frame」
dar
- 輸入顯示縱橫比,它與 (w / h) * sar 相同。
in_h, ih
- in_w, iw
sar
- 輸入樣本縱橫比。
x, box_x
- y, box_y
框的繪製位置的 x 和 y 偏移坐標。
預設值為
replace
。
11.255 threshold
將閾值效果套用至視訊串流。
此濾鏡需要四個視訊串流才能執行閾值處理。第一個串流是我們要過濾的串流。第二個串流保存閾值,第三個串流保存最小值,最後第四個串流保存最大值。
stages
- planes
設定將處理哪些平面,未處理的平面將被複製。預設值為 0xf,所有平面都將被處理。
例如,如果第一個串流像素的元件值小於來自第二個閾值串流的像素元件的閾值,則將選取第三個串流值,否則將選取第四個串流像素元件值。
使用色彩來源濾鏡,可以執行各種閾值處理
11.255.1 指令
此濾鏡支援與 命令 相同的所有選項。
11.255.2 範例
- 二元閾值,使用灰色作為閾值
ffmpeg -i 320x240.avi -f lavfi -i color=gray -f lavfi -i color=black -f lavfi -i color=white -lavfi threshold output.avi
- 反轉二元閾值,使用灰色作為閾值
ffmpeg -i 320x240.avi -f lavfi -i color=gray -f lavfi -i color=white -f lavfi -i color=black -lavfi threshold output.avi
- 截斷二元閾值,使用灰色作為閾值
ffmpeg -i 320x240.avi -f lavfi -i color=gray -i 320x240.avi -f lavfi -i color=gray -lavfi threshold output.avi
- 閾值歸零,使用灰色作為閾值
ffmpeg -i 320x240.avi -f lavfi -i color=gray -f lavfi -i color=white -i 320x240.avi -lavfi threshold output.avi
- 反轉閾值歸零,使用灰色作為閾值
ffmpeg -i 320x240.avi -f lavfi -i color=gray -i 320x240.avi -f lavfi -i color=white -lavfi threshold output.avi
11.256 thumbnail
在給定連續影格序列中選取最具代表性的影格。
濾鏡接受以下選項
- n
設定要分析的影格批次大小;在一組 n 個影格中,濾鏡將選取其中一個,然後處理下一個批次的 n 個影格,直到結束。預設值為
100
。- log
設定記錄層級以顯示選取的影格統計資料。預設值為
info
。
由於濾鏡會追蹤整個影格序列,因此較大的 n 值將導致更高的記憶體使用量,因此不建議使用較高的值。
11.256.1 範例
- 每 50 個影格擷取一張圖片
thumbnail=50
- 使用
ffmpeg
建立縮圖的完整範例ffmpeg -i in.avi -vf thumbnail,scale=300:200 -frames:v 1 out.png
11.257 tile
將多個連續影格平鋪在一起。
untile 濾鏡可以執行相反的操作。
濾鏡接受以下選項
- layout
以
COLUMNSxROWS
格式設定網格大小。範圍最多為 UINT_MAX 個儲存格。預設值為6x5
。- nb_frames
設定要在給定區域中呈現的最大影格數。它必須小於或等於 wxh。預設值為
0
,表示將使用所有區域。- margin
以像素為單位設定外邊框邊距。範圍為 0 到 1024。預設值為
0
。- padding
設定內邊框厚度(即影格之間的像素數)。如需更進階的填充選項(例如,邊緣具有不同的值),請參閱 pad 視訊濾鏡。範圍為 0 到 1024。預設值為
0
。- color
指定未使用區域的顏色。如需此選項的語法,請查看 (ffmpeg-utils) ffmpeg-utils 手冊中的「顏色」章節。color 的預設值為 "black"。
- overlap
設定在將多個連續影格平鋪在一起時要重疊的影格數。該值必須介於
0
和 nb_frames - 1 之間。預設值為0
。- init_padding
設定在顯示第一個輸出影格之前最初要為空的影格數。這控制著何時會獲得第一個輸出影格。該值必須介於
0
和 nb_frames - 1 之間。預設值為0
。
11.257.1 範例
- 產生電影中所有關鍵影格 (-skip_frame nokey) 的 8x8 PNG 圖塊
ffmpeg -skip_frame nokey -i file.avi -vf 'scale=128:72,tile=8x8' -an -vsync 0 keyframes%03d.png
-vsync 0 是必要的,以防止
ffmpeg
複製每個輸出影格以適應最初偵測到的影格速率。 - 在
3x2
影格的區域中顯示5
張圖片,它們之間有7
個像素,初始邊距為2
像素,使用混合的平面和具名選項tile=3x2:nb_frames=5:padding=7:margin=2
11.258 tiltandshift
套用傾斜偏移效果。
當您反轉時間和空間時會發生什麼事?
通常,視訊由多個影格組成,這些影格代表不同的時間瞬間,並顯示在影格捕捉的空間中演進的場景。此濾鏡是該概念的對立面,其靈感來自傾斜和偏移攝影。
已濾鏡處理的影格包含組成序列的整個事件時間軸,這是透過將每個影格的像素切片放入單個影格中來獲得的。但是,由於沒有無限寬度的影格,因此這是完成到輸入影格的寬度,並且視訊是透過為每個後續影格移開一個欄來重新組成的。為了將空間映射到時間,濾鏡也會傾斜每個輸入影格,以便保留運動。這是透過從每個輸入影格逐步選取不同的欄來完成的。
最終結果是一種反轉視差,因此遠處的物件比前方的物件移動得更快。此視訊效果的理想條件是,當運動非常少且背景靜態,或者當運動很多且景深非常寬時(例如,寬廣的全景圖,同時在火車上移動)。
此濾波器接受以下參數
- tilt
在移位時傾斜視訊(預設)。取消設定時,視訊將滑動靜態影像,該影像由每個影格的第一欄組成。
- start
在濾鏡處理開始時要執行的操作(請參閱下文)。
- 此濾波器允許設定自訂、比高通濾波器更陡峭的滾降,因此能夠更多地衰減阻帶中的頻率內容。
在濾鏡處理結束時要執行的操作(請參閱下文)。
- hold
在濾鏡處理開始之前應經過多少欄。
- pad
在濾鏡處理結束之前應插入多少欄。
通常,濾鏡會從第一個影格開始移位和傾斜,並在收到最後一個影格時停止。但是,在濾鏡處理開始之前,可以保留正常視訊,以便效果慢慢移位到位。同樣地,最後一個視訊影格可能會在結束時重新建構。或者,可以只以黑色開始和結束。
- 「none」
濾鏡處理立即開始,並在收到最後一個影格時結束。
- 「frame」
第一個影格或最後一個影格在處理期間保持不變。
- ‘black’
黑色在濾鏡處理的開始或結束時填充。
11.259 tinterlace
執行各種時間圖場交錯類型。
影格從 1 開始計數,因此第一個輸入影格被視為奇數。
濾鏡接受以下選項
- mode
指定交錯模式。此選項也可以單獨指定為一個值。請參閱下文以取得此選項的值清單。
提升高於偵測臨界值的頻率。
- ‘merge, 0’
將奇數影格移動到上部圖場,將偶數影格移動到下部圖場,以一半的影格速率產生雙倍高度的影格。
------> time Input: Frame 1 Frame 2 Frame 3 Frame 4 11111 22222 33333 44444 11111 22222 33333 44444 11111 22222 33333 44444 11111 22222 33333 44444 Output: 11111 33333 22222 44444 11111 33333 22222 44444 11111 33333 22222 44444 11111 33333 22222 44444
- ‘drop_even, 1’
僅輸出奇數影格,偶數影格會被捨棄,以一半的影格速率產生高度不變的影格。
------> time Input: Frame 1 Frame 2 Frame 3 Frame 4 11111 22222 33333 44444 11111 22222 33333 44444 11111 22222 33333 44444 11111 22222 33333 44444 Output: 11111 33333 11111 33333 11111 33333 11111 33333
- ‘drop_odd, 2’
僅輸出偶數影格,奇數影格會被捨棄,以一半的影格速率產生高度不變的影格。
------> time Input: Frame 1 Frame 2 Frame 3 Frame 4 11111 22222 33333 44444 11111 22222 33333 44444 11111 22222 33333 44444 11111 22222 33333 44444 Output: 22222 44444 22222 44444 22222 44444 22222 44444
- ‘pad, 3’
將每個影格擴展到全高,但用黑色填充交替線條,以相同的輸入影格速率產生雙倍高度的影格。
------> time Input: Frame 1 Frame 2 Frame 3 Frame 4 11111 22222 33333 44444 11111 22222 33333 44444 11111 22222 33333 44444 11111 22222 33333 44444 Output: 11111 ..... 33333 ..... ..... 22222 ..... 44444 11111 ..... 33333 ..... ..... 22222 ..... 44444 11111 ..... 33333 ..... ..... 22222 ..... 44444 11111 ..... 33333 ..... ..... 22222 ..... 44444
- ‘interleave_top, 4’
交錯奇數影格的上半圖場與偶數影格的下半圖場,產生高度不變但影格率減半的影格。
------> time Input: Frame 1 Frame 2 Frame 3 Frame 4 11111<- 22222 33333<- 44444 11111 22222<- 33333 44444<- 11111<- 22222 33333<- 44444 11111 22222<- 33333 44444<- Output: 11111 33333 22222 44444 11111 33333 22222 44444
- ‘interleave_bottom, 5’
交錯奇數影格的下半圖場與偶數影格的上半圖場,產生高度不變但影格率減半的影格。
------> time Input: Frame 1 Frame 2 Frame 3 Frame 4 11111 22222<- 33333 44444<- 11111<- 22222 33333<- 44444 11111 22222<- 33333 44444<- 11111<- 22222 33333<- 44444 Output: 22222 44444 11111 33333 22222 44444 11111 33333
- ‘interlacex2, 6’
在高度不變的情況下,將影格率加倍。插入的每個影格都包含前一個輸入影格的第二個時間圖場和下一個輸入影格的第一個時間圖場。此模式依賴 top_field_first 旗標。適用於沒有圖場同步的交錯視訊顯示器。
------> time Input: Frame 1 Frame 2 Frame 3 Frame 4 11111 22222 33333 44444 11111 22222 33333 44444 11111 22222 33333 44444 11111 22222 33333 44444 Output: 11111 22222 22222 33333 33333 44444 44444 11111 11111 22222 22222 33333 33333 44444 11111 22222 22222 33333 33333 44444 44444 11111 11111 22222 22222 33333 33333 44444
- ‘mergex2, 7’
將奇數影格移動到上半圖場,偶數影格移動到下半圖場,產生高度加倍但影格率不變的影格。
------> time Input: Frame 1 Frame 2 Frame 3 Frame 4 11111 22222 33333 44444 11111 22222 33333 44444 11111 22222 33333 44444 11111 22222 33333 44444 Output: 11111 33333 33333 55555 22222 22222 44444 44444 11111 33333 33333 55555 22222 22222 44444 44444 11111 33333 33333 55555 22222 22222 44444 44444 11111 33333 33333 55555 22222 22222 44444 44444
數值已被棄用,但為了向後相容性而接受。
預設模式為
merge
。- flags
指定影響濾鏡處理的旗標。
flags 的可用值為
- low_pass_filter, vlpf
在濾波器中啟用線性垂直低通濾波。當從包含高頻垂直細節的漸進式來源建立交錯目的地時,需要垂直低通濾波。濾波將減少交錯「閃爍」和摩爾紋圖案。
- complex_filter, cvlpf
啟用複雜垂直低通濾波。這將稍微減少交錯「閃爍」和摩爾紋圖案,但更好地保留細節和主觀清晰度印象。
- bypass_il
繞過已交錯的影格,僅調整影格率。
垂直低通濾波和繞過已交錯的影格只能針對 mode interleave_top 和 interleave_bottom 啟用。
11.260 tmedian
從連續的輸入視訊影格中選取中位數像素。
濾鏡接受以下選項
- 設定虛擬喇叭的仰角,單位為度。預設值為 0。
設定中位數濾波器的半徑。預設值為 1。允許範圍為 1 到 127。
- planes
設定要濾波的平面。預設值為
15
,表示處理所有平面。- percentile
設定中位數百分位數。預設值為
0.5
。預設值0.5
將始終選取中位數,而0
將選取最小值,1
將選取最大值。
11.260.1 指令
此濾波器支援上述所有選項作為指令,排除選項 radius
。
11.261 tmidequalizer
套用時間中途視訊均衡效果。
中途視訊均衡調整一系列視訊影格,使其具有相同的直方圖,同時盡可能保持其動態範圍。它對於例如匹配視訊影格序列中的曝光非常有用。
此濾鏡接受以下選項
- 設定虛擬喇叭的仰角,單位為度。預設值為 0。
設定濾波半徑。預設值為
5
。允許範圍為 1 到 127。- sigma
設定濾波 sigma 值。預設值為
0.5
。這控制濾波的強度。將此選項設定為 0 實際上不會執行任何操作。- planes
設定要處理的平面。預設值為
15
,即所有可用的平面。
11.262 tmix
混合連續的視訊影格。
以下是接受選項的描述。
- frames
要混合的連續影格數量。如果未指定,則預設為 3。
- 當輸入串流結束時,用於音量重新正規化的過渡時間,單位為秒。預設值為 2 秒。
指定每個輸入視訊影格的權重。每個權重以空格分隔。如果權重數量小於 frames 數量,則最後指定的權重將用於所有剩餘未設定的權重。
- scale
指定縮放比例,如果設定,它將與每個權重乘以像素值的總和相乘,以得出最終目標像素值。預設情況下,scale 會自動縮放到權重總和。
- planes
planes
11.262.1 範例
- 平均 7 個連續影格
tmix=frames=7:weights="1 1 1 1 1 1 1"
- 套用簡單的時間卷積
tmix=frames=3:weights="-1 3 -1"
- 與上述類似,但僅顯示時間差異
tmix=frames=3:weights="-1 2 -1":scale=1
11.262.2 指令
此濾波器支援以下指令
- 當輸入串流結束時,用於音量重新正規化的過渡時間,單位為秒。預設值為 2 秒。
- scale
- planes
這會將一個人聲輸入和一個音樂輸入音訊串流混合到單個輸出,其持續時間與最長輸入相同。音樂的權重將為人聲的四分之一,並且輸入未正規化
11.263 tonemap
色調映射來自不同動態範圍的色彩。
此濾波器預期單精度浮點格式的資料,因為它需要在(並且可以輸出)超出範圍的值上運作。需要另一個濾波器,例如 zscale,以將結果影格轉換為可用的格式。
色調映射演算法僅適用於線性光,因此輸入資料應事先線性化(並可能正確標記)。
ffmpeg -i INPUT -vf zscale=transfer=linear,tonemap=clip,zscale=transfer=bt709,format=yuv420p OUTPUT
11.263.1 選項
bm3d
- tonemap
設定要使用的色調映射演算法。
analyze
- none
不套用任何色調映射,僅對過亮像素進行去飽和處理。
- 對輸入音訊樣本應用相位偏移。
硬式剪裁任何超出範圍的值。對於範圍內的值,使用它可以獲得完美的色彩準確度,同時扭曲超出範圍的值。
- linear
將整個參考色域拉伸到顯示器的線性倍數。
- gamma
在色調曲線之間擬合對數轉換。
- reinhard
使用簡單的曲線保留整體影像亮度,使用非線性對比度,這會導致細節扁平化並降低色彩準確度。
- hable
比 reinhard 更好地保留暗部和亮部細節,但會稍微使所有內容變暗。當細節保留比色彩和亮度準確度更重要時使用它。
- mobius
平滑地映射超出範圍的值,同時盡可能保留範圍內素材的對比度和色彩。當色彩準確度比細節保留更重要時使用它。
預設值為 none。
- 每個資料平面的 Adler-32 檢查碼列表。
調整色調映射演算法。
這會影響以下演算法
- none
忽略。
- linear
指定拉伸時使用的縮放因子。預設值為 1.0。
- gamma
指定函數的指數。預設值為 1.8。
- 對輸入音訊樣本應用相位偏移。
指定一個額外的線性係數,在剪裁之前乘以訊號。預設值為 1.0。
- reinhard
指定顯示器峰值處的局部對比度係數。預設值為 0.5,這表示色域內的值大約是剪裁時亮度的一半。
- hable
忽略。
- mobius
指定從線性轉換到 Mobius 轉換的轉換點。低於此點的每個值都保證以 1:1 映射。值越高,結果越準確,但會犧牲亮部細節。預設值為 0.3,由於初始斜率陡峭,因此仍能相當準確地保留範圍內的色彩。
- desat
對亮度超過此水平的亮部套用去飽和處理。參數越高,保留的色彩資訊就越多。此設定有助於防止超亮部出現不自然的過曝色彩,而是(平滑地)變成白色。這使得影像感覺更自然,但會犧牲有關超出範圍色彩的資訊。
預設值 2.0 有點保守,主要僅適用於天空或陽光直射的表面。設定為 0.0 會停用此選項。
此選項僅在輸入影格具有支援的色彩標籤時才有效。
- 移動視窗中樣本絕對值的均方根值。
使用此值覆寫訊號/標稱/參考峰值。當顯示器中繼資料中的嵌入式峰值資訊不可靠或從較低範圍色調映射到較高範圍時很有用。
11.264 tpad
暫時填充視訊影格。
濾鏡接受以下選項
- start
指定輸入視訊串流之前的延遲影格數。預設值為 0。
- stop
指定輸入視訊串流之後的填充影格數。設定為 -1 以無限期填充。預設值為 0。
- 指定在修剪後將保留的開頭靜音的最大持續時間。預設值為 0,這等於修剪所有偵測為靜音的樣本。
設定新增到串流開頭的影格種類。可以是 add 或 clone。使用 add 會新增純色的影格。使用 clone 影格是第一個影格的複製。預設值為 add。
- 指定在修剪後將保留的結尾靜音的最大持續時間。預設值為 0,這等於修剪所有偵測為靜音的樣本。
設定新增到串流結尾的影格種類。可以是 add 或 clone。使用 add 會新增純色的影格。使用 clone 影格是最後一個影格的複製。預設值為 add。
- start_duration, stop_duration
指定開始/停止延遲的持續時間。請參閱 (ffmpeg-utils)ffmpeg-utils(1) 手冊中的時間持續時間章節,以瞭解可接受的語法。這些選項會覆寫 start 和 stop。預設值為 0。
- color
指定填充區域的色彩。有關此選項的語法,請查看 ffmpeg-utils 手冊中的 "(ffmpeg-utils)「Color」章節"。
color 的預設值為 "black"。
11.265 transpose
轉置輸入視訊中的行與列,並可選擇性地翻轉它。
它接受以下參數
- dir
指定轉置方向。
可以假設以下值
- ‘0, 4, cclock_flip’
逆時針旋轉 90 度並垂直翻轉(預設),即
L.R L.l . . -> . . l.r R.r
- ‘1, 5, clock’
順時針旋轉 90 度,即
L.R l.L . . -> . . l.r r.R
- ‘2, 6, cclock’
逆時針旋轉 90 度,即
L.R R.r . . -> . . l.r L.l
- ‘3, 7, clock_flip’
順時針旋轉 90 度並垂直翻轉,即
L.R r.R . . -> . . l.r l.L
對於 4-7 之間的值,僅當輸入視訊幾何形狀為直向而非橫向時才執行轉置。這些值已被棄用,應改為使用
passthrough
選項。數值已被棄用,應改為使用符號常數。
- passthrough
如果輸入幾何形狀符合指定值所指定的幾何形狀,則不套用轉置。它接受以下值
- 「none」
始終套用轉置。
- ‘portrait’
保留直向幾何形狀(當 height >= width 時)。
- ‘landscape’
保留橫向幾何形狀(當 width >= height 時)。
預設值為
none
。
例如,要順時針旋轉 90 度並保留直向版面配置
transpose=dir=1:passthrough=portrait
上述指令也可以指定為
transpose=1:portrait
11.266 transpose_npp
轉置輸入視訊中的行與列,並可選擇性地翻轉它。如需更深入的範例,請參閱 transpose 視訊濾波器,它主要共用相同的選項。
它接受以下參數
- dir
指定轉置方向。
可以假設以下值
- ‘cclock_flip’
逆時針旋轉 90 度並垂直翻轉。(預設)
- ‘clock’
順時針旋轉 90 度。
- ‘cclock’
逆時針旋轉 90 度。
- ‘clock_flip’
順時針旋轉 90 度並垂直翻轉。
- passthrough
如果輸入幾何形狀符合指定值所指定的幾何形狀,則不套用轉置。它接受以下值
- 「none」
始終套用轉置。(預設)
- ‘portrait’
保留直向幾何形狀(當 height >= width 時)。
- ‘landscape’
保留橫向幾何形狀(當 width >= height 時)。
11.267 trim
設定要處理的聲道。預設值為所有可用聲道。
它接受以下參數
- start
指定要保留的區段的開始時間,即時間戳記為 start 的影格將是輸出中的第一個影格。
- 此濾波器允許設定自訂、比高通濾波器更陡峭的滾降,因此能夠更多地衰減阻帶中的頻率內容。
指定將被捨棄的第一個影格的時間,即時間戳記為 end 的影格之前的影格將是輸出中的最後一個影格。
- 設定截止頻率,單位為赫茲。允許範圍為 2 到 200。預設值為 20。
這與 start 相同,但此選項以時間基底單位而非秒為單位設定開始時間戳記。
- 設定濾波器階數。可用值為 3 到 20。預設值為 10。
這與 end 相同,但此選項以時間基底單位而非秒為單位設定結束時間戳記。
- duration
cutoff
- ‘less, 1’
應該傳遞到輸出的第一個影格的編號。
- end_frame
應該捨棄的第一個影格的編號。
start、end 和 duration 表示為時間持續時間規格;請參閱 (ffmpeg-utils)ffmpeg-utils(1) 手冊中的時間持續時間章節,以瞭解可接受的語法。
請注意,前兩組開始/結束選項和 duration 選項會查看影格時間戳記,而 _frame 變體僅計算通過濾波器的影格。另請注意,此濾波器不會修改時間戳記。如果您希望輸出時間戳記從零開始,請在 trim 濾波器之後插入 setpts 濾波器。
如果設定了多個開始或結束選項,則此濾波器會嘗試貪婪地保留至少符合一個指定約束的所有影格。若要僅保留同時符合所有約束的部分,請鏈接多個 trim 濾波器。
設定 Q 因子。允許範圍為 0.01 到 100。預設值為 1。
gain
- 設定輸入增益水平。允許範圍為 0 到 2。預設值為 1。
ffmpeg -i INPUT -vf trim=60:120
- 僅保留前一秒
ffmpeg -i INPUT -vf trim=duration=1
11.268 unpremultiply
使用第二個串流的第一個平面作為 Alpha 值,將 Alpha 值預乘效果套用至輸入視訊串流。
兩個串流必須具有相同的尺寸和相同的像素格式。
stages
- planes
設定將處理哪些平面,未處理的平面將被複製。預設值為 0xf,所有平面都將被處理。
如果格式有 1 個或 2 個組件,則亮度為位元 0。如果格式有 3 個或 4 個組件:對於 RGB 格式,位元 0 為綠色,位元 1 為藍色,位元 2 為紅色;對於 YUV 格式,位元 0 為亮度,位元 1 為色度-U,位元 2 為色度-V。如果存在,則 Alpha 通道始終是最後一個位元。
- inplace
不需要第二個輸入進行處理,而是使用來自輸入串流的 alpha 平面。
11.269 unsharp
銳化或模糊輸入視訊。
它接受以下參數
- luma_msize_x, lx
設定亮度矩陣水平大小。它必須是介於 3 到 23 之間的奇數整數。預設值為 5。
- luma_msize_y, ly
設定亮度矩陣垂直大小。它必須是介於 3 到 23 之間的奇數整數。預設值為 5。
- luma_amount, la
設定亮度效果強度。它必須是浮點數,合理值介於 -1.5 和 1.5 之間。
負值將模糊輸入視訊,而正值將銳化它,值為零將停用效果。
預設值為 1.0。
- chroma_msize_x, cx
設定色度矩陣水平大小。它必須是介於 3 到 23 之間的奇數整數。預設值為 5。
- chroma_msize_y, cy
設定色度矩陣垂直大小。它必須是介於 3 到 23 之間的奇數整數。預設值為 5。
- chroma_amount, ca
設定色度效果強度。它必須是浮點數,合理值介於 -1.5 和 1.5 之間。
負值將模糊輸入視訊,而正值將銳化它,值為零將停用效果。
預設值為 0.0。
- alpha_msize_x, ax
設定 Alpha 矩陣水平大小。它必須是介於 3 到 23 之間的奇數整數。預設值為 5。
- alpha_msize_y, ay
設定 Alpha 矩陣垂直大小。它必須是介於 3 到 23 之間的奇數整數。預設值為 5。
- alpha_amount, aa
設定 Alpha 效果強度。它必須是浮點數,合理值介於 -1.5 和 1.5 之間。
負值將模糊輸入視訊,而正值將銳化它,值為零將停用效果。
預設值為 0.0。
所有參數都是可選的,預設值相當於字串「5:5:1.0:5:5:0.0」。
11.269.1 範例
- 套用強烈的亮度銳化效果
unsharp=luma_msize_x=7:luma_msize_y=7:luma_amount=2.5
- 對亮度和色度參數套用強烈的模糊效果
unsharp=7:7:-2:7:7:-2
11.270 untile
將由平鋪影像組成的視訊分解為個別影像。
輸出視訊的影格率是輸入視訊的影格率乘以平鋪數量。
此濾波器執行與 tile 相反的操作。
濾鏡接受以下選項
- layout
設定網格大小(即行數和列數)。如需此選項的語法,請查看 (ffmpeg-utils)ffmpeg-utils 手冊中的「視訊大小」章節。
11.270.1 範例
- 從靜態影像檔案產生 1 秒的視訊,該檔案由 25 個垂直堆疊的影格組成,就像類比膠捲一樣
ffmpeg -r 1 -i image.jpg -vf untile=1x25 movie.mkv
11.271 uspp
套用超慢/簡單的後處理濾波器,該濾波器以多個(或在 quality 等級 8
的情況下為所有)位移壓縮和解壓縮影像,並對結果進行平均。
這與 spp 行為的不同之處在於,uspp 實際上使用 libavcodec Snow 編碼和解碼每個案例,而 spp 使用類似於 MJPEG 的簡化僅限內部 8x8 DCT。
此濾波器在 5.0 到 6.0 之間的 ffmpeg 版本中不可用。
濾鏡接受以下選項
- quality
設定品質。此選項定義用於平均的等級數量。它接受 0-8 範圍內的整數。如果設定為
0
,則濾波器將不起作用。值8
表示最高品質。對於該值的每次遞增,速度大約會下降 2 倍。預設值為3
。- qp
強制恆定量化參數。如果未設定,濾鏡將使用來自視訊串流的 QP(如果可用)。
- codec
使用指定的編解碼器而不是 snow。
11.272 v360
在各種格式之間轉換 360 度視訊。
濾鏡接受以下選項
- 頂場優先
- 音訊資料的 Adler-32 檢查碼(以十六進制列印)。對於平面音訊,資料被視為所有平面都已連接。
設定輸入/輸出視訊的格式。
可用格式
- ‘e’
- ‘equirect’
等距柱狀投影。
- ‘c3x2’
- ‘c6x1’
- ‘c1x6’
立方體貼圖,具有 3x2/6x1/1x6 版面配置。
格式特定選項
- in_pad
- out_pad
設定輸入/輸出立方體貼圖的填充比例。值為小數。
範例值
- 以 dB 為單位設定頻段增益。
無填充。
- ‘0.01’
1% 的面是填充。例如,對於 1920x1280 解析度,面大小將為 640x640,填充將為每邊 3 個像素。(640 * 0.01 = 6 像素)
預設值為 ‘0’。最大值為 ‘0.1’。
- fin_pad
- fout_pad
設定輸入/輸出立方體貼圖的固定填充。值以像素為單位。
預設值為 ‘0’。如果大於零,則會覆寫其他填充選項。
- in_forder
- out_forder
設定輸入/輸出立方體貼圖的面順序。為每個位置選擇一個方向。
方向的指定
- ‘r’
right
- ‘l’
left
- ‘u’
up
- ‘d’
down
- ‘f’
forward
- ‘b’
back
預設值為 ‘rludfb’。
- in_frot
- out_frot
設定輸入/輸出立方體貼圖的面的旋轉。為每個位置選擇一個角度。
角度的指定
- 以 dB 為單位設定頻段增益。
0 度順時針
- 設定頻段的濾波器類型,可選,可以是
90 度順時針
- 巴特沃斯,這是預設值。
180 度順時針
- ‘3’
270 度順時針
預設值為 ‘000000’。
- ‘eac’
等角立方體貼圖。
- 「flat」
- ‘gnomonic’
- ‘rectilinear’
常規視訊。
格式特定選項
- h_fov
- v_fov
- d_fov
設定輸出水平/垂直/對角線視野。值以度為單位。
如果設定了對角線視野,則會覆寫水平和垂直視野。
- ih_fov
- iv_fov
- id_fov
設定輸入水平/垂直/對角線視野。值以度為單位。
如果設定了對角線視野,則會覆寫水平和垂直視野。
- ‘dfisheye’
雙魚眼。
格式特定選項
- h_fov
- v_fov
- d_fov
設定輸出水平/垂直/對角線視野。值以度為單位。
如果設定了對角線視野,則會覆寫水平和垂直視野。
- ih_fov
- iv_fov
- id_fov
設定輸入水平/垂直/對角線視野。值以度為單位。
如果設定了對角線視野,則會覆寫水平和垂直視野。
- ‘barrel’
- ‘fb’
- ‘barrelsplit’
Facebook 的 360 度格式。
- ‘sg’
立體格式。
格式特定選項
- h_fov
- v_fov
- d_fov
設定輸出水平/垂直/對角線視野。值以度為單位。
如果設定了對角線視野,則會覆寫水平和垂直視野。
- ih_fov
- iv_fov
- id_fov
設定輸入水平/垂直/對角線視野。值以度為單位。
如果設定了對角線視野,則會覆寫水平和垂直視野。
- ‘mercator’
麥卡托格式。
- ‘ball’
球體格式,朝後方產生顯著的失真。
- ‘hammer’
漢默-艾托夫地圖投影格式。
- ‘sinusoidal’
正弦曲線地圖投影格式。
- ‘fisheye’
魚眼投影。
格式特定選項
- h_fov
- v_fov
- d_fov
設定輸出水平/垂直/對角線視野。值以度為單位。
如果設定了對角線視野,則會覆寫水平和垂直視野。
- ih_fov
- iv_fov
- id_fov
設定輸入水平/垂直/對角線視野。值以度為單位。
如果設定了對角線視野,則會覆寫水平和垂直視野。
- ‘pannini’
潘尼尼投影。
格式特定選項
- h_fov
設定輸出潘尼尼參數。
- ih_fov
設定輸入潘尼尼參數。
- ‘cylindrical’
圓柱投影。
格式特定選項
- h_fov
- v_fov
- d_fov
設定輸出水平/垂直/對角線視野。值以度為單位。
如果設定了對角線視野,則會覆寫水平和垂直視野。
- ih_fov
- iv_fov
- id_fov
設定輸入水平/垂直/對角線視野。值以度為單位。
如果設定了對角線視野,則會覆寫水平和垂直視野。
- ‘perspective’
透視投影。(僅限輸出)
格式特定選項
- v_fov
設定透視參數。
- ‘tetrahedron’
四面體投影。
- ‘tsp’
截角四角錐投影。
- ‘he’
- ‘hequirect’
半等距柱狀投影。
- ‘equisolid’
等立體角格式。
格式特定選項
- h_fov
- v_fov
- d_fov
設定輸出水平/垂直/對角線視野。值以度為單位。
如果設定了對角線視野,則會覆寫水平和垂直視野。
- ih_fov
- iv_fov
- id_fov
設定輸入水平/垂直/對角線視野。值以度為單位。
如果設定了對角線視野,則會覆寫水平和垂直視野。
- ‘og’
正交格式。
格式特定選項
- h_fov
- v_fov
- d_fov
設定輸出水平/垂直/對角線視野。值以度為單位。
如果設定了對角線視野,則會覆寫水平和垂直視野。
- ih_fov
- iv_fov
- id_fov
設定輸入水平/垂直/對角線視野。值以度為單位。
如果設定了對角線視野,則會覆寫水平和垂直視野。
- ‘octahedron’
八面體投影。
- ‘cylindricalea’
圓柱等面積投影。
- interp
設定插值方法。
注意:更複雜的插值方法需要更多的記憶體才能執行。可用方法
- ‘near’
- ‘nearest’
最近鄰。
- 設定框邊緣厚度的表達式。值
fill
將建立一個填充框。預設值為3
。 - ‘linear’
雙線性插值。
- ‘lagrange9’
Lagrange9 插值。
- ‘cube’
- ‘cubic’
雙三次插值。
- ‘lanc’
- ‘lanczos’
Lanczos 插值。
- ‘sp16’
- ‘spline16’
Spline16 插值。
- ‘gauss’
- ‘gaussian’
高斯插值。
- ‘mitchell’
Mitchell 插值。
預設值為 ‘line’。
- f
- h
設定輸出視訊解析度。
預設解析度取決於格式。
- in_stereo
- out_stereo
設定輸入/輸出立體格式。
- ‘2d’
2D 單聲道
- ‘sbs’
並排
- ‘tb’
上下
輸入和輸出格式的預設值為 ‘2d’。
- yaw
- pitch
- roll
設定輸出視訊的旋轉。值以度為單位。
- rorder
設定輸出視訊的旋轉順序。為每個位置選擇一個項目。
- ‘y, Y’
yaw
- ‘p, P’
pitch
- ‘r, R’
roll
預設值為 ‘ypr’。
- h_flip
- v_flip
- d_flip
水平(交換左右)/垂直(交換上下)/深度(交換前後)翻轉輸出視訊。布林值。
- ih_flip
- iv_flip
設定輸入視訊是否水平/垂直翻轉。布林值。
- in_trans
設定輸入視訊是否已轉置。布林值,預設為停用。
- out_trans
設定輸出視訊是否需要轉置。布林值,預設為停用。
- h_offset
- v_offset
設定輸出水平/垂直軸外偏移。預設設定為 0。允許範圍為 -1 到 1。
- alpha_mask
透過將所有未映射的像素標記為完全透明,在 Alpha 平面中建立遮罩。布林值,預設為停用。
- reset_rot
重設輸出視訊的旋轉。布林值,預設為停用。
11.272.1 範例
- 使用雙三次插值將等距柱狀視訊轉換為具有 3x2 版面配置和 1% 填充的立方體貼圖
ffmpeg -i input.mkv -vf v360=e:c3x2:cubic:out_pad=0.01 output.mkv
- 擷取等角立方體貼圖的後視圖
ffmpeg -i input.mkv -vf v360=eac:flat:yaw=180 output.mkv
- 將並排立體格式中轉置和水平翻轉的等角立方體貼圖轉換為上下立體格式
v360=eac:equirect:in_stereo=sbs:in_trans=1:ih_flip=1:out_stereo=tb
11.272.2 指令
此濾波器支援上述選項的子集作為指令。
11.273 vaguedenoiser
套用基於小波的去噪器。
它使用 Cohen-Daubechies-Feauveau 9/7 將來自視訊輸入的每個影格轉換為小波域。然後,它對獲得的係數套用一些濾波。之後執行反小波轉換。由於小波特性,它應該提供良好的平滑結果,並減少雜訊,而不會模糊圖片特徵。
此濾波器還能夠拉伸/壓縮音訊資料以使其與時間戳記匹配,或注入靜音/剪切音訊以使其與時間戳記匹配,執行兩者的組合或兩者都不執行。
- threshold
濾波強度。越高,視訊濾波效果越強。硬閾值處理可以使用比軟閾值處理更高的閾值,然後視訊看起來會過度濾波。預設值為 2。
- method
濾波器將使用的濾波方法。
設定叢發融合,以視窗大小的百分比表示。允許範圍為
0
到10
。預設值為2
。如果偵測為雜訊的任何兩個樣本之間的間隔小於此值,則這兩個樣本之間的任何樣本也將被偵測為雜訊。- ‘hard’
低於閾值的所有值都將歸零。
- ‘soft’
低於閾值的所有值都將歸零。高於閾值的所有值都將減少閾值。
- ‘garrote’
縮放或無效化係數 - 介於(更)軟和(更少)硬閾值處理之間。
預設值為 garrote。
- nsteps
小波將分解圖片的次數。圖片無法分解超過特定點(通常,對於 640x480 影格為 8 - 因為 2^9 = 512 > 480)。有效值為 1 到 32 之間的整數。預設值為 6。
- percent
部分或完整去噪(有限係數縮減),從 0 到 100。預設值為 85。
- planes
要處理的平面的列表。預設情況下,會處理所有平面。
- 將第二個聲道延遲 500 個樣本,將第三個聲道延遲 700 個樣本,並保持第一個聲道(和可能存在的任何其他聲道)不變。
濾波器將使用的閾值類型。
設定叢發融合,以視窗大小的百分比表示。允許範圍為
0
到10
。預設值為2
。如果偵測為雜訊的任何兩個樣本之間的間隔小於此值,則這兩個樣本之間的任何樣本也將被偵測為雜訊。- ‘universal’
用於所有分解的閾值相同。
- ‘bayes’
使用的閾值也取決於每個分解係數。
預設值為 universal。
11.274 varblur
透過使用第二個視訊串流設定模糊半徑,套用可變模糊濾波器。第二個串流必須具有相同的尺寸。
此濾波器還能夠拉伸/壓縮音訊資料以使其與時間戳記匹配,或注入靜音/剪切音訊以使其與時間戳記匹配,執行兩者的組合或兩者都不執行。
- min_r
設定允許的最小半徑。允許範圍為 0 到 254。預設值為 0。
- max_r
設定允許的最大半徑。允許範圍為 1 到 255。預設值為 8。
- planes
設定要處理的平面。預設情況下,使用所有平面。
varblur
濾波器也支援 framesync 選項。
11.274.1 指令
此濾波器支援上述所有選項作為指令。
11.275 vectorscope
在二維圖形(稱為向量示波器)中顯示 2 個色彩組件值。
此濾波器還能夠拉伸/壓縮音訊資料以使其與時間戳記匹配,或注入靜音/剪切音訊以使其與時間戳記匹配,執行兩者的組合或兩者都不執行。
- 設定空間亮度閾值。較低的值會增加交叉亮度的減少。
設定向量示波器模式。
設定叢發融合,以視窗大小的百分比表示。允許範圍為
0
到10
。預設值為2
。如果偵測為雜訊的任何兩個樣本之間的間隔小於此值,則這兩個樣本之間的任何樣本也將被偵測為雜訊。- ‘gray’
- ‘tint’
灰階值顯示在圖形上,亮度越高表示在圖形位置上具有相同組件色彩值的像素越多。這是預設模式。
- y
灰階值顯示在圖形上。視訊影格中不存在的周圍像素值以選項
x
和y
設定的 2 個色彩組件的漸層繪製。第三個色彩組件是靜態的。- mode
圖形上顯示視訊影格中存在的實際色彩組件值。
- ‘color3’
與 color2 類似,但在圖形上,相同值
x
和y
的頻率越高,另一個色彩組件的值就越高,預設值x
和y
預設為亮度。- ‘color4’
圖形上顯示視訊影格中存在的實際色彩。如果兩個不同的色彩映射到圖形上的相同位置,則選擇在圖形中不存在的組件值較高的色彩。
- ‘color5’
灰階值顯示在圖形上。與
color
類似,但第三個色彩組件從徑向漸層中選取。
- x
設定哪個色彩組件將在 X 軸上表示。預設值為
1
。- y
設定哪個色彩組件將在 Y 軸上表示。預設值為
2
。- intensity, i
設定強度,用於模式:gray、color、color3 和 color5,以增加表示圖形中 (X, Y) 位置頻率的色彩組件的亮度。
- envelope,e
- 「none」
無包絡線,這是預設值。
- ‘instant’
即時包絡線,即使是最暗的單個像素也會被清楚地突出顯示。
- 「listen」
隨時間推移保持圖形中呈現的最大值和最小值。這樣,您仍然可以發現超出範圍的值,而無需持續查看向量示波器。
- ‘peak+instant’
峰值和即時包絡線組合在一起。
- graticule, g
設定要繪製哪種刻度線。
- 「none」
- ‘green’
- y
- ‘invert’
- opacity, o
設定刻度線不透明度。
- flags, f
設定刻度線旗標。
- ‘white’
繪製白點的刻度線。
- ‘black’
繪製黑點的刻度線。
- ‘name’
繪製色彩點簡短名稱。
- bgopacity,b
在黑色背景上用輸入視訊像素顏色繪製十六進制像素值。
- lthreshold, l
設定未在 X 或 Y 軸上表示的色彩組件的低閾值。低於此值的值將被忽略。預設值為 0。請注意,此值與單個像素組件可以具有的實際最大可能值相乘。因此,對於 8 位元輸入和 0.1 的低閾值,實際閾值為 0.1 * 255 = 25。
- hthreshold, h
設定未在 X 或 Y 軸上表示的色彩組件的高閾值。高於此值的值將被忽略。預設值為 1。請注意,此值與單個像素組件可以具有的實際最大可能值相乘。因此,對於 8 位元輸入和 0.9 的高閾值,實際閾值為 0.9 * 255 = 230。
- colorspace, c
設定繪製刻度線時要使用的色彩空間種類。
- 「auto」
- ‘601’
- ‘709’
預設值為 auto。
- tint0, t0
- tint1, t1
設定灰階/色調向量示波器模式的色彩色調。預設情況下,這兩個選項都為零。這表示沒有色調,輸出將保持灰階。
11.276 vidstabdetect
分析視訊穩定/去抖動。執行 2 次傳遞中的第 1 次傳遞,請參閱 vidstabtransform 進行第 2 次傳遞。
此濾波器產生一個檔案,其中包含有關後續影格的相對平移和旋轉變換資訊,然後由 vidstabtransform 濾波器使用。
若要啟用此濾波器的編譯,您需要使用 --enable-libvidstab
配置 FFmpeg。
此濾波器還能夠拉伸/壓縮音訊資料以使其與時間戳記匹配,或注入靜音/剪切音訊以使其與時間戳記匹配,執行兩者的組合或兩者都不執行。
- result
設定用於寫入變換資訊的檔案路徑。預設值為 transforms.trf。
- shakiness
設定視訊的抖動程度以及攝影機的速度。它接受 1-10 範圍內的整數,值 1 表示輕微抖動,值 10 表示強烈抖動。預設值為 5。
- accuracy
設定偵測過程的準確度。它必須是 1-15 範圍內的值。值 1 表示低準確度,值 15 表示高準確度。預設值為 15。
- stepsize
設定搜尋過程的步長。以 1 像素解析度掃描最小值周圍的區域。預設值為 6。
- mincontrast
設定最小對比度。低於此值時,會捨棄本機測量欄位。必須是 0-1 範圍內的浮點值。預設值為 0.3。
- tripod
設定三腳架模式的參考影格編號。
如果啟用,則將影格的運動與已篩選串流中的參考影格進行比較,並由指定的編號識別。目的是補償更或更少靜態場景中的所有運動,並保持攝影機視圖絕對靜止。
如果設定為 0,則停用。影格從 1 開始計數。
- 中位數
在結果影格中顯示圖場和變換。它接受 0-2 範圍內的整數。預設值為 0,表示停用任何視覺化。
- fileformat
要寫入的變換資料檔案的格式。可接受的值為
- ‘ascii’
人類可讀的純文字
- ‘binary’
二進位格式,比
ascii
小約 40%。(預設)
11.276.1 範例
- 使用預設值
vidstabdetect
- 分析強烈抖動的影片,並將結果放入檔案 mytransforms.trf
vidstabdetect=shakiness=10:accuracy=15:result="mytransforms.trf"
- 在結果視訊中視覺化內部變換的結果
vidstabdetect=show=1
- 使用
ffmpeg
分析具有中等抖動的視訊ffmpeg -i input -vf vidstabdetect=shakiness=5:show=1 dummy.avi
11.277 vidstabtransform
視訊穩定/去抖動:2 次傳遞中的第 2 次傳遞,請參閱 vidstabdetect 進行第 1 次傳遞。
讀取包含每個影格的變換資訊的檔案,並套用/補償它們。與 vidstabdetect 濾波器一起使用,可用於去抖動視訊。另請參閱 http://public.hronopik.de/vid.stab。務必也使用 unsharp 濾波器,請參閱下文。
若要啟用此濾波器的編譯,您需要使用 --enable-libvidstab
配置 FFmpeg。
11.277.1 選項
- 頂場優先
設定用於讀取變換的檔案路徑。預設值為 transforms.trf。
- smoothing
設定用於低通濾波攝影機運動的影格數(值 * 2 + 1)。預設值為 10。
例如,數字 10 表示使用 21 個影格(過去 10 個和未來 10 個)來平滑視訊中的運動。值越大,視訊越平滑,但會限制攝影機的加速度(平移/傾斜運動)。0 是一種特殊情況,其中模擬靜態攝影機。
- optalgo
設定攝影機路徑最佳化演算法。
可接受的值為
- ‘gauss’
攝影機運動上的高斯核心低通濾波器(預設)
- 「avg」
變換平均
- maxshift
設定平移影格的最大像素數。預設值為 -1,表示無限制。
- maxangle
設定旋轉影格的最大角度(以弧度為單位)(度 * PI/180)。預設值為 -1,表示無限制。
- crop
指定如何處理可能因運動補償而可見的邊框。
提升高於偵測臨界值的頻率。
- ‘keep’
保留前一個影格的影像資訊(預設)
- ‘black’
將邊框填滿黑色
- invert
如果設定為 1,則反轉變換。預設值為 0。
- relative
如果設定為 1,則將變換視為相對於前一個影格,如果設定為 0,則視為絕對值。預設值為 0。
- zoom
設定要縮放的百分比。正值將產生放大效果,負值將產生縮小效果。預設值為 0(無縮放)。
- optzoom
設定最佳縮放以避免邊框。
可接受的值為
- 以 dB 為單位設定頻段增益。
disabled
- 設定頻段的濾波器類型,可選,可以是
確定最佳靜態縮放值(只有非常強烈的運動才會導致可見的邊框)(預設)
- 巴特沃斯,這是預設值。
確定最佳自適應縮放值(不會看到邊框),請參閱 zoomspeed
請注意,在 zoom 處給定的值會新增到此處計算的值。
- zoomspeed
設定每個影格最大縮放百分比(當 optzoom 設定為 2 時啟用)。範圍為 0 到 5,預設值為 0.25。
- interpol
指定插值類型。
提升高於偵測臨界值的頻率。
- ‘no’
無插值
- ‘linear’
僅水平線性
- ‘bilinear’
在兩個方向上都是線性的(預設)
- ‘bicubic’
在兩個方向上都是三次的(慢速)
- tripod
如果設定為 1,則啟用虛擬三腳架模式,這相當於
relative=0:smoothing=0
。預設值為 0。也請使用 vidstabdetect 的
tripod
選項。- debug
如果設定為 1,則增加記錄詳細程度。偵測到的全域運動也會寫入暫存檔案 global_motions.trf。預設值為 0。
11.277.2 範例
- 使用
ffmpeg
進行具有預設值的典型穩定ffmpeg -i inp.mpeg -vf vidstabtransform,unsharp=5:5:0.8:3:3:0.4 inp_stabilized.mpeg
請注意,建議始終使用 unsharp 濾波器。
- 稍微放大並從給定檔案載入變換資料
vidstabtransform=zoom=5:input="mytransforms.trf"
- 使視訊更加平滑
vidstabtransform=smoothing=30
11.278 vflip
垂直翻轉輸入視訊。
例如,若要使用 ffmpeg
垂直翻轉視訊
ffmpeg -i in.avi -vf "vflip" out.avi
11.279 vfrdet
偵測可變影格率視訊。
此濾波器嘗試偵測輸入是可變影格率還是恆定影格率。
最後,它將輸出偵測為具有可變 delta pts 的影格數,以及具有恆定 delta pts 的影格數。如果存在具有可變 delta 的影格,則它也會顯示遇到的最小、最大和平均 delta。
11.280 vibrance
增強或改變飽和度。
濾鏡接受以下選項
- intensity
如果值為正數,則設定增強強度,如果值為負數,則設定改變強度。預設值為 0。允許範圍為 -2 到 2。
- rbal
設定紅色平衡。預設值為 1。允許範圍為 -10 到 10。
- gbal
設定綠色平衡。預設值為 1。允許範圍為 -10 到 10。
- bbal
設定藍色平衡。預設值為 1。允許範圍為 -10 到 10。
- rlum
設定紅色亮度係數。
- glum
設定綠色亮度係數。
- blum
設定藍色亮度係數。
- alternate
如果
intensity
為負數且此項設定為 1,則色彩將會改變,否則色彩的飽和度會降低,更接近灰色。
11.280.1 指令
此濾鏡支援以上所有選項作為 commands。
11.281 vif
取得兩個輸入視訊之間的平均 VIF(視覺資訊保真度)。
此濾鏡採用兩個輸入視訊。
為了使此濾鏡正常工作,兩個輸入視訊必須具有相同的解析度和像素格式。此外,它假設兩個輸入具有相同數量的影格,這些影格將逐個比較。
取得的平均 VIF 分數透過記錄系統列印。
濾波器儲存每個影格的計算 VIF 分數。
此濾鏡也支援 framesync 選項。
在以下範例中,正在處理的輸入檔案 main.mpg 與參考檔案 ref.mpg 進行比較。
ffmpeg -i main.mpg -i ref.mpg -lavfi vif -f null -
11.282 vignette
產生或反轉自然的暈影效果。
濾鏡接受以下選項
- 角度,a
將鏡頭角度表示式設定為弧度數。
該值被剪裁在
[0,PI/2]
範圍內。預設值:
"PI/5"
- x0
- y0
設定中心座標表示式。預設值分別為
"w/2"
和"h/2"
。- mode
設定正向/反向模式。
可用模式為
- ‘forward’
距離中心點越遠,影像越暗。
- ‘backward’
距離中心點越遠,影像越亮。這可用於反轉暈影效果,但沒有自動偵測來擷取鏡頭 angle 和其他設定(目前尚無)。它也可用於產生燃燒效果。
預設值為 ‘forward’。
- eval
設定表示式(angle、x0、y0)的評估模式。
設定叢發融合,以視窗大小的百分比表示。允許範圍為
0
到10
。預設值為2
。如果偵測為雜訊的任何兩個樣本之間的間隔小於此值,則這兩個樣本之間的任何樣本也將被偵測為雜訊。- ‘init’
僅在濾波器初始化期間評估表示式一次。
- 「frame」
評估每個傳入影格的表示式。這比「init」模式慢得多,因為它需要重新計算所有縮放器,但它允許進階動態表示式。
預設值為 ‘init’。
- dither
設定顫色以減少圓形條帶效應。預設值為
1
(已啟用)。- aspect
設定暈影縱橫比。此設定允許調整暈影的形狀。將此值設定為輸入的 SAR 將產生遵循視訊尺寸的矩形暈影。
預設值為
1/1
。
11.282.1 表達式
alpha、x0 和 y0 表示式可以包含以下參數。
- f
- h
輸入寬度和高度
- n
標記映射 libfreetype 支援的相應標記,並且是以下值的組合
- pts
已篩選視訊影格的 PTS(展示時間戳記)時間,以 TB 單位表示,如果未定義則為 NAN
- r
輸入視訊的影格率,如果輸入影格率未知則為 NAN
- 設定傳輸表達式。
已篩選視訊影格的 PTS(展示時間戳記),以秒為單位表示,如果未定義則為 NAN
- tb
輸入影片的時間基底
11.282.2 範例
- 套用簡單的強暈影效果
vignette=PI/4
- 產生閃爍的暈影
vignette='PI/4+random(1)*PI/50':eval=frame
11.283 vmafmotion
取得視訊的平均 VMAF 運動分數。它是 VMAF 的組件指標之一。
取得的平均運動分數透過記錄系統列印。
濾鏡接受以下選項
- stats_file
如果指定,濾波器將使用指定的檔案來儲存每個影格相對於前一個影格的運動分數。當檔名等於 "-" 時,資料會傳送到標準輸出。
範例
ffmpeg -i ref.mpg -vf vmafmotion -f null -
11.284 vstack
垂直堆疊輸入視訊。
所有串流都必須具有相同的像素格式和相同的寬度。
請注意,此濾鏡比使用 overlay 和 pad 濾鏡建立相同的輸出更快。
濾鏡接受以下選項
- inputs
設定輸入串流的數量。預設值為 2。
- shortest
如果設定為 1,則強制輸出在最短的輸入終止時終止。預設值為 0。
11.285 w3fdif
解交錯輸入視訊("w3fdif" 代表 "Weston 3 Field Deinterlacing Filter")。
Weston 3 圖場解交錯濾波器基於 Martin Weston 為 BBC R&D 描述的過程,並根據 Jim Easterbrook 為 BBC R&D 編寫的解交錯演算法實作,使用 BBC R&D 計算的濾波器係數。
此濾波器使用影格中的圖場主導資訊來決定在輸出中先放置每對圖場中的哪一個。如果它弄錯了,請在 w3fdif
濾波器之前使用 setfield 濾波器。
有兩組濾波器係數,稱為「簡單」和「複雜」。可以透過傳遞可選參數來設定使用哪組濾波器係數
- filter
設定交錯濾波器係數。接受下列其中一個值
- 「simple」
簡單濾波器係數集。
- 「complex」
更複雜的濾波器係數集。
預設值為 ‘complex’。
- mode
mode
- frame
mode
- field
mode
預設值為
field
。- parity
parity
- tff
parity
- bff
parity
- auto
parity
parity
- deint
deint
- ‘all’
解交錯所有影格,
- ‘interlaced’
deint
預設值為 ‘all’。
11.285.1 指令
blend
11.286 waveform
視訊波形監視器。
波形監視器繪製色彩組件強度。預設情況下僅為亮度。波形的每一列對應於來源視訊中的一列像素。
設定視窗長度,以樣本為單位。預設值為 2048。允許範圍為 32 到 65536。
- 設定空間亮度閾值。較低的值會增加交叉亮度的減少。
可以是
row
或column
。預設值為column
。在 row 模式下,左側的圖形表示色彩組件值 0,右側表示值 = 255。在 column 模式下,頂側表示色彩組件值 = 0,底側表示值 = 255。- intensity, i
設定強度。較小的值有助於找出在輸入行/列中分佈了多少個相同亮度的值。預設值為
0.04
。允許範圍為 [0, 1]。- mirror, r
設定鏡像模式。
0
表示未鏡像,1
表示已鏡像。在鏡像模式下,較高的值將在row
模式下表示在左側,在column
模式下表示在頂部。預設值為1
(已鏡像)。- display, d
設定顯示模式。它接受以下值
- 「overlay」
呈現與
parade
中相同的資訊,除了表示色彩組件的圖形直接相互疊加。此顯示模式使您可以更輕鬆地發現色彩組件的重疊區域中的相對差異或相似性,這些色彩組件應該是相同的,例如中性白色、灰色或黑色。
- ‘stack’
在
row
模式下並排顯示色彩組件的獨立圖形,或在column
模式下上下顯示色彩組件的獨立圖形。- ‘parade’
在
column
模式下並排顯示色彩組件的獨立圖形,或在row
模式下上下顯示色彩組件的獨立圖形。使用此顯示模式,可以輕鬆發現影像亮部和暗部的色偏,方法是比較每個波形的頂部和底部圖形的輪廓。由於白色、灰色和黑色的特徵是紅色、綠色和藍色量完全相等,因此圖片的中性區域應顯示三個寬度/高度大致相等的波形。如果不是,則可以透過調整三個波形的水平來輕鬆執行校正。
預設值為
stack
。- components,c
設定要顯示哪些色彩組件。預設值為 1,表示僅亮度或紅色組件(如果輸入為 RGB 色彩空間)。如果設定為例如 7,則它將顯示所有 3 個(如果)可用的色彩組件。
- envelope,e
- 「none」
無包絡線,這是預設值。
- ‘instant’
即時包絡線,即使步長值較小,圖形中呈現的最小值和最大值也將很容易看到
step
值。- 「listen」
隨時間推移保持圖形中呈現的最小值和最大值。這樣,您仍然可以發現超出範圍的值,而無需持續查看波形。
- ‘peak+instant’
峰值和即時包絡線組合在一起。
- filter, f
- mode
無濾波,這是預設值。
- 「flat」
亮度和色度組合在一起。
- ‘aflat’
與上述類似,但顯示藍色和紅色色度之間的差異。
- ‘xflat’
與上述類似,但使用不同的色彩。
- ‘yflat’
與上述類似,但再次使用不同的色彩。
- ‘chroma’
僅顯示色度。
- y
在波形上顯示實際色彩值。
- ‘acolor’
與上述類似,但亮度顯示色度值的頻率。
- graticule, g
設定要顯示哪個刻度線。
- 「none」
不顯示刻度線。
- ‘green’
顯示綠色刻度線,顯示合法的廣播範圍。
- ‘orange’
顯示橘色刻度線,顯示合法的廣播範圍。
- ‘invert’
顯示反轉刻度線,顯示合法的廣播範圍。
- opacity, o
設定刻度線不透明度。
- flags, fl
設定刻度線旗標。
- ‘numbers’
在線條上方繪製數字。預設情況下啟用。
- ‘dots’
繪製點而不是線條。
- scale, s
設定用於顯示刻度線的比例。
- ‘digital’
- ‘millivolts’
- ‘ire’
預設值為 digital。
- bgopacity,b
在黑色背景上用輸入視訊像素顏色繪製十六進制像素值。
- tint0, t0
- tint1, t1
設定輸出的色調。僅在低通濾波器且顯示器不是覆蓋圖且輸入像素格式不是 RGB 時使用。
- fitmode, fm
設定視訊輸出影格的樣本縱橫比。可用於配置波形,使其在其中一個方向上不會過度拉伸。
- 「none」
將樣本縱橫比設定為 1/1。
- ‘size’
將樣本縱橫比設定為符合視訊的輸入大小
預設值為 ‘none’。
- 頂場優先
設定濾波器要選取的輸入格式。可以是 ‘all’(用於從所有可用格式中選取)或 ‘first’(用於選取第一個可用格式)。預設值為 ‘first’。
11.287 weave, doubleweave
weave
採用基於圖場的視訊輸入,並將每兩個連續的圖場合併為單個影格,從而產生新的雙倍高度剪輯,其影格率和影格計數減半。
doubleweave
的工作方式與 weave
相同,但不會使影格率和影格計數減半。
設定柔削波的類型。
- 指定用於運動搜尋的區塊大小。範圍 4-128 像素,預設值為 8。
設定第一個圖場。可用值為
- contrast
將影格設定為頂圖場優先。
- search
將影格設定為底圖場優先。
11.287.1 範例
- 使用 select 和 separatefields 濾波器交錯視訊
separatefields,select=eq(mod(n,4),0)+eq(mod(n,4),3),weave
11.288 xbr
套用 xBR 高品質放大濾波器,該濾波器專為像素藝術設計。它遵循一組邊緣偵測規則,請參閱 https://forums.libretro.com/t/xbr-algorithm-tutorial/123。
設定柔削波的類型。
- n
設定縮放尺寸:
2
代表2xBR
,3
代表3xBR
,4
代表4xBR
。預設值為3
。
11.289 xcorrelate
在第一個和第二個輸入視訊串流之間套用正規化互相關。
第二個輸入視訊串流的尺寸必須小於第一個輸入視訊串流。
濾鏡接受以下選項
- planes
設定要處理的平面。
- secondary
設定將從第二個輸入視訊串流處理哪些輔助視訊影格,可以是 first 或 all。預設值為 all。
xcorrelate
濾波器也支援 framesync 選項。
11.290 xfade
從一個輸入視訊串流到另一個輸入視訊串流套用交叉淡入淡出。交叉淡入淡出會套用指定的持續時間。
兩個輸入都必須是恆定影格率,並且具有相同的解析度、像素格式、影格率和時間基底。
濾鏡接受以下選項
- transition
設定其中一種可用的轉場效果
- 「custom」
- ‘fade’
- ‘wipeleft’
- ‘wiperight’
- ‘wipeup’
- ‘wipedown’
- ‘slideleft’
- ‘slideright’
- ‘slideup’
- ‘slidedown’
- ‘circlecrop’
- ‘rectcrop’
- ‘distance’
- ‘fadeblack’
- ‘fadewhite’
- ‘radial’
- ‘smoothleft’
- ‘smoothright’
- ‘smoothup’
- ‘smoothdown’
- ‘circleopen’
- ‘circleclose’
- ‘vertopen’
- ‘vertclose’
- ‘horzopen’
- ‘horzclose’
- ‘dissolve’
- ‘pixelize’
- ‘diagtl’
- ‘diagtr’
- ‘diagbl’
- ‘diagbr’
- ‘hlslice’
- ‘hrslice’
- ‘vuslice’
- ‘vdslice’
- ‘hblur’
- ‘fadegrays’
- ‘wipetl’
- ‘wipetr’
- ‘wipebl’
- ‘wipebr’
- ‘squeezeh’
- ‘squeezev’
- ‘zoomin’
- ‘fadefast’
- ‘fadeslow’
- ‘hlwind’
- ‘hrwind’
- ‘vuwind’
- ‘vdwind’
- ‘coverleft’
- ‘coverright’
- ‘coverup’
- ‘coverdown’
- ‘revealleft’
- ‘revealright’
- ‘revealup’
- ‘revealdown’
預設轉場效果為 fade。
- duration
以秒為單位設定交叉淡入淡出持續時間。範圍為 0 到 60 秒。預設持續時間為 1 秒。
- offset
設定交叉淡入淡出相對於第一個輸入串流的開始時間(以秒為單位)。預設偏移量為 0。
- expr
設定自訂轉場效果的表示式。
表示式可以使用以下變數和函數
- x
- y
目前樣本的座標。
- w
- h
影像的寬度和高度。
- P
轉場效果的進度。
- PLANE
目前處理的平面。
- A
傳回目前位置和平面處第一個輸入的值。
- B
傳回目前位置和平面處第二個輸入的值。
- a0(x, y)
- a1(x, y)
- a2(x, y)
- a3(x, y)
傳回第一個輸入的第一/第二/第三/第四個組件在位置 (x,y) 處的像素值。
- b0(x, y)
- b1(x, y)
- b2(x, y)
- b3(x, y)
傳回第二個輸入的第一/第二/第三/第四個組件在位置 (x,y) 處的像素值。
11.290.1 範例
- 從一個輸入視訊交叉淡入淡出到另一個輸入視訊,具有淡入淡出轉場效果,轉場持續時間為 2 秒,從偏移量 5 秒開始
ffmpeg -i first.mp4 -i second.mp4 -filter_complex xfade=transition=fade:duration=2:offset=5 output.mp4
11.291 xmedian
從多個輸入視訊中選取中位數像素。
濾鏡接受以下選項
- inputs
設定輸入數量。預設值為 3。允許範圍為 3 到 255。如果輸入數量為偶數,則結果將是兩個中位數之間的平均值。
- planes
設定要濾波的平面。預設值為
15
,表示處理所有平面。- percentile
設定中位數百分位數。預設值為
0.5
。預設值0.5
將始終選取中位數,而0
將選取最小值,1
將選取最大值。
11.291.1 指令
此濾波器支援上述所有選項作為指令,排除選項 inputs
。
11.292 xpsnr
取得兩個輸入視訊之間的平均值(跨所有輸入影格)和最小值(跨所有色彩平面平均值)eXtended Perceptually weighted peak Signal-to-Noise Ratio (XPSNR)。
XPSNR 是一種低複雜度的心理視覺動機失真測量演算法,用於評估兩個視訊串流或影像之間的差異。這對於客觀量化視訊和影像編解碼器引起的失真特別有用,作為正式主觀測試的替代方案。對數 XPSNR 輸出值與傳統 psnr 評估的值範圍相似,但更好地反映了人類對視覺編碼品質的印象。有關 XPSNR 測量的更多詳細資訊(基本上表示 PSNR 測量的區塊式加權變體),可以在以下免費提供的論文中找到
- C. R. Helmrich、M. Siekmann、S. Becker、S. Bosse、D. Marpe 和 T. Wiegand,“XPSNR: A Low-Complexity Extension of the Perceptually Weighted Peak Signal-to-Noise Ratio for High-Resolution Video Quality Assessment”,載於 Proc. IEEE Int. Conf. Acoustics, Speech, Sig. Process. (ICASSP),虛擬/線上,2020 年 5 月。www.ecodis.de/xpsnr.htm
- C. R. Helmrich、S. Bosse、H. Schwarz、D. Marpe 和 T. Wiegand,“A Study of the Extended Perceptually Weighted Peak Signal-to-Noise Ratio (XPSNR) for Video Compression with Different Resolutions and Bit Depths”,ITU Journal: ICT Discoveries,第 3 卷,第 1 期,第 65 - 72 頁,2020 年 5 月。http://handle.itu.int/11.1002/pub/8153d78b-en
當發佈使用(例如)此 FFmpeg 濾波器獲得的 XPSNR 評估結果時,強烈建議參考上述論文作為文件記錄手段。濾波器需要兩個輸入視訊。第一個輸入被視為(通常未失真的)參考來源,並未經更改地傳遞到輸出,而第二個輸入是(失真的)測試訊號。除了位元深度之外,這兩個視訊輸入必須具有相同的像素格式。此外,為了獲得最佳效能,兩個比較的輸入視訊都應採用 YCbCr 色彩格式。
上面提到的獲得的整體 XPSNR 值透過記錄系統列印。在具有多個色彩平面的輸入的情況下,我們建議報告最小 XPSNR 平均值。
接受以下參數,其行為類似於 psnr 濾波器的參數
- stats_file, f
如果指定,濾波器將使用指定的檔案來儲存每個個別影格和色彩平面的 XPSNR 值。當檔名等於 "-" 時,該資料會傳送到標準輸出。
此濾鏡也支援 framesync 選項。
11.292.1 範例
- 對兩個 1080p HD 視訊 ref_source.yuv 和 test_video.yuv 進行 XPSNR 分析,兩者均為每秒 24 個影格,色彩格式為 4:2:0,位元深度為 8,並輸出名為 "xpsnr.log" 的記錄檔
ffmpeg -s 1920x1080 -framerate 24 -pix_fmt yuv420p -i ref_source.yuv -s 1920x1080 -framerate 24 -pix_fmt yuv420p -i test_video.yuv -lavfi xpsnr="stats_file=xpsnr.log" -f null -
- 對兩個 2160p UHD 視訊 ref_source.yuv(位元深度為 8)和 test_video.yuv(位元深度為 10)進行 XPSNR 分析,兩者均為每秒 60 個影格,色彩格式為 4:2:0,無記錄檔輸出
ffmpeg -s 3840x2160 -framerate 60 -pix_fmt yuv420p -i ref_source.yuv -s 3840x2160 -framerate 60 -pix_fmt yuv420p10le -i test_video.yuv -lavfi xpsnr="stats_file=-" -f null -
11.293 xstack
將視訊輸入堆疊到自訂版面配置中。
所有串流都必須具有相同的像素格式。
濾鏡接受以下選項
- inputs
設定輸入串流的數量。預設值為 2。
- layout
指定輸入的版面配置。此選項需要使用者明確設定所需的版面配置配置。這會在輸出中設定每個視訊輸入的位置。每個輸入以 "|" 分隔。第一個數字表示列,第二個數字表示行。數字從 0 開始,並以 "_" 分隔。可以選擇性地使用 wX 和 hX,其中 X 是要從中取得寬度或高度的視訊輸入。當以 "+" 分隔時,可以使用多個值。在這種情況下,值會加總在一起。
請注意,如果輸入大小不同,則可能會出現間隙,因為並非所有輸出視訊影格都會被填滿。同樣地,如果視訊的位置沒有為相鄰視訊的完整影格留下足夠的空間,則視訊可能會彼此重疊。
對於 2 個輸入,預設版面配置為
0_0|w0_0
(相當於grid=2x1
)。在所有其他情況下,必須由使用者設定版面配置或網格。一次只能指定grid
或layout
。同時指定兩者將導致錯誤。- grid
指定固定大小的輸入網格。此選項用於建立輸入串流的固定大小網格。以
COLUMNSxROWS
形式設定網格大小。必須有ROWS * COLUMNS
個輸入串流,它們將排列為具有ROWS
行和COLUMNS
列的網格。使用此選項時,同一行中的每個輸入串流都必須具有相同的高度,並且所有行都必須具有相同的寬度。如果設定了
grid
,則inputs
選項會被忽略,並且隱含地設定為ROWS * COLUMNS
。對於 2 個輸入,預設網格為
2x1
(相當於layout=0_0|w0_0
)。在所有其他情況下,必須由使用者設定版面配置或網格。一次只能指定grid
或layout
。同時指定兩者將導致錯誤。- shortest
如果設定為 1,則強制輸出在最短的輸入終止時終止。預設值為 0。
- fill
如果設定為有效色彩,則所有未使用的像素都將填滿該色彩。預設情況下,fill 設定為 none,因此停用。
11.293.1 範例
- 將 4 個輸入顯示到 2x2 網格中。
Layout
input1(0, 0) | input3(w0, 0) input2(0, h0) | input4(w0, h0)
xstack=inputs=4:layout=0_0|0_h0|w0_0|w0_h0
請注意,如果輸入大小不同,則可能會發生間隙或重疊。
- 將 4 個輸入顯示到 1x4 網格中。
Layout
input1(0, 0) input2(0, h0) input3(0, h0+h1) input4(0, h0+h1+h2)
xstack=inputs=4:layout=0_0|0_h0|0_h0+h1|0_h0+h1+h2
請注意,如果輸入寬度不同,則會出現未使用的空間。
- 將 9 個輸入顯示到 3x3 網格中。
Layout
input1(0, 0) | input4(w0, 0) | input7(w0+w3, 0) input2(0, h0) | input5(w0, h0) | input8(w0+w3, h0) input3(0, h0+h1) | input6(w0, h0+h1) | input9(w0+w3, h0+h1)
xstack=inputs=9:layout=0_0|0_h0|0_h0+h1|w0_0|w0_h0|w0_h0+h1|w0+w3_0|w0+w3_h0|w0+w3_h0+h1
請注意,如果輸入大小不同,則可能會發生間隙或重疊。
- 將 16 個輸入顯示到 4x4 網格中。
Layout
input1(0, 0) | input5(w0, 0) | input9 (w0+w4, 0) | input13(w0+w4+w8, 0) input2(0, h0) | input6(w0, h0) | input10(w0+w4, h0) | input14(w0+w4+w8, h0) input3(0, h0+h1) | input7(w0, h0+h1) | input11(w0+w4, h0+h1) | input15(w0+w4+w8, h0+h1) input4(0, h0+h1+h2)| input8(w0, h0+h1+h2)| input12(w0+w4, h0+h1+h2)| input16(w0+w4+w8, h0+h1+h2)
xstack=inputs=16:layout=0_0|0_h0|0_h0+h1|0_h0+h1+h2|w0_0|w0_h0|w0_h0+h1|w0_h0+h1+h2|w0+w4_0| w0+w4_h0|w0+w4_h0+h1|w0+w4_h0+h1+h2|w0+w4+w8_0|w0+w4+w8_h0|w0+w4+w8_h0+h1|w0+w4+w8_h0+h1+h2
請注意,如果輸入大小不同,則可能會發生間隙或重疊。
11.294 yadif
解交錯輸入視訊("yadif" 代表 "yet another deinterlacing filter")。
它接受以下參數
- mode
mode
- 0, send_frame
mode
- 1, send_field
mode
- 2, send_frame_nospatial
與
send_frame
類似,但它會略過空間交錯檢查。- 3, send_field_nospatial
與
send_field
類似,但它會略過空間交錯檢查。
預設值為
send_frame
。- parity
parity
- 0, tff
parity
- 1, bff
parity
- -1, auto
parity
parity
- deint
deint
- 0, all
deint
- 1, interlaced
deint
deint
11.295 yadif_cuda
使用 yadif 演算法解交錯輸入視訊,但在 CUDA 中實作,使其可以作為 GPU 加速管線的一部分與 nvdec 和/或 nvenc 一起運作。
它接受以下參數
- mode
mode
- 0, send_frame
mode
- 1, send_field
mode
- 2, send_frame_nospatial
與
send_frame
類似,但它會略過空間交錯檢查。- 3, send_field_nospatial
與
send_field
類似,但它會略過空間交錯檢查。
預設值為
send_frame
。- parity
parity
- 0, tff
parity
- 1, bff
parity
- -1, auto
parity
parity
- deint
deint
- 0, all
deint
- 1, interlaced
deint
deint
11.296 yaepblur
套用模糊濾波器,同時保留邊緣("yaepblur" 代表 "yet another edge preserving blur filter")。該演算法在 "J. S. Lee, Digital image enhancement and noise filtering by use of local statistics, IEEE Trans. Pattern Anal. Mach. Intell. PAMI-2, 1980." 中描述。
它接受以下參數
- radius, r
設定視窗半徑。預設值為 3。
- planes, p
設定要濾波的平面。預設值僅為第一個平面。
- 設定要顯示的像素組件。預設情況下,顯示所有像素組件。
設定模糊強度。預設值為 128。
11.296.1 指令
blend
11.297 zoompan
套用縮放和搖攝效果。
此濾波器還能夠拉伸/壓縮音訊資料以使其與時間戳記匹配,或注入靜音/剪切音訊以使其與時間戳記匹配,執行兩者的組合或兩者都不執行。
- zoom, z
設定縮放表示式。範圍為 1-10。預設值為 1。
- x
- y
設定 x 和 y 表示式。預設值為 0。
- d
以影格數設定持續時間表示式。這會設定單個輸入影像的效果將持續多少影格。預設值為 90。
- s
設定輸出影像大小,預設值為 'hd720'。
- fps
設定輸出影格率,預設值為 '25'。
每個表示式都可以包含以下常數
- 設定 dnn 網路的輸出名稱。
輸入寬度。
- output
輸入高度。
- 輸出寬度,ow
輸出寬度。
- 輸出高度,oh
輸出高度。
- in
輸入影格計數。
- on
輸出影格計數。
- in_time, it
以秒為單位表示的輸入時間戳記。如果輸入時間戳記未知,則為 NAN。
- out_time, time, ot
以秒為單位表示的輸出時間戳記。
- x
- y
從目前輸入影格的 'x' 和 'y' 表示式中最後計算出的 'x' 和 'y' 位置。
- px
- py
先前輸入影格的最後一個輸出影格的 'x' 和 'y',或當尚無此影格時為 0(第一個輸入影格)。
- zoom
從目前輸入影格的 'z' 表示式中最後計算出的縮放。
- pzoom
先前輸入影格的最後一個輸出影格的最後計算出的縮放。
- duration
目前輸入影格的輸出影格數。從每個輸入影格的 'd' 表示式計算得出。
- pduration
為先前輸入影格建立的輸出影格數
- a
有理數:輸入寬度 / 輸入高度
- sar
樣本縱橫比
- dar
顯示縱橫比
11.297.1 範例
- 放大至 1.5 倍並同時搖攝至圖片中心附近的某個位置
zoompan=z='min(zoom+0.0015,1.5)':d=700:x='if(gte(zoom,1.5),x,x+1/a)':y='if(gte(zoom,1.5),y,y+1)':s=640x360
- 放大至 1.5 倍並始終搖攝至圖片中心
zoompan=z='min(zoom+0.0015,1.5)':d=700:x='iw/2-(iw/zoom/2)':y='ih/2-(ih/zoom/2)'
- 與上述相同,但不暫停
zoompan=z='min(max(zoom,pzoom)+0.0015,1.5)':d=1:x='iw/2-(iw/zoom/2)':y='ih/2-(ih/zoom/2)'
- 僅在輸入視訊的第一秒將圖片中心放大 2 倍
zoompan=z='if(between(in_time,0,1),2,1)':d=1:x='iw/2-(iw/zoom/2)':y='ih/2-(ih/zoom/2)'
11.298 zscale
使用 z.lib 程式庫縮放(調整大小)輸入視訊:https://github.com/sekrit-twc/zimg。若要啟用此濾波器的編譯,您需要使用 --enable-libzimg
配置 FFmpeg。
zscale 濾波器透過變更輸出樣本縱橫比,強制輸出顯示縱橫比與輸入相同。
如果輸入影像格式與下一個濾波器要求的格式不同,則 zscale 濾波器會將輸入轉換為要求的格式。
11.298.1 選項
bm3d
- width, w
- 超出範圍的像素將被鏡像像素替換。
設定輸出視訊尺寸表達式。預設值為輸入尺寸。
如果 width 或 w 值為 0,則輸出會使用輸入寬度。如果 height 或 h 值為 0,則輸出會使用輸入高度。
如果只有一個值為 -n 且 n >= 1,則 zscale 濾波器將使用一個值來維持輸入影像的縱橫比,該值是根據另一個指定的尺寸計算得出的。之後,它將確保計算出的尺寸可被 n 整除,並在必要時調整該值。
如果兩個值都是 -n 且 n >= 1,則行為將與先前詳細說明的兩個值都設定為 0 相同。
請參閱下文,以取得可用於尺寸表達式的已接受常數清單。
- size, s
設定視訊尺寸。如需此選項的語法,請查看 (ffmpeg-utils) ffmpeg-utils 手冊中的「視訊尺寸」章節。
- dither, d
設定顫色類型。
analyze
- none
- ordered
- random
- error_diffusion
預設值為 none。
- filter, f
設定調整大小濾波器類型。
analyze
- point
- 雙線性
- 雙立方
- spline16
- spline36
- 蘭索斯
預設值為雙線性。
- 使用位元數設定 blocksize。
1<<n
定義 blocksize,它是處理區塊的寬度和高度。 設定色彩範圍。
analyze
- 頂場優先
- limited
- full
預設值與輸入相同。
- primaries, p
設定色彩原色。
analyze
- 頂場優先
- 709
- unspecified
- 170m
- 240m
- 2020
預設值與輸入相同。
- transfer, t
設定傳輸特性。
analyze
- 頂場優先
- 709
- unspecified
- 601
- linear
- 2020_10
- 2020_12
- smpte2084
- trc
- arib-std-b67
預設值與輸入相同。
- matrix, m
設定色彩空間矩陣。
可能的值為
- 頂場優先
- 709
- unspecified
- 470bg
- 170m
- 2020_ncl
- 2020_cl
預設值與輸入相同。
- rangein, rin
設定輸入色彩範圍。
analyze
- 頂場優先
- limited
- full
預設值與輸入相同。
- primariesin, pin
設定輸入色彩原色。
analyze
- 頂場優先
- 709
- unspecified
- 170m
- 240m
- 2020
預設值與輸入相同。
- transferin, tin
設定輸入傳輸特性。
analyze
- 頂場優先
- 709
- unspecified
- 601
- linear
- 2020_10
- 2020_12
預設值與輸入相同。
- matrixin, min
設定輸入色彩空間矩陣。
可能的值為
- 頂場優先
- 709
- unspecified
- 470bg
- 170m
- 2020_ncl
- 2020_cl
- chromal, c
設定輸出色度位置。
analyze
- 頂場優先
- left
- center
- topleft
- top
- bottomleft
- bottom
- chromalin, cin
設定輸入色度位置。
analyze
- 頂場優先
- left
- center
- topleft
- top
- bottomleft
- bottom
- npl
設定標稱峰值亮度。
- param_a
縮放濾波器的參數 A。雙三次的參數 "b" 和 lanczos 的濾波器抽頭數。
- param_b
縮放濾波器的參數 B。雙三次的參數 "c"。
w 和 h 選項的值是包含以下常數的表達式
- in_w
- in_h
輸入寬度和高度
- iw
- ih
這些與 in_w 和 in_h 相同。
- out_w
- out_h
輸出(縮放)寬度和高度
- ow
- oh
這些與 out_w 和 out_h 相同
- a
與 iw / ih 相同
- sar
輸入樣本縱橫比
- dar
輸入顯示縱橫比。從
(iw / ih) * sar
計算得出。- hsub
- vsub
水平和垂直輸入色度子取樣值。例如,對於像素格式 "yuv422p",hsub 為 2,vsub 為 1。
- ohsub
- ovsub
水平和垂直輸出色度子取樣值。例如,對於像素格式 "yuv422p",hsub 為 2,vsub 為 1。
11.298.2 指令
此濾波器支援以下指令
- width, w
- 超出範圍的像素將被鏡像像素替換。
設定輸出視訊尺寸表達式。此命令接受與對應選項相同的語法。
如果指定的表達式無效,則會保持其目前值。
12 OpenCL 視訊濾鏡
以下是目前可用的 OpenCL 視訊濾波器的說明。
若要啟用這些濾波器的編譯,您需要使用 --enable-opencl
配置 FFmpeg。
執行 OpenCL 濾波器需要您初始化硬體裝置,並將該裝置傳遞給任何濾波器圖形中的所有濾波器。
- -init_hw_device opencl[=name][:device[,key=value...]]
使用給定的裝置參數,初始化名為 name 的 opencl 類型的新硬體裝置。
- -filter_hw_device name
將名為 name 的硬體裝置傳遞給任何濾波器圖形中的所有濾波器。
如需更詳細的資訊,請參閱 https://www.ffmpeg.org/ffmpeg.html#Advanced-Video-options
- 在第二個平台上選擇第一個裝置並在其上執行具有預設參數的 avgblur_opencl 濾波器的範例。
-init_hw_device opencl=gpu:1.0 -filter_hw_device gpu -i INPUT -vf "hwupload, avgblur_opencl, hwdownload" OUTPUT
由於 OpenCL 濾波器無法存取正常記憶體中的影格資料,因此所有影格資料都需要上傳 (hwupload) 到連接到適當裝置的硬體表面,然後下載 (hwdownload) 回到正常記憶體。請注意,hwupload 將上傳到具有與軟體影格相同版面配置的表面,因此可能需要在前面立即新增 format 濾波器,以使輸入進入正確的格式,並且 hwdownload 不支援輸出上的所有格式 - 可能需要在圖形中緊接在後面插入額外的 format 濾波器,以使輸出進入支援的格式。
12.1 avgblur_opencl
avgblur
濾鏡接受以下選項
- sizeX
設定水平半徑大小。範圍為
[1, 1024]
,預設值為1
。- planes
設定要濾波的平面。預設值為
0xf
,表示處理所有平面。- sizeY
設定垂直半徑大小。範圍為
[1, 1024]
,預設值為0
。如果為零,則將使用sizeX
值。
12.1.1 範例
- 套用平均模糊濾波器,水平和垂直大小為 3,將輸出的每個像素設定為輸入中以其為中心的 7x7 區域的平均值。對於影像邊緣上的像素,區域不會超出影像邊界,因此不會在計算中使用超出範圍的座標。
-i INPUT -vf "hwupload, avgblur_opencl=3, hwdownload" OUTPUT
12.2 boxblur_opencl
boxblur
它接受以下參數
- luma_radius, lr
- luma_power, lp
- chroma_radius, cr
- chroma_power, cp
- alpha_radius, ar
- alpha_power, ap
以下是接受選項的描述。
- luma_radius, lr
- chroma_radius, cr
- alpha_radius, ar
boxblur
boxblur
boxblur
boxblur
- f
- h
w
- cw
- 新增脈衝訊號。
boxblur
- hsub
- vsub
boxblur
- luma_power, lp
- chroma_power, cp
- alpha_power, ap
boxblur
boxblur
boxblur
12.2.1 範例
套用方框模糊濾波器,將輸出的每個像素設定為每個平面的方框半徑 luma_radius、chroma_radius、alpha_radius 的平均值。濾波器將對應的平面上套用 luma_power、chroma_power、alpha_power 次。對於影像邊緣上的像素,半徑不會超出影像邊界,因此不會在計算中使用超出範圍的座標。
- 套用方框模糊濾波器,亮度、色度和 Alpha 半徑設定為 2,亮度、色度和 Alpha 強度設定為 3。濾波器將對影像的每個平面執行 3 次,方框半徑設定為 2。
-i INPUT -vf "hwupload, boxblur_opencl=luma_radius=2:luma_power=3, hwdownload" OUTPUT -i INPUT -vf "hwupload, boxblur_opencl=2:3, hwdownload" OUTPUT
- 套用方框模糊濾波器,亮度半徑設定為 2,亮度強度為 1,色度半徑為 4,色度強度為 5,Alpha 半徑為 3,Alpha 強度為 7。
對於亮度平面,將執行一次 2x2 方框半徑。
對於色度平面,將執行 5 次 4x4 方框半徑。
對於 Alpha 平面,將執行 7 次 3x3 方框半徑。
-i INPUT -vf "hwupload, boxblur_opencl=2:1:4:5:3:7, hwdownload" OUTPUT
12.3 colorkey_opencl
RGB 色彩空間色彩鍵控。
濾鏡接受以下選項
- color
color
- similarity
similarity
chromakey
- blend
blend
chromakey
chromakey
12.3.1 範例
- 使輸入中每個半綠色像素都變成透明,並帶有一些輕微的混合
-i INPUT -vf "hwupload, colorkey_opencl=green:0.3:0.1, hwdownload" OUTPUT
12.4 convolution_opencl
套用 3x3、5x5、7x7 矩陣的卷積。
濾鏡接受以下選項
- 0m
- 1m
- 2m
- 3m
設定每個平面的矩陣。矩陣是 9、25 或 49 個帶號數字的序列。每個平面的預設值為
0 0 0 0 1 0 0 0 0
。- 0rdiv
- 1rdiv
- 2rdiv
- 3rdiv
設定每個平面的計算值的乘數。如果未設定或為 0,則它將是所有矩陣元素的總和。選項值必須是等於或大於
0.0
的浮點數。預設值為1.0
。- 0bias
- 1bias
- 2偏移量
- 3偏移量
設定每個平面的偏移量。此值會新增到乘法的結果。適用於使整體影像更亮或更暗。選項值必須是等於或大於
0.0
的浮點數。預設值為0.0
。
12.4.1 範例
- 套用銳化
-i INPUT -vf "hwupload, convolution_opencl=0 -1 0 -1 5 -1 0 -1 0:0 -1 0 -1 5 -1 0 -1 0:0 -1 0 -1 5 -1 0 -1 0:0 -1 0 -1 5 -1 0 -1 0, hwdownload" OUTPUT
- 套用模糊
-i INPUT -vf "hwupload, convolution_opencl=1 1 1 1 1 1 1 1 1:1 1 1 1 1 1 1 1 1:1 1 1 1 1 1 1 1 1:1 1 1 1 1 1 1 1 1:1/9:1/9:1/9:1/9, hwdownload" OUTPUT
- 套用邊緣增強
-i INPUT -vf "hwupload, convolution_opencl=0 0 0 -1 1 0 0 0 0:0 0 0 -1 1 0 0 0 0:0 0 0 -1 1 0 0 0 0:0 0 0 -1 1 0 0 0 0:5:1:1:1:0:128:128:128, hwdownload" OUTPUT
- 套用邊緣偵測
-i INPUT -vf "hwupload, convolution_opencl=0 1 0 1 -4 1 0 1 0:0 1 0 1 -4 1 0 1 0:0 1 0 1 -4 1 0 1 0:0 1 0 1 -4 1 0 1 0:5:5:5:1:0:128:128:128, hwdownload" OUTPUT
- 套用包含對角線的拉普拉斯邊緣偵測器
-i INPUT -vf "hwupload, convolution_opencl=1 1 1 1 -8 1 1 1 1:1 1 1 1 -8 1 1 1 1:1 1 1 1 -8 1 1 1 1:1 1 1 1 -8 1 1 1 1:5:5:5:1:0:128:128:0, hwdownload" OUTPUT
- 套用浮雕
-i INPUT -vf "hwupload, convolution_opencl=-2 -1 0 -1 1 1 0 1 2:-2 -1 0 -1 1 1 0 1 2:-2 -1 0 -1 1 1 0 1 2:-2 -1 0 -1 1 1 0 1 2, hwdownload" OUTPUT
12.5 erosion_opencl
將侵蝕效果套用於視訊。
此濾鏡將像素替換為局部 (3x3) 最小值。
設定視窗長度,以樣本為單位。預設值為 2048。允許範圍為 32 到 65536。
- noise
- 設定執行除法時的雜訊。預設值為 0.0000001。當寬度和高度不相同且不是 2 的冪,或者卷積之前的串流有雜訊時很有用。
deconvolve
濾鏡也支援 framesync 選項。- 減少視訊中的交叉亮度(點爬行)和交叉顏色(彩虹)。
限制每個平面的最大變更。範圍為
[0, 65535]
,預設值為65535
。如果為0
,則平面將保持不變。- filename
旗標,指定要參考的像素。範圍為
[0, 255]
,預設值為255
,即使用所有八個像素。旗標到以
x
為中心的本機 3x3 座標區域1 2 3
4 x 5
6 7 8
12.5.1 範例
- 套用侵蝕濾波器,閾值 0 設定為 30,閾值 1 設定為 40,閾值 2 設定為 50,座標設定為 231,將輸出的每個像素設定為輸入中以其為中心的 3x3 區域的像素 1、2、3、6、7、8 之間的本機最小值。如果輸入像素與本機最小值之間的差異大於對應平面的閾值,則輸出像素將設定為輸入像素 - 對應平面的閾值。
-i INPUT -vf "hwupload, erosion_opencl=30:40:50:coordinates=231, hwdownload" OUTPUT
12.6 deshake_opencl
基於特徵點的視訊穩定濾波器。
濾鏡接受以下選項
- tripod
透過防止原始影格中的任何攝影機運動來模擬三腳架。預設值為
0
。- debug
是否應顯示額外的偵錯資訊,包括在處理後的輸出中和在主控台中。
請注意,為了查看主控台偵錯輸出,您還需要將
-v verbose
傳遞給 ffmpeg。僅 RGB 輸入支援在輸出視訊中檢視點匹配。
預設值為
0
。- adaptive_crop
是否在邊框處進行少量裁切,以減少鏡像像素的數量。
預設值為
1
。- refine_features
是否應在子像素層級細化特徵點。
可以關閉此功能以稍微提高效能,但會犧牲精確度。
預設值為
1
。- smooth_strength
套用至攝影機路徑的平滑強度,從
0.0
到1.0
。1.0
是最大平滑強度,而小於該值的值會導致平滑度降低。0.0
會使濾波器根據每個影格自適應地選擇平滑強度。預設值為
0.0
。- smooth_window_multiplier
控制平滑視窗的大小(緩衝以從中判斷運動資訊的影格數)。
平滑視窗的大小是透過將視訊的影格率乘以該數字來決定的。
可接受的值範圍為
0.1
到10.0
。較大的值會增加可用於判斷如何平滑攝影機路徑的運動資料量,從而可能提高平滑度,但也增加了延遲和記憶體使用量。
預設值為
2.0
。
12.6.1 範例
- 使用固定的中等平滑強度穩定視訊
-i INPUT -vf "hwupload, deshake_opencl=smooth_strength=0.5, hwdownload" OUTPUT
- 使用偵錯(在主控台和呈現的視訊中)穩定視訊
-i INPUT -filter_complex "[0:v]format=rgba, hwupload, deshake_opencl=debug=1, hwdownload, format=rgba, format=yuv420p" -v verbose OUTPUT
12.7 dilation_opencl
預設值為 ‘exhaustive’。
logfile
設定視窗長度,以樣本為單位。預設值為 2048。允許範圍為 32 到 65536。
- noise
- 設定執行除法時的雜訊。預設值為 0.0000001。當寬度和高度不相同且不是 2 的冪,或者卷積之前的串流有雜訊時很有用。
deconvolve
濾鏡也支援 framesync 選項。- 減少視訊中的交叉亮度(點爬行)和交叉顏色(彩虹)。
限制每個平面的最大變更。範圍為
[0, 65535]
,預設值為65535
。如果為0
,則平面將保持不變。- filename
旗標,指定要參考的像素。範圍為
[0, 255]
,預設值為255
,即使用所有八個像素。旗標到以
x
為中心的本機 3x3 座標區域1 2 3
4 x 5
6 7 8
12.7.1 範例
- 套用膨脹濾波器,閾值 0 設定為 30,閾值 1 設定為 40,閾值 2 設定為 50,座標設定為 231,將輸出的每個像素設定為輸入中以其為中心的 3x3 區域的像素 1、2、3、6、7、8 之間的本機最大值。如果輸入像素與本機最大值之間的差異大於對應平面的閾值,則輸出像素將設定為輸入像素 + 對應平面的閾值。
-i INPUT -vf "hwupload, dilation_opencl=30:40:50:coordinates=231, hwdownload" OUTPUT
12.8 nlmeans_opencl
透過 OpenCL 的非本機均值去噪濾波器,此濾波器接受與 nlmeans 相同的選項。
12.9 overlay_opencl
將一個視訊覆蓋在另一個視訊之上。
它採用兩個輸入,並具有一個輸出。第一個輸入是「主要」視訊,第二個輸入覆蓋在其上。此濾波器要求所有輸入都具有相同的記憶體版面配置。因此,可能需要格式轉換。
濾鏡接受以下選項
- x
設定覆蓋視訊在主要視訊上的 x 座標。預設值為
0
。- y
設定覆蓋視訊在主要視訊上的 y 座標。預設值為
0
。
12.9.1 範例
- 將影像 LOGO 覆蓋在 INPUT 視訊的左上角。兩個輸入都是 yuv420p 格式。
-i INPUT -i LOGO -filter_complex "[0:v]hwupload[a], [1:v]format=yuv420p, hwupload[b], [a][b]overlay_opencl, hwdownload" OUTPUT
- 輸入具有色彩通道的相同記憶體版面配置,覆蓋圖具有額外的 Alpha 平面,例如 INPUT 為 yuv420p,LOGO 為 yuva420p。
-i INPUT -i LOGO -filter_complex "[0:v]hwupload[a], [1:v]format=yuva420p, hwupload[b], [a][b]overlay_opencl, hwdownload" OUTPUT
12.10 pad_opencl
將填充新增至輸入影像,並將原始輸入放置在提供的 x、y 坐標處。
設定視窗長度,以樣本為單位。預設值為 2048。允許範圍為 32 到 65536。
- width, w
- 超出範圍的像素將被鏡像像素替換。
指定輸出影像大小的表達式,並新增填充。如果 width 或 height 的值為 0,則輸出將使用對應的輸入大小。
width 表達式可以參考 height 表達式設定的值,反之亦然。
width 和 height 的預設值為 0。
- x
- y
指定在填充區域內放置輸入影像的偏移量,相對於輸出影像的頂部/左側邊框。
x 表達式可以參考 y 表達式設定的值,反之亦然。
x 和 y 的預設值為 0。
如果 x 或 y 評估為負數,則會變更它們,使輸入影像在填充區域中居中。
- color
指定填充區域的色彩。有關此選項的語法,請查看 ffmpeg-utils 手冊中的 "(ffmpeg-utils)「Color」章節"。
- aspect
填充到縱橫比而不是解析度。
width、height、x 和 y 選項的值是包含以下常數的表達式
- in_w
- in_h
輸入視訊寬度和高度。
- iw
- ih
這些與 in_w 和 in_h 相同。
- out_w
- out_h
輸出寬度和高度(填充區域的大小),如 width 和 height 表達式所指定。
- ow
- oh
這些與 out_w 和 out_h 相同。
- x
- y
x 和 y 偏移量,如 x 和 y 表達式所指定,如果尚未指定,則為 NAN。
- a
與 iw / ih 相同
- sar
輸入樣本縱橫比
- dar
輸入顯示縱橫比,它與 (iw / ih) * sar 相同
12.11 prewitt_opencl
將 Prewitt 運算子 (https://en.wikipedia.org/wiki/Prewitt_operator) 套用至輸入視訊串流。
stages
- planes
設定要濾波的平面。預設值為
0xf
,表示處理所有平面。- scale
設定將與已篩選結果相乘的值。範圍為
[0.0, 65535]
,預設值為1.0
。- delta
設定將新增到已篩選結果的值。範圍為
[-65535, 65535]
,預設值為0.0
。
12.11.1 範例
- 套用 Prewitt 運算子,比例設定為 2,delta 設定為 10。
-i INPUT -vf "hwupload, prewitt_opencl=scale=2:delta=10, hwdownload" OUTPUT
12.12 program_opencl
使用 OpenCL 程式濾波視訊。
- source
OpenCL 程式原始碼檔案。
- kernel
程式中的核心名稱。
- inputs
濾波器的輸入數量。預設值為 1。
- size, s
輸出影格的大小。預設值與第一個輸入相同。
program_opencl
濾波器也支援 framesync 選項。
程式原始碼檔案必須包含具有給定名稱的核心函數,該函數將針對輸出的每個平面執行一次。在平面上執行的每次執行都會排入佇列,作為單獨的 2D 全域 NDRange,每個像素都有一個工作項目要產生。因此,每個工作項目的全域 ID 偏移量是目的地影像中像素的座標。
核心函數需要採用以下引數
- 目的地影像,__write_only image2d_t。
此影像將成為輸出;核心應寫入所有內容。
- 影格索引,unsigned int。
這是一個從零開始計數的計數器,每個影格遞增 1。
- 來源影像,__read_only image2d_t。
這些是每個輸入上最新的影像。核心可以從中讀取以產生輸出,但不能寫入它們。
範例程式
- 將輸入複製到輸出(輸出必須與輸入大小相同)。
__kernel void copy(__write_only image2d_t destination, unsigned int index, __read_only image2d_t source) { const sampler_t sampler = CLK_NORMALIZED_COORDS_FALSE; int2 location = (int2)(get_global_id(0), get_global_id(1)); float4 value = read_imagef(source, sampler, location); write_imagef(destination, location, value); }
- 套用簡單的變換,將輸入旋轉一個量,該量隨著索引計數器而增加。像素值由取樣器線性插值,並且輸出不必與輸入具有相同的尺寸。
__kernel void rotate_image(__write_only image2d_t dst, unsigned int index, __read_only image2d_t src) { const sampler_t sampler = (CLK_NORMALIZED_COORDS_FALSE | CLK_FILTER_LINEAR); float angle = (float)index / 100.0f; float2 dst_dim = convert_float2(get_image_dim(dst)); float2 src_dim = convert_float2(get_image_dim(src)); float2 dst_cen = dst_dim / 2.0f; float2 src_cen = src_dim / 2.0f; int2 dst_loc = (int2)(get_global_id(0), get_global_id(1)); float2 dst_pos = convert_float2(dst_loc) - dst_cen; float2 src_pos = { cos(angle) * dst_pos.x - sin(angle) * dst_pos.y, sin(angle) * dst_pos.x + cos(angle) * dst_pos.y }; src_pos = src_pos * src_dim / dst_dim; float2 src_loc = src_pos + src_cen; if (src_loc.x < 0.0f || src_loc.y < 0.0f || src_loc.x > src_dim.x || src_loc.y > src_dim.y) write_imagef(dst, dst_loc, 0.5f); else write_imagef(dst, dst_loc, read_imagef(src, sampler, src_loc)); }
- 將兩個輸入混合在一起,每個輸入的使用量隨索引計數器而變化。
__kernel void blend_images(__write_only image2d_t dst, unsigned int index, __read_only image2d_t src1, __read_only image2d_t src2) { const sampler_t sampler = (CLK_NORMALIZED_COORDS_FALSE | CLK_FILTER_LINEAR); float blend = (cos((float)index / 50.0f) + 1.0f) / 2.0f; int2 dst_loc = (int2)(get_global_id(0), get_global_id(1)); int2 src1_loc = dst_loc * get_image_dim(src1) / get_image_dim(dst); int2 src2_loc = dst_loc * get_image_dim(src2) / get_image_dim(dst); float4 val1 = read_imagef(src1, sampler, src1_loc); float4 val2 = read_imagef(src2, sampler, src2_loc); write_imagef(dst, dst_loc, val1 * blend + val2 * (1.0f - blend)); }
12.13 remap_opencl
使用第二個:Xmap 和第三個:Ymap 輸入視訊串流重新映射像素。
位置 (X, Y) 的目標像素將從來源 (x, y) 位置選取,其中 x = Xmap(X, Y) 且 y = Ymap(X, Y)。如果映射值超出範圍,目標像素將使用零值。
Xmap 和 Ymap 輸入視訊串流必須具有相同的尺寸。輸出視訊串流將具有 Xmap/Ymap 視訊串流尺寸。Xmap 和 Ymap 輸入視訊串流為 32 位元浮點像素格式,單通道。
- interp
指定用於像素重新映射的插值。允許值為
near
和linear
。預設值為linear
。- fill
指定未映射像素的色彩。有關此選項的語法,請查看 ffmpeg-utils 手冊中的 "(ffmpeg-utils)「Color」章節"。預設色彩為
black
。
12.14 roberts_opencl
將 Roberts 交叉運算子 (https://en.wikipedia.org/wiki/Roberts_cross) 套用至輸入視訊串流。
stages
- planes
設定要濾波的平面。預設值為
0xf
,表示處理所有平面。- scale
設定將與已篩選結果相乘的值。範圍為
[0.0, 65535]
,預設值為1.0
。- delta
設定將新增到已篩選結果的值。範圍為
[-65535, 65535]
,預設值為0.0
。
12.14.1 範例
- 套用 Roberts 交叉運算子,比例設定為 2,delta 設定為 10
-i INPUT -vf "hwupload, roberts_opencl=scale=2:delta=10, hwdownload" OUTPUT
12.15 sobel_opencl
將 Sobel 運算子 (https://en.wikipedia.org/wiki/Sobel_operator) 套用至輸入視訊串流。
stages
- planes
設定要濾波的平面。預設值為
0xf
,表示處理所有平面。- scale
設定將與已篩選結果相乘的值。範圍為
[0.0, 65535]
,預設值為1.0
。- delta
設定將新增到已篩選結果的值。範圍為
[-65535, 65535]
,預設值為0.0
。
12.15.1 範例
- 套用 sobel 運算子,比例設定為 2,delta 設定為 10
-i INPUT -vf "hwupload, sobel_opencl=scale=2:delta=10, hwdownload" OUTPUT
12.16 tonemap_opencl
執行 HDR(PQ/HLG) 到 SDR 轉換,並進行色調映射。
它接受以下參數
- tonemap
指定要使用的色調映射運算子。與 tonemap 中的 tonemap 選項相同。
- 每個資料平面的 Adler-32 檢查碼列表。
調整色調映射演算法。與 tonemap 中的 param 選項相同。
- desat
對亮度超過此水平的亮部套用去飽和處理。參數越高,保留的色彩資訊就越多。此設定有助於防止超亮部出現不自然的過曝色彩,而是(平滑地)變成白色。這使得影像感覺更自然,但會犧牲有關超出範圍色彩的資訊。
預設值為 0.5,此處的演算法與目前 CPU 版本的色調映射略有不同。設定為 0.0 會停用此選項。
- threshold
色調映射演算法參數針對每個場景進行微調。並使用閾值來偵測場景是否已變更。如果目前影格平均亮度與目前執行平均值之間的距離超過閾值,我們將重新計算場景平均值和峰值亮度。預設值為 0.2。
- format
指定輸出像素格式。
目前支援的格式為
- p010
- nv12
- 使用位元數設定 blocksize。
1<<n
定義 blocksize,它是處理區塊的寬度和高度。 設定輸出色彩範圍。
analyze
- tv/mpeg
- pc/jpeg
預設值與輸入相同。
- primaries, p
設定輸出原色。
analyze
- bt709
- bt2020
預設值與輸入相同。
- transfer, t
設定輸出傳輸特性。
analyze
- bt709
- bt2020
預設值為 bt709。
- matrix, m
設定輸出色彩空間矩陣。
可能的值為
- bt709
- bt2020
預設值與輸入相同。
12.16.1 範例
- 使用線性運算子將 HDR(PQ/HLG) 視訊轉換為 bt2020-transfer-characteristic p010 格式。
-i INPUT -vf "format=p010,hwupload,tonemap_opencl=t=bt2020:tonemap=linear:format=p010,hwdownload,format=p010" OUTPUT
12.17 unsharp_opencl
銳化或模糊輸入視訊。
它接受以下參數
- luma_msize_x, lx
設定亮度矩陣水平尺寸。範圍為
[1, 23]
,預設值為5
。- luma_msize_y, ly
設定亮度矩陣垂直尺寸。範圍為
[1, 23]
,預設值為5
。- luma_amount, la
設定亮度效果強度。範圍為
[-10, 10]
,預設值為1.0
。負值將模糊輸入視訊,而正值將銳化它,值為零將停用效果。
- chroma_msize_x, cx
設定色度矩陣水平尺寸。範圍為
[1, 23]
,預設值為5
。- chroma_msize_y, cy
設定色度矩陣垂直尺寸。範圍為
[1, 23]
,預設值為5
。- chroma_amount, ca
設定色度效果強度。範圍為
[-10, 10]
,預設值為0.0
。負值將模糊輸入視訊,而正值將銳化它,值為零將停用效果。
所有參數都是可選的,預設值相當於字串「5:5:1.0:5:5:0.0」。
12.17.1 範例
- 套用強烈的亮度銳化效果
-i INPUT -vf "hwupload, unsharp_opencl=luma_msize_x=7:luma_msize_y=7:luma_amount=2.5, hwdownload" OUTPUT
- 對亮度和色度參數套用強烈的模糊效果
-i INPUT -vf "hwupload, unsharp_opencl=7:7:-2:7:7:-2, hwdownload" OUTPUT
12.18 xfade_opencl
使用 OpenCL 以自訂轉場效果淡入淡出兩個影片。
設定視窗長度,以樣本為單位。預設值為 2048。允許範圍為 32 到 65536。
- transition
設定其中一種可能的轉場效果。
- 自訂
選擇自訂轉場效果,實際轉場描述將從來源和核心選項中選取。
- 淡入淡出
- 向左擦拭
- 向右擦拭
- 向上擦拭
- 向下擦拭
- 向左滑動
- 向右滑動
- 向上滑動
- 向下滑動
-
預設轉場效果為淡入淡出。
- source
用於自訂轉場的 OpenCL 程式原始碼檔案。
- kernel
設定要用於自訂轉場的核心名稱,從程式原始碼檔案中選取。
- duration
設定影片轉場的持續時間。
- offset
設定轉場開始時間,相對於第一個影片。
程式原始碼檔案必須包含具有給定名稱的核心函數,該函數將針對輸出的每個平面執行一次。在平面上執行的每次執行都會排入佇列,作為單獨的 2D 全域 NDRange,每個像素都有一個工作項目要產生。因此,每個工作項目的全域 ID 偏移量是目的地影像中像素的座標。
核心函數需要採用以下引數
- 目的地影像,__write_only image2d_t。
此影像將成為輸出;核心應寫入所有內容。
- 第一個來源影像,__read_only image2d_t。第二個來源影像,__read_only image2d_t。
這些是每個輸入上最新的影像。核心可以從中讀取以產生輸出,但不能寫入它們。
- 轉場進度,float。此值始終介於 0 和 1 之間(包含 0 和 1)。
範例程式
- 套用點狀幕簾轉場效果
__kernel void blend_images(__write_only image2d_t dst, __read_only image2d_t src1, __read_only image2d_t src2, float progress) { const sampler_t sampler = (CLK_NORMALIZED_COORDS_FALSE | CLK_FILTER_LINEAR); int2 p = (int2)(get_global_id(0), get_global_id(1)); float2 rp = (float2)(get_global_id(0), get_global_id(1)); float2 dim = (float2)(get_image_dim(src1).x, get_image_dim(src1).y); rp = rp / dim; float2 dots = (float2)(20.0, 20.0); float2 center = (float2)(0,0); float2 unused; float4 val1 = read_imagef(src1, sampler, p); float4 val2 = read_imagef(src2, sampler, p); bool next = distance(fract(rp * dots, &unused), (float2)(0.5, 0.5)) < (progress / distance(rp, center)); write_imagef(dst, p, next ? val1 : val2); }
13 VAAPI 視訊濾鏡
VAAPI 影片濾鏡通常與 VAAPI 解碼器和 VAAPI 編碼器一起使用。以下是 VAAPI 影片濾鏡的描述。
若要啟用這些濾鏡的編譯,您需要使用 --enable-vaapi
設定 FFmpeg。
若要使用 vaapi 濾鏡,您需要正確設定 vaapi 裝置。如需更多資訊,請閱讀 https://trac.ffmpeg.org/wiki/Hardware/VAAPI
13.1 overlay_vaapi
將一個影片疊加在另一個影片的頂部。
它接受兩個輸入並具有一個輸出。第一個輸入是「主要」視訊,第二個輸入覆蓋在該視訊之上。
濾鏡接受以下選項
- x
- y
設定主要視訊上覆蓋視訊的 x 和 y 坐標的表達式。
兩個表達式的預設值均為 "0"。
- f
- h
設定疊加在主影片上的影片寬度和高度的表達式。
預設值中,寬度 'w' 為 'overlay_iw',高度 'h' 為 'overlay_ih*w/overlay_iw'。
表達式可以包含以下參數
- main_w, W
- main_h, H
主要輸入寬度和高度。
- overlay_iw
- overlay_ih
覆蓋輸入寬度和高度。
- overlay_w, w
- overlay_h, h
疊加輸出的寬度和高度。
- overlay_x, x
- overlay_y, y
疊加圖層在主圖層內的位置
- range, r
設定疊加影片的透明度。允許範圍為 0.0 到 1.0。值越高表示透明度越低。預設值為
1.0
。- eof_action
請參閱 framesync。
- shortest
請參閱 framesync。
- repeatlast
請參閱 framesync。
此濾鏡也支援 framesync 選項。
13.1.1 範例
- 將影像 LOGO 疊加在輸入影片的左上角。此濾鏡的兩個輸入皆為 yuv420p 格式。
-i INPUT -i LOGO -filter_complex "[0:v]hwupload[a], [1:v]format=yuv420p, hwupload[b], [a][b]overlay_vaapi" OUTPUT
- 將影像 LOGO 疊加在輸入影片左上角偏移 (200, 100) 的位置。輸入具有相同的顏色通道記憶體佈局,疊加具有額外的 alpha 平面,例如輸入為 yuv420p,而 LOGO 為 yuva420p。
-i INPUT -i LOGO -filter_complex "[0:v]hwupload[a], [1:v]format=yuva420p, hwupload[b], [a][b]overlay_vaapi=x=200:y=100:w=400:h=300:alpha=1.0, hwdownload, format=nv12" OUTPUT
13.2 tonemap_vaapi
執行 HDR 到 SDR 或 HDR 到 HDR 色調映射。目前僅接受 HDR10 作為輸入。
它接受以下參數
- format
指定輸出像素格式。
HDR 到 SDR 色調映射的預設值為 nv12,HDR 到 HDR 色調映射的預設值為 p010。
- primaries, p
設定輸出原色。
HDR 到 SDR 色調映射的預設值為 bt709,HDR 到 HDR 色調映射的預設值與輸入相同。
- transfer, t
設定輸出傳輸特性。
HDR 到 SDR 色調映射的預設值為 bt709,HDR 到 HDR 色調映射的預設值與輸入相同。
- matrix, m
設定輸出色彩空間矩陣。
HDR 到 SDR 色調映射的預設值為 bt709,HDR 到 HDR 色調映射的預設值與輸入相同。
- 顯示
設定輸出母帶顯示器色彩容量。它由以 '|' 分隔的兩個值列表給出,兩個值之間以空格分隔。它依序設定 G、B、R 中的顯示器原色 x 和 y,然後是白點 x 和 y,以及標稱最小和最大顯示器亮度。
當設定此選項時,將執行 HDR 到 HDR 色調映射。
- 光線
設定輸出內容光線等級資訊。它接受 2 個以空格分隔的值,第一個輸入是最大光線等級,第二個輸入是最大平均光線等級。
對於 HDR 到 SDR 色調映射會忽略此選項,對於 HDR 到 HDR 色調映射則為可選。
13.2.1 範例
- 將 HDR(HDR10)影片轉換為 bt2020 傳輸特性 p010 格式
tonemap_vaapi=format=p010:t=bt2020-10
- 將 HDR 影片轉換為 HDR 影片
tonemap_vaapi=display=7500\ 3000|34000\ 16000|13250\ 34500|15635\ 16450|500\ 10000000
13.3 hstack_vaapi
水平堆疊輸入影片。
這是 hstack 濾鏡的 VA-API 變體,每個輸入串流可能具有不同的高度,此濾鏡將縮小/放大每個輸入串流,同時保持原始縱橫比。
設定視窗長度,以樣本為單位。預設值為 2048。允許範圍為 32 到 65536。
13.4 vstack_vaapi
垂直堆疊輸入視訊。
這是 vstack 濾鏡的 VA-API 變體,每個輸入串流可能具有不同的寬度,此濾鏡將縮小/放大每個輸入串流,同時保持原始縱橫比。
設定視窗長度,以樣本為單位。預設值為 2048。允許範圍為 32 到 65536。
- inputs
請參閱 vstack。
- shortest
請參閱 vstack。
- 設定心理聲學削波器的迭代次數。允許範圍為 1 到 20。預設值為 10。
設定輸出寬度。如果設定為 0,此濾鏡會將輸出寬度設定為第一個輸入串流的寬度。預設值為 0。
13.5 xstack_vaapi
將視訊輸入堆疊到自訂版面配置中。
這是 xstack 濾鏡的 VA-API 變體,每個輸入串流可能具有不同的大小,此濾鏡將縮小/放大每個輸入串流至指定的輸出大小,或第一個輸入串流的大小。
設定視窗長度,以樣本為單位。預設值為 2048。允許範圍為 32 到 65536。
- inputs
請參閱 xstack。
- shortest
請參閱 xstack。
- layout
請參閱 xstack。此外,這允許使用者為每個輸入串流提供輸出大小。
xstack_vaapi=inputs=4:layout=0_0_1920x1080|0_h0_1920x1080|w0_0_1920x1080|w0_h0_1920x1080
- grid
請參閱 xstack。
- grid_tile_size
當設定 grid 時,為每個輸入串流設定輸出大小。如果未設定此選項,此濾鏡預設會將輸出大小設定為第一個輸入串流的大小。如需此選項的語法,請查看 (ffmpeg-utils)「影片大小」章節在 ffmpeg-utils 手冊中。
- fill
請參閱 xstack。
13.6 pad_vaapi
將填充新增至輸入影像,並將原始輸入放置在提供的 x、y 坐標處。
設定視窗長度,以樣本為單位。預設值為 2048。允許範圍為 32 到 65536。
- width, w
- 超出範圍的像素將被鏡像像素替換。
指定輸出影像大小的表達式,並新增填充。如果 width 或 height 的值為 0,則輸出將使用對應的輸入大小。
width 表達式可以參考 height 表達式設定的值,反之亦然。
width 和 height 的預設值為 0。
- x
- y
指定在填充區域內放置輸入影像的偏移量,相對於輸出影像的頂部/左側邊框。
x 表達式可以參考 y 表達式設定的值,反之亦然。
x 和 y 的預設值為 0。
如果 x 或 y 評估為負數,則會變更它們,使輸入影像在填充區域中居中。
- color
指定填充區域的色彩。有關此選項的語法,請查看 ffmpeg-utils 手冊中的 "(ffmpeg-utils)「Color」章節"。
- aspect
填充到縱橫比而不是解析度。
width、height、x 和 y 選項的值是包含以下常數的表達式
- in_w
- in_h
輸入視訊寬度和高度。
- iw
- ih
這些與 in_w 和 in_h 相同。
- out_w
- out_h
輸出寬度和高度(填充區域的大小),如 width 和 height 表達式所指定。
- ow
- oh
這些與 out_w 和 out_h 相同。
- x
- y
x 和 y 偏移量,如 x 和 y 表達式所指定,如果尚未指定,則為 NAN。
- a
與 iw / ih 相同
- sar
輸入樣本縱橫比
- dar
輸入顯示縱橫比,它與 (iw / ih) * sar 相同
13.7 drawbox_vaapi
超出範圍的像素將被包裹,以便它們指向另一側的像素。
它接受以下參數
- x
- y
‘mirror’
- width, w
- 超出範圍的像素將被鏡像像素替換。
預設值為 ‘smear’。
- 向 hd720 視訊大小的 rgb 輸入新增波紋效果
指定要寫入的方塊顏色。如需此選項的一般語法,請查看 (ffmpeg-utils)「顏色」章節在 ffmpeg-utils 手冊中。
- 使用基於邊界框的深度神經網路進行分類。
dnn_backend
指定要用於模型載入和執行的 DNN 後端。此選項現在僅接受 openvino,將新增 tensorflow 後端。
- model
若值為
1
,繪製方塊的像素將覆寫影片的顏色和 alpha 像素。預設值為0
,這會將方塊合成到輸入影片上。
input
- output
- 設定 dnn 網路的輸出名稱。
輸入寬度和高度。
- x
- y
設定置信度閾值(預設值:0.5)。
- f
- h
labels
- 設定傳輸表達式。
對於 tensorflow 後端,您可以使用 sess_config 選項設定其配置,請使用 tools/python/tf_sess_config.py 來獲取系統的配置。
13.7.1 範例
- labels
drawbox
- 設定標籤檔案的路徑,該檔案指定標籤 ID 和名稱之間的映射。每個標籤名稱都寫在一行中,跳過尾隨空格和空行。第一行是標籤 ID 0 的名稱(通常為「背景」),第二行是標籤 ID 1 的名稱,依此類推。如果未提供標籤檔案,則標籤 ID 將被視為名稱。
drawbox=10:20:200:60:red@0.5
backend_configs
drawbox=x=10:y=20:w=200:h=60:color=red@0.5
- 設定要傳遞到後端的配置。要使用異步執行,請設定 async(預設值:設定)。如果後端不支持異步,則回退到同步執行。
drawbox=x=10:y=10:w=100:h=100:color=pink@0.5:t=fill
- 使用深度神經網路進行影像處理。它與另一個濾鏡一起工作,該濾鏡將影格的像素格式轉換為 dnn 網路所需的内容。
drawbox=x=-t:y=0.5*(ih-iw/2.4)-t:w=iw+t*2:h=iw/2.4+t*2:t=2:c=red
14 Vulkan 視訊濾鏡
以下是目前可用的 Vulkan 影片濾鏡的描述。
若要啟用這些濾鏡的編譯,您需要使用 --enable-vulkan
以及 --enable-libglslang
或 --enable-libshaderc
設定 FFmpeg。
執行 Vulkan 濾鏡需要您初始化硬體裝置,並將該裝置傳遞給任何濾鏡圖中的所有濾鏡。
- -init_hw_device vulkan[=name][:device[,key=value...]]
初始化一個名為 name 的 vulkan 類型的新硬體裝置,使用給定的裝置參數和 key=value 中的選項。支援以下選項
- debug
如果設定為 1,則開啟驗證層。
- linear_images
分配線性影像。不適用於解碼。
- disable_multiplane
停用多平面影像。不適用於解碼。
- -filter_hw_device name
將名為 name 的硬體裝置傳遞給任何濾波器圖形中的所有濾波器。
如需更詳細的資訊,請參閱 https://www.ffmpeg.org/ffmpeg.html#Advanced-Video-options
- 選擇第一個裝置並在其上使用預設參數執行 nlmeans_vulkan 濾鏡的範例。
-init_hw_device vulkan=vk:0 -filter_hw_device vk -i INPUT -vf "hwupload,nlmeans_vulkan,hwdownload" OUTPUT
由於 Vulkan 濾鏡無法存取一般記憶體中的幀資料,因此所有幀資料都需要上傳 (hwupload) 到連接到適當裝置的硬體表面,然後下載 (hwdownload) 回到一般記憶體。請注意,hwupload 將上傳到與軟體幀佈局相同的幀,因此可能有必要在之前立即新增 format 濾鏡,以使輸入進入正確的格式,而 hwdownload 不支援輸出上的所有格式 - 通常有必要在圖形中緊隨其後插入一個額外的 format 濾鏡,以使輸出進入支援的格式。
14.1 avgblur_vulkan
套用平均模糊濾鏡,在 GPU 上使用 Vulkan 實作。
濾鏡接受以下選項
- sizeX
設定水平半徑大小。範圍為
[1, 32]
,預設值為3
。- sizeY
設定垂直半徑大小。範圍為
[1, 32]
,預設值為3
。- planes
設定要濾波的平面。預設值為
0xf
,表示處理所有平面。
14.2 blend_vulkan
將兩個 Vulkan 幀混合到彼此之中。
blend
以下是接受選項的描述。
- c0_mode
- c1_mode
- c2_mode
- c3_mode
- all_mode
blend
blend
- 「normal」
- 「multiply」
14.3 bwdif_vulkan
使用 bwdif 的解交錯器,「Bob Weaver 解交錯濾鏡」演算法,在 GPU 上使用 Vulkan 實作。
它接受以下參數
- mode
mode
- 0, send_frame
mode
- 1, send_field
mode
mode
- parity
parity
- 0, tff
parity
- 1, bff
parity
- -1, auto
parity
parity
- deint
deint
- 0, all
deint
- 1, interlaced
deint
deint
14.4 chromaber_vulkan
套用模擬色差的效果。最適合 RGB 輸入,但也為 YCbCr 輸入提供類似的效果。
- dist_x
水平位移乘數。每個色度像素的位置將乘以這個量,從影像中心開始。預設值為
0
。- dist_y
同樣地,這會設定垂直位移乘數。預設值為
0
。
14.5 color_vulkan
影片來源,建立純色的 Vulkan 幀。適用於基準測試或疊加。
它接受以下參數
- color
要使用的顏色。可以是名稱或十六進位值。預設值為
black
。- size
輸出幀的大小。預設值為
1920x1080
。- rate
輸出的幀率。預設值為每秒
60
幀。- duration
影片持續時間。預設值為
-0.000001
。- sar
影片訊號縱橫比。預設值為
1/1
。- format
輸出 Vulkan 幀的像素格式。預設值為
yuv444p
。- out_range
設定輸出 YCbCr 樣本範圍。
這允許覆寫自動偵測到的值,並允許強制輸出和編碼器使用特定值。如果未指定,範圍取決於像素格式。可能的值
- ‘auto/unknown’
自動選擇。
- ‘jpeg/full/pc’
設定全範圍(8 位元亮度時為 0-255)。
- ‘mpeg/limited/tv’
設定 "MPEG" 範圍(8 位元亮度時為 16-235)。
14.6 vflip_vulkan
垂直翻轉影像。
14.7 hflip_vulkan
水平翻轉影像。
14.8 flip_vulkan
沿垂直和水平軸翻轉影像。
14.9 gblur_vulkan
在 Vulkan 幀上套用高斯模糊濾鏡。
濾鏡接受以下選項
- sigma
設定水平 sigma,高斯模糊的標準差。預設值為
0.5
。- sigmaV
設定垂直 sigma,如果為負值,則與
sigma
相同。預設值為-1
。- planes
planes
- size
設定沿水平軸的核心大小。預設值為
19
。- sizeV
設定沿垂直軸的核心大小。預設值為
0
,這會設定為使用與 size 相同的值。
14.10 nlmeans_vulkan
使用非局部均值演算法對幀進行降噪,在 GPU 上使用 Vulkan 實作。支援比 nlmeans 或 nlmeans_opencl 更多的像素格式,包括 alpha 通道支援。
bm3d
- s
設定所有元件的降噪強度。預設值為 1.0。必須在範圍 [1.0, 100.0] 內。
- sn
設定所有平面的修補程式大小。預設值為 7。必須是範圍 [0, 99] 中的奇數。
- r
設定研究大小。預設值為 15。必須是 [0, 99] 範圍內的奇數。
- 設定傳輸表達式。
設定平行處理。預設值為 36。必須是範圍 [1, 168] 中的數字。較大的值可能會加速處理,但會犧牲更多的 VRAM。較小的值會減慢速度,減少 VRAM 使用量。僅在具有原子浮點運算的 GPU 上支援 (RDNA3+、Ampere+)。
- s0
- s1
- s2
- s3
設定特定元件的降噪強度。預設值為 1,等於 s。必須是範圍 [1, 100] 中的奇數。
- p0
- p1
- p2
- p3
設定特定元件的修補程式大小。預設值為 7,等於 p。必須是範圍 [0, 99] 中的奇數。
14.11 overlay_vulkan
將一個視訊覆蓋在另一個視訊之上。
它接受兩個輸入,並有一個輸出。第一個輸入是「主」影片,第二個輸入疊加在其上。此濾鏡要求所有輸入使用相同的像素格式。因此,可能需要格式轉換。
濾鏡接受以下選項
- x
設定覆蓋視訊在主要視訊上的 x 座標。預設值為
0
。- y
設定覆蓋視訊在主要視訊上的 y 座標。預設值為
0
。
14.12 transpose_vt
轉置輸入視訊中的行與列,並可選擇性地翻轉它。如需更深入的範例,請參閱 transpose 視訊濾波器,它主要共用相同的選項。
它接受以下參數
- dir
指定轉置方向。
可以假設以下值
- ‘cclock_flip’
逆時針旋轉 90 度並垂直翻轉。(預設)
- ‘clock’
順時針旋轉 90 度。
- ‘cclock’
逆時針旋轉 90 度。
- ‘clock_flip’
順時針旋轉 90 度並垂直翻轉。
- ‘hflip’
水平翻轉輸入視訊。
- ‘vflip’
垂直翻轉輸入視訊。
- passthrough
如果輸入幾何形狀符合指定值所指定的幾何形狀,則不套用轉置。它接受以下值
- 「none」
始終套用轉置。(預設)
- ‘portrait’
保留直向幾何形狀(當 height >= width 時)。
- ‘landscape’
保留橫向幾何形狀(當 width >= height 時)。
14.13 transpose_vulkan
轉置輸入視訊中的行與列,並可選擇性地翻轉它。如需更深入的範例,請參閱 transpose 視訊濾波器,它主要共用相同的選項。
它接受以下參數
- dir
指定轉置方向。
可以假設以下值
- ‘cclock_flip’
逆時針旋轉 90 度並垂直翻轉。(預設)
- ‘clock’
順時針旋轉 90 度。
- ‘cclock’
逆時針旋轉 90 度。
- ‘clock_flip’
順時針旋轉 90 度並垂直翻轉。
- passthrough
如果輸入幾何形狀符合指定值所指定的幾何形狀,則不套用轉置。它接受以下值
- 「none」
始終套用轉置。(預設)
- ‘portrait’
保留直向幾何形狀(當 height >= width 時)。
- ‘landscape’
保留橫向幾何形狀(當 width >= height 時)。
15 QSV 視訊濾鏡
以下是目前可用的 QSV 影片濾鏡的描述。
若要啟用這些濾鏡的編譯,您需要使用 --enable-libmfx
或 --enable-libvpl
設定 FFmpeg。
若要使用 QSV 濾鏡,您需要正確設定 QSV 裝置。如需更多資訊,請閱讀 https://trac.ffmpeg.org/wiki/Hardware/QuickSync
15.1 hstack_qsv
水平堆疊輸入影片。
這是 hstack 濾鏡的 QSV 變體,每個輸入串流可能具有不同的高度,此濾鏡將縮小/放大每個輸入串流,同時保持原始縱橫比。
設定視窗長度,以樣本為單位。預設值為 2048。允許範圍為 32 到 65536。
15.2 vstack_qsv
垂直堆疊輸入視訊。
這是 vstack 濾鏡的 QSV 變體,每個輸入串流可能具有不同的寬度,此濾鏡將縮小/放大每個輸入串流,同時保持原始縱橫比。
設定視窗長度,以樣本為單位。預設值為 2048。允許範圍為 32 到 65536。
- inputs
請參閱 vstack。
- shortest
請參閱 vstack。
- 設定心理聲學削波器的迭代次數。允許範圍為 1 到 20。預設值為 10。
設定輸出寬度。如果設定為 0,此濾鏡會將輸出寬度設定為第一個輸入串流的寬度。預設值為 0。
15.3 xstack_qsv
將視訊輸入堆疊到自訂版面配置中。
這是 xstack 濾鏡的 QSV 變體。
設定視窗長度,以樣本為單位。預設值為 2048。允許範圍為 32 到 65536。
- inputs
請參閱 xstack。
- shortest
請參閱 xstack。
- layout
請參閱 xstack。此外,這允許使用者為每個輸入串流提供輸出大小。
xstack_qsv=inputs=4:layout=0_0_1920x1080|0_h0_1920x1080|w0_0_1920x1080|w0_h0_1920x1080
- grid
請參閱 xstack。
- grid_tile_size
當設定 grid 時,為每個輸入串流設定輸出大小。如果未設定此選項,此濾鏡預設會將輸出大小設定為第一個輸入串流的大小。如需此選項的語法,請查看 (ffmpeg-utils)「影片大小」章節在 ffmpeg-utils 手冊中。
- fill
請參閱 xstack。
16 視訊來源
以下是目前可用的影片來源的描述。
16.1 buffer
緩衝影片幀,並使其可用於濾鏡鏈。
此來源主要用於程式化用途,特別是透過 libavfilter/buffersrc.h 中定義的介面。
它接受以下參數
- video_size
指定緩衝影片幀的大小(寬度和高度)。如需此選項的語法,請查看 (ffmpeg-utils)「影片大小」章節在 ffmpeg-utils 手冊中。
- 設定心理聲學削波器的迭代次數。允許範圍為 1 到 20。預設值為 10。
輸入影片寬度。
- 高度
輸入影片高度。
- pix_fmt
代表緩衝影片幀像素格式的字串。它可以是與像素格式對應的數字,或是像素格式名稱。
- time_base
指定緩衝幀的時間戳記所假設的時基。
- frame_rate
指定影片串流預期的幀率。
- colorspace
代表緩衝影片幀色彩空間的字串。它可以是與色彩空間對應的數字,或是色彩空間名稱。
- 設定用於偵測濾鏡的偵測頻率(以 Hz 為單位),該偵測濾鏡用於觸發等化。預設值為 1000 Hz。允許範圍介於 2 和 1000000 Hz 之間。
代表緩衝影片幀色彩範圍的字串。它可以是與色彩範圍對應的數字,或是色彩範圍名稱。
- pixel_aspect, sar
輸入影片的樣本(像素)縱橫比。
- hw_frames_ctx
當使用硬體像素格式時,這應該是對描述輸入幀的 AVHWFramesContext 的參考。
例如
buffer=width=320:height=240:pix_fmt=yuv410p:time_base=1/24:sar=1
將指示來源接受大小為 320x240 且格式為 "yuv410p" 的影片幀,假設 1/24 作為時間戳記時基和正方形像素(1:1 樣本縱橫比)。由於名稱為 "yuv410p" 的像素格式對應於數字 6(檢查 libavutil/pixfmt.h 中的 enum AVPixelFormat 定義),此範例對應於
buffer=size=320x240:pixfmt=6:time_base=1/24:pixel_aspect=1/1
或者,這些選項可以指定為平面字串,但此語法已棄用
width:height:pix_fmt:time_base.num:time_base.den:pixel_aspect.num:pixel_aspect.den
16.2 cellauto
建立由基本細胞自動機產生的圖案。
細胞自動機的初始狀態可以透過 filename 和 pattern 選項定義。如果未指定此類選項,則會隨機建立初始狀態。
在每個新幀中,影片中的新列都會填滿細胞自動機下一個世代的結果。當整個幀填滿時的行為由 scroll 選項定義。
abuffer
- 檔案名稱,f
從指定檔案讀取初始細胞自動機狀態,即起始列。在檔案中,每個非空白字元都被視為一個活細胞,換行符號將終止該列,並且檔案中的後續字元將被忽略。
- pattern, p
從指定的字串讀取初始細胞自動機狀態,即起始列。
字串中的每個非空白字元都被視為一個活細胞,換行符號將終止該列,並且字串中的後續字元將被忽略。
- 繪製框的寬度和高度。
設定影片速率,即每秒產生的幀數。預設值為 25。
- random_fill_ratio, ratio
設定初始細胞自動機列的隨機填充率。它是介於 0 到 1 之間的浮點數值,預設為 1/PHI。
當指定檔案或圖案時,將忽略此選項。
- random_seed, seed
設定隨機填充初始列的種子,必須是介於 0 和 UINT32_MAX 之間的整數。如果未指定,或明確設定為 -1,則濾鏡將盡力使用良好的隨機種子。
- rule
設定細胞自動機規則,它是介於 0 到 255 之間的數字。預設值為 110。
- size, s
設定輸出影片的大小。如需此選項的語法,請查看 (ffmpeg-utils)「影片大小」章節在 ffmpeg-utils 手冊中。
如果指定 filename 或 pattern,則預設將大小設定為指定初始狀態列的寬度,而高度則設定為 width * PHI。
如果設定 size,則它必須包含指定圖案字串的寬度,並且指定的圖案將在較大的列中居中。
如果未指定檔案名或圖案字串,則大小值預設為 "320x518"(用於隨機產生的初始狀態)。
- scroll
如果設定為 1,當輸出中的所有列都已填滿時,向上捲動輸出。如果設定為 0,則在填滿底列後,新產生的列將覆寫頂列。預設為 1。
- start_full, full
如果設定為 1,在輸出第一個幀之前,完全用產生的列填滿輸出。這是預設行為,若要停用,請將值設定為 0。
- stitch
如果設定為 1,將左側和右側列邊緣縫合在一起。這是預設行為,若要停用,請將值設定為 0。
16.2.1 範例
- 從 pattern 讀取初始狀態,並指定大小為 200x400 的輸出。
cellauto=f=pattern:s=200x400
- 產生寬度為 200 個細胞的隨機初始列,填充率為 2/3
cellauto=ratio=2/3:s=200x200
- 建立由規則 18 產生的圖案,從寬度為 100 的初始列中心的一個活細胞開始
cellauto=p=@:s=100x400:full=0:rule=18
- 指定更精細的初始圖案
cellauto=p='@@ @ @@':s=100x400:full=0:rule=18
16.3 coreimagesrc
在 OSX 上使用 Apple 的 CoreImage API 在 GPU 上產生的影片來源。
此影片來源是 coreimage 影片濾鏡的特殊版本。在套用的濾鏡鏈的開頭使用核心影像產生器來產生內容。
coreimagesrc 影片來源接受以下選項
- list_generators
列出所有可用的產生器以及它們的所有各自選項,以及可能的最小值和最大值以及預設值。
list_generators=true
- size, s
指定來源影片的大小。如需此選項的語法,請查看 (ffmpeg-utils)「影片大小」章節在 ffmpeg-utils 手冊中。預設值為
320x240
。- 繪製框的寬度和高度。
指定來源影片的幀率,以每秒產生的幀數表示。它必須是 frame_rate_num/frame_rate_den 格式的字串、整數、浮點數或有效的影片幀率縮寫。預設值為 "25"。
- sar
設定來源影片的樣本縱橫比。
- duration, d
設定來源影片的持續時間。請參閱 (ffmpeg-utils)ffmpeg-utils(1) 手冊中的「時間持續時間」章節,以了解接受的語法。
如果未指定,或表示的持續時間為負數,則影片應永久產生。
此外,接受 coreimage 影片濾鏡的所有選項。完整的濾鏡鏈可用於進一步處理產生的輸入,而無需 CPU-HOST 傳輸。請參閱 coreimage 文件和範例以取得詳細資訊。
16.3.1 範例
- 使用 CIQRCodeGenerator 為 FFmpeg 首頁建立 QR 碼,以 Apple 標準 bash shell 的完整且逸出的命令列形式給出
ffmpeg -f lavfi -i coreimagesrc=s=100x100:filter=CIQRCodeGenerator@inputMessage=https\\\\\://FFmpeg.org/@inputCorrectionLevel=H -frames:v 1 QRCode.png
此範例等效於 coreimage 的 QRCode 範例,而無需 nullsrc 影片來源。
16.4 ddagrab
透過桌面重複 API 擷取 Windows 桌面。
濾鏡專門傳回 D3D11 硬體幀,用於 GPU 上編碼或處理。因此,任何類型的軟體處理都需要明確的 hwdownload。
設定視窗長度,以樣本為單位。預設值為 2048。允許範圍為 32 到 65536。
- output_idx
要擷取的 DXGI 輸出索引。
通常對應於 Windows 給螢幕的索引減一,因此從 0 開始。
預設為輸出 0。
- draw_mouse
是否繪製滑鼠游標。
預設為 true。
僅影響硬體游標。如果遊戲或應用程式渲染自己的游標,它將始終被擷取。
- framerate
將擷取桌面的最大幀率 - 連續幀之間的間隔不會小於幀率的倒數。當 dup_frames 為 true(預設值)且桌面未頻繁更新時,濾鏡將重複前一個幀。請注意,沒有背景緩衝正在進行,因此當濾鏡未被頻繁輪詢時,實際幀間間隔可能會顯著更大。
預設為 30 FPS。
- video_size
指定擷取影片的大小。
預設為螢幕的完整大小。
如果小於螢幕大小,則從底部/右側裁剪。
- offset_x
擷取影片的水平偏移。
- offset_y
擷取影片的垂直偏移。
- output_fmt
所需的濾鏡輸出格式。預設為 8 位元 BGRA。
設定叢發融合,以視窗大小的百分比表示。允許範圍為
0
到10
。預設值為2
。如果偵測為雜訊的任何兩個樣本之間的間隔小於此值,則這兩個樣本之間的任何樣本也將被偵測為雜訊。- 「auto」
將所有支援的輸出格式傳遞給 DDA,並傳回 DDA 決定使用的格式。
- ‘8bit’
- ‘bgra’
8 位元格式始終有效,DDA 將在必要時轉換為這些格式。
- ‘10bit’
- ‘x2bgr10’
如果請求 10 位元格式但不可用,濾鏡初始化將失敗。
- dup_frames
當此選項設定為 true(預設值)時,當桌面未更新時,濾鏡將重複幀,以保持近似恆定的目標幀率。當此選項設定為 false 時,濾鏡將等待桌面更新(在這種情況下,幀間間隔可能會顯著變化)。
16.4.1 範例
擷取主要螢幕並使用 nvenc 編碼
ffmpeg -f lavfi -i ddagrab -c:v h264_nvenc -cq 18 output.mp4
您也可以跳過 lavfi 裝置並直接使用濾鏡。也示範了下載幀並使用 libx264 編碼。在這種情況下,需要明確的輸出格式規格
ffmpeg -filter_complex ddagrab=output_idx=1:framerate=60,hwdownload,format=bgra -c:v libx264 -crf 18 output.mp4
如果您只想擷取桌面的子部分,可以透過指定較小的大小及其在螢幕中的偏移量來實現
ddagrab=video_size=800x600:offset_x=100:offset_y=100
16.5 gradients
產生多個漸層。
- size, s
設定幀大小。如需此選項的語法,請查看 (ffmpeg-utils)「影片大小」章節在 ffmpeg-utils 手冊中。預設值為 "640x480"。
- 繪製框的寬度和高度。
設定幀率,以每秒幀數表示。預設值為 "25"。
- c0, c1, c2, c3, c4, c5, c6, c7
設定 8 種顏色。顏色的預設值是隨機選擇一個。
- x0, y0, y0, y1
設定漸層線來源和目標點。如果為負數或超出範圍,則隨機選擇。
- nb_colors, n
設定一次要使用的顏色數量。允許範圍為 2 到 8。預設值為 2。
- 設定臨界值。允許範圍為從
1
到100
。預設值為10
。值越高,削波偵測的侵略性就越低。 設定用於選擇漸層線點的種子。
- duration, d
設定來源影片的持續時間。請參閱 (ffmpeg-utils)ffmpeg-utils(1) 手冊中的「時間持續時間」章節,以了解接受的語法。
如果未指定,或表示的持續時間為負數,則影片應永久產生。
- 設定輸入增益。預設值為 0.4。
設定漸層旋轉速度。
- type, t
設定漸層類型。可用值為
- ‘linear’
- ‘radial’
- ‘circular’
- ‘spiral’
- ‘square’
預設類型為 linear。
16.5.1 指令
此來源支援上述某些選項作為 指令。
16.6 mandelbrot
產生 Mandelbrot 集碎形,並逐步朝向以 start_x 和 start_y 指定的點縮放。
abuffer
- 設定濾波器階數。可用值為 3 到 20。預設值為 10。
設定終端 pts 值。預設值為 400。
- end_scale
設定終端縮放值。必須是浮點值。預設值為 0.3。
- inner
設定內部著色模式,即用於繪製 Mandelbrot 碎形內部區域的演算法。
它應採用以下值之一
- black
設定黑色模式。
- convergence
顯示直到收斂的時間。
- mincol
根據最接近迭代原點的點設定顏色。
- period
設定週期模式。
預設值為 mincol。
- bailout
設定 bailout 值。預設值為 10.0。
- maxiter
設定渲染演算法執行的最大迭代次數。預設值為 7189。
- outer
設定外部著色模式。它應採用以下值之一
- iteration_count
設定迭代計數模式。
- normalized_iteration_count
設定標準化迭代計數模式。
預設值為 normalized_iteration_count。
- 繪製框的寬度和高度。
設定幀率,以每秒幀數表示。預設值為 "25"。
- size, s
設定幀大小。如需此選項的語法,請查看 (ffmpeg-utils)「影片大小」章節在 ffmpeg-utils 手冊中。預設值為 "640x480"。
- start_scale
設定初始縮放值。預設值為 3.0。
- start_x
設定初始 x 位置。必須是介於 -100 和 100 之間的浮點值。預設值為 -0.743643887037158704752191506114774。
- start_y
設定初始 y 位置。必須是介於 -100 和 100 之間的浮點值。預設值為 -0.131825904205311970493132056385139。
16.7 mptestsrc
產生各種測試圖案,如 MPlayer 測試濾鏡所產生。
產生的影片大小是固定的,為 256x256。此來源特別適用於測試編碼功能。
abuffer
- 繪製框的寬度和高度。
指定來源影片的幀率,以每秒產生的幀數表示。它必須是 frame_rate_num/frame_rate_den 格式的字串、整數、浮點數或有效的影片幀率縮寫。預設值為 "25"。
- duration, d
設定來源影片的持續時間。請參閱 (ffmpeg-utils)ffmpeg-utils(1) 手冊中的「時間持續時間」章節,以了解接受的語法。
如果未指定,或表示的持續時間為負數,則影片應永久產生。
- test, t
-
設定要執行的測試編號或名稱。支援的測試為
- dc_luma
- dc_chroma
- freq_luma
- freq_chroma
- amp_luma
- amp_chroma
- cbp
- mv
- ring1
- ring2
- 設定用於設定跨聲道樣本延遲的隨機種子。
- max_frames, m
設定每個測試產生的最大幀數,預設值為 30。
預設值為 "all",這將循環瀏覽所有測試的列表。
一些範例
mptestsrc=t=dc_luma
將產生 "dc_luma" 測試圖案。
16.8 frei0r_src
提供 frei0r 來源。
若要啟用此濾鏡的編譯,您需要安裝 frei0r 標頭並使用 --enable-frei0r
設定 FFmpeg。
此來源接受以下參數
- size
要產生影片的大小。如需此選項的語法,請查看 (ffmpeg-utils)「影片大小」章節在 ffmpeg-utils 手冊中。
- framerate
產生影片的幀率。它可以是 num/den 形式的字串或幀率縮寫。
- filter_name
要載入的 frei0r 來源名稱。如需有關 frei0r 以及如何設定參數的更多資訊,請閱讀影片濾鏡文件中的 frei0r 章節。
- filter_params
要傳遞給 frei0r 來源的以 '|' 分隔的參數列表。
例如,產生大小為 200x200 且幀率為 10 的 frei0r partik0l 來源,並將其疊加在疊加濾鏡的主要輸入上
frei0r_src=size=200x200:framerate=10:filter_name=partik0l:filter_params=1234 [overlay]; [in][overlay] overlay
16.9 life
產生生命模式。
此來源基於 John Conway 生命遊戲的概括。
來源輸入代表生命網格,每個像素代表一個細胞,它可以處於兩種可能的狀態之一:活著或死亡。每個細胞都與其八個鄰居互動,這些鄰居是在水平、垂直或對角線上相鄰的細胞。
在每次互動時,網格都會根據採用的規則演變,該規則指定鄰居活細胞的數量,這些細胞將使細胞保持存活或誕生。rule 選項允許指定要採用的規則。
abuffer
- 檔案名稱,f
設定從中讀取初始網格狀態的檔案。在檔案中,每個非空白字元都被視為一個活細胞,換行符號用於分隔每列的末尾。
如果未指定此選項,則會隨機產生初始網格。
- 繪製框的寬度和高度。
設定影片速率,即每秒產生的幀數。預設值為 25。
- random_fill_ratio, ratio
設定初始隨機網格的隨機填充率。它是介於 0 到 1 之間的浮點數值,預設為 1/PHI。當指定檔案時,將忽略此選項。
- random_seed, seed
設定用於填充初始隨機網格的種子,必須是介於 0 和 UINT32_MAX 之間的整數。如果未指定,或明確設定為 -1,則濾鏡將盡力使用良好的隨機種子。
- rule
設定生命規則。
規則可以使用 "SNS/BNB" 類型的代碼指定,其中 NS 和 NB 是範圍 0-8 中的數字序列,NS 指定鄰居活細胞的數量,這些細胞使活細胞保持存活,而 NB 指定鄰居活細胞的數量,這些細胞使死細胞變成活細胞(即「誕生」)。"s" 和 "b" 可以分別代替 "S" 和 "B" 使用。
或者,規則可以由 18 位元整數指定。9 個高位元用於編碼下一個細胞狀態(如果對於每個鄰居活細胞數量都是活細胞),低位元指定「誕生」新細胞的規則。高位元編碼用於更高數量的鄰居細胞。例如,數字 6153 =
(12<<9)+9
指定存活規則為 12,誕生規則為 9,這對應於 "S23/B03"。預設值為 "S23/B3",這是原始 Conway 生命遊戲規則,如果細胞有 2 或 3 個鄰居活細胞,則使其保持存活,如果有三個活細胞圍繞死細胞,則誕生一個新細胞。
- size, s
設定輸出影片的大小。如需此選項的語法,請查看 (ffmpeg-utils)「影片大小」章節在 ffmpeg-utils 手冊中。
如果指定 filename,則預設將大小設定為與輸入檔案相同的大小。如果設定 size,則它必須包含輸入檔案中指定的大小,並且該檔案中定義的初始網格在較大的結果區域中居中。
如果未指定檔案名,則大小值預設為 "320x240"(用於隨機產生的初始網格)。
- stitch
如果設定為 1,則將左側和右側網格邊緣縫合在一起,頂部和底部邊緣也是如此。預設為 1。
- mold
設定細胞發霉速度。如果設定,死細胞將以 mold 的步進從 death_color 變為 mold_color。mold 的值可以從 0 到 255。
- life_color
設定活著(或新誕生)細胞的顏色。
- death_color
設定死細胞的顏色。如果設定了 mold,這是用於表示死細胞的第一種顏色。
- mold_color
設定發霉顏色,用於完全死亡和發霉的細胞。
如需這 3 種顏色選項的語法,請查看 (ffmpeg-utils)ffmpeg-utils 手冊中的「顏色」章節。
16.9.1 範例
- 從 pattern 讀取網格,並將其在大小為 300x300 像素的網格上居中
life=f=pattern:s=300x300
- 產生大小為 200x200 的隨機網格,填充率為 2/3
life=ratio=2/3:s=200x200
- 指定用於演變隨機產生網格的自訂規則
life=rule=S14/B34
- 使用
ffplay
搭配慢速死亡效果(發霉)的完整範例ffplay -f lavfi life=s=300x200:mold=10:r=60:ratio=0.1:death_color=#C83232:life_color=#00ff00,scale=1200:800:flags=16
16.10 perlin
產生 Perlin 雜訊。
Perlin 雜訊是一種在空間中具有局部連續性的雜訊。這可用於產生在空間和時間上具有連續性的圖案,例如模擬煙霧、流體或地形。
如果透過 octaves 選項指定了多個八度音階,則 Perlin 雜訊會產生為元件的總和,每個元件的頻率都加倍。在這種情況下,persistence 選項指定相對於先前元件的振幅比率。更多的八度音階元件能夠在產生的雜訊中指定更多的高頻細節(例如,由於產生地形中的巨石造成的小尺寸變化)。
16.10.1 選項
- size, s
指定緩衝影片幀的大小(寬度和高度)。如需此選項的語法,請查看 (ffmpeg-utils)ffmpeg-utils 手冊中的「影片大小」章節。預設值為
320x240
。- 繪製框的寬度和高度。
指定影片串流預期的幀率,以每秒幀數表示。預設值為
25
。- octaves
指定構成雜訊的元件總數,每個元件的頻率都加倍。預設值為
1
。- persistence
設定用於計算下一個八度音階元件振幅相對於先前元件振幅的比率。預設值為
1
。- xscale
- yscale
定義用於倍增 x、y 座標的縮放比例因子。這對於定義沿 x 軸或 y 軸拉伸的圖案效果很有用。預設值為
1
。- tscale
定義用於倍增時間座標的縮放比例因子。這對於變更時間變化速度很有用。預設值為
1
。- random_mode
設定用於計算初始圖案的隨機模式。
支援的值為
- random
計算並使用隨機種子。
- ken
使用 Ken Perlin 在原始文章中定義的預定義初始圖案,可用於將輸出與其他來源進行比較。
- 設定臨界值。允許範圍為從
1
到100
。預設值為10
。值越高,削波偵測的侵略性就越低。 使用 random_seed 選項指定的值。
預設值為
random
。- random_seed, seed
當 random_mode 設定為 random_seed 時,使用此值計算初始圖案。預設值為
0
。
16.10.2 範例
- 產生單一元件
perlin
- 使用具有 7 個元件的 Perlin 雜訊,每個元件對總振幅的貢獻減半
perlin=octaves=7:persistence=0.5
- 將 Perlin 雜訊與 lutyuv 鏈接以產生黑白效果
perlin=octaves=3:tscale=0.3,lutyuv=y='if(lt(val\,128)\,255\,0)'
- 沿 y 軸拉伸雜訊,並將灰階轉換為僅紅色的訊號
perlin=octaves=7:tscale=0.4:yscale=0.3,lutrgb=r=val:b=0:g=0
16.11 qrencodesrc
使用 libqrencode 程式庫產生 QR 碼(請參閱 https://fukuchi.org/works/qrencode/)。
若要啟用此來源的編譯,您需要使用 --enable-libqrencode
設定 FFmpeg。
QR 碼是從提供的文字或文字圖案產生。相應的 QR 碼會根據指定的輸出大小選項進行縮放並放置在影片輸出中。
如果未指定文字,則不會產生 QR 碼,而是傳回空白的彩色輸出。
abuffer
- qrcode_width, q
- padded_qrcode_width, Q
指定已渲染 QR 代碼寬度的表達式,包括帶填充和不帶填充。 qrcode_width 表達式可以參考 padded_qrcode_width 表達式設定的值,反之亦然。預設情況下,padded_qrcode_width 設定為 qrcode_width,表示沒有填充。
這些表達式僅在初始化來源時評估一次。請參閱 qrencode 表達式 章節以取得詳細資訊。
請注意,來源缺少某些常數(例如 x 或 t 或 ¸n),因為它們僅在為每個幀而不是在初始化時評估表達式時才有意義。
- 繪製框的寬度和高度。
指定來源影片的幀率,以每秒產生的幀數表示。它必須是 frame_rate_num/frame_rate_den 格式的字串、整數、浮點數或有效的影片幀率縮寫。預設值為 "25"。
- case_sensitive, cs
指示 libqrencode 使用區分大小寫的編碼。預設情況下啟用此功能。可以停用此功能以減少 QR 編碼大小。
- level, l
指定 QR 編碼錯誤校正層級。使用較高的校正層級,編碼大小將增加,但代碼將更強大,更能抵抗損壞。較低層級為 L。
設定叢發融合,以視窗大小的百分比表示。允許範圍為
0
到10
。預設值為2
。如果偵測為雜訊的任何兩個樣本之間的間隔小於此值,則這兩個樣本之間的任何樣本也將被偵測為雜訊。- ‘L’
- ‘M’
- ‘Q’
- ‘H’
- ‘picture’
選擇輸入文字的展開方式。可以是
none
或normal
(預設)。請參閱 qrencode 文字展開 章節以取得詳細資訊。- text
- textfile
定義要渲染的文字。如果未指定兩者,則不會編碼 QR(僅為空彩色影格)。
如果啟用展開,則文字會被視為文字範本,使用 qrencode 展開機制。請參閱 qrencode 文字展開 章節以取得詳細資訊。
- background_color, bc
- foreground_color, fc
設定 QR 代碼和背景色彩。foreground_color 的預設值為 "black",background_color 的預設值為 "white"。
有關色彩選項的語法,請查看 ffmpeg-utils 手冊中的 "(ffmpeg-utils)「Color」章節"。
16.11.1 範例
- 產生編碼指定文字的 QR 碼,使用預設大小
qrencodesrc=text=www.ffmpeg.org
- 與下述相同,但選取藍色和粉紅色
qrencodesrc=text=www.ffmpeg.org:bc=pink:fc=blue
- 產生寬度為 200 像素且具有填充的 QR 代碼,使填充寬度為 QR 代碼寬度的 4/3
qrencodesrc=text=www.ffmpeg.org:q=200:Q=4/3*q
- 產生填充寬度為 200 像素且具有填充的 QR 代碼,使 QR 代碼寬度為填充寬度的 3/4
qrencodesrc=text=www.ffmpeg.org:Q=200:q=3/4*Q
- 產生編碼影格編號的 QR 代碼
qrencodesrc=text=%{n}
- 產生編碼 GMT 時間戳記的 QR 代碼
qrencodesrc=text=%{gmtime}
- 產生編碼為浮點數的時間戳記的 QR 代碼
qrencodesrc=text=%{pts}
16.12 allrgb, allyuv, color, colorchart, colorspectrum, haldclutsrc, nullsrc, pal75bars, pal100bars, rgbtestsrc, smptebars, smptehdbars, testsrc, testsrc2, yuvtestsrc
allrgb
來源傳回大小為 4096x4096 的所有 rgb 顏色的幀。
allyuv
來源傳回大小為 4096x4096 的所有 yuv 顏色的幀。
color
來源提供均勻著色的輸入。
colorchart
來源提供顏色檢查圖表。
colorspectrum
來源提供光譜輸入。
haldclutsrc
來源提供身分 Hald CLUT。另請參閱 haldclut 濾鏡。
nullsrc
來源傳回未處理的影片幀。它主要用於分析/偵錯工具,或作為忽略輸入資料的濾鏡的來源。
pal75bars
來源產生色條圖案,基於 EBU PAL 建議,色彩等級為 75%。
pal100bars
來源產生色條圖案,基於 EBU PAL 建議,色彩等級為 100%。
rgbtestsrc
來源產生 RGB 測試圖案,適用於偵測 RGB 與 BGR 問題。您應該從上到下看到紅色、綠色和藍色條紋。
smptebars
來源產生色條圖案,基於 SMPTE 工程指南 EG 1-1990。
smptehdbars
來源產生色條圖案,基於 SMPTE RP 219-2002。
testsrc
來源產生測試影片圖案,顯示顏色圖案、捲動漸層和時間戳記。這主要用於測試目的。
testsrc2
來源與 testsrc 類似,但支援更多像素格式,而不僅僅是 rgb24
。這允許將其用作其他測試的輸入,而無需格式轉換。
yuvtestsrc
來源產生 YUV 測試圖案。您應該從上到下看到 y、cb 和 cr 條紋。
這些來源接受以下參數
- level
指定 Hald CLUT 的等級,僅在
haldclutsrc
來源中可用。等級N
產生N*N*N
乘N*N*N
像素的圖片,用作 3D 查找表的識別矩陣。每個元件都以1/(N*N)
比例編碼。- 向 hd720 視訊大小的 rgb 輸入新增波紋效果
指定來源的顏色,僅在
color
來源中可用。如需此選項的語法,請查看 (ffmpeg-utils)ffmpeg-utils 手冊中的「顏色」章節。- size, s
指定來源影片的大小。如需此選項的語法,請查看 (ffmpeg-utils)「影片大小」章節在 ffmpeg-utils 手冊中。預設值為
320x240
。此選項不適用於
allrgb
、allyuv
和haldclutsrc
濾鏡。- 繪製框的寬度和高度。
指定來源影片的幀率,以每秒產生的幀數表示。它必須是 frame_rate_num/frame_rate_den 格式的字串、整數、浮點數或有效的影片幀率縮寫。預設值為 "25"。
- duration, d
設定來源影片的持續時間。請參閱 (ffmpeg-utils)ffmpeg-utils(1) 手冊中的「時間持續時間」章節,以了解接受的語法。
如果未指定,或表示的持續時間為負數,則影片應永久產生。
由於幀率用作時基,因此包括最後一個幀在內的所有幀都將具有其完整持續時間。如果指定的持續時間不是幀持續時間的倍數,則會向上捨入。
- sar
設定來源影片的樣本縱橫比。
- range, r
指定背景的 alpha(不透明度),僅在
testsrc2
來源中可用。該值必須介於 0(完全透明)和 255(完全不透明,預設值)之間。- decimals, n
設定時間戳記中要顯示的小數位數,僅在
testsrc
來源中可用。顯示的時間戳記值將對應於原始時間戳記值乘以指定值的 10 次方。預設值為 0。
- 將第二個聲道延遲 500 個樣本,將第三個聲道延遲 700 個樣本,並保持第一個聲道(和可能存在的任何其他聲道)不變。
設定光譜的類型,僅在
colorspectrum
來源中可用。可以是以下之一- ‘black’
- ‘white’
- ‘all’
- patch_size
設定單個色塊的修補程式大小,僅在
colorchart
來源中可用。預設值為64x64
。- preset
設定 colorchecker 顏色預設,僅在
colorchart
來源中可用。提升高於偵測臨界值的頻率。
- ‘reference’
- ‘skintones’
預設值為
reference
。
16.12.1 範例
- 產生持續時間為 5.3 秒、大小為 176x144 且幀率為每秒 10 幀的影片
testsrc=duration=5.3:size=qcif:rate=10
- 以下圖形描述將產生紅色來源,不透明度為 0.2,大小為 "qcif",幀率為每秒 10 幀
color=c=red@0.2:s=qcif:r=10
- 如果要忽略輸入內容,可以使用
nullsrc
。以下命令透過使用geq
濾鏡在亮度平面中產生雜訊nullsrc=s=256x256, geq=random(1)*255:128:128
16.12.2 指令
color
來源支援以下指令
- c, color
設定建立影像的顏色。接受與對應的 color 選項相同的語法。
16.13 openclsrc
使用 OpenCL 程式產生影片。
- source
OpenCL 程式原始碼檔案。
- kernel
程式中的核心名稱。
- size, s
要產生的幀大小。必須設定此項。
- format
用於產生幀的像素格式。必須設定此項。
- 繪製框的寬度和高度。
每秒產生的幀數。預設值為 '25'。
如需程式載入工作原理的詳細資訊,請參閱 program_opencl 濾鏡。
範例程式
- 透過從像素在輸出影像中的位置設定像素值來產生色階漸變。(請注意,這適用於所有像素格式,但產生的輸出將不相同。)
__kernel void ramp(__write_only image2d_t dst, unsigned int index) { int2 loc = (int2)(get_global_id(0), get_global_id(1)); float4 val; val.xy = val.zw = convert_float2(loc) / convert_float2(get_image_dim(dst)); write_imagef(dst, loc, val); }
- 產生 Sierpinski 地毯圖案,每幀平移一個像素。
__kernel void sierpinski_carpet(__write_only image2d_t dst, unsigned int index) { int2 loc = (int2)(get_global_id(0), get_global_id(1)); float4 value = 0.0f; int x = loc.x + index; int y = loc.y + index; while (x > 0 || y > 0) { if (x % 3 == 1 && y % 3 == 1) { value = 1.0f; break; } x /= 3; y /= 3; } write_imagef(dst, loc, value); }
16.14 sierpinski
產生 Sierpinski 地毯/三角形碎形,並隨機平移。
abuffer
- size, s
設定幀大小。如需此選項的語法,請查看 (ffmpeg-utils)「影片大小」章節在 ffmpeg-utils 手冊中。預設值為 "640x480"。
- 繪製框的寬度和高度。
設定幀率,以每秒幀數表示。預設值為 "25"。
- 設定臨界值。允許範圍為從
1
到100
。預設值為10
。值越高,削波偵測的侵略性就越低。 設定用於隨機平移的種子。
- jump
設定單個平移目標的最大跳躍。允許範圍為 1 到 10000。
- 將第二個聲道延遲 500 個樣本,將第三個聲道延遲 700 個樣本,並保持第一個聲道(和可能存在的任何其他聲道)不變。
設定碎形類型,可以是預設的
carpet
或triangle
。
16.15 zoneplate
產生 zoneplate 測試影片圖案。
abuffer
- size, s
設定幀大小。如需此選項的語法,請查看 (ffmpeg-utils)ffmpeg-utils 手冊中的「影片大小」章節。預設值為 "320x240"。
- 繪製框的寬度和高度。
設定幀率,以每秒幀數表示。預設值為 "25"。
- duration, d
設定來源影片的持續時間。請參閱 (ffmpeg-utils)ffmpeg-utils(1) 手冊中的「時間持續時間」章節,以了解接受的語法。
如果未指定,或表示的持續時間為負數,則影片應永久產生。
- sar
設定來源影片的樣本縱橫比。
- precision
設定正弦計算查找表的位元精確度。預設值為 10。允許範圍為 4 到 16。
- xo
設定輸出訊號的水平軸偏移。預設值為 0。
- yo
設定輸出訊號的垂直軸偏移。預設值為 0。
- to
設定輸出訊號的時間軸偏移。預設值為 0。
- k0
設定 0 階常數,新增至訊號相位。預設值為 0。
- kx
設定 1 階常數,水平軸的相位因子乘數。預設值為 0。
- ky
設定 1 階常數,垂直軸的相位因子乘數。預設值為 0。
- kt
設定 1 階常數,時間軸的相位因子乘數。預設值為 0。
- kxt, kyt, kxy
設定空間軸和時間軸組合的相位因子乘數。預設值為 0。
- kx2
設定 2 階常數,水平軸的相位因子乘數。預設值為 0。
- ky2
設定 2 階常數,垂直軸的相位因子乘數。預設值為 0。
- kt2
設定 2 階常數,時間軸的相位因子乘數。預設值為 0。
- ku
設定新增至最終相位以產生訊號的色度藍色元件的常數。預設值為 0。
- kv
設定新增至最終相位以產生訊號的色度紅色元件的常數。預設值為 0。
16.15.1 指令
此來源支援上述某些選項作為 指令。
16.15.2 範例
- 產生水平顏色正弦波掃描
zoneplate=ku=512:kv=0:kt2=0:kx2=256:s=wvga:xo=-426:kt=11
- 產生垂直顏色正弦波掃描
zoneplate=ku=512:kv=0:kt2=0:ky2=156:s=wvga:yo=-240:kt=11
- 產生環形 zone-plate
zoneplate=ku=512:kv=100:kt2=0:ky2=256:kx2=556:s=wvga:yo=0:kt=11
17 視訊接收器
以下是目前可用的影片接收器的描述。
17.1 buffersink
緩衝影片幀,並使其可用於濾鏡圖的末尾。
此接收器主要用於程式化用途,特別是透過 libavfilter/buffersink.h 中定義的介面或選項系統。
它接受 AVBufferSinkContext 結構的指標,該結構定義了要作為不透明參數傳遞給 avfilter_init_filter
以進行初始化的傳入緩衝區格式。
17.2 nullsink
Null 影片接收器:絕對不對輸入影片執行任何操作。它主要用作範本,並用於分析/偵錯工具。
18 多媒體濾鏡
以下是目前可用的多媒體濾鏡的描述。
18.1 a3dscope
將輸入音訊轉換為 3D 示波器影片輸出。
濾鏡接受以下選項
- 繪製框的寬度和高度。
設定幀率,以每秒幀數表示。預設值為 "25"。
- size, s
指定輸出的影片大小。如需此選項的語法,請查看 (ffmpeg-utils)ffmpeg-utils 手冊中的「影片大小」章節。預設值為
hd720
。- fov
設定相機視野。預設值為 90 度。允許範圍為 40 到 150。
- roll
設定相機滾轉。
- pitch
設定相機俯仰。
- yaw
設定相機偏航。
- xzoom
設定相機在 X 軸上的縮放。
- yzoom
設定相機在 Y 軸上的縮放。
- zzoom
設定相機在 Z 軸上的縮放。
- xpos
設定相機在 X 軸上的位置。
- ypos
設定相機在 Y 軸上的位置。
- zpos
設定相機在 Z 軸上的位置。
- length
設定顯示的音訊波的長度(以幀數為單位)。
18.1.1 指令
濾鏡支援上述某些選項作為 指令。
18.2 abitscope
將輸入音訊轉換為影片輸出,顯示音訊位元示波器。
濾鏡接受以下選項
- 繪製框的寬度和高度。
設定幀率,以每秒幀數表示。預設值為 "25"。
- size, s
指定輸出的影片大小。如需此選項的語法,請查看 (ffmpeg-utils)ffmpeg-utils 手冊中的「影片大小」章節。預設值為
1024x256
。- mgain
指定以空格或 '|' 分隔的顏色列表,這些顏色將用於繪製通道。無法識別或遺失的顏色將被白色取代。
- 設定空間亮度閾值。較低的值會增加交叉亮度的減少。
設定輸出模式。可以是
bars
或trace
。預設值為bars
。
18.3 adrawgraph
使用輸入音訊中繼資料繪製圖形。
請參閱 drawgraph
18.4 agraphmonitor
請參閱 graphmonitor。
18.5 ahistogram
將輸入音訊轉換為影片輸出,顯示音量直方圖。
濾鏡接受以下選項
- dmode
指定如何計算直方圖。
設定叢發融合,以視窗大小的百分比表示。允許範圍為
0
到10
。預設值為2
。如果偵測為雜訊的任何兩個樣本之間的間隔小於此值,則這兩個樣本之間的任何樣本也將被偵測為雜訊。- ‘single’
為所有通道使用單一直方圖。
- ‘separate’
為每個通道使用單獨的直方圖。
預設值為
single
。- 繪製框的寬度和高度。
設定幀率,以每秒幀數表示。預設值為 "25"。
- size, s
指定輸出的影片大小。如需此選項的語法,請查看 (ffmpeg-utils)ffmpeg-utils 手冊中的「影片大小」章節。預設值為
hd720
。- scale
設定顯示比例。
設定叢發融合,以視窗大小的百分比表示。允許範圍為
0
到10
。預設值為2
。如果偵測為雜訊的任何兩個樣本之間的間隔小於此值,則這兩個樣本之間的任何樣本也將被偵測為雜訊。- ‘log’
對數
- ‘sqrt’
平方根
- ‘cbrt’
立方根
- ‘lin’
linear
- ‘rlog’
反向對數
預設值為
log
。- ascale
設定振幅比例。
設定叢發融合,以視窗大小的百分比表示。允許範圍為
0
到10
。預設值為2
。如果偵測為雜訊的任何兩個樣本之間的間隔小於此值,則這兩個樣本之間的任何樣本也將被偵測為雜訊。- ‘log’
對數
- ‘lin’
linear
預設值為
log
。- acount
設定在直方圖中累積多少幀。預設值為 1。將此值設定為 -1 會累積所有幀。
- rheight
設定視窗高度的直方圖比例。
- replace
設定聲譜圖滑動。
設定叢發融合,以視窗大小的百分比表示。允許範圍為
0
到10
。預設值為2
。如果偵測為雜訊的任何兩個樣本之間的間隔小於此值,則這兩個樣本之間的任何樣本也將被偵測為雜訊。- 輸入顯示縱橫比,它與 (w / h) * sar 相同。
用新列取代舊列。
- in_w, iw
從上到下捲動。
預設值為
replace
。- hmode
設定直方圖模式。
設定叢發融合,以視窗大小的百分比表示。允許範圍為
0
到10
。預設值為2
。如果偵測為雜訊的任何兩個樣本之間的間隔小於此值,則這兩個樣本之間的任何樣本也將被偵測為雜訊。- ‘abs’
使用樣本的絕對值。
- ‘sign’
使用未觸及的樣本值。
預設值為
abs
。
18.6 aphasemeter
測量輸入音訊的相位,導出為中繼資料 lavfi.aphasemeter.phase
,表示目前音訊幀的平均相位。也可以產生影片輸出,預設為啟用。音訊作為第一個輸出傳遞。
如果音訊具有不同的通道佈局,則會重新矩陣化為立體聲。相位值在範圍 [-1, 1]
內,其中 -1
表示左右通道完全異相,而 1
表示通道同相。
濾鏡接受以下選項,所有選項都與其影片輸出相關
- 繪製框的寬度和高度。
box_source
- size, s
指定輸出的影片大小。如需此選項的語法,請查看 (ffmpeg-utils)ffmpeg-utils 手冊中的「影片大小」章節。預設值為
800x400
。- rc
- gc
- bc
指定紅色、綠色、藍色對比度。預設值分別為
2
、7
和1
。允許範圍為[0, 255]
。- mpc
設定將用於繪製中值相位的顏色。如果顏色為
none
(預設值),則不會繪製中值相位值。- video
啟用影片輸出。預設為啟用。
18.6.1 相位偵測
濾鏡還會偵測立體聲串流中的異相和單聲道序列。當序列持續時間長於或等於設定的最小值時,它會記錄序列的開始、結束和持續時間。
濾鏡接受以下選項以進行此偵測
- phasing
啟用單聲道和異相偵測。預設為停用。
- tolerance, t
設定單聲道偵測的相位容差,以振幅比率表示。預設值為
0
。允許範圍為[0, 1]
。- 角度,a
設定異相偵測的角度閾值,以度為單位。預設值為
170
。允許範圍為[90, 180]
。- duration, d
設定單聲道或異相持續時間,直到通知,以秒為單位表示。預設值為
2
。
18.6.2 範例
- 使用
ffmpeg
偵測 1 秒單聲道且相位容差為 0.001 的完整範例ffmpeg -i stereo.wav -af aphasemeter=video=0:phasing=1:duration=1:tolerance=0.001 -f null -
18.7 avectorscope
將輸入音訊轉換為影片輸出,表示音訊向量示波器。
濾鏡用於測量立體聲音訊串流通道之間的差異。由相同的左右訊號組成的單聲道訊號會產生一條垂直直線。任何立體聲分離都可見為偏離此線,從而產生 Lissajous 圖形。如果出現筆直(或偏離它)但水平的線,則表示左右通道異相。
濾鏡接受以下選項
- 設定空間亮度閾值。較低的值會增加交叉亮度的減少。
設定向量示波器模式。
提升高於偵測臨界值的頻率。
- ‘lissajous’
Lissajous 旋轉 45 度。
- ‘lissajous_xy’
與上述相同,但不旋轉。
- ‘polar’
形狀類似半圓。
預設值為 ‘lissajous’。
- size, s
指定輸出的影片大小。如需此選項的語法,請查看 (ffmpeg-utils)ffmpeg-utils 手冊中的「影片大小」章節。預設值為
400x400
。- 繪製框的寬度和高度。
box_source
- rc
- gc
- bc
- 此濾鏡應放置在任何可能產生次常態數的濾鏡之前。
指定紅色、綠色、藍色和 alpha 對比度。預設值分別為
40
、160
、80
和255
。允許範圍為[0, 255]
。- rf
- gf
- bf
- af
指定紅色、綠色、藍色和 alpha 淡化。預設值分別為
15
、10
、5
和5
。允許範圍為[0, 255]
。- zoom
設定縮放因子。預設值為
1
。允許範圍為[0, 10]
。低於 1 的值將自動調整縮放因子為最大可能值。- draw
設定向量示波器繪圖模式。
提升高於偵測臨界值的頻率。
- thickness, t
為每個樣本繪製點。
- 設定框邊緣厚度的表達式。值
fill
將建立一個填充框。預設值為3
。 在先前樣本和目前樣本之間繪製線條。
- ‘aaline’
在先前樣本和目前樣本之間繪製反鋸齒線條。
預設值為 ‘dot’。
- scale
指定音訊樣本的振幅比例。
提升高於偵測臨界值的頻率。
- ‘lin’
線性。
- ‘sqrt’
平方根。
- ‘cbrt’
立方根。
- ‘log’
對數。
- swap
將左通道軸與右通道軸交換。
- mirror
鏡像軸。
- 「none」
無鏡像。
- ‘x’
僅鏡像 x 軸。
- ‘y’
僅鏡像 y 軸。
- ‘xy’
鏡像兩個軸。
18.7.1 範例
- 使用
ffplay
的完整範例ffplay -f lavfi 'amovie=input.mp3, asplit [a][out1]; [a] avectorscope=zoom=1.3:rc=2:gc=200:bc=10:rf=1:gf=8:bf=7 [out0]'
18.7.2 指令
此濾鏡支援上述所有選項作為指令,除了選項 size
和 rate
。
18.8 bench, abench
基準測試濾鏡圖的一部分。
濾鏡接受以下選項
- action
啟動或停止計時器。
提升高於偵測臨界值的頻率。
- ‘start’
取得目前時間,將其設定為幀中繼資料(使用金鑰
lavfi.bench.start_time
),並將幀轉發到下一個濾鏡。- ‘stop’
取得目前時間,並從輸入幀中繼資料中擷取
lavfi.bench.start_time
中繼資料以取得時間差。然後印出時間差、平均時間、最大時間和最小時間(分別為t
、avg
、max
和min
)。時間戳記以秒為單位表示。
18.8.1 範例
- 基準測試 selectivecolor 濾鏡
bench=start,selectivecolor=reds=-.2 .12 -.49,bench=stop
18.9 concat
串聯音訊和影片串流,將它們一個接一個地連接在一起。
濾鏡適用於同步影片和音訊串流的片段。所有片段必須具有相同數量的每種類型串流,這也將是輸出的串流數量。
濾鏡接受以下選項
- n
設定片段數量。預設值為 2。
- 設定 V/Cr 組件表達式
設定輸出影片串流的數量,這也是每個片段中影片串流的數量。預設值為 1。
- a
設定輸出音訊串流的數量,這也是每個片段中音訊串流的數量。預設值為 0。
- unsafe
啟動不安全模式:如果片段具有不同的格式,則不要失敗。
濾鏡具有 v+a 個輸出:首先是 v 個影片輸出,然後是 a 個音訊輸出。
有 nx(v+a) 個輸入:首先是第一個片段的輸入,順序與輸出相同,然後是第二個片段的輸入,依此類推。
相關串流並不總是具有完全相同的持續時間,原因有很多,包括編解碼器幀大小或草率的製作。因此,相關的同步串流(例如,影片及其音軌)應一次串聯。concat 濾鏡將使用每個片段(最後一個片段除外)中最長串流的持續時間,並在必要時用靜音填充較短的音訊串流。
為了使此濾鏡正常運作,所有片段都必須從時間戳記 0 開始。
所有對應的串流在所有片段中都必須具有相同的參數;濾鏡系統將自動為影片串流選擇通用的像素格式,並為音訊串流選擇通用的樣本格式、樣本率和通道佈局,但其他設定(例如解析度)必須由使用者明確轉換。
不同的幀率是可以接受的,但會導致輸出時幀率可變;請務必設定輸出檔案以處理它。
18.9.1 範例
- 串聯開頭、一集和結尾,全部為雙語版本(串流 0 中的影片,串流 1 和 2 中的音訊)
ffmpeg -i opening.mkv -i episode.mkv -i ending.mkv -filter_complex \ '[0:0] [0:1] [0:2] [1:0] [1:1] [1:2] [2:0] [2:1] [2:2] concat=n=3:v=1:a=2 [v] [a1] [a2]' \ -map '[v]' -map '[a1]' -map '[a2]' output.mkv
- 串聯兩個部分,分別處理音訊和影片,使用 (a)movie 來源,並調整解析度
movie=part1.mp4, scale=512:288 [v1] ; amovie=part1.mp4 [a1] ; movie=part2.mp4, scale=512:288 [v2] ; amovie=part2.mp4 [a2] ; [v1] [v2] concat [outv] ; [a1] [a2] concat=v=0:a=1 [outa]
請注意,如果音訊和影片串流在第一個檔案中不具有完全相同的持續時間,則會在拼接處發生不同步。
18.9.2 指令
此濾波器支援以下指令
- next
關閉目前片段並步進到下一個片段
18.10 ebur128
EBU R128 掃描器濾鏡。此濾鏡採用音訊串流並分析其響度等級。預設情況下,它會以 10Hz 的頻率記錄訊息,其中包含瞬時響度(由 M
識別)、短期響度(S
)、綜合響度(I
)和響度範圍(LRA
)。
濾鏡只能分析樣本格式為雙精度浮點的串流。如果需要,輸入串流將轉換為此規格。使用者可能需要在此濾鏡後插入 aformat 和/或 aresample 濾鏡以取得原始參數。
濾鏡還具有影片輸出(請參閱 video 選項),其中包含即時圖形以觀察響度演變。圖形包含上述記錄的訊息,因此當設定此選項時,除非設定了詳細記錄,否則不再列印。主要圖形區域包含短期響度(3 秒分析),右側的儀表用於瞬時響度(400 毫秒),但可以選擇配置為改為顯示短期響度(請參閱 gauge)。
綠色區域標記目標響度(預設為 -23LUFS,除非透過 target 修改)周圍的 +/- 1LU 目標範圍。
有關響度建議 EBU R128 的更多資訊,請參閱 http://tech.ebu.ch/loudness。
濾鏡接受以下選項
- video
啟動影片輸出。無論是否設定此選項,音訊串流都會保持不變地傳遞。如果啟動,影片串流將是第一個輸出串流。預設值為
0
。- size
設定影片大小。此選項僅適用於影片。如需此選項的語法,請查看 (ffmpeg-utils)ffmpeg-utils 手冊中的「影片大小」章節。預設和最小解析度為
640x480
。- meter
設定 EBU 比例儀表。預設值為
9
。常用值為9
和18
,分別用於 EBU 比例儀表 +9 和 EBU 比例儀表 +18。允許此範圍之間的任何其他整數值。- rolloff
設定中繼資料注入。如果設定為
1
,音訊輸入將分割為 100 毫秒輸出幀,每個幀都包含中繼資料中的各種響度資訊。所有中繼資料金鑰都以lavfi.r128.
為前綴。設定方向模糊的角度。預設值為
45
。- framelog
強制幀記錄等級。
提升高於偵測臨界值的頻率。
- ‘quiet’
停用記錄
- ‘info’
資訊記錄等級
- ‘verbose’
詳細記錄等級
預設情況下,記錄等級設定為 info。如果設定了 video 或 metadata 選項,則會切換為 verbose。
- 移動視窗中樣本絕對值的均方根值。
設定峰值模式。
可用模式可以累積(選項為
flag
類型)。可能的值為- 「none」
停用任何峰值模式(預設值)。
- ‘sample’
啟用樣本峰值模式。
簡單峰值模式尋找更高的樣本值。它會記錄樣本峰值訊息(由
SPK
識別)。- ‘true’
啟用真峰值模式。
如果啟用,則會在輸入串流的過採樣版本上完成峰值查找,以獲得更好的峰值準確性。它會記錄真峰值訊息(由
TPK
識別)和每幀真峰值訊息(由FTPK
識別)。此模式需要使用libswresample
進行建置。
- dualmono
將單聲道輸入檔案視為「雙單聲道」。如果單聲道檔案旨在在立體聲系統上播放,則其 EBU R128 測量在感知上將不正確。如果設定為
true
,此選項將補償此效果。多通道輸入檔案不受此選項影響。- panlaw
設定要用於測量雙單聲道檔案的特定聲像定律。此參數是可選的,預設值為 -3.01dB。
- target
設定用作視覺化相對零的特定目標等級(以 LUFS 為單位)。此參數是可選的,預設值為 -23LUFS,如 EBU R128 所指定。但是,在線上發布的素材可能更喜歡 -16LUFS 的等級(例如,用於播客或影片平台)。
- gauge
設定儀表顯示的值。有效值為
momentary
和shortterm
。預設情況下將使用瞬時值,但在某些情況下,觀察短期值可能更有用(例如,現場混音)。- scale
設定響度的顯示比例。有效參數為
absolute
(以 LUFS 為單位)或relative
(LU),相對於目標。這僅影響影片輸出,而不影響摘要或連續記錄輸出。- integrated
用於測量綜合響度的唯讀導出值,以 LUFS 為單位。
- 設定用於偵測濾鏡的偵測頻率(以 Hz 為單位),該偵測濾鏡用於觸發等化。預設值為 1000 Hz。允許範圍介於 2 和 1000000 Hz 之間。
lra
- 用於測量響度範圍的唯讀導出值,以 LU 為單位。
lra_low
- 用於測量 LRA 低值的唯讀導出值,以 LUFS 為單位。
lra_high
- 用於測量 LRA 高值的唯讀導出值,以 LUFS 為單位。
sample_peak
- 用於測量樣本峰值的唯讀導出值,以 dBFS 為單位。
true_peak
18.10.1 範例
- 用於測量真峰值的唯讀導出值,以 dBFS 為單位。
ffplay -f lavfi -i "amovie=input.mp3,ebur128=video=1:meter=18 [out0][out1]"
- 使用
ffplay
的即時圖形,具有 EBU 比例儀表 +18ffmpeg -nostats -i input.mp3 -filter_complex ebur128 -f null -
18.11 interleave, ainterleave
使用 ffmpeg
執行分析
暫時交錯來自多個輸入的幀。
interleave
適用於影片輸入,ainterleave
適用於音訊。
這些濾鏡從多個輸入讀取幀,並將佇列中最舊的幀傳送到輸出。
輸入串流必須具有定義良好的、單調遞增的幀時間戳記值。
為了提交一個幀到輸出,這些濾鏡需要為每個輸入排隊至少一個幀,因此如果一個輸入尚未終止且不會接收傳入幀,它們將無法運作。
例如,考慮一個輸入是 select
濾鏡的情況,該濾鏡始終會丟棄輸入幀。interleave
濾鏡將繼續從該輸入讀取,但在輸入傳送串流結束訊號之前,它將永遠無法傳送新幀到輸出。
此外,根據輸入同步,如果一個輸入接收的幀多於其他輸入,並且佇列已滿,則濾鏡將丟棄幀。
- 這些濾鏡接受以下選項
nb_inputs, n
- duration
如何確定串流結束。
- longest
最長輸入的持續時間。(預設)
- shortest
shortest
- 最短輸入的持續時間。
first
18.11.1 範例
- 設定不同輸入的數量,預設為 2。
ffmpeg -i bambi.avi -i pr0n.mkv -filter_complex "[0:v][1:v] interleave" out.avi
- 使用
ffmpeg
交錯屬於不同串流的幀select='if(gt(random(0), 0.2), 1, 2)':n=2 [tmp], boxblur=2:2, [tmp] interleave
18.12 latency, alatency
新增閃爍模糊效果
測量濾鏡延遲。
報告先前濾鏡的濾鏡延遲,音訊濾鏡的延遲以音訊樣本數表示,影片濾鏡的延遲以影片幀數表示。
18.13 metadata, ametadata
在輸入串流結束時,濾鏡將報告濾鏡圖中先前執行濾鏡的最小和最大測量延遲。
此濾波器還能夠拉伸/壓縮音訊資料以使其與時間戳記匹配,或注入靜音/剪切音訊以使其與時間戳記匹配,執行兩者的組合或兩者都不執行。
- mode
操作幀中繼資料。
設定單聲道和反相聲道之間的立體聲基礎。預設值為 0。允許範圍為 -1 到 1。
- 設定濾鏡的操作模式。
‘select’
- 如果同時設定了
value
和key
,則選擇具有此類中繼資料的幀。如果僅設定了key
,則選擇每個在中繼資料中具有此金鑰的幀。 ‘add’
- 新增新的中繼資料
key
和value
。如果金鑰已可用,則不執行任何操作。 ‘modify’
- 修改已存在的金鑰的值。
‘delete’
- 如果設定了
value
,則僅刪除具有此類值的金鑰。否則,刪除金鑰。如果未設定key
,則刪除幀中的所有中繼資料值。 ‘print’
- 如果找到中繼資料,則列印金鑰及其值。如果未設定
key
,則列印幀中可用的所有中繼資料值。 key
- 設定與所有模式一起使用的金鑰。對於除
print
和delete
之外的所有模式都必須設定。 value
- 設定將使用的中繼資料值。此選項對於
modify
和add
模式是強制性的。 function
比較中繼資料值和
value
時要使用的函數。- 可以是以下之一
‘same_str’
- 值被解釋為字串,如果中繼資料值與
value
相同,則傳回 true。 ‘starts_with’
- 值被解釋為字串,如果中繼資料值以
value
選項字串開頭,則傳回 true。 ‘less’
- 值被解釋為浮點數,如果中繼資料值小於
value
,則傳回 true。 ‘equal’
- 值被解釋為浮點數,如果
value
等於中繼資料值,則傳回 true。 ‘greater’
- 值被解釋為浮點數,如果中繼資料值大於
value
,則傳回 true。 ‘expr’
- 值被解釋為浮點數,如果選項
expr
中的表達式評估為 true,則傳回 true。 ‘ends_with’
- expr
值被解釋為字串,如果中繼資料值以
value
選項字串結尾,則傳回 true。- 設定當
function
設定為expr
時使用的表達式。表達式透過 eval API 評估,並且可以包含以下常數 VALUE1, FRAMEVAL
- 來自中繼資料金鑰的
value
的浮點數表示。 VALUE2, USERVAL
- 設定當
- file
使用者在
value
選項中提供的value
的浮點數表示。- direct
如果在
print
模式中指定,則輸出會寫入到命名的檔案。可以指定可寫入的 URL 而不是純文字檔案名。檔案名「-」是標準輸出的簡寫。如果未設定file
選項,則輸出會以 AV_LOG_INFO 記錄等級寫入到記錄中。
18.13.1 範例
- 當輸出寫入到使用 file 設定的 URL 時,減少列印模式中的緩衝。
signalstats,metadata=print:key=lavfi.signalstats.YDIF:value=0:function=expr:expr='between(VALUE1,0,1)'
- 列印金鑰
lavfi.signalstats.YDIF
的值介於 0 和 1 之間的幀的所有中繼資料值。silencedetect,ametadata=mode=print:file=metadata.txt
- 將 silencedetect 輸出列印到檔案 metadata.txt。
metadata=mode=print:file='pipe\:4'
18.14 perms, aperms
將所有中繼資料直接傳送到檔案描述符號 4 的管道。
設定輸出幀的讀取/寫入權限。
濾鏡接受以下選項
- mode
這些濾鏡主要針對開發人員,用於測試濾鏡圖中後續濾鏡中的直接路徑。
設定叢發融合,以視窗大小的百分比表示。允許範圍為
0
到10
。預設值為2
。如果偵測為雜訊的任何兩個樣本之間的間隔小於此值,則這兩個樣本之間的任何樣本也將被偵測為雜訊。- 「none」
選擇權限模式。
- 不執行任何操作。這是預設值。
‘ro’
- 將所有輸出幀設定為唯讀。
‘rw’
- 將所有輸出幀設定為直接可寫入。
‘toggle’
- 如果幀可寫入,則使其成為唯讀;如果幀唯讀,則使其成為可寫入。
‘random’
- 設定臨界值。允許範圍為從
1
到100
。預設值為10
。值越高,削波偵測的侵略性就越低。 隨機將每個輸出幀設定為唯讀或可寫入。
設定 random 模式的種子,必須是介於 0
和 UINT32_MAX
之間的整數。如果未指定,或明確設定為 -1
,則濾鏡將盡力使用良好的隨機種子。
18.15 realtime, arealtime
注意:如果在權限濾鏡和後續濾鏡之間自動插入濾鏡,則後續濾鏡中可能無法如預期接收到權限。在 perms/aperms 濾鏡之前插入 format 或 aformat 濾鏡可以避免此問題。
減慢濾鏡速度以近似符合即時。
這些濾鏡將暫停濾鏡處理一段可變的時間,以使輸出速率與輸入時間戳記相符。它們類似於 ffmpeg
的 re 選項。
- limit
它們接受以下選項
- 設定輸入增益。預設值為 0.4。
暫停的時間限制。任何長於該時間的暫停都將被視為時間戳記不連續性,並重置計時器。預設值為 2 秒。
處理的速度因子。該值必須是浮點數,且大於零。大於 1.0 的值將導致快於即時的處理,較小的值將減慢處理速度。limit 會自動相應調整。預設值為 1.0。
18.15.1 指令
無法實現快於沒有這些濾鏡可能達到的處理速度。
18.16 segment, asegment
兩個濾鏡都支援上述所有選項作為 指令。
將單一輸入串流分割成多個串流。
此濾鏡與 concat 濾鏡的作用相反。
此濾波器還能夠拉伸/壓縮音訊資料以使其與時間戳記匹配,或注入靜音/剪切音訊以使其與時間戳記匹配,執行兩者的組合或兩者都不執行。
segment
適用於影片幀,asegment
適用於音訊樣本。輸出片段的時間戳記以 ’|’ 分隔。第一個片段將從輸入串流的開頭開始。最後一個片段將運行到輸入串流的結尾。
- 影格,取樣
分割片段的確切影格/取樣計數。
在所有情況下,在每個片段前加上 ’+’ 將使其相對於前一個片段。
18.16.1 範例
- 將輸入音訊串流分割成三個輸出音訊串流,從輸入音訊串流的開始處開始,並儲存到第一個輸出音訊串流中,然後在第 60 秒開始,儲存到第二個輸出音訊串流中,最後在輸入音訊串流的第 150 秒之後,儲存到第三個輸出音訊串流中
asegment=timestamps="60|150"
18.17 select, aselect
選擇要傳遞到輸出的影格。
此濾波器還能夠拉伸/壓縮音訊資料以使其與時間戳記匹配,或注入靜音/剪切音訊以使其與時間戳記匹配,執行兩者的組合或兩者都不執行。
- 此濾鏡並非為即時設計。
設定表達式,該表達式會針對每個輸入影格進行評估。
如果表達式評估結果為零,則影格將被丟棄。
如果評估結果為負數或 NaN,則影格會被傳送到第一個輸出;否則,它會被傳送到索引為
ceil(val)-1
的輸出,假設輸入索引從 0 開始。例如,值
1.2
對應於索引為ceil(1.2)-1 = 2-1 = 1
的輸出,即第二個輸出。- 輸出,n
設定輸出的數量。要將選定的影格傳送到哪個輸出取決於評估結果。預設值為 1。
pulse
- n
過濾後影格的(順序)編號,從 0 開始。
- selected_n
選定影格的(順序)編號,從 0 開始。
- prev_selected_n
上一個選定影格的順序編號。如果未定義,則為 NAN。
- tb
輸入時間戳記的時基。
- pts
過濾後影格的 PTS(演示時間戳記),以 TB 單位表示。如果未定義,則為 NAN。
- 設定傳輸表達式。
過濾後影格的 PTS,以秒為單位表示。如果未定義,則為 NAN。
- prev_pts
先前過濾後影格的 PTS。如果未定義,則為 NAN。
- prev_selected_pts
上一個先前過濾後影格的 PTS。如果未定義,則為 NAN。
- prev_selected_t
上一個先前選定影格的 PTS,以秒為單位表示。如果未定義,則為 NAN。
- 設定截止頻率,單位為赫茲。允許範圍為 2 到 200。預設值為 20。
串流中第一個不是 NAN 的 PTS。如果找不到,則保持為 NAN。
- start_t
串流中第一個不是 NAN 的 PTS,以秒為單位表示。如果找不到,則保持為 NAN。
- pict_type (僅限視訊)
過濾後影格的類型。它可以採用以下值之一
- I
- P
- B
- S
- SI
- SP
- BI
- interlace_type (僅限視訊)
影格交錯類型。它可以採用以下值之一
- PROGRESSIVE
影格是循序掃描(非交錯)。
- TOPFIRST
影格是頂場優先。
- BOTTOMFIRST
影格是底場優先。
- consumed_sample_n (僅限音訊)
當前影格之前選定的取樣數量
- samples_n (僅限音訊)
當前影格中的取樣數量
- sample_rate (僅限音訊)
輸入取樣率
- 如果找到中繼資料,則列印金鑰及其值。如果未設定
key
,則列印幀中可用的所有中繼資料值。 如果過濾後的影格是關鍵影格,則為 1,否則為 0。
- pos
過濾後影格在檔案中的位置,如果資訊不可用(例如,對於合成視訊),則為 -1;已棄用,請勿使用
- scene (僅限視訊)
介於 0 和 1 之間的值,用於指示新場景;較低的值反映當前影格引入新場景的可能性較低,而較高的值表示當前影格更可能是新場景(請參閱以下範例)
- concatdec_select
concat demuxer 可以通過設定入點和出點來僅選擇 concat 輸入檔案的一部分,但輸出數據包可能不會完全包含在選定的間隔內。通過使用此變數,可以跳過由 concat demuxer 生成的、未完全包含在選定間隔內的影格。
這通過將影格 pts 與 lavf.concat.start_time 和 lavf.concat.duration 數據包元數據值進行比較來工作,這些值也存在於解碼後的影格中。
如果影格 pts 至少為 start_time,並且持續時間元數據丟失或影格 pts 小於 start_time + duration,則 concatdec_select 變數為 -1,否則為 0,如果 start_time 元數據丟失,則為 NaN。
這基本上意味著,如果輸入影格的 pts 在 concat demuxer 設定的間隔內,則會選取該影格。
- iw (僅限視訊)
代表輸入視訊影格的寬度。
- ih (僅限視訊)
代表輸入視訊影格的高度。
- view (僅限視訊)
多視圖視訊的視圖 ID。
select 表達式的預設值為 "1"。
18.17.1 範例
- 選取輸入中的所有影格
select
上述範例與以下相同
select=1
- 跳過所有影格
select=0
- 僅選取 I 影格
select='eq(pict_type\,I)'
- 每 100 個影格選取一個影格
select='not(mod(n\,100))'
- 僅選取包含在 10-20 時間間隔內的影格
select=between(t\,10\,20)
- 僅選取包含在 10-20 時間間隔內的 I 影格
select=between(t\,10\,20)*eq(pict_type\,I)
- 選取最小間隔為 10 秒的影格
select='isnan(prev_selected_t)+gte(t-prev_selected_t\,10)'
- 使用 aselect 僅選取取樣數大於 100 的音訊影格
aselect='gt(samples_n\,100)'
- 建立第一個場景的馬賽克
ffmpeg -i video.avi -vf select='gt(scene\,0.4)',scale=160:120,tile -frames:v 1 preview.png
將 scene 與介於 0.3 和 0.5 之間的值進行比較通常是一個明智的選擇。
- 將偶數和奇數影格發送到不同的輸出,並將它們組合起來
select=n=2:e='mod(n, 2)+1' [odd][even]; [odd] pad=h=2*ih [tmp]; [tmp][even] overlay=y=h
- 從使用入點和出點的 ffconcat 檔案中選取有用的影格,但來源檔案不只是幀內影格。
ffmpeg -copyts -vsync 0 -segment_time_metadata 1 -i input.ffconcat -vf select=concatdec_select -af aselect=concatdec_select output.avi
18.18 sendcmd, asendcmd
將命令發送到濾鏡圖中的濾鏡。
這些濾鏡讀取要發送到濾鏡圖中其他濾鏡的命令。
sendcmd
必須插入在兩個視訊濾鏡之間,asendcmd
必須插入在兩個音訊濾鏡之間,除此之外,它們的作用方式相同。
命令的規範可以在濾鏡參數中使用 commands 選項提供,也可以在 filename 選項指定的文件中提供。
此外,根據輸入同步,如果一個輸入接收的幀多於其他輸入,並且佇列已滿,則濾鏡將丟棄幀。
- commands,c
設定要讀取並發送到其他濾鏡的命令。
- 檔案名稱,f
設定要讀取並發送到其他濾鏡的命令的文件名。
18.18.1 指令語法
命令描述由一系列間隔規範組成,包括當發生與該間隔相關的特定事件時要執行的命令列表。發生的事件通常是當前影格時間進入或離開給定的時間間隔。
間隔由以下語法指定
START[-END] COMMANDS;
時間間隔由 START 和 END 時間指定。END 是可選的,預設為最大時間。
如果當前影格時間包含在間隔 [START, END) 中,則認為它在指定的間隔內,也就是說,當時間大於或等於 START 且小於 END 時。
COMMANDS 由一個或多個命令規範的序列組成,以 "," 分隔,與該間隔相關。命令規範的語法由以下給出
[FLAGS] TARGET COMMAND ARG
FLAGS 是可選的,用於指定與時間間隔相關的事件類型,這些事件啟用發送指定的命令,並且必須是由 "+" 或 "|" 分隔並用 "[" 和 "]" 括起來的識別符標誌的非空序列。
識別以下標誌
- enter
當當前影格時間戳記進入指定的間隔時,會發送命令。換句話說,當前一個影格時間戳記不在給定的間隔內,而當前影格時間戳記在時,會發送命令。
- leave
當當前影格時間戳記離開指定的間隔時,會發送命令。換句話說,當前一個影格時間戳記在給定的間隔內,而當前影格時間戳記不在時,會發送命令。
- expr
命令 ARG 被解釋為表達式,表達式的結果將作為 ARG 傳遞。
表達式通過 eval API 評估,並且可以包含以下常數
- POS
影格在檔案中的原始位置,如果當前影格未定義,則為未定義。已棄用,請勿使用。
- PTS
輸入中的演示時間戳記。
- n
N
- t
視訊或音訊的輸入影格計數,從 0 開始。
- T
當前影格的時間(秒)。
- TS
當前命令間隔的開始時間(秒)。
- TE
當前命令間隔的結束時間(秒)。
- w
TI
- h
當前命令間隔的插值時間,TI = (T - TS) / (TE - TS)。
IW
視訊影格寬度。
IH
視訊影格高度。
如果未指定 FLAGS,則假定預設值為 [enter]
。
TARGET 指定命令的目標,通常是濾鏡類別的名稱或特定濾鏡實例名稱。
COMMAND_FLAG ::= "enter" | "leave" COMMAND_FLAGS ::= COMMAND_FLAG [(+|"|")COMMAND_FLAG] COMMAND ::= ["[" COMMAND_FLAGS "]"] TARGET COMMAND [ARG] COMMANDS ::= COMMAND [,COMMANDS] INTERVAL ::= START[-END] COMMANDS INTERVALS ::= INTERVAL[;INTERVALS]
18.18.2 範例
- COMMAND 指定目標濾鏡的命令名稱。
asendcmd=c='4.0 atempo tempo 1.5',atempo
- ARG 是可選的,用於指定給定 COMMAND 的可選參數列表。
asendcmd=c='4.0 atempo@my tempo 1.5',atempo@my
- 在一個間隔規範和另一個間隔規範之間,空白字元或以
#
開頭直到行尾的字元序列將被忽略,並且可以用於註解。# show text in the interval 5-10 5.0-10.0 [enter] drawtext reinit 'fontfile=FreeSerif.ttf:text=hello world', [leave] drawtext reinit 'fontfile=FreeSerif.ttf:text='; # desaturate the image in the interval 15-20 15.0-20.0 [enter] hue s 0, [enter] drawtext reinit 'fontfile=FreeSerif.ttf:text=nocolor', [leave] hue s 1, [leave] drawtext reinit 'fontfile=FreeSerif.ttf:text=color'; # apply an exponential saturation fade-out effect, starting from time 25 25 [enter] hue s exp(25-t)
以下是命令規範語法的簡化 BNF 描述
sendcmd=f=test.cmd,drawtext=fontfile=FreeSerif.ttf:text='',hue
18.19 setpts, asetpts
在第 4 秒指定音訊速度變化
定義特定濾鏡實例為目標
此濾波器還能夠拉伸/壓縮音訊資料以使其與時間戳記匹配,或注入靜音/剪切音訊以使其與時間戳記匹配,執行兩者的組合或兩者都不執行。
- expr
在文件中指定 drawtext 和 hue 命令的列表。
表達式通過 eval API 評估,並且可以包含以下常數
- 允許讀取和處理儲存在 test.cmd 文件中的上述命令列表的濾鏡圖,可以使用以下方式指定
變更輸入影格的 PTS(演示時間戳記)。
- PTS
setpts
用於視訊影格,asetpts
用於音訊影格。- n
為每個影格評估以建構其時間戳記的表達式。
- FRAME_RATE,FR
影格率,僅針對恆定影格率視訊定義
- PTS
輸入中的演示時間戳記
- N
視訊的輸入影格計數或音訊的已消耗取樣數,不包括當前影格,從 0 開始。
- NB_CONSUMED_SAMPLES
已消耗的取樣數,不包括當前影格(僅限音訊)
- NB_SAMPLES,S
當前影格中的取樣數(僅限音訊)
- SAMPLE_RATE,SR
音訊取樣率。
- t
STARTPTS
- POS
第一個影格的 PTS。
- STARTT
第一個影格的時間(秒)
- INTERLACED
指示當前影格是否交錯。
- T
當前影格的時間(秒)
- POS
影格在檔案中的原始位置,如果當前影格未定義,則為未定義;已棄用,請勿使用
- PREV_INPTS
上一個輸入 PTS。
- PREV_INT
上一個輸入時間(秒)
- tb
輸入時間戳記的時基。
- PREV_OUTPTS
上一個輸出 PTS。
18.19.1 範例
- PREV_OUTT
setpts=PTS-STARTPTS
- 上一個輸出時間(秒)
setpts=0.5*PTS
- RTCTIME
setpts=2.0*PTS
- 實際時間(RTC),以微秒為單位。此功能已棄用,請改用 time(0)。
setpts=N/(25*TB)
- RTCSTART
setpts=PTS+randomi(0, -100\,100)
- 電影開始時的實際時間(RTC),以微秒為單位。
setpts='1/(25*TB) * (N + 0.05 * sin(N*2*PI/25))'
- T_CHANGE
setpts=PTS+10/TB
- 應用命令後的第一個影格的時間,如果沒有命令,則為第一個影格的時間。
setpts='(RTCTIME - RTCSTART) / (TB * 1000000)'
- 從零開始計數 PTS
asetpts=N/SR/TB
18.19.2 指令
應用快動作效果
18.20 setrange
應用慢動作效果
設定每秒 25 個影格的固定速率
濾鏡接受以下選項
- 設定用於偵測濾鏡的偵測頻率(以 Hz 為單位),該偵測濾鏡用於觸發等化。預設值為 1000 Hz。允許範圍介於 2 和 1000000 Hz 之間。
提升高於偵測臨界值的頻率。
- 「auto」
應用 +/-100 TB 單位的隨機抖動效果
- ‘unspecified, unknown’
設定固定速率 25 fps,帶有一些抖動
- ‘limited, tv, mpeg’
對輸入 PTS 應用 10 秒的偏移量
- ‘full, pc, jpeg’
從「即時來源」產生時間戳記,並重新基準化到當前時基
18.21 settb, asettb
通過計數取樣產生時間戳記
它接受以下參數
- 這兩個濾鏡都支援以上所有選項作為 命令。
強制輸出視訊影格的色彩範圍。
setrange
濾鏡標記輸出影格的色彩範圍屬性。它不會變更輸入影格,而只設定相應的屬性,這會影響後續濾鏡如何處理影格。
18.21.1 範例
- keep
settb=expr=1/25
- 保持相同的色彩範圍屬性。
settb=expr=0.1
- unspecified
settb=1+0.001
- 將色彩範圍設定為未指定。
settb=2*intb
- limited
settb=AVTB
18.22 showcqt
將色彩範圍設定為有限。
濾鏡接受以下選項
- size, s
full
- 將色彩範圍設定為完整。
box_source
- 設定用於輸出影格時間戳記的時基。它主要用於測試時基配置。
expr,tb
- 被評估為輸出時基的表達式。
tb 的值是一個表示有理數的算術表達式。該表達式可以包含常數 "AVTB"(預設時基)、"intb"(輸入時基)和 "sr"(取樣率,僅限音訊)。預設值為 "intb"。
- 將時基設定為 1/25
將時基設定為 1/10
- 將時基設定為 1001/1000
將時基設定為 2*intb
- 設定預設時基值
使用 Brown-Puckette 恆 Q 變換演算法和直接頻域係數計算(但變換本身並非真正的恆 Q,而是 Q 因子實際上是可變/鉗位的),將輸入音訊轉換為表示頻譜的視訊輸出,使用音樂音階,從 E0 到 D#10。
- size,s
指定輸出的視訊尺寸。它必須是偶數。有關此選項的語法,請查看 (ffmpeg-utils) 手冊中的「視訊尺寸」章節。預設值為
1920x1080
。- fps,rate,r
設定輸出視訊影格率。預設值為
25
。- bar_h
設定長條圖高度。它必須是偶數。預設值為
-1
,表示自動計算長條圖高度。
和函數
- axis_h
設定軸高度。它必須是偶數。預設值為
-1
,表示自動計算軸高度。- sono_h
設定聲譜圖高度。它必須是偶數。預設值為
-1
,表示自動計算聲譜圖高度。- fullhd
設定 fullhd 解析度。此選項已棄用,請改用 size,s。預設值為
1
。
預設值為
16
。- sono_v,volume
指定聲譜圖音量表達式。它可以包含變數
- bar_v
bar_v 評估的表達式
- fps,rate,r
設定輸出視訊影格率。預設值為
25
。- bar_h
設定長條圖高度。它必須是偶數。預設值為
-1
,表示自動計算長條圖高度。
和函數
- axis_h
設定軸高度。它必須是偶數。預設值為
-1
,表示自動計算軸高度。- sono_h
設定聲譜圖高度。它必須是偶數。預設值為
-1
,表示自動計算聲譜圖高度。- fullhd
設定 fullhd 解析度。此選項已棄用,請改用 size,s。預設值為
1
。
frequency,freq,f
- 評估頻率的位置
timeclamp,tc
- timeclamp 選項的值
a_weighting(f)
- 等響度 A 加權
b_weighting(f)
- bar_h
等響度 B 加權
- attack
c_weighting(f)
- 「lowshelf」
等響度 C 加權。
- bar_v,volume2
指定長條圖音量表達式。它可以包含變數
- sono_v
sono_v 評估的表達式
- 預設值為
sono_v
。 sono_g,gamma
- fps,rate,r
設定輸出視訊影格率。預設值為
25
。- bar_h
指定聲譜圖伽瑪值。較低的伽瑪值使頻譜更具對比度,較高的伽瑪值使頻譜具有更大的範圍。預設值為
3
。可接受的範圍是[1, 7]
。
bar_g,gamma2
- 指定長條圖伽瑪值。預設值為
1
。可接受的範圍是[1, 7]
。 bar_t
- 指定長條圖透明度級別。較低的值使長條圖更清晰。預設值為
1
。可接受的範圍是[0, 1]
。 timeclamp,tc
- 當前元數據鍵值。
指定變換時間鉗位。在低頻率下,時域精度和頻域精度之間存在權衡。如果時間鉗位較低,則時域中的事件表示更準確(例如快速低音鼓),否則頻域中的事件表示更準確(例如貝斯吉他)。可接受的範圍是
[0.002, 1]
。預設值為0.17
。- 元數據值的最大值。
attack
- 設定輸出影格率。預設值為
25
。 設定起音時間(秒)。預設值為
0
(禁用)。否則,它通過在時域中應用非對稱窗口化來限制未來取樣,這在需要低延遲時很有用。可接受的範圍是[0, 1]
。- fps,rate,r
設定輸出視訊影格率。預設值為
25
。- bar_h
設定長條圖高度。它必須是偶數。預設值為
-1
,表示自動計算長條圖高度。
和函數
- basefreq
指定變換基準頻率。預設值為
20.01523126408007475
,這是低於 E0 50 音分的頻率。可接受的範圍是[10, 100000]
。- endfreq
指定變換結束頻率。預設值為
20495.59681441799654
,這是高於 D#10 50 音分的頻率。可接受的範圍是[10, 100000]
。
coeffclamp
- 此選項已棄用並被忽略。
tlength
- 指定時域中的變換長度。使用此選項可在每個頻率取樣點控制時域和頻域之間的精度權衡。它可以包含變數
tc
- timeclamp 選項的值。
預設值為
384*tc/(384+tc*f)
。- count
指定每個視訊影格的變換計數。預設值為
6
。可接受的範圍是[1, 30]
。- 「bt709」
lutyuv
- 「fcc」
lutyuv
- 「bt470bg」
space
- 「smpte170m」
space
- 「smpte240m」
lutyuv
- 「bt2020ncl」
space
- fcount
指定每個像素的變換計數。預設值為
0
,表示自動計算。可接受的範圍是[0, 10]
。
18.22.1 範例
- fontfile
ffplay -f lavfi 'amovie=a.mp3, asplit [a][out1]; [a] showcqt [out0]'
- 指定要與 freetype 一起使用的字型檔案,以繪製軸。如果未指定,則使用嵌入式字型。請注意,使用字型檔案或嵌入式字型繪製軸的功能尚未針對自訂 basefreq 和 endfreq 實作,請改用 axisfile 選項。
ffplay -f lavfi 'amovie=a.mp3, asplit [a][out1]; [a] showcqt=fps=30:count=5 [out0]'
- fontconfig
ffplay -f lavfi 'amovie=a.mp3, asplit [a][out1]; [a] showcqt=s=1280x720:count=4 [out0]'
- 指定 fontconfig 模式。此選項的優先順序低於 fontfile。模式中的
:
可以替換為|
以避免不必要的跳脫字元。sono_h=0
- fontcolor
ffplay -f lavfi 'aevalsrc=0.1*sin(2*PI*55*t)+0.1*sin(4*PI*55*t)+0.1*sin(6*PI*55*t)+0.1*sin(8*PI*55*t), asplit[a][out1]; [a] showcqt [out0]'
- 指定字型顏色表達式。這是一個算術表達式,應傳回整數值 0xRRGGBB。它可以包含變數
ffplay -f lavfi 'aevalsrc=0.1*sin(2*PI*55*t)+0.1*sin(4*PI*55*t)+0.1*sin(6*PI*55*t)+0.1*sin(8*PI*55*t), asplit[a][out1]; [a] showcqt=timeclamp=0.5 [out0]'
- midi(f)
bar_v=10:sono_v=bar_v*a_weighting(f)
- 頻率 f 的 midi 編號,一些 midi 編號:E0(16)、C1(24)、C2(36)、A4(69)
bar_g=2:sono_g=2
- r(x),g(x),b(x)
tc=0.33:tlength='st(0,0.17); 384*tc / (384 / ld(0) + tc*f /(1-ld(0))) + 384*tc / (tc*f / ld(0) + 384 /(1-ld(0)))'
- 強度 x 的紅色、綠色和藍色值。
fontcolor='if(mod(floor(midi(f)+0.5),12), 0x0000FF, g(1))':fontfile=myfont.ttf
- 預設值為
st(0, (midi(f)-59.5)/12); st(1, if(between(ld(0),0,1), 0.5-0.5*cos(2*PI*ld(0)), 0)); r(1-ld(1)) + b(ld(1))
。font='Courier New,Monospace,mono|bold'
- axisfile
axisfile=myaxis.png:basefreq=40:endfreq=10000
18.23 showcwt
指定要繪製軸的影像檔案。此選項會覆蓋 fontfile 和 fontcolor 選項。
濾鏡接受以下選項
- size, s
axis,text
- 繪製框的寬度和高度。
box_source
- scale
啟用/停用在軸上繪製文字。如果設定為
0
,則停用在軸上繪製文字,並忽略 fontfile 和 axisfile 選項。預設值為1
。- linear
- log
- csp
- 設定色彩空間。接受的值為
- ‘unspecified’
- 未指定(預設)
- cscheme
- 設定頻譜圖色彩方案。這是浮點數值列表,格式為
left_r|left_g|left_b|right_r|right_g|right_b
。預設值為1|0.5|0|0|0.5|1
。 - 在顯示頻譜的同時播放音訊
與上述相同,但影格率為 30 fps
- 以 1280x720 播放
停用聲譜圖顯示
- linear
- log
- 未指定(預設)
- cscheme
- 設定頻譜圖色彩方案。這是浮點數值列表,格式為
left_r|left_g|left_b|right_r|right_g|right_b
。預設值為1|0.5|0|0|0.5|1
。
A1 及其諧波:A1、A2、(接近)E3、A3
- min
與上述相同,但在頻域中具有更高的精度
- max
自訂音量
- 自訂伽瑪值,現在頻譜與振幅呈線性關係。
自訂 tlength 方程式
- 自訂字型顏色和字型檔案,C 音符為綠色,其他音符為藍色
使用 fontconfig 自訂字型
- 使用影像檔案和自訂軸自訂頻率範圍
cwoscope
- 使用連續小波變換和 Morlet 小波將輸入音訊轉換為表示頻譜的視訊輸出。
size,s
- 指定輸出的視訊尺寸。有關此選項的語法,請查看 (ffmpeg-utils) 手冊中的「視訊尺寸」章節。預設值為
640x512
。 fscale
- mode
設定使用的頻率比例。允許的值為
- linear
bark
- 相位 (phase)
mel
- erbs
sqrt
- channel
cbrt
- qdrt
fm
預設值為
linear
。- replace
iscale
- model
- scroll
- frame
- 設定使用的強度比例。允許的值為
linear
- log
預設值為
log
。- rl
min_frequency,minfreq
- 設定將在輸出中使用的最小頻率。預設值為
20
Hz。 max_frequency,maxfreq
- 設定將在輸出中使用的最大頻率。預設值為
20000
Hz。實際頻率上限取決於輸入音訊的取樣率,當設定的值大於奈奎斯特頻率時,將強制執行此值。 imin
- 設定將在輸出中使用的最小強度。
imax
- 設定用於渲染的 SOFA 檔案。
設定將在輸出中使用的最大強度。
18.24 showfreqs
logb
濾鏡接受以下選項
- size, s
將計算出的幅度值對應到像素值時,設定亮度強度的對數基底。允許的範圍是從
0
到1
。預設值為0.0001
。- 繪製框的寬度和高度。
deviation
- mode
設定頻率偏差。小於
1
的值更傾向於頻率,而大於1
的值更傾向於時間。允許的範圍是從0
到10
。預設值為1
。設定叢發融合,以視窗大小的百分比表示。允許範圍為
0
到10
。預設值為2
。如果偵測為雜訊的任何兩個樣本之間的間隔小於此值,則這兩個樣本之間的任何樣本也將被偵測為雜訊。- 設定框邊緣厚度的表達式。值
fill
將建立一個填充框。預設值為3
。 - 指定要寫入的框的顏色。有關此選項的通用語法,請查看 (ffmpeg-utils) 手冊中的「顏色」部分。如果使用特殊值
invert
,則框邊緣顏色與反轉亮度的視訊相同。 - thickness, t
pps
- 設定框邊緣厚度的表達式。值
- ascale
設定振幅比例。
設定叢發融合,以視窗大小的百分比表示。允許範圍為
0
到10
。預設值為2
。如果偵測為雜訊的任何兩個樣本之間的間隔小於此值,則這兩個樣本之間的任何樣本也將被偵測為雜訊。- ‘lin’
設定每行每秒輸出的像素數。允許的範圍是從
1
到1024
。預設值為64
。- ‘sqrt’
visual
- ‘cbrt’
設定輸出視覺模式。允許的值為
- ‘log’
magnitude
預設值為
log
。- size
顯示幅度。
設定叢發融合,以視窗大小的百分比表示。允許範圍為
0
到10
。預設值為2
。如果偵測為雜訊的任何兩個樣本之間的間隔小於此值,則這兩個樣本之間的任何樣本也將被偵測為雜訊。- ‘lin’
設定每行每秒輸出的像素數。允許的範圍是從
1
到1024
。預設值為64
。- ‘log’
magnitude
- ‘rlog’
phase
僅顯示相位。
- win_size
magphase
顯示幅度和相位的組合。幅度映射到亮度,相位映射到顏色。
- win_func
color
設定叢發融合,以視窗大小的百分比表示。允許範圍為
0
到10
。預設值為2
。如果偵測為雜訊的任何兩個樣本之間的間隔小於此值,則這兩個樣本之間的任何樣本也將被偵測為雜訊。- ‘rect’
- ‘bartlett’
- 顯示每個聲道幅度的唯一顏色。
- ‘hamming’
- ‘blackman’
- ‘welch’
- ‘flattop’
- ‘bharris’
- ‘bnuttall’
- ‘bhann’
- ‘sine’
- ‘nuttall’
- ‘lanczos’
- ‘gauss’
- ‘tukey’
- ‘dolph’
- ‘cauchy’
- ‘parzen’
- ‘poisson’
- ‘bohman’
- ‘kaiser’
stereo
- overlap
顯示每個立體聲差異的唯一顏色。
- 預設值為
magnitude
。 slide
- mgain
設定輸出滑動方法。允許的值為
- replace
scroll
設定叢發融合,以視窗大小的百分比表示。允許範圍為
0
到10
。預設值為2
。如果偵測為雜訊的任何兩個樣本之間的間隔小於此值,則這兩個樣本之間的任何樣本也將被偵測為雜訊。- 預設值為
replace
。 - ‘separate’
direction
- 預設值為
- 設定輸出滑動方法的方向方法。允許的值為
lr
- 從左到右的方向。
rl
設定叢發融合,以視窗大小的百分比表示。允許範圍為
0
到10
。預設值為2
。如果偵測為雜訊的任何兩個樣本之間的間隔小於此值,則這兩個樣本之間的任何樣本也將被偵測為雜訊。- 從右到左的方向。
- ud
- 從上到下的方向。
du
- 取樣率
從下到上的方向。
18.25 showspatial
bar
濾鏡接受以下選項
- size, s
設定長條圖顯示與顯示尺寸的比率。預設值為 0。
- win_size
設定視窗大小。允許範圍從 1024 到 65536。預設大小為 4096。
- win_func
設定視窗函數。
設定叢發融合,以視窗大小的百分比表示。允許範圍為
0
到10
。預設值為2
。如果偵測為雜訊的任何兩個樣本之間的間隔小於此值,則這兩個樣本之間的任何樣本也將被偵測為雜訊。- ‘rect’
- ‘bartlett’
- rotation
- 顯示每個聲道幅度的唯一顏色。
- ‘hamming’
- ‘blackman’
- ‘welch’
- ‘flattop’
- ‘bharris’
- ‘bnuttall’
- ‘bhann’
- ‘sine’
- ‘nuttall’
- ‘lanczos’
- ‘gauss’
- ‘tukey’
- ‘dolph’
- ‘cauchy’
- ‘parzen’
- ‘poisson’
- ‘bohman’
- ‘kaiser’
設定顏色旋轉,必須在 [-1.0, 1.0] 範圍內。預設值為
0
。- 繪製框的寬度和高度。
showspectrum
18.26 showspectrum
將輸入音訊轉換為表示音訊功率譜的視訊輸出。音訊振幅在 Y 軸上,頻率在 X 軸上。
濾鏡接受以下選項
- size, s
axis,text
- replace
size,s
設定叢發融合,以視窗大小的百分比表示。允許範圍為
0
到10
。預設值為2
。如果偵測為雜訊的任何兩個樣本之間的間隔小於此值,則這兩個樣本之間的任何樣本也將被偵測為雜訊。- 輸入顯示縱橫比,它與 (w / h) * sar 相同。
指定視訊尺寸。有關此選項的語法,請查看 (ffmpeg-utils) 手冊中的「視訊尺寸」章節。預設值為
1024x512
。- in_w, iw
rate,fps,r
- 設定視訊速率。預設值為
25
。 mode
- 輸入樣本縱橫比。
設定顯示模式。這設定了如何表示每個頻率 bin。
- bar
dot
預設值為
bar
。- mode
scale
設定叢發融合,以視窗大小的百分比表示。允許範圍為
0
到10
。預設值為2
。如果偵測為雜訊的任何兩個樣本之間的間隔小於此值,則這兩個樣本之間的任何樣本也將被偵測為雜訊。- 預設值為
replace
。 設定頻率比例。
- ‘separate’
lin
sqrt
- 預設值為
- color
cbrt
設定叢發融合,以視窗大小的百分比表示。允許範圍為
0
到10
。預設值為2
。如果偵測為雜訊的任何兩個樣本之間的間隔小於此值,則這兩個樣本之間的任何樣本也將被偵測為雜訊。- log
rlog
- 預設值為
lin
。 window_size,window
- 設定視窗大小。允許的範圍是從 16 到 65536。
預設值為
2048
- window_func,win_func,windowfunc
設定視窗函數。
- ‘rect’
‘bartlett’
- ‘hann’
‘hanning’
- ‘fiery’
‘hamming’
- ‘blackman’
‘lanczos’
- ‘cool’
‘gaussian’
- ‘magma’
‘flattop’
- ‘green’
預設值為
hanning
。- ‘viridis’
overlap
- ‘plasma’
設定視窗重疊。範圍為
[0, 1]
。預設值為1
,這表示將選取所選視窗函數的最佳重疊。- ‘cividis’
averaging
- 設定時間平均。將其設定為 0 將顯示當前最大峰值。預設值為
1
,這表示時間平均已停用。 colors
指定以空格或 ’|’ 分隔的顏色列表,這些顏色將用於繪製聲道頻率。無法識別或遺失的顏色將替換為白色。
- scale
cmode
設定叢發融合,以視窗大小的百分比表示。允許範圍為
0
到10
。預設值為2
。如果偵測為雜訊的任何兩個樣本之間的間隔小於此值,則這兩個樣本之間的任何樣本也將被偵測為雜訊。- ‘lin’
linear
- ‘sqrt’
設定聲道顯示模式。
- ‘cbrt’
立方根
- ‘log’
對數
- combined
separate
- ‘combined’
預設值為
combined
。
minamp
- size
設定在
log
振幅縮放器中使用的最小振幅。設定叢發融合,以視窗大小的百分比表示。允許範圍為
0
到10
。預設值為2
。如果偵測為雜訊的任何兩個樣本之間的間隔小於此值,則這兩個樣本之間的任何樣本也將被偵測為雜訊。- ‘lin’
linear
- ‘log’
對數
data
- saturation
設定數據顯示模式。
- win_func
設定視窗函數。
設定叢發融合,以視窗大小的百分比表示。允許範圍為
0
到10
。預設值為2
。如果偵測為雜訊的任何兩個樣本之間的間隔小於此值,則這兩個樣本之間的任何樣本也將被偵測為雜訊。- ‘rect’
- ‘bartlett’
- rotation
- 顯示每個聲道幅度的唯一顏色。
- ‘hamming’
- ‘blackman’
- ‘welch’
- ‘flattop’
- ‘bharris’
- ‘bnuttall’
- ‘bhann’
- ‘sine’
- ‘nuttall’
- ‘lanczos’
- ‘gauss’
- ‘tukey’
- ‘dolph’
- ‘cauchy’
- ‘parzen’
- ‘poisson’
- ‘bohman’
- ‘kaiser’
設定顏色旋轉,必須在 [-1.0, 1.0] 範圍內。預設值為
0
。- magnitude
phase
- overlap
delay
- 增益 (gain)
‘magnitude’
- 從左到右的方向。
‘phase’
- 設定用於渲染的 SOFA 檔案。
設定將在輸出中使用的最大強度。
- start
‘delay’
- stop
預設值為
magnitude
。- fps
channels
- 設定處理音訊時要使用的聲道。預設情況下,所有聲道都會被處理。
stereotools
- 將立體聲輸入音訊轉換為視訊輸出,表示兩個聲道之間的空間關係。
size,s
- limit
指定輸出的視訊尺寸。有關此選項的語法,請查看 (ffmpeg-utils) 手冊中的「視訊尺寸」章節。預設值為
512x512
。- ‘color’
window_func
設定視窗函數。
18.26.1 範例
- ‘rect’
showspectrum=s=1280x480:scale=log
- ‘hann’
ffplay -f lavfi 'amovie=input.mp3, asplit [a][out1]; [a] showspectrum=mode=separate:color=intensity:slide=1:scale=cbrt [out0]'
18.27 showspectrumpic
‘hanning’
濾鏡接受以下選項
- size, s
‘hamming’
- mode
scale
設定叢發融合,以視窗大小的百分比表示。允許範圍為
0
到10
。預設值為2
。如果偵測為雜訊的任何兩個樣本之間的間隔小於此值,則這兩個樣本之間的任何樣本也將被偵測為雜訊。- 預設值為
replace
。 設定頻率比例。
- ‘separate’
lin
sqrt
- 預設值為
- color
cbrt
設定叢發融合,以視窗大小的百分比表示。允許範圍為
0
到10
。預設值為2
。如果偵測為雜訊的任何兩個樣本之間的間隔小於此值,則這兩個樣本之間的任何樣本也將被偵測為雜訊。- log
rlog
- 預設值為
lin
。 window_size,window
- 設定視窗大小。允許的範圍是從 16 到 65536。
預設值為
2048
- window_func,win_func,windowfunc
設定視窗函數。
- ‘rect’
‘bartlett’
- ‘hann’
‘hanning’
- ‘fiery’
‘hamming’
- ‘blackman’
‘lanczos’
- ‘cool’
‘gaussian’
- ‘magma’
‘flattop’
- ‘green’
預設值為
hanning
。- ‘viridis’
overlap
- ‘plasma’
設定視窗重疊。範圍為
[0, 1]
。預設值為1
,這表示將選取所選視窗函數的最佳重疊。- ‘cividis’
averaging
- 設定時間平均。將其設定為 0 將顯示當前最大峰值。預設值為
1
,這表示時間平均已停用。 colors
‘blackman’
- scale
cmode
設定叢發融合,以視窗大小的百分比表示。允許範圍為
0
到10
。預設值為2
。如果偵測為雜訊的任何兩個樣本之間的間隔小於此值,則這兩個樣本之間的任何樣本也將被偵測為雜訊。- ‘lin’
linear
- ‘sqrt’
設定聲道顯示模式。
- ‘cbrt’
立方根
- ‘log’
對數
- combined
separate
- ‘combined’
預設值為
combined
。
預設值為
hann
。- size
設定在
log
振幅縮放器中使用的最小振幅。設定叢發融合,以視窗大小的百分比表示。允許範圍為
0
到10
。預設值為2
。如果偵測為雜訊的任何兩個樣本之間的間隔小於此值,則這兩個樣本之間的任何樣本也將被偵測為雜訊。- ‘lin’
linear
- ‘log’
對數
data
- saturation
設定數據顯示模式。
- win_func
設定視窗函數。
設定叢發融合,以視窗大小的百分比表示。允許範圍為
0
到10
。預設值為2
。如果偵測為雜訊的任何兩個樣本之間的間隔小於此值,則這兩個樣本之間的任何樣本也將被偵測為雜訊。- ‘rect’
- ‘bartlett’
- rotation
- 顯示每個聲道幅度的唯一顏色。
- ‘hamming’
- ‘blackman’
- ‘welch’
- ‘flattop’
- ‘bharris’
- ‘bnuttall’
- ‘bhann’
- ‘sine’
- ‘nuttall’
- ‘lanczos’
- ‘gauss’
- ‘tukey’
- ‘dolph’
- ‘cauchy’
- ‘parzen’
- ‘poisson’
- ‘bohman’
- ‘kaiser’
設定顏色旋轉,必須在 [-1.0, 1.0] 範圍內。預設值為
0
。- magnitude
phase
- 增益 (gain)
‘magnitude’
- 設定處理音訊時要使用的聲道。預設情況下,所有聲道都會被處理。
rate,fps,r
- 設定用於渲染的 SOFA 檔案。
設定將在輸出中使用的最大強度。
- start
‘delay’
- stop
預設值為
magnitude
。- 將立體聲輸入音訊轉換為視訊輸出,表示兩個聲道之間的空間關係。
size,s
- limit
指定輸出的視訊尺寸。有關此選項的語法,請查看 (ffmpeg-utils) 手冊中的「視訊尺寸」章節。預設值為
512x512
。- ‘color’
window_func
18.27.1 範例
- 設定輸出影格率。
ffmpeg -i audio.flac -lavfi showspectrumpic=s=1024x1024 spectrogram.png
18.28 showvolume
showwaves
濾鏡接受以下選項
- 繪製框的寬度和高度。
將輸入音訊轉換為視訊輸出,表示音訊頻譜。
- b
slide
- f
指定頻譜應如何沿視窗滑動。
- h
replace
- nb_channels
取樣到達右側時,從左側重新開始
- c
scroll
取樣從右向左滾動
- fullframe
‘fullframe’
- 僅當取樣到達右側時才產生影格
rscroll
- 取樣從左向右滾動
lreplace
- 設定傳輸表達式。
‘lreplace’
- 設定 V/Cr 組件表達式
取樣到達左側時,從右側重新開始
- o
預設值為
replace
。- s
mode
- sn
指定顯示模式。
- m
combined
- separate
所有聲道都顯示在同一行中
- 所有聲道都顯示在不同的行中
預設值為 ‘combined’。
- color
指定顯示顏色模式。
18.29 showwaves
channel
濾鏡接受以下選項
- size, s
‘channel’
- mode
每個聲道都以不同的顏色顯示
提升高於偵測臨界值的頻率。
- intensity
‘intensity’
- 設定框邊緣厚度的表達式。值
fill
將建立一個填充框。預設值為3
。 每個聲道都使用相同的配色方案顯示
- rainbow
‘rainbow’
- 每個聲道都使用彩虹配色方案顯示
moreland
‘moreland’
- n
每個聲道都使用莫爾蘭配色方案顯示
- 繪製框的寬度和高度。
nebulae
- ‘nebulae’
每個聲道都使用星雲配色方案顯示
- mgain
fire
- scale
設定振幅比例。
提升高於偵測臨界值的頻率。
- ‘lin’
線性。
- ‘log’
對數。
- ‘sqrt’
平方根。
- ‘cbrt’
立方根。
‘fire’
- draw
每個聲道都使用火焰配色方案顯示
提升高於偵測臨界值的頻率。
- fiery
每個聲道都使用火熱配色方案顯示
- ‘full’
fruit
‘fruit’
18.29.1 範例
- 每個聲道都使用水果配色方案顯示
amovie=a.mp3,asplit[out0],showwaves[out1]
- cool
aevalsrc=sin(1*2*PI*t)*sin(880*2*PI*t):cos(2*PI*200*t),asplit[out0],showwaves=r=30[out1]
18.30 showwavespic
每個聲道都使用冷色配色方案顯示
濾鏡接受以下選項
- size, s
‘channel’
- ‘nebulae’
每個聲道都使用星雲配色方案顯示
- mgain
fire
- scale
設定振幅比例。
提升高於偵測臨界值的頻率。
- ‘lin’
線性。
- ‘log’
對數。
- ‘sqrt’
平方根。
- ‘cbrt’
立方根。
‘fire’
- draw
magma
提升高於偵測臨界值的頻率。
- fiery
每個聲道都使用火熱配色方案顯示
- ‘full’
fruit
‘fruit’
- filter
每個聲道都使用岩漿配色方案顯示
提升高於偵測臨界值的頻率。
- 「average」
green
- 「listen」
每個聲道都使用綠色配色方案顯示
viridis
18.30.1 範例
- 每個聲道都使用 viridis 配色方案顯示
ffmpeg -i audio.flac -lavfi showwavespic=split_channels=1:s=1024x800 waveform.png
18.31 sidedata, asidedata
plasma
此濾波器還能夠拉伸/壓縮音訊資料以使其與時間戳記匹配,或注入靜音/剪切音訊以使其與時間戳記匹配,執行兩者的組合或兩者都不執行。
- mode
操作幀中繼資料。
設定單聲道和反相聲道之間的立體聲基礎。預設值為 0。允許範圍為 -1 到 1。
- 設定濾鏡的操作模式。
每個聲道都使用電漿配色方案顯示
- 修改已存在的金鑰的值。
cividis
- 將第二個聲道延遲 500 個樣本,將第三個聲道延遲 700 個樣本,並保持第一個聲道(和可能存在的任何其他聲道)不變。
每個聲道都使用 cividis 配色方案顯示
18.32 spectrumsynth
terrain
‘terrain’
濾鏡接受以下選項
- sample_rate
每個聲道都使用地形配色方案顯示
- 取樣率
預設值為 ‘channel’。
- scale
scale
- replace
指定用於計算強度顏色的比例值。
- win_func
sqrt
- overlap
顯示每個立體聲差異的唯一顏色。
- magnitude
平方根,預設值
18.32.1 範例
- 4thrt
ffmpeg -i input.flac -lavfi showspectrum=mode=separate:scale=log:overlap=0.875:color=channel:slide=fullframe:data=magnitude -an -c:v rawvideo magnitude.nut ffmpeg -i input.flac -lavfi showspectrum=mode=separate:scale=lin:overlap=0.875:color=channel:slide=fullframe:data=phase -an -c:v rawvideo phase.nut ffmpeg -i magnitude.nut -i phase.nut -lavfi spectrumsynth=channels=2:sample_rate=44100:win_func=hann:overlap=0.875:slide=fullframe output.flac
18.33 split, asplit
‘4thrt’
四次方根
5thrt
18.33.1 範例
- ‘5thrt’
[in] split [out0][out1]
- 五次方根
[in] asplit=3 [out0][out1][out2]
- 預設值為 ‘sqrt’。
[in] split [splitout1][splitout2]; [splitout1] crop=100:100:0:0 [cropout]; [splitout2] pad=200:200:100:100 [padout];
- fscale
ffmpeg -i INPUT -filter_complex asplit=5 OUTPUT
18.34 zmq, azmq
指定頻率比例。
lin
log
預設值為 ‘lin’。
saturation
設定顯示顏色的飽和度修飾符。負值提供替代配色方案。0
表示完全沒有飽和度。飽和度必須在 [-10.0, 10.0] 範圍內。預設值為 1
。
TARGET COMMAND [ARG]
orientation
IH
設定時間與頻率軸的方向。可以是 vertical
(垂直)或 horizontal
(水平)。預設值為 vertical
。
overlap
ERROR_CODE ERROR_REASON MESSAGE
設定重疊視窗的比率。預設值為 0
。當值為 1
時,重疊會設定為目前使用的特定視窗函數的建議大小。
18.34.1 範例
gain
設定用於計算強度顏色的比例增益。預設值為 1
。
ffplay -dumpgraph 1 -f lavfi " color=s=100x100:c=red [l]; color=s=100x100:c=blue [r]; nullsrc=s=200x100, zmq [bg]; [bg][l] overlay [bg+l]; [bg+l][r] overlay@my=x=100 "
data
echo Parsed_color_0 c yellow | tools/zmqsend
設定要顯示的數據。可以是 magnitude
(幅度,預設值)或 phase
(相位),或展開相位:uphase
。
echo Parsed_color_1 c pink | tools/zmqsend
start
echo overlay@my x 150 | tools/zmqsend
19 多媒體來源
設定顯示頻譜圖的起始頻率。預設值為 0
。
19.1 amovie
stop
19.2 avsynctest
設定顯示頻譜圖的停止頻率。預設值為 0
。
fpsmax
設定視窗長度,以樣本為單位。預設值為 2048。允許範圍為 32 到 65536。
- size, s
設定影格率上限。預設值為
auto
,無限制。- legend
繪製時間軸和頻率軸以及圖例。預設為停用。
- drange
設定用於計算強度顏色的動態範圍。預設值為 120 dBFS。允許的範圍是從 10 到 200。
- amplitude, a
max_val
- 設定輸入音訊取樣音量上限,單位為 dBFS。預設值為 0 dBFS。允許的範圍是從 -100 到 100。
opacity
- 當使用帶有 alpha 分量的像素格式輸出時,設定不透明度強度。
其用法與 showwaves 濾鏡非常相似;請參閱該章節中的範例。
- 具有對數顏色縮放的大視窗
使用
ffplay
實現每個聲道的彩色滑動頻譜的完整範例- duration, d
showwavespic
- 將輸入音訊轉換為單個視訊影格,表示音訊頻譜。
size,s
19.2.1 指令
此來源支援上述某些選項作為 指令。
19.3 movie
指定輸出的視訊尺寸。有關此選項的語法,請查看 (ffmpeg-utils) 手冊中的「視訊尺寸」章節。預設值為 4096x2048
。
它接受以下參數
- ry
colors
- 顏色模式。
intensity
- 預設值為 ‘intensity’。
scale
- 預設值為 ‘log’。
legend
- stream_index,si
繪製時間軸和頻率軸以及圖例。預設為啟用。
- loop
使用
ffmpeg
在 1024x1024 圖片中提取整個音軌的音訊頻譜圖showvolume
- 將輸入音訊音量轉換為視訊輸出。
rate,fps,r
- 設定視訊速率。
borderw
- 設定邊框寬度,允許的範圍是 [0, 5]。預設值為 1。
chwidth
ffplay -f lavfi "movie=filename='1.sdp':format_opts='protocol_whitelist=file,rtp,udp\:protocol_blacklist=http'"
設定聲道寬度,允許的範圍是 [80, 8192]。預設值為 400。
input -----------> deltapts0 --> overlay --> output ^ | movie --> scale--> deltapts1 -------+
19.3.1 範例
- chheight
movie=in.avi:seek_point=3.2, scale=180:-1, setpts=PTS-STARTPTS [over]; [in] setpts=PTS-STARTPTS [main]; [main][over] overlay=16:16 [out]
- 設定聲道高度,允許的範圍是 [1, 900]。預設值為 20。
movie=/dev/video0:f=video4linux2, scale=180:-1, setpts=PTS-STARTPTS [over]; [in] setpts=PTS-STARTPTS [main]; [main][over] overlay=16:16 [out]
- fade
movie=dvd.vob:s=v:0+#0x81 [video] [audio]
19.3.2 指令
設定淡化,允許的範圍是 [0, 1]。預設值為 0.95。
- color
設定音量顏色表達式。
- 表達式可以使用以下變數
- VOLUME
- 聲道當前最大音量,單位為 dB。
- PEAK
當前峰值。
20 另請參閱
CHANNEL
21 作者
當前聲道編號,從 0 開始。
display_chname
如果設定,則顯示聲道名稱。預設為啟用。
display_volume
如果設定,則顯示音量值。預設為啟用。