Spis treści
- 1 Description
- 2 Filtering Introduction
- 3 graph2dot
- 4 Filtergraph description
- 5 Timeline editing
- 6 Changing options at runtime with a command
- 7 Options for filters with several inputs (framesync)
- 8 Audio Filters
- 8.1 acompressor
- 8.2 acontrast
- 8.3 acopy
- 8.4 acrossfade
- 8.5 acrossover
- 8.6 acrusher
- 8.7 acue
- 8.8 adeclick
- 8.9 adeclip
- 8.10 adecorrelate
- 8.11 adelay
- 8.12 adenorm
- 8.13 aderivative, aintegral
- 8.14 adynamicequalizer
- 8.15 adynamicsmooth
- 8.16 aecho
- 8.17 aemphasis
- 8.18 aeval
- 8.19 aexciter
- 8.20 afade
- 8.21 afftdn
- 8.22 afftfilt
- 8.23 afir
- 8.24 aformat
- 8.25 afreqshift
- 8.26 afwtdn
- 8.27 agate
- 8.28 aiir
- 8.29 alimiter
- 8.30 allpass
- 8.31 aloop
- 8.32 amerge
- 8.33 amix
- 8.34 amultiply
- 8.35 anequalizer
- 8.36 anlmdn
- 8.37 anlmf, anlms
- 8.38 anull
- 8.39 apad
- 8.40 aphaser
- 8.41 aphaseshift
- 8.42 apsyclip
- 8.43 apulsator
- 8.44 aresample
- 8.45 areverse
- 8.46 arnndn
- 8.47 asdr
- 8.48 asetnsamples
- 8.49 asetrate
- 8.50 ashowinfo
- 8.51 asoftclip
- 8.52 aspectralstats
- 8.53 asr
- 8.54 astats
- 8.55 asubboost
- 8.56 asubcut
- 8.57 asupercut
- 8.58 asuperpass
- 8.59 asuperstop
- 8.60 atempo
- 8.61 atilt
- 8.62 atrim
- 8.63 axcorrelate
- 8.64 bandpass
- 8.65 bandreject
- 8.66 bass, lowshelf
- 8.67 biquad
- 8.68 bs2b
- 8.69 channelmap
- 8.70 channelsplit
- 8.71 chorus
- 8.72 compand
- 8.73 compensationdelay
- 8.74 crossfeed
- 8.75 crystalizer
- 8.76 dcshift
- 8.77 deesser
- 8.78 dialoguenhance
- 8.79 drmeter
- 8.80 dynaudnorm
- 8.81 earwax
- 8.82 equalizer
- 8.83 extrastereo
- 8.84 firequalizer
- 8.85 flanger
- 8.86 haas
- 8.87 hdcd
- 8.88 headphone
- 8.89 highpass
- 8.90 join
- 8.91 ladspa
- 8.92 loudnorm
- 8.93 lowpass
- 8.94 lv2
- 8.95 mcompand
- 8.96 pan
- 8.97 replaygain
- 8.98 resample
- 8.99 rubberband
- 8.100 sidechaincompress
- 8.101 sidechaingate
- 8.102 silencedetect
- 8.103 silenceremove
- 8.104 sofalizer
- 8.105 speechnorm
- 8.106 stereotools
- 8.107 stereowiden
- 8.108 superequalizer
- 8.109 surround
- 8.110 tiltshelf
- 8.111 treble, highshelf
- 8.112 tremolo
- 8.113 vibrato
- 8.114 virtualbass
- 8.115 volume
- 8.116 volumedetect
- 9 Audio Sources
- 10 Audio Sinks
- 11 Video Filters
- 11.1 addroi
- 11.2 alphaextract
- 11.3 alphamerge
- 11.4 amplify
- 11.5 ass
- 11.6 atadenoise
- 11.7 avgblur
- 11.8 bbox
- 11.9 bilateral
- 11.10 bitplanenoise
- 11.11 blackdetect
- 11.12 blackframe
- 11.13 blend
- 11.14 blockdetect
- 11.15 blurdetect
- 11.16 bm3d
- 11.17 boxblur
- 11.18 bwdif
- 11.19 cas
- 11.20 chromahold
- 11.21 chromakey
- 11.22 chromakey_cuda
- 11.23 chromanr
- 11.24 chromashift
- 11.25 ciescope
- 11.26 codecview
- 11.27 colorbalance
- 11.28 colorcontrast
- 11.29 colorcorrect
- 11.30 colorchannelmixer
- 11.31 colorize
- 11.32 colorkey
- 11.33 colorhold
- 11.34 colorlevels
- 11.35 colormap
- 11.36 colormatrix
- 11.37 colorspace
- 11.38 colortemperature
- 11.39 convolution
- 11.40 convolve
- 11.41 copy
- 11.42 coreimage
- 11.43 cover_rect
- 11.44 crop
- 11.45 cropdetect
- 11.46 cue
- 11.47 curves
- 11.48 datascope
- 11.49 dblur
- 11.50 dctdnoiz
- 11.51 deband
- 11.52 deblock
- 11.53 decimate
- 11.54 deconvolve
- 11.55 dedot
- 11.56 deflate
- 11.57 deflicker
- 11.58 dejudder
- 11.59 delogo
- 11.60 derain
- 11.61 deshake
- 11.62 despill
- 11.63 detelecine
- 11.64 dilation
- 11.65 displace
- 11.66 dnn_classify
- 11.67 dnn_detect
- 11.68 dnn_processing
- 11.69 drawbox
- 11.70 drawgraph
- 11.71 drawgrid
- 11.72 drawtext
- 11.73 edgedetect
- 11.74 elbg
- 11.75 entropy
- 11.76 epx
- 11.77 eq
- 11.78 erosion
- 11.79 estdif
- 11.80 exposure
- 11.81 extractplanes
- 11.82 fade
- 11.83 feedback
- 11.84 fftdnoiz
- 11.85 fftfilt
- 11.86 field
- 11.87 fieldhint
- 11.88 fieldmatch
- 11.89 fieldorder
- 11.90 fifo, afifo
- 11.91 fillborders
- 11.92 find_rect
- 11.93 floodfill
- 11.94 format
- 11.95 fps
- 11.96 framepack
- 11.97 framerate
- 11.98 framestep
- 11.99 freezedetect
- 11.100 freezeframes
- 11.101 frei0r
- 11.102 fspp
- 11.103 gblur
- 11.104 geq
- 11.105 gradfun
- 11.106 graphmonitor
- 11.107 grayworld
- 11.108 greyedge
- 11.109 guided
- 11.110 haldclut
- 11.111 hflip
- 11.112 histeq
- 11.113 histogram
- 11.114 hqdn3d
- 11.115 hwdownload
- 11.116 hwmap
- 11.117 hwupload
- 11.118 hwupload_cuda
- 11.119 hqx
- 11.120 hstack
- 11.121 hsvhold
- 11.122 hsvkey
- 11.123 hue
- 11.124 huesaturation
- 11.125 hysteresis
- 11.126 iccdetect
- 11.127 iccgen
- 11.128 identity
- 11.129 idet
- 11.130 il
- 11.131 inflate
- 11.132 interlace
- 11.133 kerndeint
- 11.134 kirsch
- 11.135 lagfun
- 11.136 lenscorrection
- 11.137 lensfun
- 11.138 libplacebo
- 11.139 libvmaf
- 11.140 limitdiff
- 11.141 limiter
- 11.142 loop
- 11.143 lut1d
- 11.144 lut3d
- 11.145 lumakey
- 11.146 lut, lutrgb, lutyuv
- 11.147 lut2, tlut2
- 11.148 maskedclamp
- 11.149 maskedmax
- 11.150 maskedmerge
- 11.151 maskedmin
- 11.152 maskedthreshold
- 11.153 maskfun
- 11.154 mcdeint
- 11.155 median
- 11.156 mergeplanes
- 11.157 mestimate
- 11.158 midequalizer
- 11.159 minterpolate
- 11.160 mix
- 11.161 monochrome
- 11.162 morpho
- 11.163 mpdecimate
- 11.164 msad
- 11.165 multiply
- 11.166 negate
- 11.167 nlmeans
- 11.168 nnedi
- 11.169 noformat
- 11.170 noise
- 11.171 normalize
- 11.172 null
- 11.173 ocr
- 11.174 ocv
- 11.175 oscilloscope
- 11.176 overlay
- 11.177 overlay_cuda
- 11.178 owdenoise
- 11.179 pad
- 11.180 palettegen
- 11.181 paletteuse
- 11.182 perspective
- 11.183 phase
- 11.184 photosensitivity
- 11.185 pixdesctest
- 11.186 pixelize
- 11.187 pixscope
- 11.188 pp
- 11.189 pp7
- 11.190 premultiply
- 11.191 prewitt
- 11.192 pseudocolor
- 11.193 psnr
- 11.194 pullup
- 11.195 qp
- 11.196 random
- 11.197 readeia608
- 11.198 readvitc
- 11.199 remap
- 11.200 removegrain
- 11.201 removelogo
- 11.202 repeatfields
- 11.203 reverse
- 11.204 rgbashift
- 11.205 roberts
- 11.206 rotate
- 11.207 sab
- 11.208 scale
- 11.209 scale_cuda
- 11.210 scale_npp
- 11.211 scale2ref
- 11.212 scale2ref_npp
- 11.213 scharr
- 11.214 scroll
- 11.215 scdet
- 11.216 selectivecolor
- 11.217 separatefields
- 11.218 setdar, setsar
- 11.219 setfield
- 11.220 setparams
- 11.221 sharpen_npp
- 11.222 shear
- 11.223 showinfo
- 11.224 showpalette
- 11.225 shuffleframes
- 11.226 shufflepixels
- 11.227 shuffleplanes
- 11.228 signalstats
- 11.229 signature
- 11.230 siti
- 11.231 smartblur
- 11.232 sobel
- 11.233 spp
- 11.234 sr
- 11.235 ssim
- 11.236 stereo3d
- 11.237 streamselect, astreamselect
- 11.238 subtitles
- 11.239 super2xsai
- 11.240 swaprect
- 11.241 swapuv
- 11.242 tblend
- 11.243 telecine
- 11.244 thistogram
- 11.245 threshold
- 11.246 thumbnail
- 11.247 tile
- 11.248 tinterlace
- 11.249 tmedian
- 11.250 tmidequalizer
- 11.251 tmix
- 11.252 tonemap
- 11.253 tpad
- 11.254 transpose
- 11.255 transpose_npp
- 11.256 trim
- 11.257 unpremultiply
- 11.258 unsharp
- 11.259 untile
- 11.260 uspp
- 11.261 v360
- 11.262 vaguedenoiser
- 11.263 varblur
- 11.264 vectorscope
- 11.265 vidstabdetect
- 11.266 vidstabtransform
- 11.267 vflip
- 11.268 vfrdet
- 11.269 vibrance
- 11.270 vif
- 11.271 vignette
- 11.272 vmafmotion
- 11.273 vstack
- 11.274 w3fdif
- 11.275 waveform
- 11.276 weave, doubleweave
- 11.277 xbr
- 11.278 xcorrelate
- 11.279 xfade
- 11.280 xmedian
- 11.281 xstack
- 11.282 yadif
- 11.283 yadif_cuda
- 11.284 yaepblur
- 11.285 zoompan
- 11.286 zscale
- 12 OpenCL Video Filters
- 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 Video Filters
- 14 Video Sources
- 14.1 buffer
- 14.2 cellauto
- 14.3 coreimagesrc
- 14.4 gradients
- 14.5 mandelbrot
- 14.6 mptestsrc
- 14.7 frei0r_src
- 14.8 life
- 14.9 allrgb, allyuv, color, colorchart, colorspectrum, haldclutsrc, nullsrc, pal75bars, pal100bars, rgbtestsrc, smptebars, smptehdbars, testsrc, testsrc2, yuvtestsrc
- 14.10 openclsrc
- 14.11 sierpinski
- 15 Video Sinks
- 16 Multimedia Filters
- 16.1 abitscope
- 16.2 adrawgraph
- 16.3 agraphmonitor
- 16.4 ahistogram
- 16.5 aphasemeter
- 16.6 avectorscope
- 16.7 bench, abench
- 16.8 concat
- 16.9 ebur128
- 16.10 interleave, ainterleave
- 16.11 latency, alatency
- 16.12 metadata, ametadata
- 16.13 perms, aperms
- 16.14 realtime, arealtime
- 16.15 segment, asegment
- 16.16 select, aselect
- 16.17 sendcmd, asendcmd
- 16.18 setpts, asetpts
- 16.19 setrange
- 16.20 settb, asettb
- 16.21 showcqt
- 16.22 showfreqs
- 16.23 showspatial
- 16.24 showspectrum
- 16.25 showspectrumpic
- 16.26 showvolume
- 16.27 showwaves
- 16.28 showwavespic
- 16.29 sidedata, asidedata
- 16.30 spectrumsynth
- 16.31 split, asplit
- 16.32 zmq, azmq
- 17 Multimedia Sources
- 18 See Also
- 19 Authors
1 Description
Ten dokument opisuje filtry, źródła i ujścia dostarczane przez bibliotekę libavfilter.
2 Filtering Introduction
Filtrowanie w FFmpeg jest włączone przez bibliotekę libavfilter.
W libavfilter filtr może mieć wiele wejść i wiele wyjść. Aby zilustrować rodzaje rzeczy, które są możliwe, rozważmy poniższy wykres filtracyjny.
[główne] wejście --> split ---------------------> nakładka --> wyjście | ^ |[tmp] [przerzucenie]| +-----> przytnij --> odwróć -------+
Ten wykres filtra dzieli strumień wejściowy na dwa strumienie, a następnie przesyła jeden strumień przez filtr upraw i filtr vflip, a następnie łączy go z powrotem z drugim strumieniem, nakładając go na wierzch. Aby to osiągnąć, możesz użyć następującego polecenia:
ffmpeg -i INPUT -vf "split [main][tmp]; [tmp] crop=iw:ih/2:0:0, vflip [flip]; [main][flip] overlay=0:H/2" OUTPUT
W rezultacie górna połowa wideo zostanie odzwierciedlona w dolnej połowie wyjściowego wideo.
Filtry w tym samym łańcuchu liniowym są oddzielone przecinkami, a odrębne łańcuchy liniowe filtrów są oddzielone średnikami. W naszym przykładzie
crop,vflip
znajdują się w jednym łańcuchu liniowym, split
a
overlay
osobno w innym. Punkty, w których łączą się łańcuchy liniowe, są oznaczone nazwami ujętymi w nawiasy kwadratowe. W tym przykładzie filtr podziału generuje dwa dane wyjściowe, które są skojarzone z etykietami [main]
i [tmp]
.
Strumień wysyłany do drugiego wyjścia split
, oznaczony jako
[tmp]
, jest przetwarzany przez crop
filtr, który wycina dolną połowę filmu, a następnie jest odwracany w pionie. Filtr
overlay
przyjmuje na wejście pierwsze niezmienione wyjście filtra dzielonego (oznaczonego jako [main]
) i nakłada na jego dolną połowę wyjście generowane przez crop,vflip
łańcuch filtrów.
Niektóre filtry przyjmują na wejściu listę parametrów: są one określone po nazwie filtra i znaku równości i są oddzielone od siebie dwukropkiem.
Istnieją tak zwane source filters
, które nie mają wejścia audio/wideo i sink filters
nie będą miały wyjścia audio/wideo.
3 graph2dot
Thegraph2dot
program zawarty w FFmpegtools
directory może służyć do analizowania opisu wykresu filtra i wydawania odpowiedniej reprezentacji tekstowej w języku kropek.
Wywołaj polecenie:
graph2dot -h
aby zobaczyć, jak używaćgraph2dot
.
Następnie możesz przekazać opis kropki dodot
(z pakietu programów graphviz) i uzyskać graficzną reprezentację wykresu filtra.
Na przykład sekwencja poleceń:
echo GRAPH_DESCRIPTION
| \
tools/graph2dot -o graph.tmp && \
dot -Tpng graph.tmp -o graph.png && \
display graph.png
może służyć do tworzenia i wyświetlania obrazu reprezentującego wykres opisany przez GRAPH_DESCRIPTION
ciąg. Zauważ, że ten ciąg musi być kompletnym, samodzielnym wykresem, z wyraźnie zdefiniowanymi danymi wejściowymi i wyjściowymi. Na przykład, jeśli linia poleceń ma postać:
ffmpeg -i infile -vf scale=640:360 outfile
Twój GRAPH_DESCRIPTION
ciąg będzie musiał mieć postać:
nullsrc,scale=640:360,nullsink
może być również konieczne ustawienie nullsrc
parametrów i dodanie format
filtra, aby zasymulować określony plik wejściowy.
4 Filtergraph description
Filtergraph to ukierunkowany wykres połączonych filtrów. Może zawierać cykle i może istnieć wiele połączeń między parą filtrów. Każde łącze ma jedną wkładkę wejściową z jednej strony, łączącą je z jednym filtrem, z którego pobiera swoje wejście, i jedną wkładkę wyjściową z drugiej strony, łączącą je z jednym filtrem akceptującym jego wyjście.
Każdy filtr na wykresie filtra jest instancją klasy filtra zarejestrowaną w aplikacji, która definiuje cechy oraz liczbę padów wejściowych i wyjściowych filtra.
Filtr bez padów wejściowych nazywany jest „źródłem”, a filtr bez padów wyjściowych nazywany jest „sink”.
4.1 Filtergraph syntax
Wykres filtracyjny ma reprezentację tekstową, która jest rozpoznawana przez
-filter
/-vf
/-af
oraz
-filter_complex
opcje w ffmpeg
i
-vf
/-af
in ffplay
i przez
avfilter_graph_parse_ptr()
funkcję zdefiniowaną w
libavfilter/avfilter.h
.
Łańcuch filtrów składa się z sekwencji połączonych filtrów, z których każdy jest połączony z poprzednim w sekwencji. Łańcuch filtrów jest reprezentowany przez listę opisów filtrów oddzielonych ","-.
Wykres filtra składa się z sekwencji łańcuchów filtrów. Sekwencja łańcuchów filtrów jest reprezentowana przez listę opisów łańcuchów filtrów oddzielonych „;”.
Filtr jest reprezentowany przez ciąg znaków: [ in_link_1
]...[ in_link_N
] filter_name
@ id
= arguments
[ out_link_1
]...[ out_link_M
]
filter_name
jest nazwą klasy filtra, której instancją jest opisywany filtr, i musi być nazwą jednej z klas filtrów zarejestrowanych w programie opcjonalnie z dopiskiem „@ id
”. Po nazwie klasy filtra opcjonalnie następuje ciąg „= arguments
”.
arguments
to ciąg znaków, który zawiera parametry używane do inicjalizacji instancji filtra. Może mieć jedną z dwóch form:
- Lista
key=value
par rozdzielonych ':'. - Lista rozdzielonych ':'
value
. W takim przypadku zakłada się, że klucze są nazwami opcji w kolejności ich deklarowania. Np.fade
filtr deklaruje trzy opcje w tej kolejności –type
,start_frame
oraznb_frames
. Wtedy lista parametrówin:0:30
oznacza, że ​​wartośćin
jest przypisana do opcjitype
,0
dostart_frame
i30
donb_frames
. - Lista mieszanych
par prostych
value
i długich , rozdzielonych ':'.key=value
Bezpośrednievalue
muszą poprzedzaćkey=value
pary i przebiegać w tej samej kolejności ograniczeń co w poprzednim punkcie. Poniższekey=value
pary można ustawić w dowolnej preferowanej kolejności.
Jeśli sama wartość opcji jest listą elementów (np. format
filtr przyjmuje listę formatów pikseli), elementy na liście są zwykle oddzielone '|
„.
Listę argumentów można cytować za pomocą znaku ''
' jako początkowy i końcowy znak, a znak '\
' do ucieczki znaków w cytowanym tekście; w przeciwnym razie ciąg argumentów jest uważany za zakończony, gdy następny znak specjalny (należący do zestawu '[]=;,
').
Nazwa i argumenty filtru są opcjonalnie poprzedzone i poprzedzone listą etykiet łączy. Etykieta łącza umożliwia nazwanie łącza i powiązanie go z wyjściem filtra lub padem wejściowym. Poprzednie etykiety in_link_1
... in_link_N
, są związane z wkładkami wejściowymi filtra, kolejne etykiety out_link_1
... out_link_M
, są związane z wkładkami wyjściowymi.
Gdy na wykresie filtra zostaną znalezione dwie etykiety linków o tej samej nazwie, tworzony jest link między odpowiednim padem wejściowym i wyjściowym.
Jeśli podkładka wyjściowa nie jest oznaczona, jest domyślnie połączona z pierwszą nieoznaczoną podkładką wejściową następnego filtra w łańcuchu filtrów. Na przykład w łańcuchu filtrów
nullsrc, split[L1], [L2]overlay, nullsink
instancja filtra dzielonego ma dwa pady wyjściowe, a instancja filtra nakładki dwa pady wejściowe. Pierwsze pole wyjściowe podziału jest oznaczone jako „L1”, pierwsze pole wejściowe nakładki jest oznaczone jako „L2”, a drugie pole wyjściowe podziału jest połączone z drugim polem wejściowym nakładki, które są nieoznaczone.
W opisie filtra, jeśli etykieta wejściowa pierwszego filtra nie jest określona, ​​zakłada się "in"; jeśli etykieta wyjściowa ostatniego filtru nie jest określona, ​​przyjmowane jest "out".
W kompletnym łańcuchu filtrów wszystkie nieopisane wkłady wejściowe i wyjściowe filtra muszą być połączone. Wykres filtra jest uważany za prawidłowy, jeśli wszystkie wkładki wejściowe i wyjściowe filtra wszystkich łańcuchów filtrów są połączone.
Libavfilter automatycznie wstawi filtry skali tam, gdzie wymagana jest konwersja formatu. Możliwe jest określenie flag swscale dla automatycznie wstawianych skalerów, dołączając
do opisu wykresu filtra.
sws_flags=
flags
;
Oto opis BNF składni wykresu filtra:
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 Notes on filtergraph escaping
Kompozycja opisu filtrografu pociąga za sobą kilka poziomów ucieczki. Zobacz (ffmpeg-utils) sekcję „Cytowanie i escaping” w podręczniku ffmpeg-utils(1) , aby uzyskać więcej informacji o zastosowanej procedurze ucieczki.
Zmiana znaczenia pierwszego poziomu wpływa na zawartość każdej wartości opcji filtru, która może zawierać znak specjalny :
używany do oddzielania wartości lub jeden ze znaków ucieczki \'
.
Drugi poziom ucieczki wpływa na cały opis filtra, który może zawierać znaki \'
specjalne lub znaki specjalne [],;
używane w opisie wykresu filtru.
Wreszcie, kiedy określasz wykres filtra w wierszu poleceń powłoki, musisz wykonać trzeci poziom ucieczki dla zawartych w nim znaków specjalnych powłoki.
Rozważmy na przykład następujący ciąg, który ma zostać osadzony w opisie filtra tekstu rysunkowego :text
wartość:
this is a 'string': may contain one, or more, special characters
Ten ciąg zawiera '
specjalny znak ucieczki i
:
znak specjalny, więc należy go zmienić w ten sposób:
text=this is a \'string\'\: may contain one, or more, special characters
Drugi poziom ucieczki jest wymagany podczas osadzania opisu filtra w opisie wykresu filtra, aby uniknąć wszystkich znaków specjalnych wykresu filtra. Zatem powyższy przykład staje się:
drawtext=text=this is a \\\'string\\\'\\: may contain one\, or more\, special characters
(zauważ, że oprócz \'
uciekających znaków specjalnych, ,
trzeba też uciec).
Wreszcie, podczas pisania opisu wykresu filtra w poleceniu powłoki potrzebny jest dodatkowy poziom ucieczki, który zależy od reguł ucieczki przyjętej powłoki. Na przykład, zakładając, że
\
jest to coś specjalnego i musi być poprzedzone innym \
, poprzedni ciąg ostatecznie da w wyniku:
-vf "drawtext=text=this is a \\\\\\'string\\\\\\'\\\\: may contain one\\, or more\\, special characters"
5 Timeline editing
Niektóre filtry obsługują ogólnyenable
opcja. W przypadku filtrów obsługujących edycję osi czasu tę opcję można ustawić na wyrażenie, które jest oceniane przed wysłaniem ramki do filtru. Jeśli ocena jest niezerowa, filtr zostanie włączony, w przeciwnym razie ramka zostanie wysłana w niezmienionej postaci do następnego filtru na wykresie filtra.
Wyrażenie przyjmuje następujące wartości:
- '
t
' znacznik czasu wyrażony w sekundach, NAN, jeśli wejściowy znacznik czasu jest nieznany
- '
n
' kolejny numer ramki wejściowej, zaczynając od 0
- '
pos
' pozycja w pliku ramki wejściowej, NAN jeśli nieznana
- '
w
' - '
h
' szerokość i wysokość ramki wejściowej, jeśli wideo
Dodatkowo filtry te obsługująenable
polecenie, którego można użyć do przedefiniowania wyrażenia.
Jak każda inna opcja filtrowania,enable
opcja podlega tym samym zasadom.
Na przykład, aby włączyć filtr rozmycia ( smartblur ) od 10 sekund do 3 minut, a filtr krzywych zaczynający się od 3 sekund:
smartblur = enable='between(t,10,3*60)',
curves = enable='gte(t,3)' : preset=cross_process
Zobacz ffmpeg -filters
, które filtry obsługują oś czasu.
6 Changing options at runtime with a command
Niektóre opcje można zmienić podczas działania filtra za pomocą polecenia. Te opcje są oznaczone 'T' na wyjściu
ffmpeg
-h filter=<name of filter>
. Nazwa polecenia to nazwa opcji, a argument to nowa wartość.
7 Options for filters with several inputs (framesync)
Niektóre filtry z kilkoma wejściami obsługują wspólny zestaw opcji. Te opcje można ustawić tylko według nazwy, a nie za pomocą krótkiej notacji.
eof_action
Akcja do wykonania w przypadku napotkania EOF na wejściu pomocniczym; przyjmuje jedną z następujących wartości:
repeat
Powtórz ostatnią klatkę (domyślnie).
endall
Zakończ oba strumienie.
pass
Przepuścić główne wejście.
shortest
Jeśli jest ustawiony na 1, wymusza zakończenie wyjścia po zakończeniu najkrótszego wejścia. Wartość domyślna to 0.
repeatlast
Jeśli jest ustawiony na 1, wymusza na filtrze przedłużenie ostatniej klatki strumieni wtórnych do końca strumienia głównego. Wartość 0 wyłącza to zachowanie. Wartość domyślna to 1.
8 Audio Filters
Podczas konfigurowania kompilacji FFmpeg możesz wyłączyć dowolny z istniejących filtrów za pomocą --disable-filters
. Dane wyjściowe konfiguracji pokażą filtry audio zawarte w twojej kompilacji.
Poniżej znajduje się opis aktualnie dostępnych filtrów audio.
8.1 acompressor
Kompresor służy głównie do zmniejszenia zakresu dynamicznego sygnału. Zwłaszcza współczesna muzyka jest kompresowana w dużym stopniu, aby poprawić ogólną głośność. Ma to na celu przyciągnięcie jak największej uwagi słuchacza, „podgrubienie” dźwięku i wniesienie do utworu więcej „mocy”. Jeśli sygnał jest zbyt mocno skompresowany, może brzmieć potem przytłumiony lub „martwy” lub może zacząć „pompować” (co może być potężnym efektem, ale może również całkowicie zniszczyć utwór). Właściwa kompresja jest kluczem do uzyskania profesjonalnego dźwięku i jest wysoką sztuką miksowania i masteringu. Ze względu na złożone ustawienia, uzyskanie odpowiedniego wyczucia tego rodzaju efektu może zająć dużo czasu.
Kompresja polega na wykryciu głośności powyżej wybranego poziomu
threshold
i podzieleniu jej przez współczynnik ustawiony za pomocą ratio
. Więc jeśli ustawisz próg na -12dB i twój sygnał osiągnie -6dB stosunek 2:1 da sygnał na poziomie -9dB. Ponieważ dokładna manipulacja sygnałem spowodowałaby zniekształcenie przebiegu, redukcja może być niwelowana w czasie. Odbywa się to poprzez ustawienie "Atak" i "Uwolnienie".
attack
określa, jak długo sygnał musi wzrosnąć powyżej progu, zanim nastąpi jakakolwiek redukcja, i release
ustawia czas, w którym sygnał musi spaść poniżej progu, aby ponownie zmniejszyć redukcję. Sygnały krótsze niż wybrany czas ataku pozostaną nietknięte. Całkowitą redukcję sygnału można później nadrobić za pomocą
makeup
ustawienie. Tak więc skompresowanie szczytów sygnału o około 6dB i podniesienie makijażu do tego poziomu daje sygnał dwa razy głośniejszy niż źródło. Aby uzyskać bardziej miękkie wejście w kompresji, knee
spłaszcza twardą krawędź na progu w zakresie wybranych decybeli.
Filtr akceptuje następujące opcje:
level_in
Ustaw wzmocnienie wejścia. Wartość domyślna to 1. Zakres wynosi od 0,015625 do 64.
mode
Ustaw tryb pracy sprężarki. Może być
upward
lubdownward
. Wartość domyślna todownward
.threshold
Jeśli sygnał strumienia wzrośnie powyżej tego poziomu, wpłynie to na redukcję wzmocnienia. Domyślnie jest to 0,125. Zakres wynosi od 0,00097563 do 1.
ratio
Ustaw współczynnik redukcji sygnału. 1:2 oznacza, że ​​jeśli poziom wzrósł o 4dB powyżej progu, to po redukcji będzie tylko 2dB powyżej. Wartość domyślna to 2. Zakres wynosi od 1 do 20.
attack
Ilość milisekund, przez którą sygnał musi wzrosnąć powyżej progu, zanim rozpocznie się redukcja wzmocnienia. Wartość domyślna to 20. Zakres wynosi od 0,01 do 2000.
release
Ilość milisekund, przez którą sygnał musi spaść poniżej progu, zanim redukcja zostanie ponownie zmniejszona. Wartość domyślna to 250. Zakres wynosi od 0,01 do 9000.
makeup
Ustaw ilość, o jaką sygnał zostanie wzmocniony po przetworzeniu. Wartość domyślna to 1. Zakres wynosi od 1 do 64.
knee
Zakręć ostre kolano wokół progu, aby łagodniej wejść w redukcję wzmocnienia. Wartość domyślna to 2.82843. Zakres wynosi od 1 do 8.
link
Wybierz, czy
average
poziom pomiędzy wszystkimi kanałami strumienia wejściowego, czy głośniejszy(maximum
) kanał strumienia wejściowego ma wpływ na redukcję. Wartość domyślna toaverage
.detection
Czy należy odbierać dokładny sygnał w przypadku
peak
lub RMS w przypadkurms
. Domyślnie jestrms
to w większości płynniejsze.mix
Ile użyć skompresowanego sygnału na wyjściu. Wartość domyślna to 1. Zakres wynosi od 0 do 1.
8.1.1 Commands
Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .
8.2 acontrast
Prosty filtr kompresji/rozszerzania zakresu dynamiki dźwięku.
Filtr akceptuje następujące opcje:
contrast
Ustaw kontrast. Wartość domyślna to 33. Dozwolony zakres to od 0 do 100.
8.3 acopy
Skopiuj źródło dźwięku wejściowego bez zmian do wyjścia. Jest to przydatne głównie do celów testowych.
8.4 acrossfade
Zastosuj crossfade z jednego wejściowego strumienia audio do innego wejściowego strumienia audio. Przenikanie jest stosowane przez określony czas pod koniec pierwszego strumienia.
Filtr akceptuje następujące opcje:
nb_samples, ns
Określ liczbę próbek, dla których efekt przenikania ma trwać. Pod koniec efektu cross fade pierwsze wejście audio będzie całkowicie wyciszone. Wartość domyślna to 44100.
duration, d
Określ czas trwania efektu przenikania. Zobacz (ffmpeg-utils) sekcję Czas trwania w podręczniku ffmpeg-utils(1), aby poznać akceptowaną składnię. Domyślnie czas trwania jest określany przez
nb_samples
. Jeśli jest ustawiona, ta opcja jest używana zamiastnb_samples
.overlap, o
Czy koniec pierwszego strumienia powinien pokrywać się z początkiem drugiego strumienia. Domyślnie jest włączone.
curve1
Ustaw krzywą przejścia crossfade dla pierwszego strumienia.
curve2
Ustaw krzywą dla przejścia cross fade dla drugiego strumienia.
Opis dostępnych typów krzywych znajduje się w opisie filtra zanikania.
8.4.1 Examples
- Przenikanie z jednego wejścia do drugiego:
ffmpeg -i first.flac -i second.flac -filter_complex acrossfade=d=10:c1=exp:c2=exp output.flac
- Przenikanie z jednego wejścia do drugiego, ale bez nakładania się:
ffmpeg -i first.flac -i second.flac -filter_complex acrossfade=d=10:o=0:c1=exp:c2=exp output.flac
8.5 acrossover
Podziel strumień audio na kilka pasm.
Ten filtr dzieli strumień audio na dwa lub więcej zakresów częstotliwości. Zsumowanie wszystkich strumieni z powrotem da płaską wydajność.
Filtr akceptuje następujące opcje:
split
Ustaw podział częstotliwości. Muszą być pozytywne i wzrastać.
order
Ustaw kolejność filtrów dla każdego podziału pasma. Kontroluje to zsuwanie się filtra lub nachylenie funkcji przenoszenia filtra. Dostępne wartości to:
- '
2nd
' 12 dB na oktawę.
- '
4th
' 24 dB na oktawę.
- '
6th
' 36 dB na oktawę.
- '
8th
' 48 dB na oktawę.
- '
10th
' 60 dB na oktawę.
- '
12th
' 72 dB na oktawę.
- '
14th
' 84 dB na oktawę.
- '
16th
' 96 dB na oktawę.
- '
18th
' 108 dB na oktawę.
- '
20th
' 120 dB na oktawę.
Wartość domyślna to
4th
.- '
level
Ustaw poziom wzmocnienia wejściowego. Dozwolony zakres to od 0 do 1. Wartość domyślna to 1.
gains
Ustaw wzmocnienie wyjściowe dla każdego pasma. Wartość domyślna to 1 dla wszystkich pasm.
precision
Ustaw precyzję, która ma być używana podczas przetwarzania próbek.
auto
Automatycznie wybierz wewnętrzny format próbki w zależności od innych filtrów.
float
Zawsze używaj formatu próbki z dokładnością do pojedynczej liczby zmiennoprzecinkowej.
double
Zawsze używaj formatu próbki o podwójnej precyzji zmiennoprzecinkowej.
Wartość domyślna to
auto
.
8.5.1 Examples
- Podziel wejściowy strumień audio na dwa pasma (niskie i wysokie) z podzieloną częstotliwością 1500 Hz, każde pasmo będzie w osobnym strumieniu:
ffmpeg -i in.flac -filter_complex 'acrossover=split=1500[LOW][HIGH]' -map '[LOW]' low.wav -map '[HIGH]' high.wav
- Tak samo jak powyżej, ale z wyższą kolejnością filtrów:
ffmpeg -i in.flac -filter_complex 'acrossover=split=1500:order=8th[LOW][HIGH]' -map '[LOW]' low.wav -map '[HIGH]' high.wav
- Jak wyżej, ale z dodatkowym pasmem środkowym (częstotliwości od 1500 do 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.6 acrusher
Zmniejsz rozdzielczość bitową dźwięku.
Ten filtr to kruszarka do bitów o zwiększonej funkcjonalności. Kruszarka bitów służy do słyszalnego zmniejszania liczby bitów, którymi próbkowany jest sygnał audio. Nie zmienia to wcale głębi bitowej, po prostu daje efekt. Materiał zmniejszony w głębi bitowej brzmi bardziej szorstko i „cyfrowo”. Ten filtr może nawet zaokrąglać do wartości ciągłych zamiast dyskretnych głębi bitowych. Dodatkowo posiada offset D/C, co skutkuje różnym zmiażdżeniem dolnej i górnej połowy sygnału. Ustawienie antyaliasingu jest w stanie generować „delikatniejsze” dźwięki miażdżenia.
Kolejną cechą tego filtra jest tryb logarytmiczny. To ustawienie przełącza z odległości liniowych między bitami na odległości logarytmiczne. Rezultatem jest znacznie bardziej "naturalnie" brzmiący kruszarka, która na przykład nie bramkuje niskich sygnałów. Ludzkie ucho ma percepcję logarytmiczną, więc ten rodzaj miażdżenia jest znacznie przyjemniejszy. Miażdżenie logarytmiczne jest również w stanie uzyskać antyaliasing.
Filtr akceptuje następujące opcje:
level_in
Ustaw poziom w.
level_out
Wyrównaj poziom.
bits
Ustaw redukcję bitów.
mix
Ustaw ilość mieszania.
mode
Może być liniowy:
lin
lub logarytmiczny:log
.dc
Ustaw DC.
aa
Ustaw antyaliasing.
samples
Ustaw redukcję próbki.
lfo
Włącz LFO. Domyślnie wyłączone.
lforange
Ustaw zakres LFO.
lforate
Ustaw szybkość LFO.
8.6.1 Commands
Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .
8.7 acue
Opóźnij filtrowanie dźwięku do podanej sygnatury czasowej zegara ściennego. Zobacz filtr cue .
8.8 adeclick
Usuń impulsowe szumy z wejścia audio.
Próbki wykryte jako szum impulsowy są zastępowane próbkami interpolowanymi przy użyciu modelowania autoregresyjnego.
window, w
Ustaw rozmiar okna w milisekundach. Dozwolony zakres to od
10
do100
. Wartość domyślna to55
milisekundy. Ustawia rozmiar okna, które będzie przetwarzane od razu.overlap, o
Ustaw nakładanie się okien w procentach rozmiaru okna. Dozwolony zakres to od
50
do95
. Wartość domyślna to75
procent. Ustawienie tego na bardzo wysoką wartość zwiększa usuwanie szumów impulsywnych, ale sprawia, że ​​cały proces jest znacznie wolniejszy.arorder, a
Ustaw kolejność autoregresji w procentach rozmiaru okna. Dozwolony zakres to od
0
do25
. Wartość domyślna to2
procent. Ta opcja kontroluje również jakość interpolowanych próbek przy użyciu sąsiednich dobrych próbek.threshold, t
Ustaw wartość progową. Dozwolony zakres to od
1
do100
. Wartość domyślna to2
. Kontroluje to siłę impulsowego szumu, który ma zostać usunięty. Im niższa wartość, tym więcej próbek zostanie wykrytych jako szum impulsowy.burst, b
Ustaw połączenie serii, w procentach rozmiaru okna. Dozwolony zakres
0
to10
. Wartość domyślna to2
. Jeżeli jakiekolwiek dwie próbki wykryte jako szum są rozmieszczone w odstępach mniejszych niż ta wartość, to każda próbka pomiędzy tymi dwiema próbkami zostanie również wykryta jako szum.method, m
Ustaw metodę nakładania się.
Przyjmuje następujące wartości:
add, a
Wybierz metodę nakładania i dodawania. Za pomocą tej metody nawet nieinterpolowane próbki ulegają nieznacznym zmianom.
save, s
Wybierz metodę zapisywania nakładek. Próbki nieinterpolowane pozostają niezmienione.
Wartość domyślna to
a
.
8.9 adeclip
Usuń przycięte próbki z wejściowego dźwięku.
Próbki wykryte jako obcięte są zastępowane próbkami interpolowanymi przy użyciu modelowania autoregresyjnego.
window, w
Ustaw rozmiar okna w milisekundach. Dozwolony zakres to od
10
do100
. Wartość domyślna to55
milisekundy. Ustawia rozmiar okna, które będzie przetwarzane od razu.overlap, o
Ustaw nakładanie się okien w procentach rozmiaru okna. Dozwolony zakres to od
50
do95
. Wartość domyślna to75
procent.arorder, a
Ustaw kolejność autoregresji w procentach rozmiaru okna. Dozwolony zakres to od
0
do25
. Wartość domyślna to8
procent. Ta opcja kontroluje również jakość interpolowanych próbek przy użyciu sąsiednich dobrych próbek.threshold, t
Ustaw wartość progową. Dozwolony zakres to od
1
do100
. Wartość domyślna to10
. Wyższe wartości sprawiają, że wykrywanie klipów jest mniej agresywne.hsize, n
Ustaw rozmiar histogramu używanego do wykrywania klipów. Dozwolony zakres to od
100
do9999
. Wartość domyślna to1000
. Wyższe wartości sprawiają, że wykrywanie klipów jest mniej agresywne.method, m
Ustaw metodę nakładania się.
Przyjmuje następujące wartości:
add, a
Wybierz metodę nakładania i dodawania. Za pomocą tej metody nawet nieinterpolowane próbki ulegają nieznacznym zmianom.
save, s
Wybierz metodę zapisywania nakładek. Próbki nieinterpolowane pozostają niezmienione.
Wartość domyślna to
a
.
8.10 adecorrelate
Zastosuj dekorelację do wejściowego strumienia audio.
Filtr akceptuje następujące opcje:
stages
Ustaw etapy dekorelacji filtrowania. Dozwolony zakres to od 1 do 16. Wartość domyślna to 6.
seed
Ustaw losowe źródło używane do ustawiania opóźnienia w próbkach w kanałach.
8.11 adelay
Opóźnij jeden lub więcej kanałów audio.
Próbki w kanale opóźnionym są wypełnione ciszą.
Filtr akceptuje następującą opcję:
delays
Ustaw listę opóźnień w milisekundach dla każdego kanału oddzielonych znakiem '|'. Niewykorzystane opóźnienia będą po cichu ignorowane. Jeżeli liczba podanych opóźnień jest mniejsza niż liczba kanałów, wszystkie pozostałe kanały nie będą opóźnione. Jeśli chcesz opóźnić dokładną liczbę próbek, dodaj 'S' do numeru. Jeśli chcesz zamiast tego opóźnić w sekundach, dodaj 's' do liczby.
all
Użyj ostatniego ustawionego opóźnienia dla wszystkich pozostałych kanałów. Domyślnie jest wyłączona. Ta opcja, jeśli jest włączona, zmienia sposób
delays
interpretacji opcji.
8.11.1 Examples
- Opóźnij pierwszy kanał o 1,5 sekundy, trzeci kanał o 0,5 sekundy i pozostaw drugi kanał (i wszystkie inne kanały, które mogą być obecne) bez zmian.
adelay=1500|0|500
- Opóźnij drugi kanał o 500 próbek, trzeci kanał o 700 próbek i pozostaw pierwszy kanał (i wszystkie inne kanały, które mogą być obecne) bez zmian.
adelay=0|500S|700S
- Opóźnij wszystkie kanały o tę samą liczbę próbek:
adelay=delays=64S:all=1
8.12 adenorm
Środki zaradcze pogarszają się w dźwięku, dodając bardzo niski poziom hałasu.
Filtr ten należy umieścić przed jakimkolwiek filtrem, który może powodować odchylenia.
Poniżej znajduje się opis akceptowanych parametrów.
level
Ustaw poziom dodatkowego hałasu w dB. Wartość domyślna to
-351
. Dozwolony zakres to od -451 do -90.type
Ustaw typ dodanego szumu.
dc
Dodaj sygnał DC.
ac
Dodaj sygnał AC.
square
Dodaj sygnał kwadratowy.
pulse
Dodaj sygnał impulsowy.
Wartość domyślna to
dc
.
8.12.1 Commands
Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .
8.13 aderivative, aintegral
Oblicz pochodną/całkę strumienia audio.
Zastosowanie obu filtrów jeden po drugim daje oryginalny dźwięk.
8.14 adynamicequalizer
Zastosuj korektę dynamiczną do wejściowego strumienia audio.
Poniżej znajduje się opis akceptowanych opcji.
threshold
Ustaw próg detekcji używany do wyzwalania korekcji. Wykrywanie progu wykorzystuje filtr pasmowy. Wartość domyślna to 0. Dozwolony zakres to od 0 do 100.
dfrequency
Ustaw częstotliwość wykrywania w Hz używaną przez filtr pasmowy używany do wyzwalania korekcji. Wartość domyślna to 1000 Hz. Dozwolony zakres to od 2 do 1000000 Hz.
dqfactor
Ustaw współczynnik rezonansu detekcji dla filtra pasmowego używanego do wyzwalania korekcji. Wartość domyślna to 1. Dozwolony zakres to od 0,001 do 1000.
tfrequency
Ustaw docelową częstotliwość filtra wyrównującego. Wartość domyślna to 1000 Hz. Dozwolony zakres to od 2 do 1000000 Hz.
tqfactor
Ustaw docelowy współczynnik rezonansu dla docelowego filtra wyrównującego. Wartość domyślna to 1. Dozwolony zakres to od 0,001 do 1000.
attack
Ustaw ilość milisekund, o jaką sygnał z detekcji musi wzrosnąć powyżej progu detekcji zanim rozpocznie się wyrównywanie. Wartość domyślna to 20. Dozwolony zakres to od 1 do 2000.
release
Ustaw ilość milisekund, przez którą sygnał z detekcji musi spaść poniżej progu detekcji przed zakończeniem korekcji. Wartość domyślna to 200. Dozwolony zakres to od 1 do 2000.
knee
Zakrzywij ostre kolano wokół progu wykrywania, aby delikatniej obliczyć wzmocnienie korekcji. Wartość domyślna to 1. Dozwolony zakres to od 0 do 8.
ratio
Ustaw współczynnik, o który zwiększa się wzmocnienie korekcji. Wartość domyślna to 1. Dozwolony zakres to od 1 do 20.
makeup
Ustaw przesunięcie makijażu w dB, o które zwiększa się wzmocnienie korekcji. Wartość domyślna to 0. Dozwolony zakres to od 0 do 30.
range
Ustaw maksymalną dozwoloną wartość cięcia/wzmocnienia w dB. Wartość domyślna to 0. Dozwolony zakres to od 0 do 200.
slew
Ustaw współczynnik zabicia. Wartość domyślna to 1. Dozwolony zakres to od 1 do 200.
mode
Ustaw tryb działania filtra, może być jednym z następujących:
- '
listen
' Wyprowadza tylko izolowany sygnał pasmowoprzepustowy.
- '
cut
' Wytnij częstotliwości powyżej progu wykrywania.
- '
boost
' Wzmocnij częstotliwości poniżej progu wykrywania.
Tryb domyślny to '
cut
„.- '
tftype
Ustaw typ filtra celu, może być jednym z następujących:
- '
bell
' - '
lowshelf
' - '
highshelf
'
Domyślny typ to '
bell
„.- '
8.14.1 Commands
Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .
8.15 adynamicsmooth
Zastosuj dynamiczne wygładzanie do wejściowego strumienia audio.
Poniżej znajduje się opis akceptowanych opcji.
sensitivity
Ustaw czułość na wahania częstotliwości. Wartość domyślna to 2. Dozwolony zakres to od 0 do 1e+06.
basefreq
Ustaw częstotliwość podstawową dla wygładzania. Wartość domyślna to 22050. Dozwolony zakres to od 2 do 1e+06.
8.15.1 Commands
Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .
8.16 aecho
Zastosuj echo do wejściowego dźwięku.
Echa są odbitym dźwiękiem i mogą występować naturalnie w górach (a czasami w dużych budynkach) podczas rozmowy lub krzyku; cyfrowe efekty echa naśladują to zachowanie i są często używane do wypełniania dźwięku pojedynczego instrumentu lub wokalu. Różnica czasu między sygnałem oryginalnym a delay
odbitym to , a głośność odbitego sygnału to decay
. Wiele ech może mieć różne opóźnienia i zaniki.
Poniżej znajduje się opis akceptowanych parametrów.
in_gain
Ustaw wzmocnienie wejściowe odbitego sygnału. Wartość domyślna to
0.6
.out_gain
Ustaw wzmocnienie wyjściowe odbitego sygnału. Wartość domyślna to
0.3
.delays
Ustawia listę odstępów czasu w milisekundach pomiędzy oryginalnym sygnałem a odbiciami oddzielonymi znakiem '|'. Dozwolony zakres dla każdego
delay
to(0 - 90000.0]
. Wartość domyślna to1000
.decays
Ustaw listę głośności odbitych sygnałów oddzielonych znakiem '|'. Dozwolony zakres dla każdego
decay
to(0 - 1.0]
. Wartość domyślna to0.5
.
8.16.1 Examples
- Spraw, aby brzmiało to tak, jakby było dwa razy więcej instrumentów niż faktycznie gra:
aecho=0.8:0.88:60:0.4
- Jeśli opóźnienie jest bardzo krótkie, to brzmi jak (metaliczny) robot grający muzykę:
aecho=0.8:0.88:6:0.4
- Dłuższe opóźnienie zabrzmi jak koncert plenerowy w górach:
aecho=0.8:0.9:1000:0.3
- Tak samo jak powyżej, ale z jeszcze jedną górą:
aecho=0.8:0.9:1000|1800:0.3|0.25
8.17 aemphasis
Filtr uwydatniania dźwięku tworzy lub przywraca materiał bezpośrednio pobrany z płyt LP lub uwydatnionych płyt CD z różnymi krzywymi filtra. Np. aby zapisać muzykę na winylu, sygnał musi być najpierw zmieniony przez filtr, aby zniwelować wady tego nośnika. Po odtworzeniu materiału należy zastosować filtr odwrotny, aby przywrócić zniekształcenia pasma przenoszenia.
Filtr akceptuje następujące opcje:
level_in
Ustaw wzmocnienie wejścia.
level_out
Ustaw wzmocnienie wyjściowe.
mode
Ustaw tryb filtrowania. Aby przywrócić
reproduction
tryb użycia materiału, w przeciwnym razie użyjproduction
trybu. Domyślnie jestreproduction
tryb.type
Ustaw typ filtra. Wybiera medium. Może być jednym z następujących:
col
wybierz Kolumbia.
emi
wybierz EMI.
bsi
wybierz BSI (78 obr./min).
riaa
wybierz RIAA.
cd
wybierz opcję Płyta kompaktowa (CD).
50fm
wybierz 50µs (FM).
75fm
wybierz 75µs (FM).
50kf
wybierz 50µs (FM-KF).
75kf
wybierz 75µs (FM-KF).
8.17.1 Commands
Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .
8.18 aeval
Zmodyfikuj sygnał audio zgodnie z określonymi wyrażeniami.
Ten filtr akceptuje jedno lub więcej wyrażeń (po jednym dla każdego kanału), które są oceniane i używane do modyfikowania odpowiedniego sygnału audio.
Przyjmuje następujące parametry:
exprs
Ustaw listę wyrażeń rozdzielonych '|' dla każdego oddzielnego kanału. Jeśli liczba kanałów wejściowych jest większa niż liczba wyrażeń, ostatnie określone wyrażenie jest używane dla pozostałych kanałów wyjściowych.
channel_layout, c
Ustaw układ kanału wyjściowego. Jeśli nie zostanie określony, układ kanału jest określony przez liczbę wyrażeń. Jeśli ustawione na '
same
', domyślnie użyje tego samego układu kanału wejściowego.
Każde wyrażenie w exprs
może zawierać następujące stałe i funkcje:
ch
numer kanału bieżącego wyrażenia
n
numer ocenianej próby, począwszy od 0
s
próbna stawka
t
czas ocenianej próbki wyrażony w sekundach
nb_in_channels
nb_out_channels
liczba kanałów wejściowych i wyjściowych
val(CH)
wartość kanału wejściowego z numerem
CH
Uwaga: ten filtr działa wolno. Aby przyspieszyć przetwarzanie, powinieneś użyć dedykowanego filtra.
8.18.1 Examples
- Połowa objętości:
aeval=val(ch)/2:c=same
- Odwrócona faza drugiego kanału:
aeval=val(0)|-val(1)
8.19 aexciter
Wzbudnik jest używany do wytwarzania wysokiego dźwięku, którego nie ma w oryginalnym sygnale. Odbywa się to poprzez tworzenie zniekształceń harmonicznych sygnału, które są ograniczone w zakresie i dodawane do oryginalnego sygnału. Wzbudnik podnosi górny koniec sygnału audio bez zwykłego podnoszenia wyższych częstotliwości, tak jak zrobiłby to korektor, aby uzyskać bardziej „ostry” lub „jasny” dźwięk.
Filtr akceptuje następujące opcje:
level_in
Ustaw poziom wejściowy przed przetwarzaniem sygnału. Dozwolony zakres to od 0 do 64. Wartość domyślna to 1.
level_out
Ustaw poziom wyjściowy po przetworzeniu sygnału. Dozwolony zakres to od 0 do 64. Wartość domyślna to 1.
amount
Ustaw ilość harmonicznych dodawanych do oryginalnego sygnału. Dozwolony zakres to od 0 do 64. Wartość domyślna to 1.
drive
Ustaw ilość nowo tworzonych harmonicznych. Dozwolony zakres to od 0,1 do 10. Wartość domyślna to 8,5.
blend
Ustaw oktawę nowo tworzonych harmonicznych. Dozwolony zakres to od -10 do 10. Wartość domyślna to 0.
freq
Ustaw dolną granicę częstotliwości wytwarzania harmonicznych w Hz. Dozwolony zakres to od 2000 do 12000 Hz. Wartość domyślna to 7500 Hz.
ceil
Ustaw górną granicę częstotliwości wytwarzania harmonicznych. Dozwolony zakres to od 9999 do 20000 Hz. Jeżeli wartość jest niższa niż 10000 Hz, limit nie jest stosowany.
listen
Wycisz oryginalny sygnał i wyjdź tylko dodane harmoniczne. Domyślnie jest wyłączona.
8.19.1 Commands
Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .
8.20 afade
Zastosuj efekt ściemniania/zanikania do wejściowego dźwięku.
Poniżej znajduje się opis akceptowanych parametrów.
type, t
Określ typ efektu, może to być efekt
in
zanikania lubout
zanikania. Wartość domyślna toin
.start_sample, ss
Określ numer próbki początkowej, aby rozpocząć stosowanie efektu zanikania. Wartość domyślna to 0.
nb_samples, ns
Określ liczbę próbek, dla których efekt zanikania ma trwać. Pod koniec efektu zanikania dźwięk wyjściowy będzie miał taką samą głośność jak dźwięk wejściowy, pod koniec przejścia zanikania dźwięk wyjściowy będzie wyciszony. Wartość domyślna to 44100.
start_time, st
Określ czas rozpoczęcia efektu zanikania. Wartość domyślna to 0. Wartość musi być określona jako czas trwania; zobacz (ffmpeg-utils) sekcję Czas trwania w podręczniku ffmpeg-utils(1), aby poznać akceptowaną składnię. Jeśli jest ustawiona, ta opcja jest używana zamiast
start_sample
.duration, d
Określ czas trwania efektu zanikania. Zobacz (ffmpeg-utils) sekcję Czas trwania w podręczniku ffmpeg-utils(1), aby poznać akceptowaną składnię. Pod koniec efektu zanikania dźwięk wyjściowy będzie miał taką samą głośność jak dźwięk wejściowy, pod koniec przejścia zanikania dźwięk wyjściowy będzie wyciszony. Domyślnie czas trwania jest określany przez
nb_samples
. Jeśli jest ustawiona, ta opcja jest używana zamiastnb_samples
.curve
Ustaw krzywą przejścia zanikania.
Przyjmuje następujące wartości:
tri
wybierz trójkątne, liniowe nachylenie (domyślne)
qsin
wybierz ćwierć fali sinusoidalnej
hsin
wybierz połowę sinusoidy
esin
wybierz wykładniczą sinusoidę
log
wybierz logarytmiczne
ipar
wybierz odwróconą parabolę
qua
wybierz kwadratowe
cub
wybierz sześcienny
squ
wybierz pierwiastek kwadratowy
cbr
wybierz pierwiastek sześcienny
par
wybierz parabolę
exp
wybierz wykładniczy
iqsin
wybierz odwróconą ćwiartkę sinusoidy
ihsin
wybierz odwróconą połowę sinusoidy
dese
wybierz podwójne wykładnicze miejsce
desi
wybierz sigmoid podwójnie wykładniczy
losi
wybierz sigmoid logistyczny
sinc
wybierz funkcję kardynalną sinus
isinc
wybierz odwróconą funkcję sinusoidalną
nofade
nie zastosowano zanikania
8.20.1 Commands
Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .
8.20.2 Examples
- Zanikanie w pierwszych 15 sekundach dźwięku:
afade=t=in:ss=0:d=15
- Wycisz ostatnie 25 sekund 900-sekundowego dźwięku:
afade=t=out:st=875:d=25
8.21 afftdn
Odszumianie próbek audio za pomocą FFT.
Poniżej znajduje się opis akceptowanych parametrów.
noise_reduction, nr
Ustaw redukcję szumów w dB, dozwolony zakres to 0,01 do 97. Wartość domyślna to 12 dB.
noise_floor, nf
Ustaw poziom szumów w dB, dopuszczalny zakres to -80 do -20. Wartość domyślna to -50 dB.
noise_type, nt
Ustaw typ szumu.
Przyjmuje następujące wartości:
white, w
Wybierz biały szum.
vinyl, v
Wybierz szum winylu.
shellac, s
Wybierz szum szelakowy.
custom, c
Wybierz niestandardowy szum, zdefiniowany w
bn
opcji.Wartość domyślna to biały szum.
band_noise, bn
Ustaw niestandardowy profil szumu pasma dla każdego z 15 pasm. Pasma są oddzielone ' ' lub '|'.
residual_floor, rf
Ustaw resztkową podłogę w dB, dozwolony zakres to -80 do -20. Wartość domyślna to -38 dB.
track_noise, tn
Włącz śledzenie szumów tła. Domyślnie jest wyłączona. Gdy ta opcja jest włączona, poziom szumów jest dostosowywany automatycznie.
track_residual, tr
Włącz śledzenie pozostałości. Domyślnie jest wyłączona.
output_mode, om
Ustaw tryb wyjściowy.
Przyjmuje następujące wartości:
input, i
Wejście bez zmian.
output, o
Odfiltrowane szumy.
noise, n
Przekaż tylko hałas.
Wartość domyślna to
output
.
adaptivity, ad
Ustaw współczynnik adaptacyjności używany, jak szybko dostosować korekty wzmocnienia dla każdego przedziału częstotliwości. Wartość
0
umożliwia natychmiastową adaptację, podczas gdy wyższe wartości reagują znacznie wolniej. Dozwolony zakres to od0
do1
. Wartość domyślna to0.5
.floor_offset, fo
Ustaw współczynnik odsunięcia poziomu szumu. Ta opcja służy do dostosowania przesunięcia zastosowanego do zmierzonego poziomu szumów. Działa tylko wtedy, gdy włączone jest śledzenie szumu tła. Dozwolony zakres to od
-2.0
do2.0
. Wartość domyślna to1.0
.noise_link, nl
Ustaw łącze szumu używane dla dźwięku wielokanałowego.
Przyjmuje następujące wartości:
none
Użyj niezmienionego poziomu szumów kanału.
min
Użyj zmierzonego minimalnego poziomu szumów wszystkich kanałów.
max
Użyj zmierzonego maksymalnego poziomu szumów wszystkich kanałów.
average
Użyj zmierzonego średniego poziomu szumów wszystkich kanałów.
Wartość domyślna to
min
.
band_multiplier, bm
Ustaw mnożnik pasma, używany do rozłożenia pasm w przedziałach częstotliwości. Dozwolony zakres to od
0.2
do5
. Wartość domyślna to1.25
.sample_noise, sn
Przełącz przechwytywanie i pomiar profilu szumu z wejściowego dźwięku.
Przyjmuje następujące wartości:
start, begin
Rozpocznij przechwytywanie szumu próbki.
stop, end
Zatrzymaj przechwytywanie szumu próbki i zmierz nowy profil pasma szumu.
Wartość domyślna to
none
.
gain_smooth, gs
Ustaw gładki promień przestrzenny wzmocnienia, używany do wygładzania wzmocnień zastosowanych do każdego przedziału częstotliwości. Przydatne do redukcji losowych artefaktów związanych z szumem muzyki. Wyższe wartości zwiększają wygładzanie wzmocnień. Dozwolony zakres to od
0
do50
. Wartość domyślna to0
.
8.21.1 Commands
Ten filtr obsługuje niektóre z wyżej wymienionych opcji jako komendy .
8.21.2 Examples
- Zmniejsz biały szum o 10dB i użyj wcześniej zmierzonego poziomu szumów na poziomie -40dB:
afftdn=nr=10:nf=-40
- Zmniejsz biały szum o 10dB, ustaw również początkowy poziom szumu na -80dB i włącz automatyczne śledzenie poziomu szumu, aby poziom szumu stopniowo się zmieniał podczas przetwarzania:
afftdn=nr=10:nf=-80:tn=1
- Zmniejsz hałas o 20dB, korzystając z poziomu szumów na poziomie -40dB i używając poleceń do wykonania profilu szumów z pierwszych 0,4 sekundy wejściowego dźwięku:
asendcmd=0.0 afftdn sn start,asendcmd=0.4 afftdn sn stop,afftdn=nr=20:nf=-40
8.22 afftfilt
Zastosuj dowolne wyrażenia do próbek w domenie częstotliwości.
real
Ustaw wyrażenie rzeczywiste w domenie częstotliwości dla każdego oddzielnego kanału oddzielonego znakiem '|'. Wartość domyślna to „re”. Jeśli liczba kanałów wejściowych jest większa niż liczba wyrażeń, ostatnie określone wyrażenie jest używane dla pozostałych kanałów wyjściowych.
imag
Ustaw urojone wyrażenie w domenie częstotliwości dla każdego oddzielnego kanału oddzielonego znakiem „|”. Wartość domyślna to „im”.
Każde wyrażenie w
real
iimag
może zawierać następujące stałe i funkcje:sr
próbna stawka
b
aktualny numer przedziału częstotliwości
nb
liczba dostępnych pojemników
ch
numer kanału bieżącego wyrażenia
chs
Liczba kanałów
pts
bieżąca klatka w pkt
re
aktualna rzeczywista część przedziału częstotliwości bieżącego kanału
im
aktualna część urojona przedziału częstotliwości bieżącego kanału
real(b, ch)
Zwróć wartość rzeczywistej części przedziału częstotliwości w lokalizacji (
bin
,channel
)imag(b, ch)
Zwróć wartość części urojonej przedziału częstotliwości w lokalizacji (
bin
,channel
)
win_size
Ustaw rozmiar okna. Dozwolony zakres to od 16 do 131072. Domyślnie
4096
win_func
Ustaw funkcję okna.
Przyjmuje następujące wartości:
- '
rect
' - '
bartlett
' - '
hann, hanning
' - '
hamming
' - '
blackman
' - '
welch
' - '
flattop
' - '
bharris
' - '
bnuttall
' - '
bhann
' - '
sine
' - '
nuttall
' - '
lanczos
' - '
gauss
' - '
tukey
' - '
dolph
' - '
cauchy
' - '
parzen
' - '
poisson
' - '
bohman
'
Wartość domyślna to
hann
.- '
overlap
Ustaw nakładanie się okien. Jeśli jest ustawiony na 1, wybrane zostanie zalecane nakładanie się dla wybranej funkcji okna. Wartość domyślna to
0.75
.
8.22.1 Examples
- Pozostaw w dźwięku prawie tylko niskie częstotliwości:
afftfilt="'real=re * (1-clip((b/nb)*b,0,1))':imag='im * (1-clip((b/nb)*b,0,1))'"
- Zastosuj efekt robotyzacji:
afftfilt="real='hypot(re,im)*sin(0)':imag='hypot(re,im)*cos(0)':win_size=512:overlap=0.75"
- Zastosuj efekt szeptu:
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"
8.23 afir
Zastosuj dowolny filtr o skończonej odpowiedzi impulsowej.
Ten filtr jest przeznaczony do nakładania długich filtrów FIR, do 60 sekund.
Może być używany jako komponent do cyfrowych filtrów zwrotnicy, korekcji pomieszczenia, tłumienia przesłuchów, syntezy pola falowego, auralizacji, ambiofonii, ambisoniki i uprzestrzenniania.
Ten filtr wykorzystuje jako współczynniki FIR strumienie wyższe niż pierwszy. Jeśli strumień inny niż pierwszy zawiera pojedynczy kanał, będzie on używany dla wszystkich kanałów wejściowych w strumieniu pierwszym, w przeciwnym razie liczba kanałów w strumieniu innym niż pierwszy musi być taka sama jak liczba kanałów w strumieniu pierwszym.
Przyjmuje następujące parametry:
dry
Ustaw suchy zysk. Ustawia to wzmocnienie wejściowe.
wet
Ustaw mokre wzmocnienie. Ustawia to końcowe wzmocnienie wyjściowe.
length
Ustaw długość filtra odpowiedzi impulsowej. Wartość domyślna to 1, co oznacza, że ​​przetwarzana jest cała IR.
gtype
Włącz stosowanie wzmocnienia mierzonego od mocy IR.
Ustaw podejście do automatycznego pomiaru wzmocnienia.
none
Nie stosuj żadnego wzmocnienia.
peak
wybierz wzmocnienie szczytowe, bardzo konserwatywne podejście. To jest wartość domyślna.
dc
wybierz wzmocnienie DC, ograniczone zastosowanie.
gn
wybierz podejście wzmocnienie do szumu, to jest najbardziej popularne.
irgain
Ustaw wzmocnienie, które ma być zastosowane do współczynników IR przed filtrowaniem. Dozwolony zakres to 0 do 1. To wzmocnienie jest stosowane po każdym wzmocnieniu zastosowanym z
gtype
opcją.irfmt
Ustaw format strumienia IR. Może być
mono
lubinput
. Wartość domyślna toinput
.maxir
Ustaw maksymalny dozwolony czas trwania filtra odpowiedzi impulsowej w sekundach. Wartość domyślna to 30 sekund. Dozwolony zakres to 0,1 do 60 sekund.
response
Pokaż pasmo przenoszenia IR, wielkość (magenta), fazę (zielony) i opóźnienie grupowe (żółty) w dodatkowym strumieniu wideo. Domyślnie jest wyłączony.
channel
Ustaw, dla którego kanału podczerwieni wyświetlane jest pasmo przenoszenia. Domyślnie wyświetlany jest pierwszy kanał. Ta opcja jest używana tylko wtedy, gdy
response
jest włączona.size
Ustaw rozmiar strumienia wideo. Ta opcja jest używana tylko wtedy, gdy
response
jest włączona.rate
Ustaw szybkość klatek strumienia wideo. Ta opcja jest używana tylko wtedy, gdy
response
jest włączona.minp
Ustaw minimalny rozmiar partycji używany do konwolucji. Wartość domyślna to
8192
. Dozwolony zakres to od1
do32768
. Niższe wartości zmniejszają opóźnienie kosztem większego wykorzystania procesora.maxp
Ustaw maksymalny rozmiar partycji używany do konwolucji. Wartość domyślna to
8192
. Dozwolony zakres to od8
do32768
. Niższe wartości mogą zwiększyć użycie procesora.nbirs
Ustaw liczbę wejściowych strumieni odpowiedzi impulsowych, które będą przełączane w czasie pracy. Dozwolony zakres to od
1
do32
. Wartość domyślna to1
.ir
Ustawiony strumień IR, który będzie używany do splotu, począwszy od
0
, powinien zawsze być niższy od wartości podanej przeznbirs
opcję. Wartość domyślna to0
. Tę opcję można zmienić w czasie wykonywania za pomocą poleceń .precision
Ustaw precyzję, która ma być używana podczas przetwarzania próbek.
auto
Automatycznie wybierz wewnętrzny format próbki w zależności od innych filtrów.
float
Zawsze używaj formatu próbki z dokładnością do pojedynczej liczby zmiennoprzecinkowej.
double
Zawsze używaj formatu próbki o podwójnej precyzji zmiennoprzecinkowej.
Wartość domyślna to auto.
8.23.1 Examples
- Zastosuj pogłos do strumienia, używając pliku mono IR jako drugiego wejścia, uzupełnij polecenie za pomocą ffmpeg:
ffmpeg -i input.wav -i middle_tunnel_1way_mono.wav -lavfi afir output.wav
8.24 aformat
Ustaw ograniczenia formatu wyjściowego dla dźwięku wejściowego. Framework wynegocjuje najbardziej odpowiedni format, aby zminimalizować konwersje.
Przyjmuje następujące parametry:
sample_fmts, f
Lista żądanych formatów przykładowych rozdzielonych '|'.
sample_rates, r
Lista żądanych częstotliwości próbkowania rozdzielonych '|'.
channel_layouts, cl
Lista żądanych układów kanałów rozdzielonych '|'.
Zobacz (ffmpeg-utils) sekcję Channel Layout w podręczniku ffmpeg-utils(1) , aby poznać wymaganą składnię.
Jeśli parametr zostanie pominięty, wszystkie wartości są dozwolone.
Wymuś wyjście jako stereofoniczne 8-bitowe bez znaku lub 16-bitowe ze znakiem
aformat=sample_fmts=u8|s16:channel_layouts=stereo
8.25 afreqshift
Zastosuj przesunięcie częstotliwości do wejściowych próbek audio.
Filtr akceptuje następujące opcje:
shift
Określ przesunięcie częstotliwości. Dozwolony zakres to -INT_MAX do INT_MAX. Wartość domyślna to 0,0.
level
Ustaw wzmocnienie wyjściowe zastosowane do końcowego wyjścia. Dozwolony zakres to od 0,0 do 1,0. Wartość domyślna to 1.0.
order
Ustaw kolejność filtrów używaną do filtrowania. Dozwolony zakres to od 1 do 16. Wartość domyślna to 8.
8.25.1 Commands
Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .
8.26 afwtdn
Zmniejsz szum szerokopasmowy z próbek wejściowych za pomocą Wavelets.
Poniżej znajduje się opis akceptowanych opcji.
sigma
Ustaw sigma szumu, dozwolony zakres to od 0 do 1. Domyślna wartość to 0. Ta opcja kontroluje siłę odszumiania próbek wejściowych. Najbardziej użytecznym sposobem ustawienia tej opcji jest użycie decybeli, np. -45dB.
levels
Ustaw liczbę poziomów rozkładu falkowego. Dozwolony zakres to od 1 do 12. Wartość domyślna to 10. Ustawienie zbyt niskiego powoduje bardzo niską wydajność odszumiania.
wavet
Ustaw typ falki do dekompozycji ramki wejściowej. Są one sortowane według liczby współczynników, od najniższego do najwyższego. Więcej współczynników oznacza gorszą szybkość filtrowania, ale ogólnie lepszą jakość. Dostępne falki to:
- '
sym2
' - '
sym4
' - '
rbior68
' - '
deb10
' - '
sym10
' - '
coif5
' - '
bl3
'
- '
percent
Ustaw procent pełnego odszumiania. Dozwolony zakres to od 0 do 100 procent. Wartość domyślna to 85 procent lub częściowe odszumianie.
profile
Jeśli ta opcja jest włączona, jako profil szumu zostanie użyta pierwsza ramka wejściowa. Jeśli pierwsze próbki klatek zawierają brak szumów, wydajność będzie bardzo słaba.
adaptive
Jeśli ta opcja jest włączona, ramki wejściowe są analizowane pod kątem obecności szumu. Jeśli szum zostanie wykryty z dużym prawdopodobieństwem, wówczas profil ramki wejściowej będzie używany do przetwarzania kolejnych ramek, aż do wykrycia nowej ramki szumu.
samples
Ustaw rozmiar pojedynczej klatki w liczbie próbek. Dozwolony zakres to od 512 do 65536. Domyślny rozmiar ramki to 8192 próbki.
softness
Ustaw miękkość zastosowaną w funkcji progowania. Dozwolony zakres to od 0 do 10. Domyślna miękkość to 1.
8.26.1 Commands
Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .
8.27 agate
Bramka służy głównie do redukcji niższych części sygnału. Ten rodzaj przetwarzania sygnału redukuje zakłócający szum między użytecznymi sygnałami.
Bramkowanie odbywa się poprzez wykrycie głośności poniżej wybranego poziomu threshold
i podzielenie jej przez współczynnik ustawiony za pomocą ratio
. Dolny poziom szumu ustawia się za pomocą range
. Ponieważ dokładna manipulacja sygnałem spowodowałaby zniekształcenie przebiegu, redukcja może być niwelowana w czasie. Odbywa się to poprzez ustawienie attack
i release
.
attack
określa, jak długo sygnał musi spaść poniżej progu, zanim nastąpi jakakolwiek redukcja, i release
ustawia czas, w którym sygnał musi wzrosnąć powyżej progu, aby ponownie zmniejszyć redukcję. Sygnały krótsze niż wybrany czas ataku pozostaną nietknięte.
level_in
Ustaw poziom wejściowy przed filtrowaniem. Wartość domyślna to 1. Dozwolony zakres to od 0,015625 do 64.
mode
Ustaw tryb działania. Może być
upward
lubdownward
. Wartość domyślna todownward
. Jeśli ustawiony jest naupward
tryb, wyższe partie sygnału będą wzmacniane, rozszerzając zakres dynamiki w górę. W przeciwnym razie w przypadkudownward
niższych partii sygnał zostanie zmniejszony.range
Ustaw poziom redukcji wzmocnienia, gdy sygnał jest poniżej progu. Wartość domyślna to 0,06125. Dozwolony zakres to od 0 do 1. Ustawienie tego na 0 wyłącza redukcję i wtedy filtr zachowuje się jak ekspander.
threshold
Jeśli sygnał wzrośnie powyżej tego poziomu, redukcja wzmocnienia jest zwalniana. Wartość domyślna to 0,125. Dozwolony zakres to od 0 do 1.
ratio
Ustaw współczynnik redukcji sygnału. Wartość domyślna to 2. Dozwolony zakres to od 1 do 9000.
attack
Ilość milisekund, przez którą sygnał musi wzrosnąć powyżej wartości progowej, zanim redukcja wzmocnienia zostanie zatrzymana. Wartość domyślna to 20 milisekund. Dozwolony zakres to od 0,01 do 9000.
release
Ilość milisekund, przez którą sygnał musi spaść poniżej progu, zanim redukcja zostanie ponownie zwiększona. Wartość domyślna to 250 milisekund. Dozwolony zakres to od 0,01 do 9000.
makeup
Ustawia wielkość wzmocnienia sygnału po przetworzeniu. Wartość domyślna to 1. Dozwolony zakres to od 1 do 64.
knee
Zakręć ostre kolano wokół progu, aby łagodniej wejść w redukcję wzmocnienia. Wartość domyślna to 2.828427125. Dozwolony zakres to od 1 do 8.
detection
Wybierz, czy do wykrywania ma być pobierany dokładny sygnał, czy podobny do RMS. Wartość domyślna to
rms
. Może byćpeak
lubrms
.link
Wybierz, czy średni poziom między wszystkimi kanałami, czy głośniejszy kanał ma wpływ na redukcję. Wartość domyślna to
average
. Może byćaverage
lubmaximum
.
8.27.1 Commands
Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .
8.28 aiir
Zastosuj dowolny filtr Nieskończonej odpowiedzi impulsowej.
Przyjmuje następujące parametry:
zeros, z
Ustaw B/licznik/zera/współczynniki odbicia.
poles, p
Ustaw współczynniki A/mianownik/bieguny/drabina.
gains, k
Ustaw wzmocnienia kanałów.
dry_gain
Ustaw wzmocnienie wejścia.
wet_gain
Ustaw wzmocnienie wyjściowe.
format, f
Ustaw format współczynników.
- '
ll
' funkcja kraty-drabiny
- '
sf
' funkcja transferu analogowego
- '
tf
' funkcja transferu cyfrowego
- '
zp
' Zera/bieguny w płaszczyźnie Z, kartezjańskie (domyślne)
- '
pr
' Zera/bieguny w płaszczyźnie Z, radiany biegunowe
- '
pd
' Zera/bieguny w płaszczyźnie Z, stopnie biegunowe
- '
sp
' Zera/bieguny w płaszczyźnie S
- '
process, r
Ustaw typ przetwarzania.
- '
d
' przetwarzanie bezpośrednie
- '
s
' przetwarzanie seryjne
- '
p
' przetwarzanie równoległe
- '
precision, e
Ustaw precyzję filtrowania.
- '
dbl
' zmiennoprzecinkowa podwójnej precyzji (domyślnie)
- '
flt
' zmiennoprzecinkowa pojedynczej precyzji
- '
i32
' 32-bitowe liczby całkowite
- '
i16
' 16-bitowe liczby całkowite
- '
normalize, n
Normalizuj współczynniki filtrów, domyślnie jest włączone. Włączenie go znormalizuje odpowiedź amplitudy przy DC do 0dB.
mix
Ile użyć przefiltrowanego sygnału na wyjściu. Wartość domyślna to 1. Zakres wynosi od 0 do 1.
response
Pokaż pasmo przenoszenia IR, wielkość (magenta), fazę (zielony) i opóźnienie grupowe (żółty) w dodatkowym strumieniu wideo. Domyślnie jest wyłączony.
channel
Ustaw, dla którego kanału podczerwieni wyświetlane jest pasmo przenoszenia. Domyślnie wyświetlany jest pierwszy kanał. Ta opcja jest używana tylko wtedy, gdy
response
jest włączona.size
Ustaw rozmiar strumienia wideo. Ta opcja jest używana tylko wtedy, gdy
response
jest włączona.
Współczynniki tf
i sf
format są oddzielone spacjami i są w porządku rosnącym.
Współczynniki w zp
formacie są oddzielone spacjami, a kolejność współczynników nie ma znaczenia. Współczynniki w zp
formacie są liczbami zespolonymi z i
jednostką urojoną.
Dla każdego kanału można podać różne współczynniki i wzmocnienia, w takim przypadku użyj '|' do oddzielenia współczynników lub zysków. Ostatnio podane współczynniki zostaną użyte dla wszystkich pozostałych kanałów.
8.28.1 Examples
- Zastosuj 2-biegunowe wycięcie eliptyczne przy około 5000 Hz dla częstotliwości próbkowania 48000 Hz:
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
- Tak samo jak powyżej, ale w
zp
formacie: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
- Zastosuj analogowy znormalizowany filtr dolnoprzepustowy Butterwortha trzeciego rzędu, używając formatu funkcji transferu analogowego:
aiir=z=1.3057 0 0 0:p=1.3057 2.3892 2.1860 1:f=sf:r=d
8.29 alimiter
Ogranicznik zapobiega wzrostowi sygnału wejściowego powyżej pożądanego progu. Ten ogranicznik wykorzystuje technologię lookahead, aby zapobiec zniekształceniom sygnału. Oznacza to, że po przetworzeniu sygnału występuje niewielkie opóźnienie. Pamiętaj, że opóźnienie, które generuje, to ustawiony przez Ciebie czas ataku.
Filtr akceptuje następujące opcje:
level_in
Ustaw wzmocnienie wejścia. Wartość domyślna to 1.
level_out
Ustaw wzmocnienie wyjściowe. Wartość domyślna to 1.
limit
Nie pozwól, aby sygnały powyżej tego poziomu przekroczyły limiter. Wartość domyślna to 1.
attack
Limiter osiągnie swój poziom tłumienia w tym czasie w milisekundach. Wartość domyślna to 5 milisekund.
release
Wróć od ograniczania do tłumienia 1.0 w tej ilości milisekund. Wartość domyślna to 50 milisekund.
asc
Gdy redukcja wzmocnienia jest zawsze potrzebna, ASC zajmuje się zwalnianiem do średniego poziomu redukcji, zamiast osiągania redukcji 0 w czasie zwalniania.
asc_level
Wybierz, w jakim stopniu ASC wpływa na czas wydania, 0 oznacza prawie brak zmian w czasie wydania, podczas gdy 1 daje dłuższe czasy wydania.
level
Sygnał wyjściowy poziomu automatycznego. Domyślnie jest włączone. To normalizuje dźwięk z powrotem do 0 dB, jeśli jest włączony.
latency
Skompensuj wprowadzone opóźnienie za pomocą zestawu bufora lookahead z parametrem ataku. Również opróżnij prawidłowe dane audio w buforze lookahead, gdy strumień osiągnie EOF.
W zależności od wybranego ustawienia zaleca się upsamplowanie wejścia 2x lub 4x z aresamplem przed zastosowaniem tego filtra.
8.30 allpass
Zastosuj dwubiegunowy filtr wszechprzepustowy z częstotliwością środkową (w Hz)
frequency
i szerokością filtra width
. Filtr wszechprzepustowy zmienia relację częstotliwości do fazy dźwięku bez zmiany relacji częstotliwości do amplitudy.
Filtr akceptuje następujące opcje:
frequency, f
Ustaw częstotliwość w Hz.
width_type, t
Ustaw metodę, aby określić szerokość pasma filtra.
h
Hz
q
Współczynnik Q
o
oktawa
s
nachylenie
k
kHz
width, w
Określ szerokość pasma filtru w jednostkach typ_szerokości.
mix, m
Ile użyć przefiltrowanego sygnału na wyjściu. Wartość domyślna to 1. Zakres wynosi od 0 do 1.
channels, c
Określ, które kanały do ​​filtrowania, domyślnie wszystkie dostępne są filtrowane.
normalize, n
Normalizuj współczynniki biquad, domyślnie jest wyłączone. Włączenie go znormalizuje odpowiedź amplitudy przy DC do 0dB.
order, o
Ustaw kolejność filtrów, może wynosić 1 lub 2. Domyślna wartość to 2.
transform, a
Ustaw typ transformacji filtru IIR.
di
dii
tdi
tdii
latt
svf
zdf
precision, r
Ustaw precyzję filtrowania.
auto
Wybierz automatyczny format sampli w zależności od filtrów surround.
s16
Zawsze używaj podpisu 16-bitowego.
s32
Zawsze używaj podpisu 32-bitowego.
f32
Zawsze używaj 32-bitowego zmiennoprzecinkowego.
f64
Zawsze używaj zmiennoprzecinkowej 64-bitowej.
8.30.1 Commands
Ten filtr obsługuje następujące polecenia:
frequency, f
Zmień częstotliwość wszechprzepustową. Składnia polecenia to: „
frequency
”width_type, t
Zmień allpass width_type. Składnia polecenia to: „
width_type
”width, w
Zmień szerokość przejścia. Składnia polecenia to: „
width
”mix, m
Zmień miks allpass. Składnia polecenia to: „
mix
”
8.31 aloop
Zapętlaj próbki audio.
Filtr akceptuje następujące opcje:
loop
Ustaw liczbę pętli. Ustawienie tej wartości na -1 spowoduje powstanie nieskończonych pętli. Wartość domyślna to 0.
size
Ustaw maksymalną liczbę próbek. Wartość domyślna to 0.
start
Ustaw pierwszą próbkę pętli. Wartość domyślna to 0.
8.32 amerge
Połącz dwa lub więcej strumieni audio w jeden wielokanałowy strumień.
Filtr akceptuje następujące opcje:
inputs
Ustaw liczbę wejść. Wartość domyślna to 2.
Jeśli układy kanałów wejść są rozłączne, a zatem kompatybilne, układ kanałów wyjściowych zostanie odpowiednio ustawiony, a kolejność kanałów zostanie zmieniona w razie potrzeby. Jeśli układy kanałów wejść nie są rozłączne, na wyjściu będą znajdować się wszystkie kanały pierwszego wejścia, następnie wszystkie kanały drugiego wejścia, w tej kolejności, a układ kanałów wyjścia będzie wartością domyślną odpowiadającą łączna liczba kanałów.
Na przykład, jeśli pierwsze wejście jest w 2.1 (FL+FR+LF), a drugie wejście to FC+BL+BR, to wyjście będzie w 5.1, z kanałami w następującej kolejności: a1, a2, b1, a3, b2, b3 (a1 to pierwszy kanał pierwszego wejścia, b1 to pierwszy kanał drugiego wejścia).
Z drugiej strony, jeśli oba wejścia są w stereo, kanały wyjściowe będą w domyślnej kolejności: a1, a2, b1, b2, a układ kanałów zostanie arbitralnie ustawiony na 4.0, co może, ale nie musi być oczekiwaną wartością .
Wszystkie wejścia muszą mieć tę samą częstotliwość próbkowania i format.
Jeżeli wejścia nie mają tego samego czasu trwania, wyjście zatrzyma się najkrócej.
8.32.1 Examples
- Połącz dwa pliki mono w strumień stereo:
amovie=left.wav [l] ; amovie=right.mp3 [r] ; [l] [r] amerge
- Wiele połączeń, zakładając 1 strumień wideo i 6 strumieni audio w
input.mkv
: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.33 amix
Miksuje wiele wejść audio w jedno wyjście.
Zauważ, że ten filtr obsługuje tylko próbki zmiennoprzecinkowe ( filtry amerge
i pan
audio obsługują wiele formatów). Jeśli amix
wejście zawiera próbki całkowite, to aresample zostanie automatycznie wstawiony, aby wykonać konwersję na próbki zmiennoprzecinkowe.
Na przykład
ffmpeg -i INPUT1 -i INPUT2 -i INPUT3 -filter_complex amix=inputs=3:duration=first:dropout_transition=3 OUTPUT
zmiksuje 3 strumienie wejściowe audio z jednym wyjściem o takim samym czasie trwania jak pierwsze wejście i czasie przejścia do 3 sekund.
Przyjmuje następujące parametry:
inputs
Liczba wejść. Jeśli nie jest określony, domyślnie wynosi 2.
duration
Jak określić koniec strumienia.
longest
Czas trwania najdłuższego wejścia. (domyślna)
shortest
Czas trwania najkrótszego wejścia.
first
Czas trwania pierwszego wejścia.
dropout_transition
Czas przejścia (w sekundach) na renormalizację głośności po zakończeniu strumienia wejściowego. Wartość domyślna to 2 sekundy.
weights
Określ wagę każdego wejściowego strumienia audio jako sekwencji. Każda waga jest oddzielona spacją. Domyślnie wszystkie wejścia mają tę samą wagę.
normalize
Zawsze skaluj dane wejściowe zamiast tylko sumować próbki. Uważaj na silne obcinanie, jeśli dane wejściowe nie są znormalizowane przed lub po filtrowaniu przez ten filtr, jeśli ta opcja jest wyłączona. Domyślnie jest włączony.
8.33.1 Commands
Ten filtr obsługuje następujące polecenia:
weights
normalize
Składnia jest taka sama jak opcja o tej samej nazwie.
8.34 amultiply
Pomnóż pierwszy strumień audio przez drugi strumień audio i zapisz wynik w wyjściowym strumieniu audio. Mnożenie odbywa się poprzez pomnożenie każdej próbki z pierwszego strumienia z próbką w tej samej pozycji z drugiego strumienia.
Dzięki temu elementowemu mnożeniu można tworzyć zaniki amplitudy i modulacje amplitudy.
8.35 anequalizer
Wielopasmowy korektor parametryczny wysokiej klasy dla każdego kanału.
Przyjmuje następujące parametry:
params
-
Ta opcja ma format: "c
chn
f=cf
w=w
g=g
t=f
| ..." Każde pasmo korektora jest oddzielone znakiem '|'.chn
Ustaw numer kanału, do którego zostanie zastosowana korekcja. Jeśli wejście nie ma tego kanału, wpis jest ignorowany.
f
Ustaw częstotliwość środkową dla pasma. Jeśli wejście nie ma tej częstotliwości, wpis jest ignorowany.
w
Ustaw szerokość pasma w hercach.
g
Ustaw wzmocnienie pasma w dB.
t
Ustaw typ filtra dla pasma, opcjonalnie, może być:
- '
0
' Butterworth, to jest domyślne.
- '
1
' Czebyszew typ 1.
- '
2
' Czebyszew typ 2.
- '
curves
Po włączeniu tej opcji w strumieniu wideo wyświetlana jest charakterystyka częstotliwościowa korektora.
size
Ustaw rozmiar strumienia wideo. Użyteczne tylko wtedy, gdy aktywna jest opcja krzywe.
mgain
Ustaw maksymalne wzmocnienie, które będzie wyświetlane. Użyteczne tylko wtedy, gdy aktywna jest opcja krzywe. Ustawienie tego na rozsądną wartość umożliwia wyświetlenie wzmocnienia, które pochodzi z sąsiednich pasm, które są zbyt blisko siebie, a zatem wytwarzają większe wzmocnienie, gdy oba są aktywowane.
fscale
Ustaw skalę częstotliwości używaną do rysowania odpowiedzi częstotliwościowej na wyjściu wideo. Może być liniowy lub logarytmiczny. Domyślnie jest logarytmiczny.
colors
Ustaw kolor dla każdej krzywej kanału, która będzie wyświetlana w strumieniu wideo. To jest lista nazw kolorów oddzielonych spacją lub znakiem '|'. Nierozpoznane lub brakujące kolory zostaną zastąpione kolorem białym.
8.35.1 Examples
- Niższe wzmocnienie o 10 częstotliwości środkowej 200 Hz i szerokości 100 Hz dla pierwszych 2 kanałów przy użyciu filtra Czebyszewa typu 1:
anequalizer=c0 f=200 w=100 g=-10 t=1|c1 f=200 w=100 g=-10 t=1
8.35.2 Commands
Ten filtr obsługuje następujące polecenia:
change
Zmień istniejące parametry filtra. Składnia poleceń to: "
fN
|f=freq
|w=width
|g=gain
"fN
jest numerem istniejącego filtra, zaczynając od 0, jeśli taki filtr nie jest dostępny, zwracany jest błąd.freq
ustaw nowy parametr częstotliwości.width
ustaw nowy parametr szerokości w hercach.gain
ustaw nowy parametr wzmocnienia w dB.Pełne wywołanie filtra za pomocą asendcmd może wyglądać tak: asendcmd=c='4.0 zmiana anequalizera 0|f=200|w=50|g=1',anequalizer=...
8.36 anlmdn
Zmniejsz szum szerokopasmowy w próbkach audio za pomocą algorytmu Nielokalnych Średnich.
Każda próbka jest dostosowywana poprzez wyszukiwanie innych próbek o podobnym kontekście. To podobieństwo kontekstu jest definiowane przez porównanie otaczających ich łat o rozmiarze
p
. Plastry są przeszukiwane na obszarzer
wokół próbki.
Filtr akceptuje następujące opcje:
strength, s
Ustaw siłę odszumiania. Dozwolony zakres to 0,00001 do 10000. Wartość domyślna to 0,00001.
patch, p
Ustaw czas trwania promienia łatki. Dozwolony zakres to od 1 do 100 milisekund. Wartość domyślna to 2 milisekundy.
research, r
Ustaw czas trwania promienia badań. Dozwolony zakres to od 2 do 300 milisekund. Wartość domyślna to 6 milisekund.
output, o
Ustaw tryb wyjściowy.
Przyjmuje następujące wartości:
i
Wejście bez zmian.
o
Odfiltrowane szumy.
n
Przekaż tylko hałas.
Wartość domyślna to
o
.
smooth, m
Ustaw współczynnik gładkości. Wartość domyślna to
11
. Dozwolony zakres to od1
do1000
.
8.36.1 Commands
Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .
8.37 anlmf, anlms
Zastosuj znormalizowany algorytm najmniejszej średniej (kwadraty|czwarty) do pierwszego strumienia audio przy użyciu drugiego strumienia audio.
Ten filtr adaptacyjny jest używany do naśladowania pożądanego filtra poprzez znalezienie współczynników filtra, które odnoszą się do wytwarzania najmniejszego średniego kwadratu sygnału błędu (różnica między pożądanym, drugim wejściowym strumieniem audio a rzeczywistym sygnałem, pierwszym wejściowym strumieniem audio).
Poniżej znajduje się opis akceptowanych opcji.
order
Ustaw kolejność filtrów.
mu
Ustaw filtr mu.
eps
Ustaw filtr eps.
leakage
Ustaw wyciek filtra.
out_mode
Przyjmuje następujące wartości:
i
Przekaż pierwsze wejście.
d
Przekaż drugie wejście.
o
Przepuścić przefiltrowane próbki.
n
Przepuścić różnicę między próbkami pożądanymi i przefiltrowanymi.
Wartość domyślna to
o
.
8.37.1 Examples
- Jednym z wielu zastosowań tego filtra jest redukcja szumów, dźwięk wejściowy jest filtrowany za pomocą tych samych próbek, które są opóźnione o ustaloną wartość, jednym z takich przykładów dla dźwięku stereo jest:
asplit[a][b],[a]adelay=32S|32S[a],[b][a]anlms=order=128:leakage=0.0005:mu=.5:out_mode=o
8.37.2 Commands
Ten filtr obsługuje te same polecenia co opcje, z wyjątkiem opcji order
.
8.38 anull
Przekaż niezmienione źródło dźwięku do wyjścia.
8.39 apad
Wypełnij koniec strumienia audio ciszą.
Może być używany razem zffmpeg
-shortest
aby rozszerzyć strumienie audio do tej samej długości co strumień wideo.
Poniżej znajduje się opis akceptowanych opcji.
packet_size
Ustaw rozmiar pakietu ciszy. Wartość domyślna to 4096.
pad_len
Ustaw liczbę próbek ciszy do dodania na koniec. Po osiągnięciu wartości strumień zostaje zakończony. Ta opcja wyklucza się wzajemnie z
whole_len
.whole_len
Ustaw minimalną całkowitą liczbę próbek w wyjściowym strumieniu audio. Jeśli wartość jest dłuższa niż długość wejściowego dźwięku, na końcu dodawana jest cisza, aż do osiągnięcia wartości. Ta opcja wyklucza się wzajemnie z
pad_len
.pad_dur
Określ czas trwania próbek ciszy do dodania. Zobacz (ffmpeg-utils) sekcję Czas trwania w podręczniku ffmpeg-utils(1), aby poznać akceptowaną składnię. Używany tylko wtedy, gdy jest ustawiony na wartość nieujemną.
whole_dur
Określ minimalny całkowity czas trwania w wyjściowym strumieniu audio. Zobacz (ffmpeg-utils) sekcję Czas trwania w podręczniku ffmpeg-utils(1), aby poznać akceptowaną składnię. Używany tylko wtedy, gdy jest ustawiony na wartość nieujemną. Jeśli wartość jest dłuższa niż długość wejściowego dźwięku, na końcu dodawana jest cisza, aż do osiągnięcia wartości. Ta opcja wyklucza się wzajemnie z
pad_dur
Jeśli żadnepad_len
aniwhole_len
anipad_dur
aniwhole_dur
opcja jest ustawiona, filtr doda ciszę na końcu strumienia wejściowego w nieskończoność.
Zauważ, że dla ffmpeg 4.4 i wcześniejszych zeropad_dur
lub
whole_dur
spowodowało również, że filtr dodawał ciszę w nieskończoność.
8.39.1 Examples
- Dodaj 1024 próbki ciszy na końcu wejścia:
apad=pad_len=1024
- Upewnij się, że wyjście audio będzie zawierać co najmniej 10000 próbek, w razie potrzeby dopełnij wejście ciszą:
apad=whole_len=10000
- Służy
ffmpeg
do dopełniania wejścia audio ciszą, aby strumień wideo zawsze był najkrótszy i był konwertowany do końca w pliku wyjściowym przy użyciushortest
opcja:ffmpeg -i VIDEO -i AUDIO -filter_complex "[1:0]apad" -shortest OUTPUT
8.40 aphaser
Dodaj efekt fazowania do wejściowego dźwięku.
Filtr fazerowy tworzy serie szczytów i dołków w widmie częstotliwości. Położenie szczytów i dolin jest modulowane, aby zmieniały się w czasie, tworząc efekt omiatania.
Poniżej znajduje się opis akceptowanych parametrów.
in_gain
Ustaw wzmocnienie wejścia. Wartość domyślna to 0,4.
out_gain
Ustaw wzmocnienie wyjściowe. Wartość domyślna to 0,74
delay
Ustaw opóźnienie w milisekundach. Wartość domyślna to 3.0.
decay
Ustaw rozkład. Wartość domyślna to 0,4.
speed
Ustaw prędkość modulacji w Hz. Wartość domyślna to 0,5.
type
Ustaw typ modulacji. Domyślnie jest trójkątny.
Przyjmuje następujące wartości:
- '
triangular, t
' - '
sinusoidal, s
'
- '
8.41 aphaseshift
Zastosuj przesunięcie fazowe do wejściowych próbek audio.
Filtr akceptuje następujące opcje:
shift
Określ przesunięcie fazowe. Dozwolony zakres to od -1,0 do 1,0. Wartość domyślna to 0,0.
level
Ustaw wzmocnienie wyjściowe zastosowane do końcowego wyjścia. Dozwolony zakres to od 0,0 do 1,0. Wartość domyślna to 1.0.
order
Ustaw kolejność filtrów używaną do filtrowania. Dozwolony zakres to od 1 do 16. Wartość domyślna to 8.
8.41.1 Commands
Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .
8.42 apsyclip
Zastosuj maszynkę psychoakustyczną do wejściowego strumienia audio.
Filtr akceptuje następujące opcje:
level_in
Ustaw wzmocnienie wejścia. Domyślnie jest to 1. Zakres to [0.015625 - 64].
level_out
Ustaw wzmocnienie wyjściowe. Domyślnie jest to 1. Zakres to [0.015625 - 64].
clip
Ustaw wartość początkową przycinania. Wartość domyślna to 0dBFS lub 1.
diff
Wyprowadzaj tylko próbki różnicowe, przydatne do usłyszenia wprowadzonych zniekształceń. Domyślnie jest wyłączona.
adaptive
Ustaw siłę zastosowanego zniekształcenia adaptacyjnego. Wartość domyślna to 0,5. Dozwolony zakres to od 0 do 1.
iterations
Ustaw liczbę iteracji maszynki psychoakustycznej. Dozwolony zakres to od 1 do 20. Wartość domyślna to 10.
level
Sygnał wyjściowy poziomu automatycznego. Domyślnie jest wyłączone. To normalizuje dźwięk z powrotem do 0dBFS, jeśli jest włączony.
8.42.1 Commands
Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .
8.43 apulsator
Pulsator audio to coś pomiędzy autopannerem a tremolo. Ale może również tworzyć zabawne efekty stereo. Pulsator zmienia głośność lewego i prawego kanału w oparciu o LFO (oscylator niskiej częstotliwości) z różnymi przebiegami i przesuniętymi fazami. Ten filtr ma możliwość zdefiniowania przesunięcia między lewym i prawym kanałem. Przesunięcie 0 oznacza, że ​​oba kształty LFO pasują do siebie. Kanał lewy i prawy są jednakowo zmieniane - konwencjonalne tremolo. Przesunięcie o 50% oznacza, że ​​kształt prawego kanału jest dokładnie przesunięty w fazie (lub cofnięty o około połowę częstotliwości) – pulsator działa jak autopanner. Przy 1 obie krzywe ponownie się pokrywają. Każde ustawienie pomiędzy nimi przesuwa przesunięcie fazowe bez przerw między wszystkimi etapami i wytwarza pewne „omijające” dźwięki z przebiegami sinusoidalnymi i trójkątnymi.
Filtr akceptuje następujące opcje:
level_in
Ustaw wzmocnienie wejścia. Domyślnie jest to 1. Zakres to [0.015625 - 64].
level_out
Ustaw wzmocnienie wyjściowe. Domyślnie jest to 1. Zakres to [0.015625 - 64].
mode
Ustaw kształt fali, który będzie używany przez LFO. Może być jednym z: sinus, trójkąt, kwadrat, sawup lub sawdown. Wartość domyślna to sinus.
amount
Ustaw modulację. Określ, jak duży wpływ na oryginalny sygnał ma LFO.
offset_l
Ustaw przesunięcie lewego kanału. Wartość domyślna to 0. Dozwolony zakres to [0 - 1].
offset_r
Ustaw przesunięcie prawego kanału. Wartość domyślna to 0,5. Dozwolony zakres to [0 - 1].
width
Ustaw szerokość impulsu. Wartość domyślna to 1. Dozwolony zakres to [0 - 2].
timing
Ustaw możliwy tryb pomiaru czasu. Może być jednym z: bpm, ms lub Hz. Domyślnie jest to Hz.
bpm
Ustaw uderzenia na minutę. Wartość domyślna to 120. Dozwolony zakres to [30 - 300]. Używany tylko wtedy, gdy taktowanie jest ustawione na bpm.
ms
Ustaw ms. Wartość domyślna to 500. Dozwolony zakres to [10 - 2000]. Używany tylko wtedy, gdy czas jest ustawiony na ms.
hz
Ustaw częstotliwość w Hz. Wartość domyślna to 2. Dozwolony zakres to [0,01 – 100]. Używany tylko wtedy, gdy czas jest ustawiony na Hz.
8.44 aresample
Ponownie próbkuj dźwięk wejściowy do określonych parametrów, korzystając z biblioteki libswresample. Jeśli żaden nie zostanie określony, filtr automatycznie przekonwertuje dane wejściowe i wyjściowe.
Ten filtr może również rozciągać/ściskać dane audio, aby dopasować je do znaczników czasu lub wstrzykiwać ciszę/wycinać dźwięk, aby pasowały do ​​znaczników czasu, wykonać kombinację obu lub żadnego z nich.
Filtr akceptuje składnię [ sample_rate
:] resampler_options
, gdzie sample_rate
wyraża częstotliwość próbkowania i resampler_options
jest listą
par key
= value
oddzielonych znakiem ":". Zobacz
sekcję (ffmpeg-resampler)"Resampler Options" w podręczniku ffmpeg-resampler(1), aby zapoznać
się z pełną listą obsługiwanych opcji.
8.44.1 Examples
- Przeprowadź ponowne próbkowanie sygnału wejściowego do 44100 Hz:
aresample=44100
- Rozciągnij/ściśnij próbki do podanych znaczników czasu, z maksymalną kompensacją 1000 próbek na sekundę:
aresample=async=1000
8.45 areverse
Odwróć klip audio.
Ostrzeżenie: ten filtr wymaga pamięci do buforowania całego klipu, dlatego sugeruje się przycinanie.
8.45.1 Examples
- Weź pierwsze 5 sekund klipu i odwróć go.
atrim=end=5,areverse
8.46 arnndn
Zmniejsz hałas z mowy dzięki Recurrent Neural Networks.
Ten filtr akceptuje następujące opcje:
model, m
Ustaw plik modelu pociągu do wczytania. Ta opcja jest zawsze wymagana.
mix
Ustaw, ile zmieszać przefiltrowanych próbek z końcowym wynikiem. Dozwolony zakres to od -1 do 1. Wartość domyślna to 1. Wartości ujemne są specjalne, określają, jak bardzo filtrowany szum ma pozostać w końcowym wyjściu filtra. Ustaw tę opcję na -1, aby usłyszeć rzeczywisty szum usunięty z sygnału wejściowego.
8.46.1 Commands
Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .
8.47 asdr
Zmierz stosunek sygnału audio do zniekształceń.
Ten filtr pobiera dwa strumienie audio na wejście i wyprowadza pierwszy strumień audio. Wyniki są podane w dB na kanał na końcu każdego wejścia.
8.48 asetnsamples
Ustaw liczbę próbek na każdą wyjściową ramkę audio.
Ostatni pakiet wyjściowy może zawierać inną liczbę próbek, ponieważ filtr wypłucze wszystkie pozostałe próbki, gdy wejściowy sygnał audio zasygnalizuje jego koniec.
Filtr akceptuje następujące opcje:
nb_out_samples, n
Ustaw liczbę klatek na każdą wyjściową ramkę audio. Liczba jest rozumiana jako liczba próbek na każdy kanał . Wartość domyślna to 1024.
pad, p
Jeśli jest ustawiony na 1, filtr wypełni ostatnią ramkę audio zerami, tak aby ostatnia ramka zawierała taką samą liczbę próbek jak poprzednie. Wartość domyślna to 1.
Na przykład, aby ustawić liczbę próbek na klatkę na 1234 i wyłączyć dopełnienie dla ostatniej klatki, użyj:
asetnsamples=n=1234:p=0
8.49 asetrate
Ustaw częstotliwość próbkowania bez zmiany danych PCM. Spowoduje to zmianę prędkości i wysokości tonu.
Filtr akceptuje następujące opcje:
sample_rate, r
Ustaw wyjściową częstotliwość próbkowania. Wartość domyślna to 44100 Hz.
8.50 ashowinfo
Pokaż linię zawierającą różne informacje dla każdej wejściowej ramki audio. Dźwięk wejściowy nie jest modyfikowany.
Pokazany wiersz zawiera sekwencję par klucz/wartość postaci
key
: value
.
Na wyjściu pokazane są następujące wartości:
n
Numer (sekwencyjny) ramki wejściowej, zaczynając od 0.
pts
Znacznik czasu prezentacji ramki wejściowej w jednostkach podstawy czasu; podstawa czasu zależy od wkładki wejściowej filtra i zwykle wynosi 1/
sample_rate
.pts_time
Znacznik czasu prezentacji ramki wejściowej w sekundach.
pos
pozycja ramki w strumieniu wejściowym, -1 jeśli ta informacja jest niedostępna i/lub nie ma znaczenia (np. w przypadku dźwięku syntetycznego)
fmt
Przykładowy format.
chlayout
Układ kanałów.
rate
Częstotliwość próbkowania dla ramki audio.
nb_samples
Liczba próbek (na kanał) w ramce.
checksum
Suma kontrolna Adler-32 (wydrukowana w systemie szesnastkowym) danych audio. W przypadku dźwięku planarnego dane są traktowane tak, jakby wszystkie płaszczyzny były połączone.
plane_checksums
Lista sum kontrolnych Adler-32 dla każdej płaszczyzny danych.
8.51 asoftclip
Zastosuj miękkie przycinanie dźwięku.
Miękkie przycinanie to rodzaj efektu zniekształcenia, w którym amplituda sygnału jest nasycona wzdłuż gładkiej krzywej, a nie nagłego kształtu ostrego przycinania.
Ten filtr akceptuje następujące opcje:
type
Ustaw rodzaj miękkiego docinania.
Przyjmuje następujące wartości:
hard
tanh
atan
cubic
exp
alg
quintic
sin
erf
threshold
Ustaw próg, od którego rozpocząć przycinanie. Wartość domyślna to 0dB lub 1.
output
Ustaw wzmocnienie zastosowane do wyjścia. Wartość domyślna to 0dB lub 1.
param
Ustaw dodatkowy parametr sterujący funkcją sigmoidalną.
oversample
Ustaw współczynnik nadpróbkowania.
8.51.1 Commands
Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .
8.52 aspectralstats
Wyświetlaj informacje statystyczne w dziedzinie częstotliwości o kanałach audio. Statystyki są obliczane i przechowywane jako metadane dla każdego kanału audio i dla każdej ramki audio.
Akceptuje następującą opcję:
win_size
Ustaw długość okna w próbkach. Wartość domyślna to 2048. Dozwolony zakres to od 32 do 65536.
win_func
Ustaw funkcję okna.
Przyjmuje następujące wartości:
- '
rect
' - '
bartlett
' - '
hann, hanning
' - '
hamming
' - '
blackman
' - '
welch
' - '
flattop
' - '
bharris
' - '
bnuttall
' - '
bhann
' - '
sine
' - '
nuttall
' - '
lanczos
' - '
gauss
' - '
tukey
' - '
dolph
' - '
cauchy
' - '
parzen
' - '
poisson
' - '
bohman
'
Wartość domyślna to
hann
.- '
overlap
Ustaw nakładanie się okien. Dozwolony zakres to od
0
do1
. Wartość domyślna to0.5
.
Lista każdego klucza metadanych jest następująca:
mean
variance
centroid
spread
skewness
kurtosis
entropy
flatness
crest
flux
slope
decrease
rolloff
8.53 asr
Automatyczne rozpoznawanie mowy
Ten filtr wykorzystuje PocketSphinx do rozpoznawania mowy. Aby umożliwić kompilację tego filtra, musisz skonfigurować FFmpeg za pomocą
--enable-pocketsphinx
.
Akceptuje następujące opcje:
rate
Ustaw częstotliwość próbkowania wejściowego dźwięku. Wartość domyślna to
16000
. To musi pasować do modeli mowy, w przeciwnym razie uzyska się słabe wyniki.hmm
Ustaw słownik zawierający pliki modeli akustycznych.
dict
Ustaw słownik wymowy.
lm
Ustaw plik modelu języka.
lmctl
Ustaw zestaw modelu języka.
lmname
Ustaw model języka, którego chcesz użyć.
logfn
Ustaw wyjście dla komunikatów dziennika.
Filtr eksportuje rozpoznaną mowę jako metadane ramki lavfi.asr.text
.
8.54 astats
Wyświetlaj informacje statystyczne w dziedzinie czasu o kanałach audio. Statystyki są obliczane i wyświetlane dla każdego kanału audio oraz, w stosownych przypadkach, podana jest również ogólna liczba.
Akceptuje następującą opcję:
length
Krótka długość okna w sekundach, używana do pomiaru wartości szczytowej i minimalnej RMS. Wartość domyślna to
0.05
(50 milisekund). Dozwolony zakres to[0 - 10]
.metadata
-
Ustaw wstrzykiwanie metadanych. Wszystkie klucze metadanych są poprzedzone prefiksem
lavfi.astats.X
, gdzieX
jest numerem kanału zaczynającym się od 1 lub ciągiem znakówOverall
. Domyślnie jest wyłączone.Dostępne klucze dla każdego kanału to: Przesunięcie DC Min_poziom Maks_poziom Min_różnicę Maks_różnicę Różnica_średnia Różnica_RMS Poziom_szczytu RMS_szczyt RMS_dołek Współczynnik szczytu Współczynnik_szczytu Współczynnik_szczytu Liczba_hałasu_podłoga Hałas_liczba_podłogi Entropia Głębokość_bitowa Zakres_dynamiczny_Zerowe_przekroczenia_Prędkość_Zerowa Liczba_przekroczeń_Normalna Liczba_przekroczeń_Normalna
i dla Ogólnie: Przesunięcie DC Min_poziom Maks_poziom Min_różnic Maks_różnic Średnia_różnica RMS_różnica Poziom_szczytu RMS_poziom RMS_szczyt RMS_dołek Płaski współczynnik Liczba_szczytów Hałas_podłogowy Hałas_ilość_podłogowych Entropia Głębokość_bitowa Liczba_próbek Liczba_NaNs Liczba_inf.
Na przykład pełny klucz wygląda tak
lavfi.astats.1.DC_offset
lub taklavfi.astats.Overall.Peak_count
.Aby uzyskać opis, co oznacza każdy klucz, przeczytaj poniżej.
reset
Ustaw liczbę klatek, dla których obliczane są skumulowane statystyki przed zresetowaniem Domyślnie wyłączone.
measure_perchannel
Wybierz parametry, które są mierzone na kanał. Klucze metadanych mogą być używane jako flagi, domyślnie
all
który mierzy wszystko.none
wyłącza wszystkie pomiary na kanał.measure_overall
Wybierz parametry, które są mierzone ogólnie. Klucze metadanych mogą być używane jako flagi, domyślnie
all
który mierzy wszystko.none
wyłącza wszystkie ogólne pomiary.
Poniżej znajduje się opis każdego pokazanego parametru:
DC offset
Średnie przesunięcie amplitudy od zera.
Min level
Minimalny poziom próbki.
Max level
Maksymalny poziom próbki.
Min difference
Minimalna różnica między dwiema kolejnymi próbkami.
Max difference
Maksymalna różnica między dwiema kolejnymi próbkami.
Mean difference
Średnia różnica między dwiema kolejnymi próbkami. Średnia z każdej różnicy między dwiema kolejnymi próbkami.
RMS difference
Różnica średniokwadratowa między dwiema kolejnymi próbkami.
Peak level dB
RMS level dB
Standardowy poziom szczytowy i RMS mierzony w dBFS.
RMS peak dB
RMS trough dB
Wartości szczytowe i minimalne dla poziomu RMS mierzone w krótkim oknie.
Crest factor
Standardowy stosunek wartości szczytowej do poziomu RMS (uwaga: nie w dB).
Flat factor
Płaskość (tj. kolejne próbki o tej samej wartości) sygnału na jego poziomach szczytowych (tj. albo
Min level
lubMax level
).Peak count
Liczba przypadków (nie liczba próbek), w których sygnał osiągnął albo
Min level
lubMax level
.Noise floor dB
Minimalny lokalny szczyt mierzony w dBFS w krótkim oknie.
Noise floor count
Liczba przypadków (nie liczba próbek), w których uzyskano sygnał
Noise floor
.Entropy
Entropia mierzona w całym dźwięku. Entropia o wartości bliskiej 1,0 jest zwykle mierzona dla białego szumu.
Bit depth
Ogólna głębia bitowa dźwięku. Liczba bitów użytych dla każdej próbki.
Dynamic range
Zmierzony zakres dynamiki dźwięku w dB.
Zero crossings
Liczba punktów, w których przebieg przecina oś poziomu zerowego.
Zero crossings rate
Szybkość przejść przez zero i liczba próbek audio.
8.55 asubboost
Zwiększ częstotliwości subwoofera.
Filtr akceptuje następujące opcje:
dry
Ustaw suche wzmocnienie, ile oryginalnego sygnału zostanie zachowane. Dozwolony zakres to od 0 do 1. Wartość domyślna to 1.0.
wet
Ustaw wzmocnienie mokre, ile przefiltrowanego sygnału zostanie zachowane. Dozwolony zakres to od 0 do 1. Wartość domyślna to 1.0.
boost
Ustaw maksymalny współczynnik wzmocnienia. Dozwolony zakres to od 1 do 12. Wartość domyślna to 2.
decay
Ustaw wartość wzmocnienia zaniku linii opóźniającej. Dozwolony zakres to od 0 do 1. Wartość domyślna to 0,0.
feedback
Ustaw wartość wzmocnienia sprzężenia zwrotnego linii opóźniającej. Dozwolony zakres to od 0 do 1. Wartość domyślna to 0,9.
cutoff
Ustaw częstotliwość graniczną w hercach. Dozwolony zakres to 50 do 900. Wartość domyślna to 100.
slope
Ustaw wielkość nachylenia dla częstotliwości odcięcia. Dozwolony zakres to 0,0001 do 1. Wartość domyślna to 0,5.
delay
Ustaw opóźnienie. Dozwolony zakres to od 1 do 100. Wartość domyślna to 20.
channels
Ustaw kanały do ​​przetworzenia. Wszystkie wartości domyślne są dostępne.
8.55.1 Commands
Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .
8.56 asubcut
Wytnij częstotliwości subwoofera.
Filtr ten pozwala na ustawienie niestandardowego, bardziej stromego odchylenia niż filtr górnoprzepustowy, a tym samym jest w stanie bardziej stłumić zawartość częstotliwości w paśmie zaporowym.
Filtr akceptuje następujące opcje:
cutoff
Ustaw częstotliwość graniczną w hercach. Dozwolony zakres to 2 do 200. Wartość domyślna to 20.
order
Ustaw kolejność filtrów. Dostępne wartości to od 3 do 20. Wartość domyślna to 10.
level
Ustaw poziom wzmocnienia wejściowego. Dozwolony zakres to od 0 do 1. Wartość domyślna to 1.
8.56.1 Commands
Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .
8.57 asupercut
Wytnij super częstotliwości.
Filtr akceptuje następujące opcje:
cutoff
Ustaw częstotliwość graniczną w hercach. Dozwolony zakres to 20000 do 192000. Wartość domyślna to 20000.
order
Ustaw kolejność filtrów. Dostępne wartości to od 3 do 20. Wartość domyślna to 10.
level
Ustaw poziom wzmocnienia wejściowego. Dozwolony zakres to od 0 do 1. Wartość domyślna to 1.
8.57.1 Commands
Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .
8.58 asuperpass
Zastosuj filtr pasmowoprzepustowy wysokiego rzędu Butterwortha.
Filtr akceptuje następujące opcje:
centerf
Ustaw częstotliwość środkową w hercach. Dozwolony zakres to 2 do 999999. Wartość domyślna to 1000.
order
Ustaw kolejność filtrów. Dostępne wartości to od 4 do 20. Wartość domyślna to 4.
qfactor
Ustaw współczynnik Q. Dozwolony zakres to od 0,01 do 100. Wartość domyślna to 1.
level
Ustaw poziom wzmocnienia wejściowego. Dozwolony zakres to od 0 do 2. Wartość domyślna to 1.
8.58.1 Commands
Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .
8.59 asuperstop
Zastosuj filtr pasmowy wysokiego rzędu Butterwortha.
Filtr akceptuje następujące opcje:
centerf
Ustaw częstotliwość środkową w hercach. Dozwolony zakres to 2 do 999999. Wartość domyślna to 1000.
order
Ustaw kolejność filtrów. Dostępne wartości to od 4 do 20. Wartość domyślna to 4.
qfactor
Ustaw współczynnik Q. Dozwolony zakres to od 0,01 do 100. Wartość domyślna to 1.
level
Ustaw poziom wzmocnienia wejściowego. Dozwolony zakres to od 0 do 2. Wartość domyślna to 1.
8.59.1 Commands
Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .
8.60 atempo
Dostosuj tempo dźwięku.
Filtr akceptuje dokładnie jeden parametr, tempo audio. Jeśli nie zostanie określony, filtr przyjmie nominalne tempo 1.0. Tempo musi mieścić się w zakresie [0,5, 100,0].
Zwróć uwagę, że tempo większe niż 2 spowoduje pominięcie niektórych próbek, zamiast ich zmieszania. Jeśli z jakiegoś powodu jest to problem, zawsze możliwe jest połączenie łańcuchowe kilku wystąpień atempo w celu uzyskania pożądanego tempa produktu.
8.60.1 Examples
- Zwolnij dźwięk do 80% tempa:
atempo=0.8
- Aby przyspieszyć dźwięk do 300% tempa:
atempo=3
- Aby przyspieszyć dźwięk do tempa 300% poprzez połączenie łańcuchowe dwóch instancji atempo:
atempo=sqrt(3),atempo=sqrt(3)
8.60.2 Commands
Ten filtr obsługuje następujące polecenia:
tempo
Zmień współczynnik skali tempa filtra. Składnia polecenia to: „
tempo
”
8.61 atilt
Zastosuj filtr nachylenia widma do strumienia audio.
Filtr ten stosuje dowolne zbocze spadku widma w dowolnym określonym paśmie częstotliwości.
Filtr akceptuje następujące opcje:
freq
Ustaw centralną częstotliwość pochylenia w Hz. Wartość domyślna to 10000 Hz.
slope
Ustaw kierunek nachylenia nachylenia. Wartość domyślna to 0. Dozwolony zakres to od -1 do 1.
width
Ustaw szerokość pochylenia. Wartość domyślna to 1000. Dozwolony zakres to od 100 do 10000.
order
Ustaw kolejność filtra pochylenia.
level
Ustaw poziom głośności wejściowej. Dozwolony zakres to od 0 do 4. Domyślna wartość to 1.
8.61.1 Commands
Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .
8.62 atrim
Przytnij dane wejściowe tak, aby dane wyjściowe zawierały jedną ciągłą podczęść danych wejściowych.
Przyjmuje następujące parametry:
start
Znacznik czasu (w sekundach) początku odcinka do zachowania. Oznacza to, że próbka audio ze znacznikiem czasu
start
będzie pierwszą próbką na wyjściu.end
Określ czas pierwszej próbki audio, która zostanie usunięta, tzn. próbka audio bezpośrednio poprzedzająca próbkę ze znacznikiem czasu
end
będzie ostatnią próbką w wyjściu.start_pts
Tak samo jak
start
, z tą różnicą, że ta opcja ustawia początkowy znacznik czasu w próbkach zamiast sekund.end_pts
Tak samo jak
end
, z tą różnicą, że ta opcja ustawia znacznik czasu końca w próbkach, a nie w sekundach.duration
Maksymalny czas trwania wyjścia w sekundach.
start_sample
Numer pierwszej próbki, która powinna zostać wyprowadzona.
end_sample
Numer pierwszej próbki, która powinna zostać upuszczona.
start
,end
, orazduration
są wyrażone jako specyfikacje czasu trwania; zobacz
(ffmpeg-utils) sekcję Czas trwania w podręczniku ffmpeg-utils(1) .
Zwróć uwagę, że pierwsze dwa zestawy opcji początku/końca orazduration
opcja spójrz na znacznik czasu ramki, podczas gdy opcje _sample po prostu zliczają próbki, które przechodzą przez filtr. Tak więc start/end_pts i start/end_sample dadzą różne wyniki, gdy znaczniki czasu są błędne, niedokładne lub nie zaczynają się od zera. Pamiętaj też, że ten filtr nie modyfikuje znaczników czasu. Jeśli chcesz, aby wyjściowe znaczniki czasu zaczynały się od zera, wstaw filtr assetpts po filtrze atrim.
Jeśli ustawiono wiele opcji początku lub końca, ten filtr próbuje być zachłanny i zachować wszystkie próbki, które pasują do co najmniej jednego z określonych ograniczeń. Aby jednocześnie zachować tylko tę część, która pasuje do wszystkich wiązań, połącz wiele filtrów atrim.
Wartości domyślne są takie, że wszystkie dane wejściowe są zachowywane. Można więc ustawić np. tylko wartości końcowe, aby zachować wszystko przed określonym czasem.
Przykłady:
- Upuść wszystko z wyjątkiem drugiej minuty wprowadzania danych:
ffmpeg -i INPUT -af atrim=60:120
- Zachowaj tylko pierwsze 1000 próbek:
ffmpeg -i INPUT -af atrim=end_sample=1000
8.63 axcorrelate
Oblicz znormalizowaną okienkową korelację krzyżową między dwoma wejściowymi strumieniami audio.
Otrzymane próbki zawsze mieszczą się w przedziale od -1 do 1 włącznie. Jeśli wynik wynosi 1, oznacza to, że dwie próbki wejściowe są silnie skorelowane w tym wybranym segmencie. Wynik 0 oznacza, że ​​w ogóle nie są skorelowane. Jeśli wynik wynosi -1, oznacza to, że dwie próbki wejściowe są przesunięte w fazie, co oznacza, że ​​wzajemnie się znoszą.
Filtr akceptuje następujące opcje:
size
Ustaw rozmiar segmentu, dla którego obliczana jest korelacja krzyżowa. Wartość domyślna to 256. Dozwolony zakres to od 2 do 131072.
algo
Ustaw algorytm korelacji krzyżowej. Może być
slow
lubfast
. Wartość domyślna toslow
. Szybki algorytm zakłada, że ​​średnie wartości w danym segmencie są zawsze zerowe, a zatem wymagają znacznie mniej obliczeń. Generalnie nie jest to prawdą, ale dotyczy typowych strumieni audio.
8.63.1 Examples
- Oblicz korelację między kanałami w strumieniu dźwięku stereo:
ffmpeg -i stereo.wav -af channelsplit,axcorrelate=size=1024:algo=fast correlation.wav
8.64 bandpass
Zastosuj dwubiegunowy filtr pasmowoprzepustowy Butterwortha z częstotliwością środkową frequency
i szerokością pasma (punkt 3dB). Opcja csg
wybiera stałe wzmocnienie spódnicy (wzmocnienie szczytowe = Q) zamiast domyślnego: stałe wzmocnienie szczytowe 0 dB. Filtr rozwija się przy 6dB na oktawę (20dB na dekadę).
Filtr akceptuje następujące opcje:
frequency, f
Ustaw centralną częstotliwość filtra. Wartość domyślna to
3000
.csg
Stałe wzmocnienie spódnicy, jeśli ustawione na 1. Domyślnie 0.
width_type, t
Ustaw metodę, aby określić szerokość pasma filtra.
h
Hz
q
Współczynnik Q
o
oktawa
s
nachylenie
k
kHz
width, w
Określ szerokość pasma filtru w jednostkach typ_szerokości.
mix, m
Ile użyć przefiltrowanego sygnału na wyjściu. Wartość domyślna to 1. Zakres wynosi od 0 do 1.
channels, c
Określ, które kanały do ​​filtrowania, domyślnie wszystkie dostępne są filtrowane.
normalize, n
Normalizuj współczynniki biquad, domyślnie jest wyłączone. Włączenie go znormalizuje odpowiedź amplitudy przy DC do 0dB.
transform, a
Ustaw typ transformacji filtru IIR.
di
dii
tdi
tdii
latt
svf
zdf
precision, r
Ustaw precyzję filtrowania.
auto
Wybierz automatyczny format sampli w zależności od filtrów surround.
s16
Zawsze używaj podpisu 16-bitowego.
s32
Zawsze używaj podpisu 32-bitowego.
f32
Zawsze używaj 32-bitowego zmiennoprzecinkowego.
f64
Zawsze używaj zmiennoprzecinkowej 64-bitowej.
block_size, b
Ustaw rozmiar bloku używanego do odwrotnego przetwarzania IIR. Jeśli ta wartość jest ustawiona na wystarczająco wysoką wartość (większą niż długość odpowiedzi impulsowej skrócona, gdy osiągnie wartości bliskie zeru), filtrowanie stanie się fazą liniową, w przeciwnym razie, jeśli nie będzie wystarczająco duże, będzie wytwarzać nieprzyjemne artefakty.
Zauważ, że opóźnienie filtra będzie dokładnie tyle próbek, gdy zostanie ustawione na wartość niezerową.
8.64.1 Commands
Ten filtr obsługuje następujące polecenia:
frequency, f
Zmień częstotliwość pasma. Składnia polecenia to: „
frequency
”width_type, t
Zmień szerokość_typu bandpass. Składnia polecenia to: „
width_type
”width, w
Zmień szerokość pasma. Składnia polecenia to: „
width
”mix, m
Zmień miks pasmowy. Składnia polecenia to: „
mix
”
8.65 bandreject
Zastosuj dwubiegunowy filtr pasmowy Butterwortha z częstotliwością środkową frequency
i szerokością pasma (punkt 3 dB) width
. Filtr rozwija się przy 6dB na oktawę (20dB na dekadę).
Filtr akceptuje następujące opcje:
frequency, f
Ustaw centralną częstotliwość filtra. Wartość domyślna to
3000
.width_type, t
Ustaw metodę, aby określić szerokość pasma filtra.
h
Hz
q
Współczynnik Q
o
oktawa
s
nachylenie
k
kHz
width, w
Określ szerokość pasma filtru w jednostkach typ_szerokości.
mix, m
Ile użyć przefiltrowanego sygnału na wyjściu. Wartość domyślna to 1. Zakres wynosi od 0 do 1.
channels, c
Określ, które kanały do ​​filtrowania, domyślnie wszystkie dostępne są filtrowane.
normalize, n
Normalizuj współczynniki biquad, domyślnie jest wyłączone. Włączenie go znormalizuje odpowiedź amplitudy przy DC do 0dB.
transform, a
Ustaw typ transformacji filtru IIR.
di
dii
tdi
tdii
latt
svf
zdf
precision, r
Ustaw precyzję filtrowania.
auto
Wybierz automatyczny format sampli w zależności od filtrów surround.
s16
Zawsze używaj podpisu 16-bitowego.
s32
Zawsze używaj podpisu 32-bitowego.
f32
Zawsze używaj 32-bitowego zmiennoprzecinkowego.
f64
Zawsze używaj zmiennoprzecinkowej 64-bitowej.
block_size, b
Ustaw rozmiar bloku używanego do odwrotnego przetwarzania IIR. Jeśli ta wartość jest ustawiona na wystarczająco wysoką wartość (większą niż długość odpowiedzi impulsowej skrócona, gdy osiągnie wartości bliskie zeru), filtrowanie stanie się fazą liniową, w przeciwnym razie, jeśli nie będzie wystarczająco duże, będzie wytwarzać nieprzyjemne artefakty.
Zauważ, że opóźnienie filtra będzie dokładnie tyle próbek, gdy zostanie ustawione na wartość niezerową.
8.65.1 Commands
Ten filtr obsługuje następujące polecenia:
frequency, f
Zmień częstotliwość odrzucania pasma. Składnia polecenia to: „
frequency
”width_type, t
Zmień bandreject width_type. Składnia polecenia to: „
width_type
”width, w
Zmień szerokość bandreject. Składnia polecenia to: „
width
”mix, m
Zmień miks bandreject. Składnia polecenia to: „
mix
”
8.66 bass, lowshelf
Wzmocnij lub wytnij niskie (niższe) częstotliwości dźwięku za pomocą dwubiegunowego filtra półkowego o reakcji podobnej do standardowej kontroli tonów hi-fi. Jest to również znane jako wyrównywanie półek (EQ).
Filtr akceptuje następujące opcje:
gain, g
Podaj wzmocnienie przy 0 Hz. Jego użyteczny zasięg to około -20 (dla dużego cięcia) do +20 (dla dużego wzmocnienia). Uważaj na przycinanie podczas korzystania z dodatniego wzmocnienia.
frequency, f
Ustaw centralną częstotliwość filtra, dzięki czemu można go używać do rozszerzania lub zmniejszania zakresu częstotliwości, który ma być wzmocniony lub obcięty. Wartość domyślna to
100
Hz.width_type, t
Ustaw metodę, aby określić szerokość pasma filtra.
h
Hz
q
Współczynnik Q
o
oktawa
s
nachylenie
k
kHz
width, w
Określ, jak strome jest przejście półki filtra.
poles, p
Ustaw liczbę biegunów. Wartość domyślna to 2.
mix, m
Ile użyć przefiltrowanego sygnału na wyjściu. Wartość domyślna to 1. Zakres wynosi od 0 do 1.
channels, c
Określ, które kanały do ​​filtrowania, domyślnie wszystkie dostępne są filtrowane.
normalize, n
Normalizuj współczynniki biquad, domyślnie jest wyłączone. Włączenie go znormalizuje odpowiedź amplitudy przy DC do 0dB.
transform, a
Ustaw typ transformacji filtru IIR.
di
dii
tdi
tdii
latt
svf
zdf
precision, r
Ustaw precyzję filtrowania.
auto
Wybierz automatyczny format sampli w zależności od filtrów surround.
s16
Zawsze używaj podpisu 16-bitowego.
s32
Zawsze używaj podpisu 32-bitowego.
f32
Zawsze używaj 32-bitowego zmiennoprzecinkowego.
f64
Zawsze używaj zmiennoprzecinkowej 64-bitowej.
block_size, b
Ustaw rozmiar bloku używanego do odwrotnego przetwarzania IIR. Jeśli ta wartość jest ustawiona na wystarczająco wysoką wartość (większą niż długość odpowiedzi impulsowej skrócona, gdy osiągnie wartości bliskie zeru), filtrowanie stanie się fazą liniową, w przeciwnym razie, jeśli nie będzie wystarczająco duże, będzie wytwarzać nieprzyjemne artefakty.
Zauważ, że opóźnienie filtra będzie dokładnie tyle próbek, gdy zostanie ustawione na wartość niezerową.
8.66.1 Commands
Ten filtr obsługuje następujące polecenia:
frequency, f
Zmień częstotliwość basów. Składnia polecenia to: „
frequency
”width_type, t
Zmień szerokość_typu basu. Składnia polecenia to: „
width_type
”width, w
Zmień szerokość basu. Składnia polecenia to: „
width
”gain, g
Zmień wzmocnienie basów. Składnia polecenia to: „
gain
”mix, m
Zmień miks basowy. Składnia polecenia to: „
mix
”
8.67 biquad
Zastosuj biquad filtr IIR o podanych współczynnikach. Gdzie b0
, i b1
, to odpowiednio
współczynniki licznika i mianownika. i określić , które kanały do ​​filtrowania, domyślnie wszystkie dostępne są filtrowane.
b2
a0
a1
a2
channels
c
8.67.1 Commands
Ten filtr obsługuje następujące polecenia:
a0
a1
a2
b0
b1
b2
Zmień parametr biquad. Składnia polecenia to: „
value
”mix, m
Ile użyć przefiltrowanego sygnału na wyjściu. Wartość domyślna to 1. Zakres wynosi od 0 do 1.
channels, c
Określ, które kanały do ​​filtrowania, domyślnie wszystkie dostępne są filtrowane.
normalize, n
Normalizuj współczynniki biquad, domyślnie jest wyłączone. Włączenie go znormalizuje odpowiedź amplitudy przy DC do 0dB.
transform, a
Ustaw typ transformacji filtru IIR.
di
dii
tdi
tdii
latt
svf
zdf
precision, r
Ustaw precyzję filtrowania.
auto
Wybierz automatyczny format sampli w zależności od filtrów surround.
s16
Zawsze używaj podpisu 16-bitowego.
s32
Zawsze używaj podpisu 32-bitowego.
f32
Zawsze używaj 32-bitowego zmiennoprzecinkowego.
f64
Zawsze używaj zmiennoprzecinkowej 64-bitowej.
block_size, b
Ustaw rozmiar bloku używanego do odwrotnego przetwarzania IIR. Jeśli ta wartość jest ustawiona na wystarczająco wysoką wartość (większą niż długość odpowiedzi impulsowej skrócona, gdy osiągnie wartości bliskie zeru), filtrowanie stanie się fazą liniową, w przeciwnym razie, jeśli nie będzie wystarczająco duże, będzie wytwarzać nieprzyjemne artefakty.
Zauważ, że opóźnienie filtra będzie dokładnie tyle próbek, gdy zostanie ustawione na wartość niezerową.
8.68 bs2b
Bauer stereo do transformacji binauralnej, która poprawia słuchanie stereofonicznych nagrań audio.
Aby umożliwić kompilację tego filtra musisz skonfigurować FFmpeg z
--enable-libbs2b
.
Przyjmuje następujące parametry:
profile
Wstępnie zdefiniowany poziom posuwu krzyżowego.
default
Poziom domyślny (fcut=700, feed=50).
cmoy
Obwód Chu Moy (fcut=700, feed=60).
jmeier
Obwód Jana Meiera (fcut=650, feed=95).
fcut
Częstotliwość cięcia (w Hz).
feed
Poziom paszy (w Hz).
8.69 channelmap
Zmień mapowanie kanałów wejściowych na nowe lokalizacje.
Przyjmuje następujące parametry:
map
Mapuj kanały od wejścia do wyjścia. Argumentem jest lista oddzielonych '|' mapowań, każde w formie lub . może być nazwą kanału wejściowego (np. FL dla przedniego lewego) lub jego indeksem w układzie kanału wejściowego. to nazwa kanału wyjściowego lub jego indeks w układzie kanału wyjściowego. Jeśli nie jest podany, jest to niejawny indeks, rozpoczynający się od zera i zwiększający się o jeden dla każdego mapowania.
in_channel
-out_channel
in_channel
in_channel
out_channel
out_channel
channel_layout
Układ kanałów strumienia wyjściowego.
Jeśli nie ma mapowania, filtr domyślnie mapuje kanały wejściowe na kanały wyjściowe, zachowując indeksy.
8.69.1 Examples
- Na przykład zakładając, że plik wejściowy MOV 5.1+downmix,
ffmpeg -i in.mov -filter 'channelmap=map=DL-FL|DR-FR' out.wav
utworzy wyjściowy plik WAV oznaczony jako stereo z kanałów downmixu na wejściu.
- Aby naprawić plik 5.1 WAV nieprawidłowo zakodowany w natywnej kolejności kanałów AAC
ffmpeg -i in.wav -filter 'channelmap=1|2|0|5|3|4:5.1' out.wav
8.70 channelsplit
Podziel każdy kanał z wejściowego strumienia audio na osobny strumień wyjściowy.
Przyjmuje następujące parametry:
channel_layout
Układ kanału strumienia wejściowego. Wartość domyślna to „stereo”.
channels
Układ kanałów opisujący kanały, które mają być wyodrębnione jako oddzielne strumienie wyjściowe lub „wszystkie”, aby wyodrębnić każdy kanał wejściowy jako osobny strumień. Wartość domyślna to „wszystkie”.
Wybranie kanałów nieobecnych w układzie kanałów na wejściu spowoduje błąd.
8.70.1 Examples
- Na przykład, zakładając plik MP3 z wejściem stereo,
ffmpeg -i in.mp3 -filter_complex channelsplit out.mkv
utworzy wyjściowy plik Matroska z dwoma strumieniami audio, jeden zawierający tylko lewy kanał, a drugi prawy kanał.
- Split a 5.1 WAV file into per-channel files:
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
- Wyodrębnij tylko LFE z pliku 5.1 WAV:
ffmpeg -i in.wav -filter_complex 'channelsplit=channel_layout=5.1:channels=LFE[LFE]' -map '[LFE]' lfe.wav
8.71 chorus
Dodaj efekt chóru do dźwięku.
Może sprawić, że pojedynczy wokal zabrzmi jak refren, ale można go również zastosować do instrumentacji.
Chorus przypomina efekt echa z krótkim opóźnieniem, ale podczas gdy w przypadku echa opóźnienie jest stałe, w przypadku chóru jest ono zmieniane za pomocą modulacji sinusoidalnej lub trójkątnej. Głębokość modulacji określa zakres, w jakim modulowane opóźnienie jest odtwarzane przed lub po opóźnieniu. W związku z tym opóźniony dźwięk będzie brzmiał wolniej lub szybciej, to znaczy opóźniony dźwięk dostrojony do oryginalnego, jak w refrenie, w którym niektóre wokale są nieco nieodpowiednie.
Przyjmuje następujące parametry:
in_gain
Ustaw wzmocnienie wejścia. Wartość domyślna to 0,4.
out_gain
Ustaw wzmocnienie wyjściowe. Wartość domyślna to 0,4.
delays
Ustaw opóźnienia. Typowe opóźnienie wynosi około 40ms do 60ms.
decays
Zestaw rozpadów.
speeds
Ustaw prędkości.
depths
Ustaw głębokości.
8.71.1 Examples
- Pojedyncze opóźnienie:
chorus=0.7:0.9:55:0.4:0.25:2
- Dwa opóźnienia:
chorus=0.6:0.9:50|60:0.4|0.32:0.25|0.4:2|1.3
- Pełniej brzmiący refren z trzema opóźnieniami:
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.72 compand
Kompresuj lub rozszerzaj zakres dynamiki dźwięku.
Przyjmuje następujące parametry:
attacks
decays
Lista czasów w sekundach dla każdego kanału, przez które uśredniany jest chwilowy poziom sygnału wejściowego w celu określenia jego głośności.
attacks
odnosi się do zwiększenia głośności idecays
odnosi się do zmniejszenia głośności. W większości sytuacji czas ataku (odpowiedź na głośniejszy dźwięk) powinien być krótszy niż czas zanikania, ponieważ ludzkie ucho jest bardziej wrażliwe na nagły głośny dźwięk niż nagły cichy dźwięk. Typowa wartość ataku to 0,3 sekundy, a typowa wartość rozpadu to 0,8 sekundy. Jeśli określona liczba ataków i zaników jest mniejsza niż liczba kanałów, ostatni zestaw ataków/zaników zostanie użyty dla wszystkich pozostałych kanałów.points
Lista punktów dla transmitancji, określona w dB w stosunku do maksymalnej możliwej amplitudy sygnału. Każda lista punktów kluczowych musi być zdefiniowana przy użyciu następującej składni:
x0/y0|x1/y1|x2/y2|....
lubx0/y0 x1/y1 x2/y2 ....
Wartości wejściowe muszą być w porządku ściśle rosnącym, ale transmitancja nie musi być monotonicznie rosnąca. Punkt
0/0
jest zakładany, ale można go zastąpić (przez0/out-dBn
). Typowe wartości transmitancji to-70/-70|-60/-20|1/0
.soft-knee
Ustaw promień łuku w dB dla wszystkich połączeń. Wartość domyślna to 0,01.
gain
Ustaw dodatkowe wzmocnienie w dB, które ma być zastosowane we wszystkich punktach funkcji transferu. Pozwala to na łatwą regulację ogólnego wzmocnienia. Domyślnie jest to 0.
volume
Ustaw początkową głośność w dB, którą należy przyjąć dla każdego kanału, gdy rozpocznie się filtrowanie. Pozwala to użytkownikowi na dostarczenie początkowego poziomu nominalnego, tak że na przykład bardzo duże wzmocnienie nie jest stosowane do początkowych poziomów sygnału, zanim sprzężenie zacznie działać. Typowa wartość dla dźwięku, który jest początkowo cichy, wynosi -90 dB. Domyślnie jest to 0.
delay
Ustaw opóźnienie w sekundach. Dźwięk wejściowy jest analizowany natychmiast, ale dźwięk jest opóźniany przed przekazaniem do regulatora głośności. Określenie opóźnienia w przybliżeniu równego czasom ataku/zaniku umożliwia efektywne działanie filtra w trybie predykcyjnym, a nie reaktywnym. Domyślnie jest to 0.
8.72.1 Examples
- Twórz muzykę zarówno w cichych, jak i głośnych fragmentach, odpowiednich do słuchania w hałaśliwym otoczeniu:
compand=.3|.3:1|1:-90/-60|-60/-40|-40/-30|-20/-20:6:0:-90:0.2
Kolejny przykład dźwięku z częściami szeptu i eksplozji:
compand=0|0:1|1:-90/-900|-70/-70|-30/-9|0/-3:6:0:0:0
- Bramka szumów, gdy szum jest na niższym poziomie niż sygnał:
compand=.1|.1:.2|.2:-900/-900|-50.1/-900|-50/-50:.01:0:-90:.1
- Oto kolejna bramka szumów, tym razem dla sytuacji, gdy szum jest wyższy niż sygnał (co pod pewnymi względami przypomina squelch):
compand=.1|.1:.1|.1:-45.1/-45.1|-45/-900|0/-900:.01:45:-90:.1
- Kompresja 2:1 od -6dB:
compand=points=-80/-80|-6/-6|0/-3.8|20/3.5
- Kompresja 2:1 od -9dB:
compand=points=-80/-80|-9/-9|0/-5.3|20/2.9
- Kompresja 2:1 od -12dB:
compand=points=-80/-80|-12/-12|0/-6.8|20/1.9
- Kompresja 2:1 od -18dB:
compand=points=-80/-80|-18/-18|0/-9.8|20/0.7
- Kompresja 3:1 od -15dB:
compand=points=-80/-80|-15/-15|0/-10.8|20/-5.2
- Kompresor/Brama:
compand=points=-80/-105|-62/-80|-15.4/-15.4|0/-12|20/-7.6
- Ekspander:
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
- Twardy ogranicznik przy -6dB:
compand=attacks=0:points=-80/-80|-6/-6|20/-6
- Twardy ogranicznik przy -12dB:
compand=attacks=0:points=-80/-80|-12/-12|20/-12
- Bramka szumów twardych przy -35 dB:
compand=attacks=0:points=-80/-115|-35.1/-80|-35/-35|20/20
- Miękki ogranicznik:
compand=attacks=0:points=-80/-80|-12.4/-12.4|-6/-8|0/-6.8|20/-2.8
8.73 compensationdelay
Linia opóźnienia kompensacji to opóźnienie oparte na jednostkach metrycznych, które skompensuje różne pozycje mikrofonów lub głośników.
Na przykład nagrałeś gitarę z dwoma mikrofonami umieszczonymi w różnych miejscach. Ponieważ przód fali dźwiękowej ma stałą prędkość w normalnych warunkach, fazowanie mikrofonów może się różnić i zależy od ich położenia i położenia. Najlepszy miks dźwięków można osiągnąć, gdy te mikrofony są w fazie (zsynchronizowane). Zwróć uwagę, że odległość ~30 cm między mikrofonami powoduje, że jeden mikrofon przechwytuje sygnał w przeciwfazie do drugiego mikrofonu. To sprawia, że ​​końcowy miks brzmi nastrojowo. Ten filtr pomaga rozwiązywać problemy związane z fazowaniem, dodając różne opóźnienia do każdej ścieżki mikrofonu i synchronizując je.
Najlepszy wynik można osiągnąć, gdy weźmiesz jeden utwór jako bazę i zsynchronizujesz z nim inne utwory jeden po drugim. Pamiętaj, że tolerancja synchronizacji/opóźnień zależy również od częstotliwości próbkowania. Wyższe częstotliwości próbkowania dają większą tolerancję.
Filtr akceptuje następujące parametry:
mm
Ustaw odległość w milimetrach. Jest to odległość kompensacji do precyzyjnego dostrajania. Wartość domyślna to 0.
cm
Ustaw odległość w cm. Jest to odległość kompensacji dla ustawienia odległości dokręcania. Wartość domyślna to 0.
m
Ustaw odległość w metrach. Jest to odległość kompensacyjna dla ustawienia twardej odległości. Wartość domyślna to 0.
dry
Ustaw suchą ilość. Ilość nieprzetworzonego (suchego) sygnału. Wartość domyślna to 0.
wet
Ustaw mokrą ilość. Ilość przetworzonego (mokrego) sygnału. Wartość domyślna to 1.
temp
Ustaw temperaturę w stopniach Celsjusza. To jest temperatura otoczenia. Wartość domyślna to 20.
8.73.1 Commands
Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .
8.74 crossfeed
Zastosuj filtr skrośny słuchawek.
Crossfeed to proces łączenia lewego i prawego kanału stereofonicznego nagrywania dźwięku. Stosowany jest głównie w celu zmniejszenia ekstremalnej separacji stereo niskich częstotliwości.
Celem jest wytworzenie większej ilości dźwięku przypominającego głośniki dla słuchacza.
Filtr akceptuje następujące opcje:
strength
Ustaw siłę posuwu poprzecznego. Wartość domyślna to 0,2. Dozwolony zakres to od 0 do 1. Ustawia wzmocnienie filtra niskiej półki dla bocznej części obrazu stereo. Wartość domyślna to -6dB. Maksymalna dozwolona wartość to -30db, gdy siła jest ustawiona na 1.
range
Ustaw szerokość sceny dźwiękowej. Wartość domyślna to 0,5. Dozwolony zakres to od 0 do 1. Ustawia częstotliwość odcięcia filtra niskiej półki. Domyślnie jest odcięty w pobliżu 1550 Hz. Przy zakresie ustawionym na 1 częstotliwość odcięcia jest ustawiona na 2100 Hz.
slope
Ustaw nachylenie krzywej filtra niskiej półki. Wartość domyślna to 0,5. Dozwolony zakres to od 0,01 do 1.
level_in
Ustaw wzmocnienie wejścia. Wartość domyślna to 0,9.
level_out
Ustaw wzmocnienie wyjściowe. Wartość domyślna to 1.
block_size
Ustaw rozmiar bloku używanego do odwrotnego przetwarzania IIR. Jeśli ta wartość jest ustawiona na wystarczająco wysoką wartość (większą niż długość odpowiedzi impulsowej skrócona, gdy osiągnie wartości bliskie zeru), filtrowanie stanie się fazą liniową, w przeciwnym razie, jeśli nie będzie wystarczająco duże, będzie wytwarzać nieprzyjemne artefakty.
Zauważ, że opóźnienie filtra będzie dokładnie tyle próbek, gdy zostanie ustawione na wartość niezerową.
8.74.1 Commands
Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .
8.75 crystalizer
Prosty algorytm wyostrzania szumów audio.
Ten filtr liniowo zwiększa różnice między każdą próbką audio.
Filtr akceptuje następujące opcje:
i
Ustawia intensywność efektu (domyślnie: 2.0). Musi mieścić się w zakresie od -10,0 do 0 (dźwięk niezmieniony) do 10,0 (efekt maksymalny). Aby odwrócić filtrowanie, użyj wartości ujemnej.
c
Włącz przycinanie. Domyślnie jest włączony.
8.75.1 Commands
Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .
8.76 dcshift
Zastosuj przesunięcie DC do dźwięku.
Może to być przydatne do usunięcia przesunięcia DC (spowodowanego być może przez problem sprzętowy w łańcuchu nagrywania) z dźwięku. Efektem przesunięcia DC jest zmniejszony zapas, a tym samym głośność. Filtr astats może być użyty do określenia, czy sygnał ma przesunięcie DC.
shift
Ustaw przesunięcie DC, dozwolony zakres to [-1, 1]. Wskazuje wielkość przesunięcia dźwięku.
limitergain
Opcjonalny. Powinien mieć wartość znacznie mniejszą niż 1 (np. 0,05 lub 0,02) i służy do zapobiegania obcinaniu.
8.77 deesser
Zastosuj usuwanie esencji do próbek audio.
i
Ustaw intensywność wyzwalania odsysania. Dozwolony zakres to od 0 do 1. Wartość domyślna to 0.
m
Ustaw ilość tłumienia na części wysokich tonów. Dozwolony zakres to od 0 do 1. Wartość domyślna to 0,5.
f
Ile oryginalnej zawartości częstotliwości zachować podczas usuwania esencji. Dozwolony zakres to od 0 do 1. Wartość domyślna to 0,5.
s
Ustaw tryb wyjściowy.
Przyjmuje następujące wartości:
i
Wejście bez zmian.
o
Przepustka odfiltrowana.
e
Podaj tylko egzamin.
Wartość domyślna to
o
.
8.78 dialoguenhance
Wzmocnij dialog w dźwięku stereo.
Ten filtr akceptuje wejście stereo i generuje wyjście kanałów surround (3.0). Nowo wyprodukowany przedni kanał centralny ma ulepszony dialog mowy, pierwotnie dostępny w obu kanałach stereo. Ten filtr wyprowadza kanały przedni lewy i przedni prawy takie same, jak dostępne na wejściu stereo.
Filtr akceptuje następujące opcje:
original
Ustaw oryginalny współczynnik centralny, aby zachować wyjście przedniego kanału centralnego. Dozwolony zakres to od 0 do 1. Wartość domyślna to 1.
enhance
Ustaw współczynnik wzmocnienia dialogów, aby umieścić wyjście przedniego kanału środkowego. Dozwolony zakres to od 0 do 3. Wartość domyślna to 1.
voice
Ustaw współczynnik wykrywania głosu. Dozwolony zakres to od 2 do 32. Wartość domyślna to 2.
8.78.1 Commands
Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .
8.79 drmeter
Zmierz zakres dynamiki dźwięku.
Wartości DR wynoszące 14 i wyższe występują w bardzo dynamicznym materiale. DR od 8 do 13 znajduje się w materiale przejściowym. A wszystko poniżej 8 ma bardzo słabą dynamikę i jest mocno skompresowane.
Filtr akceptuje następujące opcje:
length
Ustaw długość okna w sekundach, która służy do dzielenia dźwięku na segmenty o równej długości. Wartość domyślna to 3 sekundy.
8.80 dynaudnorm
Dynamiczny normalizator dźwięku.
Filtr ten stosuje pewną ilość wzmocnienia do wejściowego dźwięku w celu doprowadzenia jego szczytowej wielkości do poziomu docelowego (np. 0 dBFS). Jednak w przeciwieństwie do bardziej „prostych” algorytmów normalizacji, Dynamic Audio Normalizer *dynamicznie* ponownie dostosowuje współczynnik wzmocnienia do wejściowego dźwięku. Pozwala to na zastosowanie dodatkowego wzmocnienia do „cichych” sekcji dźwięku, unikając jednocześnie zniekształceń lub przycinania „głośnych” sekcji. Innymi słowy: Dynamic Audio Normalizer „wyrównuje” głośność sekcji cichych i głośnych, w tym sensie, że głośność każdej sekcji jest doprowadzona do tego samego poziomu docelowego. Należy jednak zauważyć, że Dynamic Audio Normalizer osiąga ten cel *bez* stosowania „kompresji zakresu dynamiki”. Zachowa 100% zakresu dynamiki *w* każdej sekcji pliku audio.
framelen, f
Ustaw długość ramki w milisekundach. W zakresie od 10 do 8000 milisekund. Wartość domyślna to 500 milisekund. Dynamiczny normalizator dźwięku przetwarza dźwięk wejściowy w małych fragmentach, zwanych ramkami. Jest to wymagane, ponieważ wielkość szczytowa nie ma znaczenia tylko dla pojedynczej wartości próbki. Zamiast tego musimy określić szczytową wielkość dla ciągłej sekwencji wartości próbki. Podczas gdy „standardowy” normalizator używałby po prostu szczytowej wielkości całego pliku, Dynamic Audio Normalizer określa szczytową wielkość indywidualnie dla każdej klatki. Długość ramki podawana jest w milisekundach. Domyślnie Dynamic Audio Normalizer używa klatki o długości 500 milisekund, co daje dobre wyniki w przypadku większości plików. Zwróć uwagę, że dokładna długość ramki w liczbie próbek zostanie określona automatycznie,
gausssize, g
Ustaw rozmiar okna filtru Gaussa. W zakresie od 3 do 301 musi być liczbą nieparzystą. Wartość domyślna to 31. Prawdopodobnie najważniejszym parametrem Dynamic Audio Normalizer jest
window size
filtru wygładzania Gaussa. Rozmiar okna filtra jest określony w ramkach, wyśrodkowany wokół bieżącej ramki. Dla uproszczenia musi to być liczba nieparzysta. W konsekwencji domyślna wartość 31 uwzględnia bieżącą ramkę, a także 15 poprzednich ramek i 15 kolejnych ramek. Użycie większego okna skutkuje silniejszym efektem wygładzania, a tym samym mniejszą zmiennością wzmocnienia, tj. wolniejszą adaptacją wzmocnienia. I odwrotnie, użycie mniejszego okna skutkuje słabszym efektem wygładzania, a tym samym większą zmiennością wzmocnienia, tj. szybszą adaptacją wzmocnienia. Innymi słowy, im bardziej zwiększysz tę wartość, tym bardziej Dynamiczny Normalizator dźwięku będzie zachowywał się jak „tradycyjny” filtr normalizacyjny. Wręcz przeciwnie, im bardziej zmniejszysz tę wartość, tym bardziej Dynamic Audio Normalizer będzie zachowywał się jak kompresor zakresu dynamiki.peak, p
Ustaw docelową wartość szczytową. Określa najwyższy dopuszczalny poziom amplitudy dla znormalizowanego wejścia audio. Ten filtr będzie próbował zbliżyć się do docelowej wartości szczytowej tak blisko, jak to możliwe, ale jednocześnie zapewnia, że ​​znormalizowany sygnał nigdy nie przekroczy wartości szczytowej. Maksymalny lokalny współczynnik wzmocnienia ramki jest narzucany bezpośrednio przez docelową wielkość szczytową. Domyślna wartość to 0,95, a zatem pozostawia zapas 5%*. Nie zaleca się przekraczania tej wartości.
maxgain, m
Ustaw maksymalny współczynnik wzmocnienia. W zakresie od 1,0 do 100,0. Wartość domyślna to 10,0. Dynamiczny normalizator dźwięku określa maksymalny możliwy (lokalny) współczynnik wzmocnienia dla każdej ramki wejściowej, tj. maksymalny współczynnik wzmocnienia, który nie powoduje obcinania lub zniekształceń. Maksymalny współczynnik wzmocnienia jest określany przez próbkę o najwyższej wielkości w ramce. Jednak Dynamic Audio Normalizer dodatkowo ogranicza maksymalny współczynnik wzmocnienia ramki przez z góry określony (globalny) maksymalny współczynnik wzmocnienia. Odbywa się to w celu uniknięcia nadmiernych współczynników wzmocnienia w „cichych” lub prawie cichych klatkach. Domyślnie maksymalny współczynnik wzmocnienia wynosi 10,0. Dla większości wejść wartość domyślna powinna być wystarczająca i zwykle nie zaleca się zwiększania tej wartości. Chociaż w przypadku sygnału wejściowego o wyjątkowo niskim poziomie głośności może być konieczne dopuszczenie jeszcze wyższych współczynników wzmocnienia. Notatka, jednak, że Dynamic Audio Normalizer nie stosuje po prostu „twardego” progu (tj. wartości odcięcia powyżej progu). Zamiast tego zostanie zastosowana „sigmoidalna” funkcja progowa. W ten sposób współczynniki wzmocnienia będą płynnie zbliżać się do wartości progowej, ale nigdy nie przekroczą tej wartości.
targetrms, r
Ustaw docelowy RMS. W zakresie od 0,0 do 1,0. Domyślnie 0,0 - wyłączone. Domyślnie Dynamic Audio Normalizer wykonuje normalizację „szczytu”. Oznacza to, że maksymalny lokalny współczynnik wzmocnienia dla każdej ramki jest zdefiniowany (tylko) przez najwyższą próbkę ramki. W ten sposób próbki mogą być maksymalnie wzmocnione bez przekraczania maksymalnego poziomu sygnału, czyli bez przesterowania. Opcjonalnie jednak Dynamic Audio Normalizer może również uwzględniać średnią kwadratową klatki, w skrócie RMS. W elektrotechnice RMS jest powszechnie używany do określania mocy sygnału zmiennego w czasie. Dlatego uważa się, że RMS jest lepszym przybliżeniem „postrzeganej głośności” niż tylko patrzenie na szczytową wielkość sygnału. W związku z tym, dostosowując wszystkie ramki do stałej wartości RMS, jednolity "
coupling, n
Włącz łączenie kanałów. Domyślnie jest włączony. Domyślnie Dynamic Audio Normalizer wzmacnia wszystkie kanały o taką samą wartość. Oznacza to, że ten sam współczynnik wzmocnienia zostanie zastosowany do wszystkich kanałów, tj. maksymalny możliwy współczynnik wzmocnienia jest określany przez „najgłośniejszy” kanał. Jednak w niektórych nagraniach może się zdarzyć, że głośność różnych kanałów jest nierówna, np. jeden kanał może być „cichszy” niż drugi. W takim przypadku ta opcja może być wykorzystana do wyłączenia sprzęgania kanałów. W ten sposób współczynnik wzmocnienia będzie określany niezależnie dla każdego kanału, w zależności tylko od próbki o najwyższej wartości w danym kanale. Pozwala to na harmonizację głośności różnych kanałów.
correctdc, c
Włącz korekcję odchylenia DC. Domyślnie jest wyłączona. Sygnał audio (w dziedzinie czasu) to sekwencja wartości próbek. W Dynamic Audio Normalizer te wartości próbek są reprezentowane w zakresie od -1,0 do 1,0, niezależnie od oryginalnego formatu wejściowego. Normalnie sygnał audio lub „przebieg” powinien być wyśrodkowany wokół punktu zerowego. Oznacza to, że jeśli obliczymy średnią wartość wszystkich próbek w pliku lub w pojedynczej klatce, wynik powinien wynosić 0,0 lub co najmniej bardzo zbliżone do tej wartości. Jeśli jednak występuje znaczne odchylenie średniej wartości od 0,0, w kierunku dodatnim lub ujemnym, określa się to jako przesunięcie DC lub przesunięcie DC. Ponieważ odchylenie DC jest wyraźnie niepożądane, Dynamic Audio Normalizer zapewnia opcjonalną korekcję odchylenia DC. Z włączoną korekcją prądu stałego, Dynamic Audio Normalizer określi średnią wartość lub przesunięcie „korekty DC” każdej ramki wejściowej i odejmie tę wartość od wszystkich wartości próbek ramki, co zapewnia, że ​​próbki te są ponownie wyśrodkowane wokół wartości 0,0. Ponadto, aby uniknąć „luk” na granicach ramki, wartości przesunięcia korekcji DC będą interpolowane płynnie między sąsiednimi ramkami.
altboundary, b
Włącz alternatywny tryb granic. Domyślnie jest wyłączona. Dynamiczny normalizator dźwięku uwzględnia pewne otoczenie wokół każdej klatki. Dotyczy to zarówno poprzednich ramek, jak i kolejnych ramek. Jednak dla ramek „granicznych”, znajdujących się na samym początku i na samym końcu pliku audio, nie wszystkie sąsiednie ramki są dostępne. W szczególności, dla pierwszych kilku klatek w pliku audio, poprzednie klatki nie są znane. I podobnie dla kilku ostatnich klatek w pliku audio, kolejne klatki nie są znane. Powstaje zatem pytanie, jakie współczynniki wzmocnienia należy przyjąć dla brakujących ramek w obszarze „granicznym”. Dynamiczny normalizator dźwięku implementuje dwa tryby radzenia sobie z tą sytuacją. Domyślny tryb graniczny zakłada współczynnik wzmocnienia równy dokładnie 1,0 dla brakujących klatek,
compress, s
Ustaw współczynnik kompresji. W zakresie od 0,0 do 30,0. Wartość domyślna to 0,0. Domyślnie Dynamic Audio Normalizer nie stosuje „tradycyjnej” kompresji. Oznacza to, że szczyty sygnału nie zostaną usunięte, a zatem w każdym lokalnym sąsiedztwie zostanie zachowany pełny zakres dynamiki. Jednak w niektórych przypadkach może być pożądane połączenie algorytmu normalizacji Dynamic Audio Normalizer z bardziej „tradycyjną” kompresją. W tym celu Dynamic Audio Normalizer zapewnia opcjonalną funkcję kompresji (progowania). Jeśli (i tylko jeśli) funkcja kompresji jest włączona, wszystkie klatki wejściowe zostaną przetworzone przez funkcję progową miękkiego kolana przed właściwym procesem normalizacji. Mówiąc prościej, funkcja progowania usuwa wszystkie próbki, których wielkość przekracza określoną wartość progową. Jednakże, Dynamic Audio Normalizer nie stosuje po prostu stałej wartości progowej. Zamiast tego wartość progowa zostanie dostosowana dla każdej pojedynczej klatki. Generalnie mniejsze parametry skutkują silniejszą kompresją i odwrotnie. Wartości poniżej 3.0 nie są zalecane, ponieważ mogą pojawić się słyszalne zniekształcenia.
threshold, t
Ustaw docelową wartość progową. Określa najniższy dopuszczalny poziom wielkości sygnału wejściowego audio, który zostanie znormalizowany. Jeśli głośność klatki wejściowej przekroczy tę wartość, ramka zostanie znormalizowana. W przeciwnym razie ramka może w ogóle nie zostać znormalizowana. Domyślna wartość to 0, co oznacza, że ​​wszystkie ramki wejściowe zostaną znormalizowane. Ta opcja jest szczególnie przydatna, gdy szum cyfrowy nie ma być wzmacniany.
channels, h
Określ, które kanały filtrować, domyślnie filtrowane są wszystkie dostępne kanały.
overlap, o
Określ nakładanie się ramek. Jeśli jest ustawiony na 0 (domyślnie), nie jest wykonywane nakładanie się ramek. Użycie wartości >0 i <1 spowoduje mniej konserwatywne dostosowanie wzmocnienia, na przykład gdy opcja framelen jest ustawiona na mniejszą wartość, jeśli wartość opcji framelen jest skompensowana za niezerowe nakładanie się, to regulacja wzmocnienia będzie płynniejsza w czasie w porównaniu z przypadkiem zerowego nakładania się.
8.80.1 Commands
Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .
8.81 earwax
Ułatw sobie słuchanie dźwięku na słuchawkach.
Ten filtr dodaje „wskazówki” do dźwięku stereo 44,1 kHz (tj. w formacie audio CD), dzięki czemu podczas słuchania na słuchawkach obraz stereo przesuwa się z wnętrza głowy (standard dla słuchawek) na zewnątrz i przed słuchacza (standard dla głośników ).
Przeniesiony z SoX.
8.82 equalizer
Zastosuj dwubiegunowy filtr korekcji szczytowej (EQ). Dzięki temu filtrowi poziom sygnału na wybranej częstotliwości i wokół niej może zostać zwiększony lub zmniejszony, podczas gdy (w przeciwieństwie do filtrów pasmowoprzepustowych i pasmowych) poziom sygnału na wszystkich innych częstotliwościach pozostaje niezmieniony.
Aby wytworzyć złożone krzywe korekcji, filtr ten można podać kilka razy, każdy z inną częstotliwością środkową.
Filtr akceptuje następujące opcje:
frequency, f
Ustaw centralną częstotliwość filtra w Hz.
width_type, t
Ustaw metodę, aby określić szerokość pasma filtra.
h
Hz
q
Współczynnik Q
o
oktawa
s
nachylenie
k
kHz
width, w
Określ szerokość pasma filtru w jednostkach typ_szerokości.
gain, g
Ustaw wymagane wzmocnienie lub tłumienie w dB. Uważaj na przycinanie podczas korzystania z dodatniego wzmocnienia.
mix, m
Ile użyć przefiltrowanego sygnału na wyjściu. Wartość domyślna to 1. Zakres wynosi od 0 do 1.
channels, c
Określ, które kanały do ​​filtrowania, domyślnie wszystkie dostępne są filtrowane.
normalize, n
Normalizuj współczynniki biquad, domyślnie jest wyłączone. Włączenie go znormalizuje odpowiedź amplitudy przy DC do 0dB.
transform, a
Ustaw typ transformacji filtru IIR.
di
dii
tdi
tdii
latt
svf
zdf
precision, r
Ustaw precyzję filtrowania.
auto
Wybierz automatyczny format sampli w zależności od filtrów surround.
s16
Zawsze używaj podpisu 16-bitowego.
s32
Zawsze używaj podpisu 32-bitowego.
f32
Zawsze używaj 32-bitowego zmiennoprzecinkowego.
f64
Zawsze używaj zmiennoprzecinkowej 64-bitowej.
block_size, b
Ustaw rozmiar bloku używanego do odwrotnego przetwarzania IIR. Jeśli ta wartość jest ustawiona na wystarczająco wysoką wartość (większą niż długość odpowiedzi impulsowej skrócona, gdy osiągnie wartości bliskie zeru), filtrowanie stanie się fazą liniową, w przeciwnym razie, jeśli nie będzie wystarczająco duże, będzie wytwarzać nieprzyjemne artefakty.
Zauważ, że opóźnienie filtra będzie dokładnie tyle próbek, gdy zostanie ustawione na wartość niezerową.
8.82.1 Examples
- Tłumienie 10 dB przy 1000 Hz, przy szerokości pasma 200 Hz:
equalizer=f=1000:t=h:width=200:g=-10
- Zastosuj wzmocnienie 2 dB przy 1000 Hz z Q 1 i stłumij 5 dB przy 100 Hz z Q 2:
equalizer=f=1000:t=q:w=1:g=2,equalizer=f=100:t=q:w=2:g=-5
8.82.2 Commands
Ten filtr obsługuje następujące polecenia:
frequency, f
Zmień częstotliwość korektora. Składnia polecenia to: „
frequency
”width_type, t
Zmień korektor width_type. Składnia polecenia to: „
width_type
”width, w
Zmień szerokość korektora. Składnia polecenia to: „
width
”gain, g
Zmień wzmocnienie korektora. Składnia polecenia to: „
gain
”mix, m
Zmień mikser korektora. Składnia polecenia to: „
mix
”
8.83 extrastereo
Liniowo zwiększa różnicę między lewym i prawym kanałem, co dodaje pewien rodzaj efektu „na żywo” do odtwarzania.
Filtr akceptuje następujące opcje:
m
Ustawia współczynnik różnicy (domyślnie: 2,5). 0.0 oznacza dźwięk mono (średnia z obu kanałów), przy dźwięku 1.0 pozostanie niezmieniony, przy -1,0 lewy i prawy kanał zostaną zamienione.
c
Włącz przycinanie. Domyślnie jest włączony.
8.83.1 Commands
Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .
8.84 firequalizer
Zastosuj wyrównywanie FIR przy użyciu dowolnej odpowiedzi częstotliwościowej.
Filtr akceptuje następującą opcję:
gain
Ustaw równanie krzywej wzmocnienia (w dB). Wyrażenie może zawierać zmienne:
f
oceniana częstotliwość
sr
próbna stawka
ch
numer kanału, ustawiony na 0, gdy ocena wielokanałowa jest wyłączona
chid
identyfikator kanału, patrz libavutil/channel_layout.h, ustawiony na pierwszy identyfikator kanału, gdy ocena wielokanałowa jest wyłączona
chs
Liczba kanałów
chlayout
channel_layout, zobacz libavutil/channel_layout.h
i funkcje:
gain_interpolate(f)
interpolować wzmocnienie na częstotliwości f na podstawie gain_entry
cubic_interpolate(f)
tak samo jak gain_interpolate, ale płynniej
Ta opcja jest również dostępna jako polecenie. Wartość domyślna to
gain_interpolate(f)
.gain_entry
Ustaw wejście wzmocnienia dla funkcji gain_interpolate. Wyrażenie może zawierać funkcje:
entry(f, g)
zapisz wejście wzmocnienia przy częstotliwości f o wartości g
Ta opcja jest również dostępna jako polecenie.
delay
Ustaw opóźnienie filtra w sekundach. Wyższa wartość oznacza większą dokładność. Wartość domyślna to
0.01
.accuracy
Ustaw dokładność filtra w Hz. Niższa wartość oznacza dokładniejsze. Wartość domyślna to
5
.wfunc
Ustaw funkcję okna. Dopuszczalne wartości to:
rectangular
prostokątne okno, przydatne, gdy krzywa wzmocnienia jest już gładka
hann
okno Hanna (domyślne)
hamming
walić okno
blackman
okno czarnoskórego
nuttall3
3-składnikowa ciągła 1-sza pochodna okno nuttala
mnuttall3
minimum 3-okresowe nieciągłe okno orzechowe
nuttall
4-składnikowa ciągła 1-sza pochodna okno nuttala
bnuttall
minimum 4-okresowe nieciągłe okienko nuttall (blackman-nuttall)
bharris
okno blackman-harris
tukey
okno Tukey
fixed
Jeśli włączone, użyj stałej liczby próbek audio. Poprawia to szybkość filtrowania z dużym opóźnieniem. Domyślnie jest wyłączone.
multi
Włącz wielokanałową ocenę wzmocnienia. Domyślnie jest wyłączone.
zero_phase
Włącz tryb fazy zerowej, odejmując znacznik czasu, aby skompensować opóźnienie. Domyślnie jest wyłączone.
scale
Ustaw skalę używaną przez wzmocnienie. Dopuszczalne wartości to:
linlin
częstotliwość liniowa, wzmocnienie liniowe
linlog
częstotliwość liniowa, wzmocnienie logarytmiczne (w dB) (domyślnie)
loglin
częstotliwość logarytmiczna (w skali oktawowej, gdzie 20 Hz to 0), wzmocnienie liniowe
loglog
częstotliwość logarytmiczna, wzmocnienie logarytmiczne
dumpfile
Ustaw plik do zrzucenia, odpowiedni do gnuplot.
dumpscale
Ustaw skalę pliku zrzutu. Dopuszczalne wartości są takie same jak w przypadku opcji skalowania. Domyślnie jest linlog.
fft2
Włącz 2-kanałową konwolucję przy użyciu złożonej FFT. To znacznie poprawia prędkość. Domyślnie jest wyłączone.
min_phase
Włącz minimalną fazową odpowiedź impulsową. Domyślnie jest wyłączone.
8.84.1 Examples
- dolnoprzepustowy przy 1000 Hz:
firequalizer=gain='if(lt(f,1000), 0, -INF)'
- dolnoprzepustowy przy 1000 Hz z gain_entry:
firequalizer=gain_entry='entry(1000,0); entry(1001, -INF)'
- niestandardowe wyrównanie:
firequalizer=gain_entry='entry(100,0); entry(400, -4); entry(1000, -6); entry(2000, 0)'
- większe opóźnienie z zerową fazą w celu skompensowania opóźnienia:
firequalizer=delay=0.1:fixed=on:zero_phase=on
- dolnoprzepustowy na lewym kanale, górnoprzepustowy na prawym kanale:
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.85 flanger
Zastosuj do dźwięku efekt wyginania.
Filtr akceptuje następujące opcje:
delay
Ustaw opóźnienie bazowe w milisekundach. Zakres od 0 do 30. Wartość domyślna to 0.
depth
Ustaw dodatkowe opóźnienie przemiatania w milisekundach. Zakres od 0 do 10. Wartość domyślna to 2.
regen
Ustaw procentową regenerację (opóźniony sygnał zwrotny). Zakres od -95 do 95. Wartość domyślna to 0.
width
Ustaw procent opóźnionego sygnału zmieszanego z oryginałem. Zakres od 0 do 100. Wartość domyślna to 71.
speed
Ustaw przemiatania na sekundę (Hz). Zakres od 0,1 do 10. Wartość domyślna to 0,5.
shape
Ustaw kształt fali skośnej, może być
triangular
lubsinusoidal
. Wartość domyślna tosinusoidal
.phase
Ustaw procentowe przesunięcie fali przemiatanej dla wielu kanałów. Zakres od 0 do 100. Wartość domyślna to 25.
interp
Ustaw interpolację linii opóźniającej
linear
lubquadratic
. Wartość domyślna tolinear
.
8.86 haas
Zastosuj efekt Haas do dźwięku.
Zauważ, że najbardziej sensowne jest zastosowanie do sygnałów mono. Dzięki temu filtrowi zastosowanemu do sygnałów mono nadaje on pewną kierunkowość i rozciąga swój obraz stereo.
Filtr akceptuje następujące opcje:
level_in
Ustaw poziom wejściowy. Domyślnie jest to
1
, lub 0dBlevel_out
Ustaw poziom wyjściowy. Domyślnie jest to
1
lub 0dB.side_gain
Ustaw wzmocnienie zastosowane do bocznej części sygnału. Domyślnie jest to
1
.middle_source
Ustaw rodzaj środkowego źródła. Może być jednym z następujących:
- '
left
' Wybierz lewy kanał.
- '
right
' Wybierz właściwy kanał.
- '
mid
' Wybierz środkową część sygnału obrazu stereo.
- '
side
' Wybierz sygnał części bocznej obrazu stereo.
- '
middle_phase
Zmień fazę środkową. Domyślnie jest wyłączona.
left_delay
Ustaw opóźnienie lewego kanału. Domyślnie są to
2.05
milisekundy.left_balance
Ustaw balans lewego kanału. Domyślnie jest to
-1
.left_gain
Ustaw wzmocnienie lewego kanału. Domyślnie jest to
1
.left_phase
Zmień lewą fazę. Domyślnie jest wyłączona.
right_delay
Ustaw opóźnienie prawego kanału. Domyślnie jest to
2.12
milisekundy.right_balance
Ustaw balans prawego kanału. Domyślnie jest to
1
.right_gain
Ustaw wzmocnienie prawego kanału. Domyślnie jest to
1
.right_phase
Zmień właściwą fazę. Domyślnie jest włączony.
8.87 hdcd
Dekoduje dane cyfrowe zgodne ze standardem High Definition (HDCD). 16-bitowy strumień PCM z osadzonymi kodami HDCD jest rozszerzany do 20-bitowego strumienia PCM.
Filtr obsługuje funkcje Peak Extend i Low-level Gain Adjustment funkcji HDCD i wykrywa flagę Transient Filter.
ffmpeg -i HDCD16.flac -af hdcd OUT24.flac
Używając filtra z wav, zauważ, że domyślne kodowanie dla wav to 16-bitowe, więc wynikowy strumień 20-bitowy zostanie obcięty z powrotem do 16-bitowego. Użyj czegoś takiego jak -acodec pcm_s24le
po filtrze, aby uzyskać 24-bitowe wyjście PCM.
ffmpeg -i HDCD16.wav -af hdcd OUT16.wav
ffmpeg -i HDCD16.wav -af hdcd -c:a pcm_s24le OUT24.wav
Filtr akceptuje następujące opcje:
disable_autoconvert
Wyłącz automatyczną konwersję formatu lub ponowne próbkowanie na wykresie filtra.
process_stereo
Przetwarzaj razem kanały stereo. Jeśli target_gain nie pasuje między kanałami, uznaj to za nieprawidłowe i użyj ostatniego poprawnego target_gain.
cdt_ms
Ustaw okres czasu wykrywania kodu w ms.
force_pe
Zawsze rozszerzaj piki powyżej -3dBFS, nawet jeśli PE nie jest sygnalizowany.
analyze_mode
Zastąp dźwięk solidnym tonem i dostosuj amplitudę, aby zasygnalizować określony aspekt procesu dekodowania. Plik wyjściowy można załadować do edytora audio wraz z oryginałem, aby ułatwić analizę.
analyze_mode=pe:force_pe=true
może być użyty do obejrzenia wszystkich próbek powyżej poziomu PE.Tryby to:
- '
0, off
' Wyłączone
- '
1, lle
' Wzmocnij poziom dopasowania dla każdej próbki
- '
2, pe
' Próbki, w których występuje rozszerzenie piku
- '
3, cdt
' Próbki, w których aktywny jest timer wykrywania kodu
- '
4, tgm
' Próbki, w których wzmocnienie docelowe nie pasuje między kanałami
- '
8.88 headphone
Zastosuj funkcje przenoszenia związane z głową (HRTF), aby stworzyć wirtualne głośniki wokół użytkownika do binauralnego słuchania przez słuchawki. HRIR są dostarczane przez dodatkowe strumienie, dla każdego kanału potrzebny jest jeden stereofoniczny strumień wejściowy.
Filtr akceptuje następujące opcje:
map
Ustaw mapowanie strumieni wejściowych do splotu. Argumentem jest lista nazw kanałów oddzielonych '|' w kolejności, ponieważ są one podane jako dodatkowe dane wejściowe strumienia dla filtra. Określa to również liczbę strumieni wejściowych. Liczba strumieni wejściowych nie może być mniejsza niż liczba kanałów w pierwszym strumieniu plus jeden.
gain
Ustaw wzmocnienie zastosowane do dźwięku. Wartość jest w dB. Wartość domyślna to 0.
type
Ustaw typ przetwarzania. Może być
time
lubfreq
.time
przetwarza dźwięk w dziedzinie czasu, który jest wolny.freq
przetwarza dźwięk w dziedzinie częstotliwości, która jest szybka. Wartość domyślna tofreq
.lfe
Ustaw niestandardowe wzmocnienie dla kanałów LFE. Wartość jest w dB. Wartość domyślna to 0.
size
Ustaw rozmiar ramki w liczbie próbek, które będą przetwarzane jednocześnie. Wartość domyślna to
1024
. Dozwolony zakres to od 1024 do 96000.hrir
Ustaw format strumienia hrir. Wartość domyślna to
stereo
. Wartość alternatywna tomultich
. Jeśli wartość jest ustawiona nastereo
, liczba dodatkowych strumieni powinna być większa lub równa liczbie kanałów wejściowych w pierwszym strumieniu wejściowym. Również każdy dodatkowy strumień powinien mieć stereofoniczną liczbę kanałów. Jeśli wartość jest ustawiona namultich
, liczba dodatkowych strumieni powinna wynosić dokładnie jeden. Również liczba kanałów wejściowych strumienia dodatkowego powinna być równa lub większa od dwukrotności liczby kanałów pierwszego strumienia wejściowego.
8.88.1 Examples
- Pełny przykład użycia plików wav jako współczynników z filtrami amovie dla downmixu 7.1, każdy filtr amovie używa pliku stereo ze współczynnikami IR jako dane wejściowe. Pliki podają współczynniki dla każdej pozycji wirtualnego głośnika:
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
- Pełny przykład użycia plików wav jako współczynników z filtrami amovie dla downmixu 7.1, ale teraz w formacie.
multich
hrir
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.89 highpass
Zastosuj filtr górnoprzepustowy o częstotliwości punktowej 3dB. Filtr może być jednobiegunowy lub dwubiegunowy (domyślnie). Filtr rozwija się przy 6dB na biegun na oktawę (20dB na biegun na dekadę).
Filtr akceptuje następujące opcje:
frequency, f
Ustaw częstotliwość w Hz. Wartość domyślna to 3000.
poles, p
Ustaw liczbę biegunów. Wartość domyślna to 2.
width_type, t
Ustaw metodę, aby określić szerokość pasma filtra.
h
Hz
q
Współczynnik Q
o
oktawa
s
nachylenie
k
kHz
width, w
Określ szerokość pasma filtru w jednostkach typ_szerokości. Dotyczy tylko filtra dwubiegunowego. Wartość domyślna to 0,707q i daje odpowiedź Butterwortha.
mix, m
Ile użyć przefiltrowanego sygnału na wyjściu. Wartość domyślna to 1. Zakres wynosi od 0 do 1.
channels, c
Określ, które kanały do ​​filtrowania, domyślnie wszystkie dostępne są filtrowane.
normalize, n
Normalizuj współczynniki biquad, domyślnie jest wyłączone. Włączenie go znormalizuje odpowiedź amplitudy przy DC do 0dB.
transform, a
Ustaw typ transformacji filtru IIR.
di
dii
tdi
tdii
latt
svf
zdf
precision, r
Ustaw precyzję filtrowania.
auto
Wybierz automatyczny format sampli w zależności od filtrów surround.
s16
Zawsze używaj podpisu 16-bitowego.
s32
Zawsze używaj podpisu 32-bitowego.
f32
Zawsze używaj 32-bitowego zmiennoprzecinkowego.
f64
Zawsze używaj zmiennoprzecinkowej 64-bitowej.
block_size, b
Ustaw rozmiar bloku używanego do odwrotnego przetwarzania IIR. Jeśli ta wartość jest ustawiona na wystarczająco wysoką wartość (większą niż długość odpowiedzi impulsowej skrócona, gdy osiągnie wartości bliskie zeru), filtrowanie stanie się fazą liniową, w przeciwnym razie, jeśli nie będzie wystarczająco duże, będzie wytwarzać nieprzyjemne artefakty.
Zauważ, że opóźnienie filtra będzie dokładnie tyle próbek, gdy zostanie ustawione na wartość niezerową.
8.89.1 Commands
Ten filtr obsługuje następujące polecenia:
frequency, f
Zmień częstotliwość górnoprzepustową. Składnia polecenia to: „
frequency
”width_type, t
Zmień górnoprzepustowy width_type. Składnia polecenia to: „
width_type
”width, w
Zmień szerokość górnoprzepustową. Składnia polecenia to: „
width
”mix, m
Zmień miks górnoprzepustowy. Składnia polecenia to: „
mix
”
8.90 join
Połącz wiele strumieni wejściowych w jeden wielokanałowy strumień.
Przyjmuje następujące parametry:
inputs
Liczba strumieni wejściowych. Wartość domyślna to 2.
channel_layout
Żądany układ kanału wyjściowego. Domyślnie jest to stereo.
map
Mapuj kanały od wejść do wyjść. Argumentem jest rozdzielona '|' lista odwzorowań, każde w formie. jest indeksem liczonym od 0 strumienia wejściowego. może być nazwą kanału wejściowego (np. FL dla przedniego lewego) lub jego indeksem w określonym strumieniu wejściowym. to nazwa kanału wyjściowego.
input_idx
.in_channel
-out_channel
input_idx
in_channel
out_channel
Filtr spróbuje odgadnąć mapowania, jeśli nie zostaną one wyraźnie określone. Robi to, najpierw próbując znaleźć nieużywany pasujący kanał wejściowy, a jeśli to się nie powiedzie, wybiera pierwszy nieużywany kanał wejściowy.
Dołącz 3 wejścia (z odpowiednio ustawionymi układami kanałów):
ffmpeg -i INPUT1 -i INPUT2 -i INPUT3 -filter_complex join=inputs=3 OUTPUT
Zbuduj wyjście 5.1 z 6 strumieni jednokanałowych:
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.91 ladspa
Załaduj wtyczkę LADSPA (Linux Audio Developer's Simple Plugin API).
Aby umożliwić kompilację tego filtra musisz skonfigurować FFmpeg z
--enable-ladspa
.
file, f
Określa nazwę biblioteki wtyczek LADSPA do załadowania. Jeśli zmienna środowiskowa
LADSPA_PATH
jest zdefiniowana, wtyczka LADSPA jest przeszukiwana w każdym z katalogów określonych przez listę oddzieloną dwukropkami wLADSPA_PATH
, w przeciwnym razie w standardowych ścieżkach LADSPA, które są w następującej kolejności:HOME/.ladspa/lib/
,/usr/local/lib/ladspa/
,/usr/lib/ladspa/
.plugin, p
Określa wtyczkę w bibliotece. Niektóre biblioteki zawierają tylko jedną wtyczkę, ale inne zawierają ich wiele. Jeśli nie jest ustawione, filtr wyświetli listę wszystkich dostępnych wtyczek w określonej bibliotece.
controls, c
Ustaw „|” oddzielona lista kontrolek, które mają zero lub więcej wartości zmiennoprzecinkowych, które określają zachowanie załadowanej wtyczki (na przykład opóźnienie, próg lub wzmocnienie). Kontrolki należy zdefiniować przy użyciu następującej składni: c0=
value0
|c1=value1
|c2=value2
|..., gdzievaluei
jest wartością ustawioną nai
-tej kontrolce. Alternatywnie można je również zdefiniować za pomocą następującej składni:value0
|value1
|value2
|..., gdzievaluei
jest wartością ustawioną nai
-tej kontrolce. Jeślicontrols
jest ustawiona nahelp
, drukowane są wszystkie dostępne kontrolki i ich prawidłowe zakresy.sample_rate, s
Określ częstotliwość próbkowania, domyślnie 44100. Używana tylko wtedy, gdy wtyczka ma zero wejść.
nb_samples, n
Ustaw liczbę próbek na kanał na każdą klatkę wyjściową, domyślnie 1024. Używany tylko wtedy, gdy wtyczka ma zero wejść.
duration, d
Ustaw minimalny czas trwania źródła dźwięku. Zobacz (ffmpeg-utils) sekcję Czas trwania w podręczniku ffmpeg-utils(1), aby poznać akceptowaną składnię. Zauważ, że wynikowy czas trwania może być dłuższy niż określony, ponieważ wygenerowany dźwięk jest zawsze cięty na końcu pełnej klatki. Jeśli nie zostanie określony lub podany czas trwania jest ujemny, dźwięk ma być generowany na zawsze. Używany tylko wtedy, gdy wtyczka ma zero wejść.
latency, l
Włącz kompensację opóźnień, domyślnie jest wyłączona. Używane tylko wtedy, gdy wtyczka ma wejścia.
8.91.1 Examples
- Lista wszystkich dostępnych wtyczek w bibliotece amp (przykładowa wtyczka LADSPA):
ladspa=file=amp
- Wymień wszystkie dostępne kontrolki i ich prawidłowe zakresy dla
vcf_notch
wtyczki zVCF
biblioteki:ladspa=f=vcf:p=vcf_notch:c=help
- Symuluj sprzęt audio niskiej jakości za pomocą
Computer Music Toolkit
biblioteki wtyczek (CMT):ladspa=file=cmt:plugin=lofi:controls=c0=22|c1=12|c2=12
- Dodaj pogłos do dźwięku za pomocą wtyczek TAP (wtyczki Tom's Audio Processing):
ladspa=file=tap_reverb:tap_reverb
- Generuj biały szum o amplitudzie 0,2:
ladspa=file=cmt:noise_source_white:c=c0=.2
- Generuj kliknięcia 20 bpm za pomocą wtyczki
C* Click - Metronome
zC* Audio Plugin Suite
biblioteki (CAPS):ladspa=file=caps:Click:c=c1=20'
- Zastosuj
C* Eq10X2 - Stereo 10-band equaliser
efekt:ladspa=caps:Eq10X2:c=c0=-48|c9=-24|c3=12|c4=2
- Zwiększ głośność o 20dB za pomocą szybkiego lookahead limitera z
SWH Plugins
kolekcji Steve'a Harrisa:ladspa=fast_lookahead_limiter_1913:fastLookaheadLimiter:20|0|2
SWH Plugins
Tłumienie niskich częstotliwości za pomocą Multiband EQ z kolekcji Steve'a Harrisa :ladspa=mbeq_1197:mbeq:-24|-24|-24|0|0|0|0|0|0|0|0|0|0|0|0
- Zmniejsz obraz stereo za pomocą
Narrower
bibliotekiC* Audio Plugin Suite
(CAPS):ladspa=caps:Narrower
- Kolejny biały szum, teraz używający
C* Audio Plugin Suite
biblioteki (CAPS):ladspa=caps:White:.2
- Trochę szumu fraktalnego przy użyciu
C* Audio Plugin Suite
biblioteki (CAPS):ladspa=caps:Fractal:c=c1=1
- Dynamiczna normalizacja głośności za pomocą
VLevel
wtyczki:ladspa=vlevel-ladspa:vlevel_mono
8.91.2 Commands
Ten filtr obsługuje następujące polecenia:
cN
Zmodyfikuj
N
-tą wartość kontrolną.Jeśli określona wartość jest nieprawidłowa, jest ignorowana i zachowywana jest poprzednia.
8.92 loudnorm
Normalizacja głośności EBU R128. Zawiera zarówno dynamiczne, jak i liniowe tryby normalizacji. Obsługa zarówno trybów jednoprzebiegowych (transmisje na żywo, pliki), jak i dwuprzebiegowych (pliki). Ten algorytm może celować w IL, LRA i maksymalny prawdziwy pik. W trybie dynamicznym, aby dokładnie wykryć prawdziwe szczyty, strumień audio zostanie upsamplowany do 192 kHz. Użyj -ar
opcji lub aresample
filtru, aby jawnie ustawić wyjściową częstotliwość próbkowania.
Filtr akceptuje następujące opcje:
I, i
Ustaw zintegrowany docelowy poziom głośności. Zakres to -70,0 - -5,0. Wartość domyślna to -24,0.
LRA, lra
Ustaw docelowy zakres głośności. Zakres wynosi 1,0 - 50,0. Wartość domyślna to 7,0.
TP, tp
Ustaw maksymalny prawdziwy szczyt. Zakres to -9,0 - +0,0. Wartość domyślna to -2,0.
measured_I, measured_i
Zmierzona IL pliku wejściowego. Zakres to -99,0 - +0,0.
measured_LRA, measured_lra
Zmierzone LRA pliku wejściowego. Zakres wynosi 0,0 - 99,0.
measured_TP, measured_tp
Zmierzony prawdziwy szczyt pliku wejściowego. Zakres to -99,0 - +99,0.
measured_thresh
Zmierzony próg pliku wejściowego. Zakres to -99,0 - +0,0.
offset
Ustaw wzmocnienie przesunięcia. Wzmocnienie jest stosowane przed limiterem true-peak. Zakres to -99,0 - +99,0. Wartość domyślna to +0.0.
linear
Normalizuj, skalując liniowo dźwięk źródłowy.
measured_I
,measured_LRA
,measured_TP
imeasured_thresh
muszą być określone. Docelowy LRA nie powinien być niższy niż źródłowy LRA, a zmiana głośności całkowanej nie powinna skutkować prawdziwym szczytem, ​​który przekracza docelową wartość TP. Jeśli którykolwiek z tych warunków nie zostanie spełniony, tryb normalizacji zostanie przywrócony dodynamic
. Dostępne opcje totrue
lubfalse
. Wartość domyślna totrue
.dual_mono
Traktuj pliki wejściowe mono jako „dual-mono”. Jeśli plik mono jest przeznaczony do odtwarzania w systemie stereo, jego pomiar EBU R128 będzie percepcyjnie nieprawidłowy. Jeśli jest ustawiona na
true
, ta opcja zrekompensuje ten efekt. Ta opcja nie ma wpływu na wielokanałowe pliki wejściowe. Opcje są prawdziwe lub fałszywe. Wartość domyślna to fałsz.print_format
Ustaw format wydruku statystyk. Dostępne opcje to podsumowanie, json lub brak. Wartość domyślna to brak.
8.93 lowpass
Zastosuj filtr dolnoprzepustowy o częstotliwości punktowej 3dB. Filtr może być jednobiegunowy lub dwubiegunowy (domyślnie). Filtr rozwija się przy 6dB na biegun na oktawę (20dB na biegun na dekadę).
Filtr akceptuje następujące opcje:
frequency, f
Ustaw częstotliwość w Hz. Wartość domyślna to 500.
poles, p
Ustaw liczbę biegunów. Wartość domyślna to 2.
width_type, t
Ustaw metodę, aby określić szerokość pasma filtra.
h
Hz
q
Współczynnik Q
o
oktawa
s
nachylenie
k
kHz
width, w
Określ szerokość pasma filtru w jednostkach typ_szerokości. Dotyczy tylko filtra dwubiegunowego. Wartość domyślna to 0,707q i daje odpowiedź Butterwortha.
mix, m
Ile użyć przefiltrowanego sygnału na wyjściu. Wartość domyślna to 1. Zakres wynosi od 0 do 1.
channels, c
Określ, które kanały do ​​filtrowania, domyślnie wszystkie dostępne są filtrowane.
normalize, n
Normalizuj współczynniki biquad, domyślnie jest wyłączone. Włączenie go znormalizuje odpowiedź amplitudy przy DC do 0dB.
transform, a
Ustaw typ transformacji filtru IIR.
di
dii
tdi
tdii
latt
svf
zdf
precision, r
Ustaw precyzję filtrowania.
auto
Wybierz automatyczny format sampli w zależności od filtrów surround.
s16
Zawsze używaj podpisu 16-bitowego.
s32
Zawsze używaj podpisu 32-bitowego.
f32
Zawsze używaj 32-bitowego zmiennoprzecinkowego.
f64
Zawsze używaj zmiennoprzecinkowej 64-bitowej.
block_size, b
Ustaw rozmiar bloku używanego do odwrotnego przetwarzania IIR. Jeśli ta wartość jest ustawiona na wystarczająco wysoką wartość (większą niż długość odpowiedzi impulsowej skrócona, gdy osiągnie wartości bliskie zeru), filtrowanie stanie się fazą liniową, w przeciwnym razie, jeśli nie będzie wystarczająco duże, będzie wytwarzać nieprzyjemne artefakty.
Zauważ, że opóźnienie filtra będzie dokładnie tyle próbek, gdy zostanie ustawione na wartość niezerową.
8.93.1 Examples
- Dolnoprzepustowy tylko kanał LFE, jeśli LFE nie jest obecny, nic nie robi:
lowpass=c=LFE
8.93.2 Commands
Ten filtr obsługuje następujące polecenia:
frequency, f
Zmień częstotliwość dolnoprzepustową. Składnia polecenia to: „
frequency
”width_type, t
Zmień szerokość_typu dolnoprzepustowego. Składnia polecenia to: „
width_type
”width, w
Zmień szerokość dolnoprzepustu. Składnia polecenia to: „
width
”mix, m
Zmień miks dolnoprzepustowy. Składnia polecenia to: „
mix
”
8.94 lv2
Załaduj wtyczkę LV2 (LADSPA w wersji 2).
Aby umożliwić kompilację tego filtra musisz skonfigurować FFmpeg z
--enable-lv2
.
plugin, p
Określa identyfikator URI wtyczki. Być może trzeba będzie uciec przed ':'.
controls, c
Ustaw „|” oddzielona lista kontrolek, które mają zero lub więcej wartości zmiennoprzecinkowych, które określają zachowanie załadowanej wtyczki (na przykład opóźnienie, próg lub wzmocnienie). Jeśli
controls
jest ustawiona nahelp
, drukowane są wszystkie dostępne kontrolki i ich prawidłowe zakresy.sample_rate, s
Określ częstotliwość próbkowania, domyślnie 44100. Używana tylko wtedy, gdy wtyczka ma zero wejść.
nb_samples, n
Ustaw liczbę próbek na kanał na każdą klatkę wyjściową, domyślnie 1024. Używany tylko wtedy, gdy wtyczka ma zero wejść.
duration, d
Ustaw minimalny czas trwania źródła dźwięku. Zobacz (ffmpeg-utils) sekcję Czas trwania w podręczniku ffmpeg-utils(1), aby poznać akceptowaną składnię. Zauważ, że wynikowy czas trwania może być dłuższy niż określony, ponieważ wygenerowany dźwięk jest zawsze cięty na końcu pełnej klatki. Jeśli nie zostanie określony lub podany czas trwania jest ujemny, dźwięk ma być generowany na zawsze. Używany tylko wtedy, gdy wtyczka ma zero wejść.
8.94.1 Examples
- Zastosuj wtyczkę wzmacniacza basu od Calf:
lv2=p=http\\\\://calf.sourceforge.net/plugins/BassEnhancer:c=amount=2
- Zastosuj wtyczkę winylową od Calf:
lv2=p=http\\\\://calf.sourceforge.net/plugins/Vinyl:c=drone=0.2|aging=0.5
- Zastosuj wtyczkę bit Crusher z ArtyFX:
lv2=p=http\\\\://www.openavproductions.com/artyfx#bitta:c=crush=0.3
8.94.2 Commands
Ten filtr obsługuje wszystkie opcje, które są eksportowane przez wtyczkę jako polecenia.
8.95 mcompand
Multiband Kompresuj lub rozszerzaj zakres dynamiki dźwięku.
Dźwięk wejściowy jest podzielony na pasma przy użyciu IIR Linkwitz-Riley czwartego rzędu. Jest to podobne do zwrotnicy głośnika i skutkuje płaską charakterystyką częstotliwościową, gdy nie ma działania kompandera.
Przyjmuje następujące parametry:
args
Składnia tej opcji jest następująca: atak,zanik,[atak,zanik..] punkty miękkiego kolana crossover_frequency [opóźnienie [początkowa_objętość [wzmocnienie]]] | atak, zanik ... Aby uzyskać wyjaśnienie każdego elementu, zapoznaj się z dokumentacją filtra Compand.
8.96 pan
Miksuj kanały z określonymi poziomami wzmocnienia. Filtr akceptuje układ kanału wyjściowego, po którym następuje zestaw definicji kanałów.
Ten filtr jest również przeznaczony do wydajnej zmiany mapowania kanałów strumienia audio.
Filtr przyjmuje parametry postaci: " l
| outdef
| outdef
|..."
l
układ kanału wyjściowego lub liczba kanałów
outdef
specyfikacja kanału wyjściowego, w postaci: "
out_name
=[gain
*]in_name
[(+-)[gain
*]in_name
...]"out_name
kanał wyjściowy do zdefiniowania nazwy kanału (FL, FR itd.) lub numeru kanału (c0, c1 itd.)
gain
współczynnik mnożnikowy dla kanału, 1 pozostawiając niezmienioną głośność
in_name
kanał wejściowy do użycia, zobacz out_name po szczegóły; nie można mieszać nazwanych i numerowanych kanałów wejściowych
Jeśli '=" w specyfikacji kanału zostanie zastąpione przez '<', wtedy wzmocnienia dla tej specyfikacji zostaną zrenormalizowane tak, że suma wynosi 1, unikając w ten sposób szumów obcinania.
8.96.1 Mixing examples
Na przykład, jeśli chcesz zmiksować ze stereo do mono, ale z większym współczynnikiem dla lewego kanału:
pan=1c|c0=0.9*c0+0.1*c1
Dostosowany downmix do stereo, który działa automatycznie dla 3-, 4-, 5- i 7-kanałowego dźwięku przestrzennego:
pan=stereo| FL < FL + 0.5*FC + 0.6*BL + 0.6*SL | FR < FR + 0.5*FC + 0.6*BR + 0.6*SR
Zauważ, że ffmpeg
integruje domyślny system miksowania (i miksowania), który powinien być preferowany (patrz opcja "-ac"), chyba że masz bardzo specyficzne potrzeby.
8.96.2 Remapping examples
Zmiana mapowania kanałów będzie skuteczna wtedy i tylko wtedy, gdy:
- współczynniki wzmocnienia są zerami lub jedynkami,
- tylko jedno wejście na wyjście kanału,
Jeśli wszystkie te warunki są spełnione, filtr powiadomi użytkownika ("Wykryto mapowanie czystego kanału") i użyje zoptymalizowanej i bezstratnej metody do ponownego mapowania.
Na przykład, jeśli masz źródło 5.1 i chcesz stereofoniczny strumień audio, upuszczając dodatkowe kanały:
pan="stereo| c0=FL | c1=FR"
Mając to samo źródło, możesz również przełączać przedni lewy i przedni prawy kanał i zachować układ kanałów wejściowych:
pan="5.1| c0=c1 | c1=c0 | c2=c2 | c3=c3 | c4=c4 | c5=c5"
Jeśli wejście jest strumieniem dźwięku stereo, możesz wyciszyć lewy przedni kanał (z zachowaniem układu kanałów stereo) za pomocą:
pan="stereo|c1=c1"
Nadal z wejściem stereofonicznego strumienia audio, możesz skopiować prawy kanał zarówno z przodu, z lewej, jak i z prawej strony:
pan="stereo| c0=FR | c1=FR"
8.97 replaygain
Filtr skanera ReplayGain. Ten filtr pobiera strumień audio jako wejście i wyprowadza go bez zmian. Pod koniec filtrowania wyświetla się track_gain
i track_peak
.
8.98 resample
Konwertuj format próbki audio, częstotliwość próbkowania i układ kanałów. Nie jest przeznaczony do bezpośredniego użycia.
8.99 rubberband
Zastosuj rozciąganie w czasie i zmianę wysokości dźwięku za pomocą librubberband.
Aby umożliwić kompilację tego filtra, musisz skonfigurować FFmpeg za pomocą
--enable-librubberband
.
Filtr akceptuje następujące opcje:
tempo
Ustaw współczynnik skali tempa.
pitch
Ustaw współczynnik skali skoku.
transients
Ustaw detektor transjentów. Możliwe wartości to:
crisp
mixed
smooth
detector
Ustaw detektor. Możliwe wartości to:
compound
percussive
soft
phase
Ustaw fazę. Możliwe wartości to:
laminar
independent
window
Ustaw rozmiar okna przetwarzania. Możliwe wartości to:
standard
short
long
smoothing
Ustaw wygładzanie. Możliwe wartości to:
off
on
formant
Włącz zachowywanie formantów podczas zmiany skoku. Możliwe wartości to:
shifted
preserved
pitchq
Ustaw jakość dźwięku. Możliwe wartości to:
quality
speed
consistency
channels
Ustaw kanały. Możliwe wartości to:
apart
together
8.99.1 Commands
Ten filtr obsługuje następujące polecenia:
tempo
Zmień współczynnik skali tempa filtra. Składnia polecenia to: „
tempo
”pitch
Zmień współczynnik skali skoku filtra. Składnia polecenia to: „
pitch
”
8.100 sidechaincompress
Ten filtr działa jak normalny kompresor, ale ma możliwość kompresji wykrytego sygnału za pomocą drugiego sygnału wejściowego. Potrzebuje dwóch strumieni wejściowych i zwraca jeden strumień wyjściowy. Pierwszy strumień wejściowy będzie przetwarzany w zależności od sygnału drugiego strumienia. Przefiltrowany sygnał można następnie przefiltrować za pomocą innych filtrów w późniejszych etapach przetwarzania. Zobacz filtr panoramowania i amerge .
Filtr akceptuje następujące opcje:
level_in
Ustaw wzmocnienie wejścia. Wartość domyślna to 1. Zakres wynosi od 0,015625 do 64.
mode
Ustaw tryb pracy sprężarki. Może być
upward
lubdownward
. Wartość domyślna todownward
.threshold
Jeśli sygnał drugiego strumienia wzrośnie powyżej tego poziomu, wpłynie to na redukcję wzmocnienia pierwszego strumienia. Domyślna wartość to 0,125. Zakres wynosi od 0,00097563 do 1.
ratio
Ustaw współczynnik redukcji sygnału. 1:2 oznacza, że ​​jeśli poziom podniósł się o 4dB powyżej progu, to po redukcji będzie tylko 2dB powyżej. Wartość domyślna to 2. Zakres wynosi od 1 do 20.
attack
Ilość milisekund, przez którą sygnał musi wzrosnąć powyżej progu, zanim rozpocznie się redukcja wzmocnienia. Wartość domyślna to 20. Zakres wynosi od 0,01 do 2000.
release
Ilość milisekund, przez którą sygnał musi spaść poniżej progu, zanim redukcja zostanie ponownie zmniejszona. Wartość domyślna to 250. Zakres wynosi od 0,01 do 9000.
makeup
Ustaw ilość, o jaką sygnał zostanie wzmocniony po przetworzeniu. Wartość domyślna to 1. Zakres wynosi od 1 do 64.
knee
Zakręć ostre kolano wokół progu, aby łagodniej wejść w redukcję wzmocnienia. Wartość domyślna to 2.82843. Zakres wynosi od 1 do 8.
link
Wybierz, czy
average
poziom pomiędzy wszystkimi kanałami strumienia w łańcuchu bocznym, czy głośniejszy(maximum
) kanał strumienia w łańcuchu bocznym ma wpływ na redukcję. Wartość domyślna toaverage
.detection
Czy należy odbierać dokładny sygnał w przypadku
peak
lub RMS w przypadkurms
. Domyślnie jestrms
to głównie płynniejsze.level_sc
Ustaw wzmocnienie łańcucha bocznego. Wartość domyślna to 1. Zakres wynosi od 0,015625 do 64.
mix
Ile użyć skompresowanego sygnału na wyjściu. Wartość domyślna to 1. Zakres wynosi od 0 do 1.
8.100.1 Commands
Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .
8.100.2 Examples
- Pełny przykład ffmpeg z 2 wejściami audio, 1. wejście do kompresji w zależności od sygnału 2. wejścia i później skompresowany sygnał do połączenia z 2. wejściem:
ffmpeg -i main.flac -i sidechain.flac -filter_complex "[1:a]asplit=2[sc][mix];[0:a][sc]sidechaincompress[compr];[compr][mix]amerge"
8.101 sidechaingate
Bramka łańcucha bocznego działa jak normalna (szerokopasmowa) bramka, ale ma możliwość filtrowania wykrytego sygnału przed wysłaniem go do etapu redukcji wzmocnienia. Zwykle bramka wykorzystuje sygnał pełnego zakresu do wykrycia poziomu powyżej progu. Na przykład: Jeśli odetniesz wszystkie niższe częstotliwości z sygnału łańcucha bocznego, bramka zmniejszy głośność ścieżki tylko wtedy, gdy pojawi się niewystarczająca liczba wysokich. Dzięki tej technice jesteś w stanie zredukować rezonans naturalnego bębna lub usunąć „dudnienie” stłumionych uderzeń z mocno przesterowanej gitary. Potrzebuje dwóch strumieni wejściowych i zwraca jeden strumień wyjściowy. Pierwszy strumień wejściowy będzie przetwarzany w zależności od sygnału drugiego strumienia.
Filtr akceptuje następujące opcje:
level_in
Ustaw poziom wejściowy przed filtrowaniem. Wartość domyślna to 1. Dozwolony zakres to od 0,015625 do 64.
mode
Ustaw tryb działania. Może być
upward
lubdownward
. Wartość domyślna todownward
. Jeśli ustawiony jest naupward
tryb, wyższe partie sygnału będą wzmacniane, rozszerzając zakres dynamiki w górę. W przeciwnym razie w przypadkudownward
niższych partii sygnał zostanie zmniejszony.range
Ustaw poziom redukcji wzmocnienia, gdy sygnał jest poniżej progu. Wartość domyślna to 0,06125. Dozwolony zakres to od 0 do 1. Ustawienie tego na 0 wyłącza redukcję i wtedy filtr zachowuje się jak ekspander.
threshold
Jeśli sygnał wzrośnie powyżej tego poziomu, redukcja wzmocnienia jest zwalniana. Wartość domyślna to 0,125. Dozwolony zakres to od 0 do 1.
ratio
Ustaw współczynnik redukcji sygnału. Wartość domyślna to 2. Dozwolony zakres to od 1 do 9000.
attack
Ilość milisekund, przez którą sygnał musi wzrosnąć powyżej wartości progowej, zanim redukcja wzmocnienia zostanie zatrzymana. Wartość domyślna to 20 milisekund. Dozwolony zakres to od 0,01 do 9000.
release
Ilość milisekund, przez którą sygnał musi spaść poniżej progu, zanim redukcja zostanie ponownie zwiększona. Wartość domyślna to 250 milisekund. Dozwolony zakres to od 0,01 do 9000.
makeup
Ustawia wielkość wzmocnienia sygnału po przetworzeniu. Wartość domyślna to 1. Dozwolony zakres to od 1 do 64.
knee
Zakręć ostre kolano wokół progu, aby łagodniej wejść w redukcję wzmocnienia. Wartość domyślna to 2.828427125. Dozwolony zakres to od 1 do 8.
detection
Wybierz, czy do wykrywania ma być pobierany dokładny sygnał, czy podobny do RMS. Wartość domyślna to rms. Może być szczytem lub rms.
link
Wybierz, czy średni poziom między wszystkimi kanałami, czy głośniejszy kanał ma wpływ na redukcję. Wartość domyślna to średnia. Może być średnia lub maksymalna.
level_sc
Ustaw wzmocnienie łańcucha bocznego. Wartość domyślna to 1. Zakres wynosi od 0,015625 do 64.
8.101.1 Commands
Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .
8.102 silencedetect
Wykryj ciszę w strumieniu audio.
Ten filtr rejestruje komunikat, gdy wykryje, że głośność wejściowego dźwięku jest mniejsza lub równa wartości tolerancji szumu przez czas dłuższy lub równy minimalnemu wykrytemu czasowi trwania szumu.
Wydrukowane czasy i czas trwania są wyrażone w sekundach. lavfi.silence_start
Klucz metadanych lub jest
lavfi.silence_start.X
ustawiany w pierwszej ramce, której znacznik czasu jest równy lub przekracza czas trwania wykrywania i zawiera znacznik czasu pierwszej ramki ciszy.
Klucze metadanych lavfi.silence_duration
lub lavfi.silence_duration.X
i lavfi.silence_end
lub lavfi.silence_end.X
są ustawiane w pierwszej ramce po ciszy. Jeślimono
jest włączony, a każdy kanał jest oceniany osobno, .X
używane są klawisze z przyrostkami i X
odpowiadają numerowi kanału.
Filtr akceptuje następujące opcje:
noise, n
Ustaw tolerancję hałasu. Można określić w dB (w przypadku, gdy „dB” jest dołączone do określonej wartości) lub w stosunku amplitudy. Wartość domyślna to -60dB lub 0,001.
duration, d
Ustaw czas trwania ciszy do powiadomienia (domyślnie 2 sekundy). Zobacz (ffmpeg-utils) sekcję Czas trwania w podręczniku ffmpeg-utils(1), aby poznać akceptowaną składnię.
mono, m
Przetwarzaj każdy kanał osobno, zamiast łączyć. Domyślnie jest wyłączona.
8.102.1 Examples
- Wykryj 5 sekund ciszy z tolerancją hałasu -50dB:
silencedetect=n=-50dB:d=5
- Kompletny przykład z
ffmpeg
wykrywaniem ciszy z tolerancją hałasu 0,0001 wsilence.mp3
:ffmpeg -i silence.mp3 -af silencedetect=noise=0.0001 -f null -
8.103 silenceremove
Usuń ciszę z początku, środka lub końca dźwięku.
Filtr akceptuje następujące opcje:
start_periods
Ta wartość jest używana do wskazania, czy dźwięk powinien zostać przycięty na początku dźwięku. Wartość zero wskazuje, że cisza nie powinna być przycinana od początku. Podczas określania wartości niezerowej przycina dźwięk, aż znajdzie brak ciszy. Normalnie, podczas przycinania ciszy od początku audio,
start_periods
będzie to możliwe1
, ale można ją zwiększyć do wyższych wartości, aby przyciąć cały dźwięk do określonej liczby okresów braku ciszy. Wartość domyślna to0
.start_duration
Określ czas, przez który musi zostać wykryty brak ciszy, zanim zakończy się przycinanie dźwięku. Wydłużając czas trwania, wybuchy dźwięków mogą być traktowane jako cisza i przycinane. Wartość domyślna to
0
.start_threshold
Wskazuje to, jaką wartość próbki należy traktować jako ciszę. W przypadku dźwięku cyfrowego wartość
0
może być odpowiednia, ale w przypadku dźwięku nagranego analogowo można zwiększyć wartość, aby uwzględnić szum tła. Można określić w dB (w przypadku, gdy „dB” jest dołączone do określonej wartości) lub w stosunku amplitudy. Wartość domyślna to0
.start_silence
Określ maksymalny czas trwania ciszy na początku, który zostanie zachowany po przycięciu. Wartość domyślna to 0, co jest równe przycinaniu wszystkich próbek wykrytych jako cisza.
start_mode
Określ tryb wykrywania ciszy na początku dźwięku wielokanałowego. Może być
any
luball
. Wartość domyślna toany
. Zany
, każda próbka wykryta jako brak ciszy spowoduje zatrzymanie przycinania ciszy. Zall
, tylko jeśli wszystkie kanały zostaną wykryte jako brak ciszy spowoduje zatrzymanie przycinania ciszy.stop_periods
Ustaw liczbę przycinania ciszy od końca dźwięku. Aby usunąć ciszę ze środka pliku, określ a
stop_periods
, które jest ujemne. Ta wartość jest następnie traktowana jako wartość dodatnia i jest używana do wskazania, że ​​efekt powinien ponownie rozpocząć przetwarzanie zgodnie z opisemstart_periods
, dzięki czemu jest odpowiedni do usuwania okresów ciszy w środku dźwięku. Wartość domyślna to0
.stop_duration
Określ czas trwania ciszy, który musi istnieć, zanim dźwięk nie będzie już kopiowany. Określając dłuższy czas trwania, w audio można pozostawić pożądaną ciszę. Wartość domyślna to
0
.stop_threshold
To to samo co
start_threshold
ale do przycinania ciszy od końca audio. Można określić w dB (w przypadku, gdy „dB” jest dołączone do określonej wartości) lub w stosunku amplitudy. Wartość domyślna to0
.stop_silence
Określ maksymalny czas trwania ciszy na końcu, który zostanie zachowany po przycięciu. Wartość domyślna to 0, co jest równe przycinaniu wszystkich próbek wykrytych jako cisza.
stop_mode
Określ tryb wykrywania początku ciszy na końcu dźwięku wielokanałowego. Może być
any
luball
. Wartość domyślna toany
. Zany
, każda próbka wykryta jako brak ciszy spowoduje zatrzymanie przycinania ciszy. Zall
, tylko jeśli wszystkie kanały zostaną wykryte jako brak ciszy spowoduje zatrzymanie przycinania ciszy.detection
Ustaw sposób wykrywania ciszy. Może być
rms
lubpeak
. Drugi jest szybszy i działa lepiej z ciszą cyfrową, która wynosi dokładnie 0. Wartość domyślna torms
.window
Ustaw czas trwania w sekundach używany do obliczenia rozmiaru okna w liczbie próbek do wykrycia ciszy. Wartość domyślna to
0.02
. Dozwolony zakres to od0
do10
.
8.103.1 Examples
- Poniższy przykład pokazuje, w jaki sposób można użyć tego filtra do rozpoczęcia nagrywania, które nie zawiera opóźnienia na początku, które zwykle występuje między naciśnięciem przycisku nagrywania a rozpoczęciem występu:
silenceremove=start_periods=1:start_duration=5:start_threshold=0.02
- Przytnij całą ciszę napotkaną od początku do końca tam, gdzie w dźwięku jest więcej niż 1 sekunda ciszy:
silenceremove=stop_periods=-1:stop_duration=1:stop_threshold=-90dB
- Przytnij wszystkie próbki ciszy cyfrowej, używając wykrywania szczytów, od początku do końca, gdzie jest więcej niż 0 próbek ciszy cyfrowej w audio, a cisza cyfrowa jest wykrywana we wszystkich kanałach w tych samych pozycjach w strumieniu:
silenceremove=window=0:detection=peak:stop_mode=all:start_mode=all:stop_periods=-1:stop_threshold=0
8.104 sofalizer
SOFAlizer wykorzystuje funkcje przenoszenia związane z głową (HRTF) do tworzenia wirtualnych głośników wokół użytkownika do binauralnego słuchania przez słuchawki (obsługiwane formaty audio do 9 kanałów). HRTF są przechowywane w plikach SOFA (patrz http://www.sofacoustics.org/ dla bazy danych). SOFAlizer został opracowany w Instytucie Badań Akustycznych (ARI) Austriackiej Akademii Nauk.
Aby umożliwić kompilację tego filtra musisz skonfigurować FFmpeg z
--enable-libmysofa
.
Filtr akceptuje następujące opcje:
sofa
Ustaw plik SOFA używany do renderowania.
gain
Ustaw wzmocnienie zastosowane do dźwięku. Wartość jest w dB. Wartość domyślna to 0.
rotation
Ustaw rotację wirtualnych głośników w deg. Wartość domyślna to 0.
elevation
Ustaw podniesienie wirtualnych głośników w deg. Wartość domyślna to 0.
radius
Ustaw odległość w metrach między głośnikami a słuchaczem za pomocą HRTF bliskiego pola. Wartość domyślna to 1.
type
Ustaw typ przetwarzania. Może być
time
lubfreq
.time
przetwarza dźwięk w dziedzinie czasu, który jest wolny.freq
przetwarza dźwięk w dziedzinie częstotliwości, która jest szybka. Wartość domyślna tofreq
.speakers
Ustaw niestandardowe pozycje wirtualnych głośników. Składnia tej opcji to: <CH> <AZIM> <ELEV>[|<CH> <AZIM> <ELEV>|...]. Każdy wirtualny głośnik opisany jest krótką nazwą kanału, po której następuje azymut i elewacja w stopniach. Każdy opis wirtualnego głośnika jest oddzielony znakiem „|”. Na przykład, aby zmienić pozycje kanałów lewego przedniego i prawego przedniego, użyj: 'speakers=FL 45 15|FR 345 15'. Opisy z nierozpoznanymi nazwami kanałów są ignorowane.
lfegain
Ustaw niestandardowe wzmocnienie dla kanałów LFE. Wartość jest w dB. Wartość domyślna to 0.
framesize
Ustaw niestandardowy rozmiar ramki w liczbie próbek. Wartość domyślna to 1024. Dozwolony zakres to od 1024 do 96000. Używana tylko wtedy, gdy opcja '
type
' jest ustawiony nafreq
.normalize
Czy wszystkie IRs powinny być znormalizowane po zaimportowaniu pliku SOFA. Domyślnie jest włączony.
interpolate
Czy najbliższe IR powinny być interpolowane z sąsiednimi IR, jeśli dokładna pozycja nie pasuje. Domyślnie jest wyłączona.
minphase
Minfazuj wszystkie IRs po załadowaniu pliku SOFA. Domyślnie jest wyłączona.
anglestep
Ustaw krok kąta wyszukiwania sąsiadów. Używany tylko wtedy, gdy opcja
interpolate
jest włączona.radstep
Ustaw krok promienia wyszukiwania sąsiadów. Używany tylko wtedy, gdy opcja
interpolate
jest włączona.
8.104.1 Examples
- Korzystanie z pliku sofy ClubFritz6:
sofalizer=sofa=/path/to/ClubFritz6.sofa:type=freq:radius=1
- Korzystanie z pilnika do sofy ClubFritz12 i większego promienia z małym obrotem:
sofalizer=sofa=/path/to/ClubFritz12.sofa:type=freq:radius=2:rotation=5
- Podobnie jak powyżej, ale z niestandardowymi pozycjami głośników dla przedniego lewego, przedniego prawego, tylnego lewego i tylnego prawego, a także z niestandardowym wzmocnieniem:
"sofalizer=sofa=/path/to/ClubFritz6.sofa:type=freq:radius=2:speakers=FL 45|FR 315|BL 135|BR 225:gain=28"
8.105 speechnorm
Normalizator mowy.
Ten filtr rozszerza lub kompresuje każdy półcykl próbek audio (lokalny zestaw próbek powyżej lub poniżej zera i pomiędzy dwoma najbliższymi przejściami przez zero) w zależności od wartości progowej, dzięki czemu dźwięk osiąga docelową wartość szczytową w warunkach kontrolowanych przez poniższe opcje.
Filtr akceptuje następujące opcje:
peak, p
Ustaw docelową wartość szczytową ekspansji. Określa najwyższy dozwolony poziom amplitudy bezwzględnej dla znormalizowanego wejścia audio. Wartość domyślna to 0,95. Dozwolony zakres to od 0,0 do 1,0.
expansion, e
Ustaw maksymalny współczynnik rozszerzalności. Dozwolony zakres wynosi od 1,0 do 50,0. Wartość domyślna to 2,0. Ta opcja kontroluje maksymalny lokalny półcykl ekspansji próbek. Maksymalna ekspansja byłaby taka, że ​​lokalna wartość szczytowa osiąga docelową wartość szczytową, ale nigdy jej nie przekracza, a stosunek między nową i poprzednią wartością szczytową nie przekracza tej wartości opcji.
compression, c
Ustaw maksymalny współczynnik kompresji. Dozwolony zakres wynosi od 1,0 do 50,0. Wartość domyślna to 2,0. Ta opcja kontroluje maksymalny lokalny półcykl kompresji próbek. Ta opcja jest używana tylko wtedy, gdy
threshold
opcja jest ustawiona na wartość większą niż 0.0, wtedy w przypadku gdy lokalny pik jest mniejszy lub równy wartości ustawionej przezthreshold
wszystkie próbki należące do półcyklu tego piku zostaną skompresowane przez aktualny współczynnik kompresji.threshold, t
Ustaw wartość progową. Wartość domyślna to 0,0. Dozwolony zakres to od 0,0 do 1,0. Ta opcja określa, które półcykle próbek zostaną skompresowane, a które rozszerzone. Wszelkie próbki półcyklowe z lokalną wartością szczytową poniżej lub taką samą jak ta wartość opcji zostaną skompresowane przez bieżący współczynnik kompresji, w przeciwnym razie, jeśli są większe niż wartość progowa, zostaną rozszerzone o współczynnik rozszerzenia, aby mógł osiągnąć szczytową wartość docelową, ale nigdy nie przekroczyć to.
raise, r
Ustawić wielkość wzrostu ekspansji na każde pół cyklu próbek. Wartość domyślna to 0,001. Dozwolony zakres to od 0,0 do 1,0. Kontroluje to, jak szybko zwiększa się współczynnik ekspansji w każdym nowym półcyklu, aż osiągnie
expansion
wartość. Ustawienie tej opcji zbyt wysoko może prowadzić do zniekształceń.fall, f
Ustaw stopień wzrostu kompresji na każde pół cyklu próbek. Wartość domyślna to 0,001. Dozwolony zakres to od 0,0 do 1,0. Kontroluje to, jak szybko współczynnik kompresji jest zwiększany w każdym nowym półcyklu, aż osiągnie
compression
wartość.channels, h
Określ, które kanały filtrować, domyślnie filtrowane są wszystkie dostępne kanały.
invert, i
Włącz filtrowanie odwrócone, domyślnie jest wyłączone. To odwraca interpretację
threshold
opcja. Po włączeniu dowolny półcykl próbek z lokalną wartością szczytową poniżej lub taką samą jakthreshold
opcja zostanie rozwinięta, w przeciwnym razie zostanie skompresowana.link, l
Łączenie kanałów podczas obliczania wzmocnienia zastosowanego do każdej filtrowanej próbki kanału, domyślnie jest wyłączone. Gdy ta opcja jest wyłączona, obliczanie wzmocnienia każdego filtrowanego kanału jest niezależne, w przeciwnym razie, gdy ta opcja jest włączona, używane jest minimum wszystkich możliwych wzmocnień dla każdego filtrowanego kanału.
8.105.1 Commands
Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .
8.106 stereotools
Ten filtr ma kilka przydatnych narzędzi do zarządzania sygnałami stereo, do konwersji nagrań stereo M/S na sygnał L/R przy jednoczesnym kontrolowaniu parametrów lub rozprowadzaniu obrazu stereo ścieżki głównej.
Filtr akceptuje następujące opcje:
level_in
Ustaw poziom wejściowy przed filtrowaniem dla obu kanałów. Wartość domyślna to 1. Dozwolony zakres to od 0,015625 do 64.
level_out
Ustaw poziom wyjściowy po filtrowaniu dla obu kanałów. Wartość domyślna to 1. Dozwolony zakres to od 0,015625 do 64.
balance_in
Ustaw balans wejściowy między obydwoma kanałami. Wartość domyślna to 0. Dozwolony zakres to od -1 do 1.
balance_out
Ustaw balans wyjściowy między obydwoma kanałami. Wartość domyślna to 0. Dozwolony zakres to od -1 do 1.
softclip
Włącz softclipping. Powoduje zniekształcenie analogowe zamiast ostrego cyfrowego obcinania 0dB. Domyślnie wyłączone.
mutel
Wycisz lewy kanał. Domyślnie wyłączone.
muter
Wycisz prawy kanał. Domyślnie wyłączone.
phasel
Zmień fazę lewego kanału. Domyślnie wyłączone.
phaser
Zmień fazę prawego kanału. Domyślnie wyłączone.
mode
Ustaw tryb stereo. Dostępne wartości to:
- '
lr>lr
' Od lewej/prawej do lewej/prawej, jest to ustawienie domyślne.
- '
lr>ms
' Lewo/prawo do środka/boku.
- '
ms>lr
' Środek/bok do lewej/prawej.
- '
lr>ll
' Od lewej/od prawej do lewej/lewej.
- '
lr>rr
' Od lewej/prawej do prawej/prawej.
- '
lr>l+r
' Od lewej/od prawej do lewej + od prawej.
- '
lr>rl
' Od lewej/od prawej do prawej/lewej.
- '
ms>ll
' Środek/bok w lewo/w lewo.
- '
ms>rr
' Środek/bok do prawej/prawej.
- '
ms>rl
' Od środka/boku do prawej/lewej.
- '
lr>l-r
' Od lewej/od prawej do lewej - w prawo.
- '
slev
Ustaw poziom sygnału bocznego. Wartość domyślna to 1. Dozwolony zakres to od 0,015625 do 64.
sbal
Ustaw balans sygnału bocznego. Wartość domyślna to 0. Dozwolony zakres to od -1 do 1.
mlev
Ustaw poziom środkowego sygnału. Wartość domyślna to 1. Dozwolony zakres to od 0,015625 do 64.
mpan
Ustaw środkową panoramę sygnału. Wartość domyślna to 0. Dozwolony zakres to od -1 do 1.
base
Ustaw podstawę stereo między kanałami mono i odwróconymi. Wartość domyślna to 0. Dozwolony zakres to od -1 do 1.
delay
Ustaw opóźnienie w milisekundach, ile opóźnić w lewo od prawego kanału i na odwrót. Wartość domyślna to 0. Dozwolony zakres to od -20 do 20.
sclevel
Ustaw poziom S/C. Wartość domyślna to 1. Dozwolony zakres to od 1 do 100.
phase
Ustaw fazę stereo w stopniach. Wartość domyślna to 0. Dozwolony zakres to od 0 do 360.
bmode_in, bmode_out
Ustaw tryb balansu dla opcji balance_in/balance_out.
Może być jednym z następujących:
- '
balance
' Klasyczny tryb balansu. Tłumienie jednego kanału na raz. Zysk wzrasta do 1.
- '
amplitude
' Podobnie jak w trybie klasycznym powyżej, ale wzmocnienie jest zwiększone do 2.
- '
power
' Równa dystrybucja mocy, zakres od -6dB do +6dB.
- '
8.106.1 Commands
Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .
8.106.2 Examples
- Zastosuj efekt podobny do karaoke:
stereotools=mlev=0.015625
- Konwertuj sygnał M/S na L/R:
"stereotools=mode=ms>lr"
8.107 stereowiden
Filtr ten wzmacnia efekt stereo, tłumiąc sygnał wspólny dla obu kanałów oraz opóźniając sygnał z lewego do prawego i odwrotnie, tym samym poszerzając efekt stereo.
Filtr akceptuje następujące opcje:
delay
Czas w milisekundach opóźnienia lewego sygnału na prawy i odwrotnie. Wartość domyślna to 20 milisekund.
feedback
Wielkość wzmocnienia w opóźnionym sygnale w prawo i na odwrót. Daje efekt opóźnienia lewego sygnału na prawym wyjściu i odwrotnie, co daje efekt poszerzenia. Wartość domyślna to 0,3.
crossfeed
Posuw krzyżowy od lewej do prawej z odwróconą fazą. Pomaga to w tłumieniu mono. Jeśli wartość wynosi 1, anuluje wszystkie sygnały wspólne dla obu kanałów. Wartość domyślna to 0,3.
drymix
Ustaw poziom sygnału wejściowego oryginalnego kanału. Wartość domyślna to 0,8.
8.107.1 Commands
Ten filtr obsługuje wszystkie powyższe opcje z delay
wyjątkiem poleceń .
8.108 superequalizer
Zastosuj 18-pasmowy korektor.
Filtr akceptuje następujące opcje:
1b
Ustaw wzmocnienie pasma 65 Hz.
2b
Ustaw wzmocnienie pasma 92 Hz.
3b
Ustaw wzmocnienie pasma 131 Hz.
4b
Ustaw wzmocnienie pasma 185 Hz.
5b
Ustaw wzmocnienie pasma 262 Hz.
6b
Ustaw wzmocnienie pasma 370Hz.
7b
Ustaw wzmocnienie pasma 523 Hz.
8b
Ustaw wzmocnienie pasma 740 Hz.
9b
Ustaw wzmocnienie pasma 1047Hz.
10b
Ustaw wzmocnienie pasma 1480 Hz.
11b
Ustaw wzmocnienie pasma 2093Hz.
12b
Ustaw wzmocnienie pasma 2960Hz.
13b
Ustaw wzmocnienie pasma 4186Hz.
14b
Ustaw wzmocnienie pasma 5920 Hz.
15b
Ustaw wzmocnienie pasma 8372 Hz.
16b
Ustaw wzmocnienie pasma 11840 Hz.
17b
Ustaw wzmocnienie pasma 16744 Hz.
18b
Ustaw wzmocnienie pasma 20000Hz.
8.109 surround
Zastosuj filtr upmixu dźwięku przestrzennego.
Filtr ten pozwala na wytworzenie wielokanałowego sygnału wyjściowego ze strumienia audio.
Filtr akceptuje następujące opcje:
chl_out
Ustaw układ kanału wyjściowego. Domyślnie jest to
5.1
.Zobacz (ffmpeg-utils) sekcję Channel Layout w podręczniku ffmpeg-utils(1) , aby poznać wymaganą składnię.
chl_in
Ustaw układ kanału wejściowego. Domyślnie jest to
stereo
.Zobacz (ffmpeg-utils) sekcję Channel Layout w podręczniku ffmpeg-utils(1) , aby poznać wymaganą składnię.
level_in
Ustaw poziom głośności wejściowej. Domyślnie jest to
1
.level_out
Ustaw poziom głośności wyjściowej. Domyślnie jest to
1
.lfe
Włącz wyjście kanału LFE, jeśli ma go układ kanału wyjściowego. Domyślnie jest to włączone.
lfe_low
Ustaw dolną częstotliwość odcięcia LFE. Domyślnie jest to
128
Hz.lfe_high
Ustaw górną częstotliwość odcięcia LFE. Domyślnie jest to
256
Hz.lfe_mode
Ustaw tryb LFE, może być
add
lubsub
. Wartość domyślna toadd
. Wadd
trybie kanał LFE jest tworzony z wejścia audio i dodawany do wyjścia. Wsub
trybie kanał LFE jest tworzony z wejścia audio i dodawany do wyjścia, ale również wszystkie kanały wyjściowe inne niż LFE są odejmowane z wyjściowym kanałem LFE.angle
Ustaw kąt transformacji stereo surround, Dozwolony zakres to od
0
do360
. Wartość domyślna to90
.fc_in
Ustaw głośność wejścia przedniego środkowego. Domyślnie jest to
1
.fc_out
Ustaw głośność przedniego środkowego wyjścia. Domyślnie jest to
1
.fl_in
Ustaw głośność wejścia z przodu po lewej stronie. Domyślnie jest to
1
.fl_out
Ustaw głośność lewego przedniego wyjścia. Domyślnie jest to
1
.fr_in
Ustaw głośność wejścia z przodu po prawej stronie. Domyślnie jest to
1
.fr_out
Ustaw głośność prawego przedniego wyjścia. Domyślnie jest to
1
.sl_in
Ustaw głośność wejścia po lewej stronie. Domyślnie jest to
1
.sl_out
Ustaw głośność wyjściową po lewej stronie. Domyślnie jest to
1
.sr_in
Ustaw głośność wejścia po prawej stronie. Domyślnie jest to
1
.sr_out
Ustaw głośność wyjściową po prawej stronie. Domyślnie jest to
1
.bl_in
Ustaw głośność lewego wejścia. Domyślnie jest to
1
.bl_out
Ustaw głośność lewego wyjścia. Domyślnie jest to
1
.br_in
Ustaw z powrotem prawy poziom głośności wejściowej. Domyślnie jest to
1
.br_out
Ustaw z powrotem prawą głośność wyjściową. Domyślnie jest to
1
.bc_in
Ustaw ponownie centralną głośność wejściową. Domyślnie jest to
1
.bc_out
Ustaw ponownie centralną głośność wyjścia. Domyślnie jest to
1
.lfe_in
Ustaw głośność wejścia LFE. Domyślnie jest to
1
.lfe_out
Ustaw głośność wyjściową LFE. Domyślnie jest to
1
.allx
Ustaw rozłożone użycie obrazu stereo na osi X dla wszystkich kanałów. Dozwolony zakres to od
-1
do15
. Domyślnie ta wartość jest ujemna-1
i dlatego nie jest używana.ally
Ustaw rozłożone użycie obrazu stereo na osi Y dla wszystkich kanałów. Dozwolony zakres to od
-1
do15
. Domyślnie ta wartość jest ujemna-1
i dlatego nie jest używana.fcx, flx, frx, blx, brx, slx, srx, bcx
Ustaw rozłożone użycie obrazu stereo na osi X dla każdego kanału. Dozwolony zakres to od
0.06
do15
. Domyślnie ta wartość to0.5
.fcy, fly, fry, bly, bry, sly, sry, bcy
Ustaw rozłożone użycie obrazu stereo na osi Y dla każdego kanału. Dozwolony zakres to od
0.06
do15
. Domyślnie ta wartość to0.5
.win_size
Ustaw rozmiar okna. Dozwolony zakres to od
1024
do65536
. Rozmiar domyślny to4096
.win_func
Ustaw funkcję okna.
Przyjmuje następujące wartości:
- '
rect
' - '
bartlett
' - '
hann, hanning
' - '
hamming
' - '
blackman
' - '
welch
' - '
flattop
' - '
bharris
' - '
bnuttall
' - '
bhann
' - '
sine
' - '
nuttall
' - '
lanczos
' - '
gauss
' - '
tukey
' - '
dolph
' - '
cauchy
' - '
parzen
' - '
poisson
' - '
bohman
'
Wartość domyślna to
hann
.- '
overlap
Ustaw nakładanie się okien. Jeśli jest ustawiony na 1, wybrane zostanie zalecane nakładanie się dla wybranej funkcji okna. Wartość domyślna to
0.5
.
8.110 tiltshelf
Podbijaj lub obcinaj niższe częstotliwości i obcinaj lub podbijaj wyższe częstotliwości dźwięku za pomocą dwubiegunowego filtra półkowego o reakcji podobnej do standardowej kontroli tonów hi-fi. Jest to również znane jako wyrównywanie półek (EQ).
Filtr akceptuje następujące opcje:
gain, g
Podaj wzmocnienie przy 0 Hz. Jego użyteczny zasięg to około -20 (dla dużego cięcia) do +20 (dla dużego wzmocnienia). Uważaj na przycinanie podczas korzystania z dodatniego wzmocnienia.
frequency, f
Ustaw centralną częstotliwość filtra, dzięki czemu można go używać do rozszerzania lub zmniejszania zakresu częstotliwości, który ma być wzmocniony lub obcięty. Wartość domyślna to
3000
Hz.width_type, t
Ustaw metodę, aby określić szerokość pasma filtra.
h
Hz
q
Współczynnik Q
o
oktawa
s
nachylenie
k
kHz
width, w
Określ, jak strome jest przejście półki filtra.
poles, p
Ustaw liczbę biegunów. Wartość domyślna to 2.
mix, m
Ile użyć przefiltrowanego sygnału na wyjściu. Wartość domyślna to 1. Zakres wynosi od 0 do 1.
channels, c
Określ, które kanały do ​​filtrowania, domyślnie wszystkie dostępne są filtrowane.
normalize, n
Normalizuj współczynniki biquad, domyślnie jest wyłączone. Włączenie go znormalizuje odpowiedź amplitudy przy DC do 0dB.
transform, a
Ustaw typ transformacji filtru IIR.
di
dii
tdi
tdii
latt
svf
zdf
precision, r
Ustaw precyzję filtrowania.
auto
Wybierz automatyczny format sampli w zależności od filtrów surround.
s16
Zawsze używaj podpisu 16-bitowego.
s32
Zawsze używaj podpisu 32-bitowego.
f32
Zawsze używaj 32-bitowego zmiennoprzecinkowego.
f64
Zawsze używaj zmiennoprzecinkowej 64-bitowej.
block_size, b
Ustaw rozmiar bloku używanego do odwrotnego przetwarzania IIR. Jeśli ta wartość jest ustawiona na wystarczająco wysoką wartość (większą niż długość odpowiedzi impulsowej skrócona, gdy osiągnie wartości bliskie zeru), filtrowanie stanie się fazą liniową, w przeciwnym razie, jeśli nie będzie wystarczająco duże, będzie wytwarzać nieprzyjemne artefakty.
Zauważ, że opóźnienie filtra będzie dokładnie tyle próbek, gdy zostanie ustawione na wartość niezerową.
8.110.1 Commands
Ten filtr obsługuje niektóre opcje jako polecenia .
8.111 treble, highshelf
Podbijaj lub obcinaj wysokie (górne) częstotliwości dźwięku za pomocą dwubiegunowego filtra półkowego o reakcji podobnej do standardowej kontroli tonów hi-fi. Jest to również znane jako wyrównywanie półek (EQ).
Filtr akceptuje następujące opcje:
gain, g
Podaj wzmocnienie przy którymkolwiek z niższych z ~22 kHz i częstotliwości Nyquista. Jego użyteczny zasięg to około -20 (dla dużego cięcia) do +20 (dla dużego wzmocnienia). Uważaj na przycinanie podczas korzystania z dodatniego wzmocnienia.
frequency, f
Ustaw centralną częstotliwość filtra, dzięki czemu można go używać do rozszerzania lub zmniejszania zakresu częstotliwości, który ma być wzmocniony lub obcięty. Wartość domyślna to
3000
Hz.width_type, t
Ustaw metodę, aby określić szerokość pasma filtra.
h
Hz
q
Współczynnik Q
o
oktawa
s
nachylenie
k
kHz
width, w
Określ, jak strome jest przejście półki filtra.
poles, p
Ustaw liczbę biegunów. Wartość domyślna to 2.
mix, m
Ile użyć przefiltrowanego sygnału na wyjściu. Wartość domyślna to 1. Zakres wynosi od 0 do 1.
channels, c
Określ, które kanały do ​​filtrowania, domyślnie wszystkie dostępne są filtrowane.
normalize, n
Normalizuj współczynniki biquad, domyślnie jest wyłączone. Włączenie go znormalizuje odpowiedź amplitudy przy DC do 0dB.
transform, a
Ustaw typ transformacji filtru IIR.
di
dii
tdi
tdii
latt
svf
zdf
precision, r
Ustaw precyzję filtrowania.
auto
Wybierz automatyczny format sampli w zależności od filtrów surround.
s16
Zawsze używaj podpisu 16-bitowego.
s32
Zawsze używaj podpisu 32-bitowego.
f32
Zawsze używaj 32-bitowego zmiennoprzecinkowego.
f64
Zawsze używaj zmiennoprzecinkowej 64-bitowej.
block_size, b
Ustaw rozmiar bloku używanego do odwrotnego przetwarzania IIR. Jeśli ta wartość jest ustawiona na wystarczająco wysoką wartość (większą niż długość odpowiedzi impulsowej skrócona, gdy osiągnie wartości bliskie zeru), filtrowanie stanie się fazą liniową, w przeciwnym razie, jeśli nie będzie wystarczająco duże, będzie wytwarzać nieprzyjemne artefakty.
Zauważ, że opóźnienie filtra będzie dokładnie tyle próbek, gdy zostanie ustawione na wartość niezerową.
8.111.1 Commands
Ten filtr obsługuje następujące polecenia:
frequency, f
Zmień częstotliwość wysokich tonów. Składnia polecenia to: „
frequency
”width_type, t
Zmień treble width_type. Składnia polecenia to: „
width_type
”width, w
Zmień szerokość sopranów. Składnia polecenia to: „
width
”gain, g
Zmień wzmocnienie tonów wysokich. Składnia polecenia to: „
gain
”mix, m
Zmień miks wysokich tonów. Składnia polecenia to: „
mix
”
8.112 tremolo
Sinusoidalna modulacja amplitudy.
Filtr akceptuje następujące opcje:
f
Częstotliwość modulacji w hercach. Częstotliwości modulacji w zakresie subharmonicznym (20 Hz lub niższym) dadzą efekt tremolo. Filtr ten może być również używany jako modulator pierścieniowy, podając częstotliwość modulacji wyższą niż 20 Hz. Zakres wynosi od 0,1 do 20000,0. Wartość domyślna to 5,0 Hz.
d
Głębokość modulacji w procentach. Zakres to 0,0 - 1,0. Wartość domyślna to 0,5.
8.113 vibrato
Modulacja fazy sinusoidalnej.
Filtr akceptuje następujące opcje:
f
Częstotliwość modulacji w hercach. Zakres wynosi od 0,1 do 20000,0. Wartość domyślna to 5,0 Hz.
d
Głębokość modulacji w procentach. Zakres to 0,0 - 1,0. Wartość domyślna to 0,5.
8.114 virtualbass
Zastosuj filtr wirtualnego basu audio.
Ten filtr akceptuje wejście stereo i tworzy stereo z wyjściem kanałów LFE (2.1). Nowo wyprodukowany kanał LFE ma wzmocniony wirtualny bas uzyskany pierwotnie z obu kanałów stereo. Ten filtr wyprowadza kanały przedni lewy i przedni prawy niezmienione, jako dostępne na wejściu stereo.
Filtr akceptuje następujące opcje:
cutoff
Ustaw wirtualną częstotliwość graniczną basów. Wartość domyślna to 250 Hz. Dozwolony zakres to od 100 do 500 Hz.
strength
Ustaw wirtualną siłę basów. Dozwolony zakres to od 0,5 do 3. Wartość domyślna to 3.
8.115 volume
Dostosuj głośność wejściowego dźwięku.
Przyjmuje następujące parametry:
volume
Ustaw ekspresję głośności dźwięku.
Wartości wyjściowe są przycinane do wartości maksymalnej.
Wyjściowa głośność audio jest określona zależnością:
output_volume
=volume
*input_volume
Domyślna wartość
volume
to „1.0”.precision
Ten parametr reprezentuje dokładność matematyczną.
Określa, które wejściowe formaty próbek będą dozwolone, co wpływa na precyzję skalowania głośności.
fixed
8-bitowy stałoprzecinkowy; ogranicza to format próbki wejściowej do U8, S16 i S32.
float
32-bitowy zmiennoprzecinkowy; ogranicza to format próbki wejściowej do FLT. (domyślna)
double
64-bitowy zmiennoprzecinkowy; ogranicza to wejściowy format próbki do DBL.
replaygain
Wybierz zachowanie po napotkaniu danych pobocznych ReplayGain w ramkach wejściowych.
drop
Usuń dane boczne ReplayGain, ignorując ich zawartość (domyślnie).
ignore
Zignoruj ​​dane poboczne ReplayGain, ale pozostaw je w ramce.
track
Preferuj wzmocnienie toru, jeśli jest obecne.
album
Preferuj wzmocnienie albumu, jeśli jest obecne.
replaygain_preamp
Wzmocnienie przedwzmacniacza w dB do zastosowania do wybranego wzmocnienia ponownego odtwarzania.
Wartość domyślna dla
replaygain_preamp
to 0,0.replaygain_noclip
Zapobiegaj przycinaniu, ograniczając zastosowane wzmocnienie.
Domyślna wartość
replaygain_noclip
to 1.eval
Ustaw, gdy obliczane jest wyrażenie objętości.
Przyjmuje następujące wartości:
- '
once
' Oceniaj wyrażenie tylko raz podczas inicjowania filtru lub gdy '
volume
'polecenie zostało wysłane- '
frame
' oceń wyrażenie dla każdej przychodzącej ramki
Wartość domyślna to '
once
„.- '
Wyrażenie objętości może zawierać następujące parametry.
n
numer klatki (od zera)
nb_channels
Liczba kanałów
nb_consumed_samples
liczba próbek zużytych przez filtr
nb_samples
liczba próbek w bieżącej ramce
pos
oryginalna pozycja ramki w pliku
pts
rama PTS
sample_rate
próbna stawka
startpts
PTS na początku transmisji
startt
czas na początku strumienia
t
czas klatek
tb
podstawa czasowa sygnatury czasowej
volume
ostatnia ustawiona wartość głośności
Zauważ, że kiedyeval
jest ustawione na 'once
' dostępne są tylko
zmienne sample_rate
i tb
, wszystkie inne zmienne zostaną ocenione jako NAN.
8.115.1 Commands
Ten filtr obsługuje następujące polecenia:
volume
Zmodyfikuj wyrażenie objętości. Polecenie akceptuje tę samą składnię odpowiedniej opcji.
Jeśli podane wyrażenie jest niepoprawne, jest zachowywane z bieżącą wartością.
8.115.2 Examples
- Zmniejsz o połowę głośność wejściowego dźwięku:
volume=volume=0.5 volume=volume=1/2 volume=volume=-6.0206dB
We wszystkich powyższych przykładach nazwany klucz do
volume
można pominąć, np. jak w:volume=0.5
- Zwiększ wejściową moc dźwięku o 6 decybeli dzięki precyzji stałoprzecinkowej:
volume=volume=6dB:precision=fixed
- Zanik głośności po czasie 10 z okresem anihilacji wynoszącym 5 sekund:
volume='if(lt(t,10),1,max(1-(t-10)/5,0))':eval=frame
8.116 volumedetect
Wykryj głośność wejściowego wideo.
Filtr nie ma parametrów. Obsługuje tylko 16-bitowe próbki liczb całkowitych ze znakiem, więc dane wejściowe zostaną przekonwertowane w razie potrzeby. Statystyki dotyczące objętości zostaną wydrukowane w dzienniku po osiągnięciu końca strumienia wejściowego.
W szczególności pokaże średnią objętość (średnią kwadratową), maksymalną objętość (w przeliczeniu na próbkę) oraz początek histogramu zarejestrowanych wartości objętości (od wartości maksymalnej do skumulowanej 1/1000 próbek ).
Wszystkie objętości są w decybelach w stosunku do maksymalnej wartości PCM.
8.116.1 Examples
Oto fragment wyjścia:
[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
To znaczy, że:
- Średnia kwadratowa energia wynosi około -27 dB, czyli 10^-2,7.
- Największa próbka ma -4 dB, a dokładniej od -4 dB do -5 dB.
- Jest 6 próbek przy -4 dB, 62 przy -5 dB, 286 przy -6 dB itd.
Innymi słowy podniesienie głośności o +4 dB nie powoduje żadnego obcinania, podniesienie o +5 dB powoduje obcinanie dla 6 próbek itd.
9 Audio Sources
Poniżej znajduje się opis aktualnie dostępnych źródeł dźwięku.
9.1 abuffer
Buforuj ramki audio i udostępniaj je w łańcuchu filtrów.
To źródło jest przeznaczone głównie do użytku programistycznego, w szczególności za pośrednictwem interfejsu zdefiniowanego wlibavfilter/buffersrc.h
.
Przyjmuje następujące parametry:
time_base
Podstawa czasowa, która będzie używana do sygnatur czasowych przesłanych ramek. Musi to być liczba zmiennoprzecinkowa lub w formie
numerator
/denominator
.sample_rate
Częstotliwość próbkowania przychodzących buforów audio.
sample_fmt
Przykładowy format przychodzących buforów audio. Przykładowa nazwa formatu lub odpowiadająca jej reprezentacja w postaci liczby całkowitej z wyliczenia AVSampleFormat w
libavutil/samplefmt.h
channel_layout
Układ kanałów przychodzących buforów audio. Albo nazwa układu kanału z channel_layout_map w
libavutil/channel_layout.c
lub odpowiadającą jej reprezentację w postaci liczby całkowitej z makr AV_CH_LAYOUT_* wlibavutil/channel_layout.h
channels
Liczba kanałów przychodzących buforów audio. Jeśli oba
channels
ichannel_layout
są określone, muszą być spójne.
9.1.1 Examples
abuffer=sample_rate=44100:sample_fmt=s16p:channel_layout=stereo
poinstruuje źródło, aby zaakceptowało planarne 16-bitowe podpisane stereo przy 44100 Hz. Ponieważ format próbki o nazwie „s16p” odpowiada numerowi 6, a układ kanału „stereo” odpowiada wartości 0x3, jest to równoważne:
abuffer=sample_rate=44100:sample_fmt=6:channel_layout=0x3
9.2 aevalsrc
Wygeneruj sygnał audio określony przez wyrażenie.
To źródło przyjmuje na wejściu jedno lub więcej wyrażeń (po jednym dla każdego kanału), które są oceniane i wykorzystywane do generowania odpowiedniego sygnału audio.
To źródło akceptuje następujące opcje:
exprs
Ustaw listę wyrażeń rozdzielonych '|' dla każdego oddzielnego kanału. W przypadku
channel_layout
opcja nie jest określona, ​​wybrany układ kanału zależy od ilości dostarczonych wyrażeń. W przeciwnym razie ostatnie określone wyrażenie jest stosowane do pozostałych kanałów wyjściowych.channel_layout, c
Ustaw układ kanałów. Liczba kanałów w określonym układzie musi być równa liczbie określonych wyrażeń.
duration, d
Ustaw minimalny czas trwania źródła dźwięku. Zobacz (ffmpeg-utils) sekcję Czas trwania w podręczniku ffmpeg-utils(1), aby poznać akceptowaną składnię. Zauważ, że wynikowy czas trwania może być dłuższy niż określony, ponieważ wygenerowany dźwięk jest zawsze cięty na końcu pełnej klatki.
Jeśli nie zostanie określony lub podany czas trwania jest ujemny, dźwięk ma być generowany na zawsze.
nb_samples, n
Ustaw liczbę próbek na kanał na każdą ramkę wyjściową, domyślnie 1024.
sample_rate, s
Określ częstotliwość próbkowania, domyślnie 44100.
Każde wyrażenie w exprs
może zawierać następujące stałe:
n
numer ocenianej próby, począwszy od 0
t
czas ocenianej próbki wyrażony w sekundach, począwszy od 0
s
próbna stawka
9.2.1 Examples
- Generuj ciszę:
aevalsrc=0
- Wygeneruj sygnał sin o częstotliwości 440 Hz, ustaw częstotliwość próbkowania na 8000 Hz:
aevalsrc="sin(440*2*PI*t):s=8000"
- Wygeneruj sygnał dwukanałowy, określ wyraźnie układ kanałów (przedni środek + tylny środek):
aevalsrc="sin(420*2*PI*t)|cos(430*2*PI*t):c=FC|BC"
- Generuj biały szum:
aevalsrc="-2+random(0)"
- Wygeneruj sygnał z modulacją amplitudy:
aevalsrc="sin(10*2*PI*t)*sin(880*2*PI*t)"
- Generuj dudnienia różnicowe 2,5 Hz na nośniku 360 Hz:
aevalsrc="0.1*sin(2*PI*(360-2.5/2)*t) | 0.1*sin(2*PI*(360+2.5/2)*t)"
9.3 afirsrc
Wygeneruj współczynniki FIR za pomocą metody próbkowania częstotliwości.
Otrzymany strumień może być używany z filtrem afir do filtrowania sygnału audio.
Filtr akceptuje następujące opcje:
taps, t
Ustaw liczbę współczynników filtrów w wyjściowym strumieniu audio. Wartość domyślna to 1025.
frequency, f
Ustaw punkty częstotliwości, z których ustawiana jest wielkość i faza. Musi być w kolejności nie malejącej, pierwszy element musi mieć wartość 0, a ostatni element musi mieć wartość 1. Elementy są oddzielone białymi spacjami.
magnitude, m
Ustaw wartość wielkości dla każdego punktu częstotliwości ustawionego przez
frequency
. Liczba wartości musi być taka sama jak liczba punktów częstotliwości. Wartości są oddzielone białymi spacjami.phase, p
Ustaw wartość fazy dla każdego punktu częstotliwości ustawionego przez
frequency
. Liczba wartości musi być taka sama jak liczba punktów częstotliwości. Wartości są oddzielone białymi spacjami.sample_rate, r
Ustaw częstotliwość próbkowania, domyślnie 44100.
nb_samples, n
Ustaw liczbę próbek na każdą klatkę. Wartość domyślna to 1024.
win_func, w
Ustaw funkcję okna. Domyślnie jest czarnoskóry.
9.4 anullsrc
Puste źródło dźwięku zwraca nieprzetworzone ramki audio. Jest to głównie przydatne jako szablon i do wykorzystania w narzędziach do analizy / debugowania lub jako źródło filtrów, które ignorują dane wejściowe (na przykład filtr sox synth).
To źródło akceptuje następujące opcje:
channel_layout, cl
-
Określa układ kanału i może być liczbą całkowitą lub łańcuchem reprezentującym układ kanału. Domyślna wartość
channel_layout
to „stereo”.Sprawdź definicję channel_layout_map w
libavutil/channel_layout.c
do mapowania między ciągami a wartościami układu kanału. sample_rate, r
Określa częstotliwość próbkowania i domyślnie 44100.
nb_samples, n
Ustaw liczbę próbek na żądane ramki.
duration, d
Ustaw czas trwania źródła dźwięku. Zobacz (ffmpeg-utils) sekcję Czas trwania w podręczniku ffmpeg-utils(1), aby poznać akceptowaną składnię.
Jeśli nie zostanie określony lub podany czas trwania jest ujemny, dźwięk ma być generowany na zawsze.
9.4.1 Examples
- Ustaw częstotliwość próbkowania na 48000 Hz, a układ kanałów na AV_CH_LAYOUT_MONO.
anullsrc=r=48000:cl=4
- Wykonaj tę samą operację z bardziej oczywistą składnią:
anullsrc=r=48000:cl=mono
Wszystkie parametry muszą być wyraźnie zdefiniowane.
9.5 flite
Zsyntetuj wypowiedź głosową za pomocą biblioteki libflite.
Aby umożliwić kompilację tego filtra musisz skonfigurować FFmpeg z
--enable-libflite
.
Zauważ, że wersje biblioteki flite wcześniejsze niż 2.0 nie są bezpieczne wątkowo.
Filtr akceptuje następujące opcje:
list_voices
Jeśli jest ustawiony na 1, wymień nazwy dostępnych głosów i natychmiast wyjdź. Wartość domyślna to 0.
nb_samples, n
Ustaw maksymalną liczbę próbek na klatkę. Wartość domyślna to 512.
textfile
Ustaw nazwę pliku zawierającego tekst do mówienia.
text
Ustaw tekst do mówienia.
voice, v
Ustaw głos używany do syntezy mowy. Wartość domyślna to
kal
. Zobacz takżelist_voices
opcję.
9.5.1 Examples
- Czytaj z pliku
speech.txt
i zsyntetyzuj tekst, używając standardowego głosu flite:flite=textfile=speech.txt
- Przeczytaj określony tekst wybierając
slt
głos:flite=text='So fare thee well, poor devil of a Sub-Sub, whose commentator I am':voice=slt
- Wpisz tekst do ffmpeg:
ffmpeg -f lavfi -i flite=text='So fare thee well, poor devil of a Sub-Sub, whose commentator I am':voice=slt
- Robić
ffplay
wypowiedz określony tekst, używającflite
ilavfi
urządzenia:ffplay -f lavfi flite=text='No more be grieved for which that thou hast done.'
Aby uzyskać więcej informacji o libflite, odwiedź: http://www.festvox.org/flite/
9.6 anoisesrc
Generuj szum dźwiękowy.
Filtr akceptuje następujące opcje:
sample_rate, r
Określ częstotliwość próbkowania. Wartość domyślna to 48000 Hz.
amplitude, a
Określ amplitudę (0,0–1,0) generowanego strumienia audio. Wartość domyślna to 1.0.
duration, d
Określ czas trwania generowanego strumienia audio. Brak określenia tej opcji skutkuje szumem o nieskończonej długości.
color, colour, c
Określ kolor szumu. Dostępne kolory szumów to biały, różowy, brązowy, niebieski, fioletowy i aksamitny. Domyślny kolor to biały.
seed, s
Określ wartość używaną do inicjowania PRNG.
nb_samples, n
Ustaw liczbę próbek na każdą klatkę wyjściową, domyślnie 1024.
9.6.1 Examples
- Generuj 60 sekund szumu różowego z częstotliwością próbkowania 44,1 kHz i amplitudą 0,5:
anoisesrc=d=60:c=pink:r=44100:a=0.5
9.7 hilbert
Generuj nieparzyste współczynniki transformaty Hilberta FIR.
Otrzymany strumień może być użyty z filtrem afirowym do przesunięcia fazowego sygnału o 90 stopni.
Jest to wykorzystywane w wielu schematach kodowania macierzowego oraz do generowania sygnałów analitycznych. Proces jest często zapisywany jako mnożenie przez i (lub j), jednostkę urojoną.
Filtr akceptuje następujące opcje:
sample_rate, s
Ustaw częstotliwość próbkowania, domyślnie 44100.
taps, t
Ustaw długość filtra FIR, domyślnie 22051.
nb_samples, n
Ustaw liczbę próbek na każdą klatkę.
win_func, w
Ustaw funkcję okna, która ma być używana podczas generowania współczynników FIR.
9.8 sinc
Generuj współczynniki FIR sinc kaiser-winded dolnoprzepustowe, górnoprzepustowe, pasmowoprzepustowe lub pasmowe odrzucające.
Otrzymany strumień może być używany z filtrem afir do filtrowania sygnału audio.
Filtr akceptuje następujące opcje:
sample_rate, r
Ustaw częstotliwość próbkowania, domyślnie 44100.
nb_samples, n
Ustaw liczbę próbek na każdą klatkę. Wartość domyślna to 1024.
hp
Ustaw częstotliwość górnoprzepustową. Wartość domyślna to 0.
lp
Ustaw częstotliwość dolnoprzepustową. Wartość domyślna to 0. Jeśli częstotliwość górnoprzepustowa jest niższa niż częstotliwość dolnoprzepustowa, a częstotliwość dolnoprzepustowa jest wyższa niż 0, wtedy filtr utworzy współczynniki filtru pasmowego, w przeciwnym razie współczynniki filtru pasmowego odrzucającego.
phase
Ustaw odpowiedź fazową filtra. Wartość domyślna to 50. Dozwolony zakres to od 0 do 100.
beta
Ustaw wersję beta okna Kaisera.
att
Ustaw tłumienie pasma zaporowego. Domyślnie 120dB, dopuszczalny zakres to od 40 do 180dB.
round
Włącz zaokrąglanie, domyślnie jest wyłączone.
hptaps
Ustaw liczbę odczepów dla filtra górnoprzepustowego.
lptaps
Ustaw liczbę kranów dla filtra dolnoprzepustowego.
9.9 sine
Generuj sygnał audio składający się z fali sinusoidalnej o amplitudzie 1/8.
Sygnał audio jest dokładny bitowo.
Filtr akceptuje następujące opcje:
frequency, f
Ustaw częstotliwość nośną. Wartość domyślna to 440 Hz.
beep_factor, b
Włącz okresowy sygnał dźwiękowy co sekundę z częstotliwością
beep_factor
razy częstotliwość nośną. Wartość domyślna to 0, co oznacza, że ​​sygnał dźwiękowy jest wyłączony.sample_rate, r
Określ częstotliwość próbkowania, domyślnie 44100.
duration, d
Określ czas trwania generowanego strumienia audio.
samples_per_frame
Ustaw liczbę próbek na klatkę wyjściową.
Wyrażenie może zawierać następujące stałe:
n
Numer (sekwencyjny) wyjściowej ramki audio, zaczynając od 0.
pts
PTS (Presentation TimeStamp) wyjściowej ramki audio, wyrażony w
TB
jednostkach.t
PTS wyjściowej ramki audio wyrażony w sekundach.
TB
Podstawa czasu wyjściowych ramek audio.
Wartość domyślna to
1024
.
9.9.1 Examples
- Wygeneruj prostą sinusoidę 440 Hz:
sine
- Generuj falę sinusoidalną 220 Hz z sygnałem dźwiękowym 880 Hz co sekundę przez 5 sekund:
sine=220:4:d=5 sine=f=220:b=4:d=5 sine=frequency=220:beep_factor=4:duration=5
- Wygeneruj falę sinusoidalną 1 kHz zgodnie z
1602,1601,1602,1601,1602
wzorcem NTSC:sine=1000:samples_per_frame='st(0,mod(n,5)); 1602-not(not(eq(ld(0),1)+eq(ld(0),3)))'
10 Audio Sinks
Poniżej znajduje się opis aktualnie dostępnych pochłaniaczy dźwięku.
10.1 abuffersink
Buforuj ramki audio i udostępniaj je na końcu łańcucha filtrów.
To ujście jest przeznaczone głównie do użytku programistycznego, w szczególności za pośrednictwem interfejsu zdefiniowanego wlibavfilter/buffersink.h
lub system opcji.
Akceptuje wskaźnik do struktury AVABufferSinkContext, która definiuje formaty buforów przychodzących, które mają być przekazane jako nieprzezroczysty parametr do avfilter_init_filter
inicjalizacji.
10.2 anullsink
Zerowy pochłaniacz dźwięku; nie rób absolutnie nic z wejściowym dźwiękiem. Przydaje się głównie jako szablon oraz do wykorzystania w narzędziach do analizy/debugowania.
11 Video Filters
Podczas konfigurowania kompilacji FFmpeg możesz wyłączyć dowolny z istniejących filtrów za pomocą --disable-filters
. Dane wyjściowe konfiguracji pokażą filtry wideo zawarte w twojej kompilacji.
Poniżej znajduje się opis aktualnie dostępnych filtrów wideo.
11.1 addroi
Zaznacz interesujący Cię region w klatce wideo.
Dane ramki są przekazywane bez zmian, ale do ramki dołączane są metadane wskazujące regiony zainteresowania, które mogą wpływać na zachowanie późniejszego kodowania. Wiele regionów można oznaczyć, stosując wielokrotnie filtr.
x
Odległość regionu w pikselach od lewej krawędzi ramki.
y
Odległość regionu w pikselach od górnej krawędzi ramki.
w
Szerokość regionu w pikselach.
h
Wysokość regionu w pikselach.
Parametry
x
,y
i są wyrażeniami i mogą zawierać następujące zmiennew
:h
iw
Szerokość ramki wejściowej.
ih
Wysokość ramki wejściowej.
qoffset
Przesunięcie kwantyzacji do zastosowania w regionie.
Musi to być rzeczywista wartość z zakresu od -1 do +1. Wartość zero wskazuje na brak zmiany jakości. Wartość ujemna wymaga lepszej jakości (mniejsza kwantyzacja), podczas gdy wartość dodatnia wymaga gorszej jakości (większa kwantyzacja).
Zakres jest kalibrowany tak, aby wartości ekstremalne wskazywały na największe możliwe przesunięcie - jeśli reszta klatki jest zakodowana z najgorszą możliwą jakością, przesunięcie wynoszące -1 oznacza, że ​​ten region i tak powinien być zakodowany z najlepszą możliwą jakością. Wartości pośrednie są następnie interpolowane w sposób zależny od kodeka.
Na przykład w 10-bitowym H.264 parametr kwantyzacji waha się między -12 a 51. Typowa wartość qoffset wynosząca -1/10 wskazuje zatem, że ten region powinien być zakodowany z QP około jednej dziesiątej pełnego zakresu lepiej niż reszta ramy. Tak więc, jeśli większość klatki miałaby być zakodowana z QP około 30, ten region uzyskałby QP około 24 (przesunięcie około -1/10 * (51 - -12) = -6,3). Skrajna wartość -1 wskazywałaby, że ten region powinien być zakodowany z najlepszą możliwą jakością niezależnie od obróbki reszty ramki - to znaczy powinien być zakodowany z QP równym -12.
clear
Jeśli ustawione na true, usuń wszystkie istniejące regiony zainteresowania zaznaczone w ramce przed dodaniem nowego.
11.1.1 Examples
- Oznacz środkową ćwiartkę kadru jako interesującą.
addroi=iw/4:ih/4:iw/2:ih/2:-1/10
- Oznacz obszar o szerokości 100 pikseli na lewej krawędzi ramki jako bardzo nieciekawy (do zakodowania ze znacznie niższą jakością niż reszta ramki).
addroi=0:0:100:ih:+1/5
11.2 alphaextract
Wyodrębnij składnik alfa z wejścia jako wideo w skali szarości. Jest to szczególnie przydatne w przypadku alphamerge
filtra.
11.3 alphamerge
Dodaj lub zastąp składnik alfa podstawowego wejścia wartością skali szarości drugiego wejścia. Jest to przeznaczone do użycia w
alphaextract
celu umożliwienia transmisji lub przechowywania sekwencji ramek, które mają alfa w formacie, który nie obsługuje kanału alfa.
Na przykład, aby zrekonstruować pełne klatki z normalnego wideo zakodowanego w YUV i oddzielnego wideo utworzonego za pomocą programu alphaextract
, możesz użyć:
movie=in_alpha.mkv [alpha]; [in][alpha] alphamerge [out]
11.4 amplify
Wzmocnij różnice między bieżącym pikselem a pikselami sąsiednich ramek w tej samej lokalizacji piksela.
Ten filtr akceptuje następujące opcje:
radius
Ustaw promień ramy. Wartość domyślna to 2. Dozwolony zakres to od 1 do 63. Na przykład promień 3 poinstruuje filtr, aby obliczył średnią z 7 klatek.
factor
Ustaw współczynnik, aby wzmocnić różnicę. Wartość domyślna to 2. Dozwolony zakres to od 0 do 65535.
threshold
Ustaw próg dla wzmocnienia różnicy. Jakakolwiek różnica większa lub równa tej wartości nie zmieni piksela źródłowego. Wartość domyślna to 10. Dozwolony zakres to od 0 do 65535.
tolerance
Ustaw tolerancję na wzmocnienie różnicy. Jakakolwiek różnica niższa od tej wartości nie zmieni piksela źródłowego. Wartość domyślna to 0. Dozwolony zakres to od 0 do 65535.
low
Ustaw dolny limit zmiany piksela źródłowego. Wartość domyślna to 65535. Dozwolony zakres to od 0 do 65535. Ta opcja kontroluje maksymalną możliwą wartość, która zmniejszy wartość piksela źródłowego.
high
Ustaw górny limit zmiany piksela źródłowego. Wartość domyślna to 65535. Dozwolony zakres to od 0 do 65535. Ta opcja kontroluje maksymalną możliwą wartość, która zwiększy wartość piksela źródłowego.
planes
Ustaw samoloty do filtrowania. Domyślność to wszystko. Dozwolony zakres to od 0 do 15.
11.4.1 Commands
Ten filtr obsługuje następujące polecenia odpowiadające opcji o tej samej nazwie:
factor
threshold
tolerance
low
high
planes
11.5 ass
Taki sam jak filtr napisów , z tą różnicą, że nie wymaga do działania libavcodec i libavformat. Z drugiej strony ogranicza się do plików napisów ASS (Advanced Substation Alpha).
Ten filtr akceptuje następującą opcję oprócz typowych opcji z filtra napisów :
shaping
Ustaw silnik kształtowania
Dostępne wartości to:
- '
auto
' Domyślny silnik kształtowania libass, który jest najlepszym dostępnym.
- '
simple
' Szybki, niezależny od fontów moduł do kształtowania, który może wykonywać tylko zamiany
- '
complex
' Wolniejszy shaper używający OpenType do podstawień i pozycjonowania
Wartość domyślna to
auto
.- '
11.6 atadenoise
Zastosuj adaptacyjny odszumiacz uśredniania w czasie do wejścia wideo.
Filtr akceptuje następujące opcje:
0a
Ustaw próg A dla 1. płaszczyzny. Wartość domyślna to 0,02. Prawidłowy zakres to 0 do 0,3.
0b
Ustaw próg B dla 1. płaszczyzny. Wartość domyślna to 0,04. Prawidłowy zakres to 0 do 5.
1a
Ustaw próg A dla drugiej płaszczyzny. Wartość domyślna to 0,02. Prawidłowy zakres to 0 do 0,3.
1b
Ustaw próg B dla drugiej płaszczyzny. Wartość domyślna to 0,04. Prawidłowy zakres to 0 do 5.
2a
Ustaw próg A dla 3 płaszczyzny. Wartość domyślna to 0,02. Prawidłowy zakres to 0 do 0,3.
2b
Ustaw próg B dla 3 płaszczyzny. Wartość domyślna to 0,04. Prawidłowy zakres to 0 do 5.
Próg A jest przeznaczony do reagowania na nagłe zmiany sygnału wejściowego, a próg B jest przeznaczony do reagowania na ciągłe zmiany sygnału wejściowego.
s
Ustaw liczbę klatek, których filtr będzie używał do uśredniania. Domyślnie 9. Musi być nieparzystą liczbą z zakresu [5, 129].
p
Ustaw, jakich płaszczyzn filtru ramki użyje do uśredniania. Domyślność to wszystko.
a
Ustaw jakiego wariantu filtr algorytmu będzie używał do uśredniania. Domyślnie jest
p
równoległy. Alternatywnie można ustawić nas
serial.Równoległe może być szybsze niż szeregowe, podczas gdy odwrotnie nigdy nie jest prawdą. Parallel przerwie wcześnie przy pierwszej zmianie, która jest większa niż progi, podczas gdy serial będzie kontynuował przetwarzanie drugiej strony ramek, jeśli są one równe lub poniżej progów.
0s
1s
2s
Ustaw sigma dla 1. płaszczyzny, 2. płaszczyzny lub 3. płaszczyzny. Wartość domyślna to 32767. Prawidłowy zakres to od 0 do 32767. Ta opcja kontroluje wagę każdego piksela w promieniu zdefiniowanym przez rozmiar. Wartość domyślna oznacza, że ​​każdy piksel ma taką samą wagę. Ustawienie tej opcji na 0 skutecznie wyłącza filtrowanie.
11.6.1 Commands
Ten filtr obsługuje te same polecenia, co opcje, z wyjątkiem opcji s
. Polecenie akceptuje tę samą składnię odpowiedniej opcji.
11.7 avgblur
Zastosuj filtr średniego rozmycia.
Filtr akceptuje następujące opcje:
sizeX
Ustaw rozmiar promienia poziomego.
planes
Ustaw samoloty do filtrowania. Domyślnie filtrowane są wszystkie samoloty.
sizeY
Ustaw rozmiar promienia pionowego, jeśli zero będzie taki sam jak
sizeX
. Wartość domyślna to0
.
11.7.1 Commands
Ten filtr obsługuje te same polecenia, co opcje. Polecenie akceptuje tę samą składnię odpowiedniej opcji.
Jeśli podane wyrażenie jest niepoprawne, jest zachowywane z bieżącą wartością.
11.8 bbox
Oblicz obwiednię dla nieczarnych pikseli w płaszczyźnie luminancji ramki wejściowej.
Ten filtr oblicza obwiednię zawierającą wszystkie piksele o wartości luminancji większej niż minimalna dozwolona wartość. Parametry opisujące ramkę ograniczającą są drukowane w dzienniku filtra.
Filtr akceptuje następującą opcję:
min_val
Ustaw minimalną wartość luminancji. Wartość domyślna to
16
.
11.8.1 Commands
Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .
11.9 bilateral
Zastosuj dwustronny filtr, wygładzając przestrzennie, zachowując krawędzie.
Filtr akceptuje następujące opcje:
sigmaS
Ustaw sigma funkcji Gaussa, aby obliczyć wagę przestrzenną. Dozwolony zakres to 0 do 512. Wartość domyślna to 0,1.
sigmaR
Ustaw sigma funkcji Gaussa, aby obliczyć wagę zakresu. Dozwolony zakres to 0 do 1. Wartość domyślna to 0,1.
planes
Ustaw samoloty do filtrowania. Domyślnie jest tylko pierwszy.
11.9.1 Commands
Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .
11.10 bitplanenoise
Pokaż i zmierz szum w płaszczyźnie bitowej.
Filtr akceptuje następujące opcje:
bitplane
Ustaw samolot do analizy. Wartość domyślna to
1
.filter
Odfiltruj zaszumione piksele z
bitplane
powyższego zestawu. Domyślnie jest wyłączone.
11.11 blackdetect
Wykryj interwały wideo, które są (prawie) całkowicie czarne. Może być przydatny do wykrywania przejść rozdziałów, reklam lub nieprawidłowych nagrań.
Filtr wysyła swoją analizę wykrywania zarówno do dziennika, jak i metadanych ramki. Jeśli zostanie znaleziony czarny segment o co najmniej określonym minimalnym czasie trwania, do dziennika zostanie wydrukowana linia ze znacznikami czasu rozpoczęcia i zakończenia oraz czasem trwania z poziomem info
. Ponadto debug
na klatkę drukowana jest linia logarytmiczna z poziomem, pokazująca ilość czerni wykrytą dla tej ramki.
Filtr dołącza również metadane do pierwszej klatki czarnego segmentu z kluczem lavfi.black_start
oraz do pierwszej klatki po zakończeniu czarnego segmentu z kluczem lavfi.black_end
. Wartość to sygnatura czasowa ramki. Te metadane są dodawane niezależnie od określonego minimalnego czasu trwania.
Filtr akceptuje następujące opcje:
black_min_duration, d
Ustaw minimalny wykryty czas trwania czerni wyrażony w sekundach. Musi to być nieujemna liczba zmiennoprzecinkowa.
Wartość domyślna to 2,0.
picture_black_ratio_th, pic_th
Ustaw próg uznania obrazu za „czarny”. Wyraź minimalną wartość stosunku:
nb_black_pixels
/nb_pixels
dla których obraz jest uważany za czarny. Wartość domyślna to 0,98.
pixel_black_th, pix_th
Ustaw próg dla uznania piksela za „czarny”.
Próg wyraża maksymalną wartość luminancji piksela, dla której piksel jest uważany za „czarny”. Podana wartość jest skalowana zgodnie z następującym równaniem:
absolute_threshold
=luminance_minimum_value
+pixel_black_th
*luminance_range_size
luminance_range_size
iluminance_minimum_value
zależy od wejściowego formatu wideo, zakres wynosi [0-255] dla pełnozakresowych formatów YUV i [16-235] dla niepełnych formatów YUV.Wartość domyślna to 0,10.
Poniższy przykład ustawia maksymalny próg pikseli na wartość minimalną i wykrywa tylko odstępy czerni wynoszące co najmniej 2 sekundy:
blackdetect=d=2:pix_th=0.00
11.12 blackframe
Wykryj ramki, które są (prawie) całkowicie czarne. Może być przydatny do wykrywania przejść między rozdziałami lub reklam. Linie wyjściowe składają się z numeru wykrytej klatki, procentu zaczernienia, pozycji w pliku, jeśli jest znana lub -1 oraz znacznika czasu w sekundach.
Aby wyświetlić linie wyjściowe, musisz ustawić loglevel co najmniej na wartość AV_LOG_INFO.
Ten filtr eksportuje metadane ramek lavfi.blackframe.pblack
. Wartość reprezentuje procent pikseli na obrazie, które są poniżej wartości progowej.
Przyjmuje następujące parametry:
amount
Procent pikseli, które muszą być poniżej progu; domyślnie jest to
98
.threshold, thresh
Próg, poniżej którego wartość piksela jest uważana za czarną; domyślnie jest to
32
.
11.13 blend
Połącz ze sobą dwie klatki wideo.
Filtr blend
przyjmuje dwa strumienie wejściowe i wyprowadza jeden strumień, pierwsze wejście to warstwa „górna”, a drugie wejście to warstwa „dolna”. Domyślnie wyjście kończy się, gdy kończy się najdłuższe wejście.
Filtr tblend
(mieszanie czasu) pobiera dwie kolejne klatki z jednego strumienia i wyświetla wynik uzyskany przez zmieszanie nowej klatki ze starą.
Poniżej znajduje się opis akceptowanych opcji.
c0_mode
c1_mode
c2_mode
c3_mode
all_mode
Ustaw tryb mieszania dla określonego składnika piksela lub wszystkich składników w przypadku
all_mode
. Wartość domyślna tonormal
.Dostępne wartości dla trybów komponentów to:
- '
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
Ustaw przezroczystość mieszania dla określonego składnika piksela lub wszystkich składników w przypadku
all_opacity
. Używany tylko w połączeniu z trybami mieszania składników pikseli.c0_expr
c1_expr
c2_expr
c3_expr
all_expr
Ustaw wyrażenie mieszania dla określonego składnika pikseli lub wszystkich składników pikseli w przypadku
all_expr
. Zwróć uwagę, że powiązane opcje trybu zostaną zignorowane, jeśli zostaną ustawione.Wyrażenia mogą używać następujących zmiennych:
N
Numer kolejny przefiltrowanej ramki, począwszy od
0
.X
Y
współrzędne aktualnej próbki
W
H
szerokość i wysokość aktualnie filtrowanej płaszczyzny
SW
SH
Skala szerokości i wysokości filtrowanej płaszczyzny. Jest to stosunek wymiarów aktualnej płaszczyzny do płaszczyzny luma, np. dla
yuv420p
ramy wartości są1,1
dla płaszczyzny luma i0.5,0.5
dla płaszczyzn chroma.T
Czas bieżącej klatki wyrażony w sekundach.
TOP, A
Wartość składnika piksela w bieżącej lokalizacji dla pierwszej klatki wideo (górna warstwa).
BOTTOM, B
Wartość składnika piksela w bieżącej lokalizacji dla drugiej klatki wideo (dolna warstwa).
Filtr blend
obsługuje również opcje framesync .
11.13.1 Examples
- Zastosuj przejście od dolnej warstwy do górnej warstwy w ciągu pierwszych 10 sekund:
blend=all_expr='A*(if(gte(T,10),1,T/10))+B*(1-(if(gte(T,10),1,T/10)))'
- Zastosuj liniowe przejście poziome od górnej warstwy do dolnej warstwy:
blend=all_expr='A*(X/W)+B*(1-X/W)'
- Zastosuj efekt szachownicy 1x1:
blend=all_expr='if(eq(mod(X,2),mod(Y,2)),A,B)'
- Zastosuj odkryj lewy efekt:
blend=all_expr='if(gte(N*SW+X,W),A,B)'
- Zastosuj efekt odkrywania:
blend=all_expr='if(gte(Y-N*SH,0),A,B)'
- Zastosuj efekt odkrywania w lewo:
blend=all_expr='if(gte(T*SH*40+Y,H)*gte((T*40*SW+X)*W/H,W),A,B)'
- Podziel film po przekątnej i pokazuje górną i dolną warstwę z każdej strony:
blend=all_expr='if(gt(X,Y*(W/H)),A,B)'
- Wyświetl różnice między bieżącą a poprzednią klatką:
tblend=all_mode=grainextract
11.13.2 Commands
Ten filtr obsługuje te same polecenia, co opcje.
11.14 blockdetect
Określa blokowość ramek bez zmiany ramek wejściowych.
Na podstawie Remco Muijsa i Ihora Kirenko: „Miara artefaktów bez odniesienia do adaptacyjnego przetwarzania wideo”. 2005 13. europejska konferencja na temat przetwarzania sygnałów.
Filtr akceptuje następujące opcje:
period_min
period_max
Ustaw minimalne i maksymalne wartości do określania siatek pikseli (okresów). Wartości domyślne to [3,24].
planes
Ustaw samoloty do filtrowania. Domyślnie jest tylko pierwszy.
11.14.1 Examples
- Określ blokowość dla pierwszego samolotu i wyszukaj okresy w obrębie [8,32]:
blockdetect=period_min=8:period_max=32:planes=1
11.15 blurdetect
Określa rozmycie ramek bez zmiany ramek wejściowych.
Na podstawie Marziliano, Pina i in. „Pomiar rozmycia percepcyjnego bez odniesienia”. Pozwala na skrót oparty na blokach.
Filtr akceptuje następujące opcje:
low
high
Ustaw niskie i wysokie wartości progowe używane przez algorytm progowania Canny.
Wysoki próg wybiera „silne” piksele krawędzi, które są następnie połączone przez 8-łączność z pikselami „słabej” krawędzi wybranymi przez dolny próg.
low
ahigh
wartości progowe muszą być wybrane z zakresu [0,1] ilow
powinny być mniejsze lub równehigh
.Wartość domyślna dla
low
is20/255
, a wartość domyślna dlahigh
is50/255
.radius
Zdefiniuj promień, aby szukać lokalnych maksimów wokół piksela krawędzi.
block_pct
Określ rozmycie tylko dla najbardziej znaczących bloków, podając je w procentach.
block_width
Określ rozmycie dla bloków o szerokości
block_width
. Jeśli jest ustawiona na dowolną wartość mniejszą niż 1, nie są używane żadne bloki, a cały obraz jest przetwarzany jako jeden bez względu nablock_height
.block_height
Określ rozmycie bloków wysokości
block_height
. Jeśli jest ustawiona na dowolną wartość mniejszą niż 1, nie są używane żadne bloki, a cały obraz jest przetwarzany jako jeden bez względu nablock_width
.planes
Ustaw samoloty do filtrowania. Domyślnie jest tylko pierwszy.
11.15.1 Examples
- Określ rozmycie dla 80% najważniejszych bloków 32x32:
blurdetect=block_width=32:block_height=32:block_pct=80
11.16 bm3d
Odszumianie klatek za pomocą algorytmu Block-Matching 3D.
Filtr akceptuje następujące opcje.
sigma
Ustaw siłę odszumiania. Wartość domyślna to 1. Dozwolony zakres to od 0 do 999,9. Algorytm odszumiania jest bardzo czuły na sigma, więc dostosuj go do źródła.
block
Ustaw lokalny rozmiar poprawki. To ustawia wymiary w 2D.
bstep
Ustaw krok przesuwny do obróbki bloków. Wartość domyślna to 4. Dozwolony zakres to od 1 do 64. Mniejsze wartości pozwalają na przetwarzanie większej liczby bloków referencyjnych i są wolniejsze.
group
Ustaw maksymalną liczbę podobnych bloków dla trzeciego wymiaru. Wartość domyślna to 1. Gdy ustawiona jest na 1, dopasowanie bloku nie jest wykonywane. Większe wartości pozwalają na większą liczbę bloków w jednej grupie. Dozwolony zakres to od 1 do 256.
range
Ustaw promień dla dopasowania bloku wyszukiwania. Wartość domyślna to 9. Dozwolony zakres to od 1 do INT32_MAX.
mstep
Ustaw krok między dwiema lokalizacjami wyszukiwania w celu dopasowania bloku. Wartość domyślna to 1. Dozwolony zakres to od 1 do 64. Mniejszy jest wolniejszy.
thmse
Ustaw próg błędu średniokwadratowego dla dopasowania bloków. Prawidłowy zakres to 0 do INT32_MAX.
hdthr
Ustaw parametr progowania dla twardego progowania w transformowanej domenie 3D. Większe wartości skutkują silniejszym filtrowaniem twardego progu w domenie częstotliwości.
estim
Ustaw tryb szacowania filtrowania. Może być
basic
lubfinal
. Wartość domyślna tobasic
.ref
Jeśli jest włączony, filtr użyje drugiego strumienia do dopasowywania bloków. Wartość domyślna jest wyłączona dla
basic
wartościestim
opcji i zawsze włączona, jeśli wartośćestim
wynosifinal
.planes
Ustaw samoloty do filtrowania. Domyślnie dostępne są wszystkie z wyjątkiem alfa.
11.16.1 Examples
- Podstawowe filtrowanie z bm3d:
bm3d=sigma=3:block=4:bstep=2:group=1:estim=basic
- Tak samo jak powyżej, ale filtrowanie tylko lumy:
bm3d=sigma=3:block=4:bstep=2:group=1:estim=basic:planes=1
- Tak samo jak powyżej, ale z obydwoma trybami estymacji:
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
- To samo co powyżej, ale zamiast tego prefiltr z filtrem nlmeans :
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.17 boxblur
Zastosuj algorytm boxblur do wejściowego wideo.
Przyjmuje następujące parametry:
luma_radius, lr
luma_power, lp
chroma_radius, cr
chroma_power, cp
alpha_radius, ar
alpha_power, ap
Poniżej znajduje się opis akceptowanych opcji.
luma_radius, lr
chroma_radius, cr
alpha_radius, ar
Ustaw wyrażenie dla promienia prostokąta w pikselach używanego do rozmycia odpowiedniej płaszczyzny wejściowej.
Wartość promienia musi być liczbą nieujemną i nie może być większa niż wartość wyrażenia
min(w,h)/2
dla płaszczyzn luma i alfa orazmin(cw,ch)/2
dla płaszczyzn chroma.Wartość domyślna dla
luma_radius
to „2”. Jeśli nie określono,chroma_radius
orazalpha_radius
domyślnie na odpowiednią wartość ustawioną dlaluma_radius
.Wyrażenia mogą zawierać następujące stałe:
w
h
Wejściowa szerokość i wysokość w pikselach.
cw
ch
Wejściowa szerokość i wysokość obrazu chrominancji w pikselach.
hsub
vsub
Wartości podpróbki chrominancji poziomej i pionowej. Na przykład dla formatu pikseli „yuv422p”
hsub
wynosi 2, avsub
1.
luma_power, lp
chroma_power, cp
alpha_power, ap
Określ, ile razy filtr boxblur zostanie zastosowany do odpowiedniej płaszczyzny.
Wartość domyślna dla
luma_power
wynosi 2. Jeśli nie określono,chroma_power
orazalpha_power
domyślnie na odpowiednią wartość ustawioną dlaluma_power
.Wartość 0 wyłączy efekt.
11.17.1 Examples
- Zastosuj filtr boxblur z promieniami luma, chroma i alfa ustawionymi na 2:
boxblur=luma_radius=2:luma_power=1 boxblur=2:1
- Ustaw promień luma na 2, a promień alfa i chroma na 0:
boxblur=2:1:cr=0:ar=0
- Ustaw promienie luma i chroma na ułamek wymiaru wideo:
boxblur=luma_radius=min(h\,w)/10:luma_power=1:chroma_radius=min(cw\,ch)/10:chroma_power=1
11.18 bwdif
Usuń przeplot wideo wejściowego („bwdif” oznacza „Bob Weaver Deinterlacing Filter”).
Adaptacyjne usuwanie przeplotu ruchu oparte na yadif z wykorzystaniem algorytmów w3fdif i interpolacji sześciennej. Przyjmuje następujące parametry:
mode
Tryb przeplotu do przyjęcia. Przyjmuje jedną z następujących wartości:
0, send_frame
Wyprowadza jedną klatkę na każdą klatkę.
1, send_field
Wyprowadza jedną ramkę dla każdego pola.
Wartość domyślna to
send_field
.parity
Parzystość pola obrazu przyjęta dla wejściowego wideo z przeplotem. Przyjmuje jedną z następujących wartości:
0, tff
Załóżmy, że górne pole jest pierwsze.
1, bff
Załóżmy, że dolne pole jest pierwsze.
-1, auto
Włącz automatyczne wykrywanie parzystości pola.
Wartość domyślna to
auto
. Jeśli przeplot jest nieznany lub dekoder nie eksportuje tych informacji, jako pierwsze zostanie przyjęte górne pole.deint
Określ, które klatki usunąć z przeplotu. Akceptuje jedną z następujących wartości:
0, all
Usuń przeplot ze wszystkich klatek.
1, interlaced
Usuwaj tylko klatki oznaczone jako z przeplotem.
Wartość domyślna to
all
.
11.19 cas
Zastosuj filtr Adaptacyjne wyostrzanie kontrastu do strumienia wideo.
Filtr akceptuje następujące opcje:
strength
Ustaw siłę ostrzenia. Wartość domyślna to 0.
planes
Ustaw samoloty do filtrowania. Domyślną wartością jest filtrowanie wszystkich płaszczyzn z wyjątkiem płaszczyzny alfa.
11.19.1 Commands
Ten filtr obsługuje te same polecenia, co opcje.
11.20 chromahold
Usuń wszystkie informacje o kolorach dla wszystkich kolorów z wyjątkiem jednego.
Filtr akceptuje następujące opcje:
color
Kolor, który nie zostanie zastąpiony neutralnym chroma.
similarity
Procent podobieństwa z powyższym kolorem. 0.01 pasuje tylko do dokładnego koloru klucza, a 1.0 pasuje do wszystkiego.
blend
Procent mieszanki. 0.0 sprawia, że ​​piksele są albo całkowicie szare, albo wcale nie są szare. Wyższe wartości skutkują bardziej zachowanym kolorem.
yuv
Sygnalizuje, że przekazany kolor jest już w YUV zamiast RGB.
Dosłowne kolory, takie jak „zielony” lub „czerwony”, nie mają już sensu, gdy ta opcja jest włączona. Może to służyć do przekazywania dokładnych wartości YUV jako liczb szesnastkowych.
11.20.1 Commands
Ten filtr obsługuje te same polecenia, co opcje. Polecenie akceptuje tę samą składnię odpowiedniej opcji.
Jeśli podane wyrażenie jest niepoprawne, jest zachowywane z bieżącą wartością.
11.21 chromakey
Kluczowanie kolorów/kolorów w przestrzeni kolorów YUV.
Filtr akceptuje następujące opcje:
color
Kolor, który zostanie zastąpiony przezroczystością.
similarity
Procent podobieństwa z kolorem klucza.
0.01 pasuje tylko do dokładnego koloru klucza, a 1.0 pasuje do wszystkiego.
blend
Procent mieszanki.
0.0 sprawia, że ​​piksele są w pełni przezroczyste lub w ogóle nie są przezroczyste.
Wyższe wartości skutkują półprzezroczystymi pikselami, przy większej przezroczystości kolor pikseli jest bardziej zbliżony do koloru kluczowego.
yuv
Sygnalizuje, że przekazany kolor jest już w YUV zamiast RGB.
Dosłowne kolory, takie jak „zielony” lub „czerwony”, nie mają już sensu, gdy ta opcja jest włączona. Może to służyć do przekazywania dokładnych wartości YUV jako liczb szesnastkowych.
11.21.1 Commands
Ten filtr obsługuje te same polecenia, co opcje. Polecenie akceptuje tę samą składnię odpowiedniej opcji.
Jeśli podane wyrażenie jest niepoprawne, jest zachowywane z bieżącą wartością.
11.21.2 Examples
- Ustaw przezroczystość każdego zielonego piksela w obrazie wejściowym:
ffmpeg -i input.png -vf chromakey=green out.png
- Nałóż film z zielonego ekranu na statyczne czarne tło.
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.22 chromakey_cuda
CUDA akcelerowało kluczowanie kolorów/chroma w przestrzeni kolorów YUV.
Ten filtr działa jak normalny filtr chromakey, ale działa na ramkach CUDA. po więcej szczegółów i parametrów zobacz chromakey .
11.22.1 Examples
- Spraw, aby wszystkie zielone piksele w wejściowym wideo były przezroczyste i użyj ich jako nakładki dla innego wideo:
./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
- Przetwórz dwa źródła oprogramowania, jawnie przesyłając ramki:
./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.23 chromanr
Zmniejsz szum chrominancji.
Filtr akceptuje następujące opcje:
thres
Ustaw próg dla uśredniania wartości chrominancji. Suma bezwzględnej różnicy składowych pikseli Y, U i V bieżącego piksela i sąsiednich pikseli poniżej tego progu zostanie użyta do uśredniania. Komponent Luma pozostaje niezmieniony i jest kopiowany na wyjście. Wartość domyślna to 30. Dozwolony zakres to od 1 do 200.
sizew
Ustaw promień poziomy prostokąta używanego do uśredniania. Dozwolony zakres to od 1 do 100. Wartość domyślna to 5.
sizeh
Ustaw promień pionowy prostokąta używanego do uśredniania. Dozwolony zakres to od 1 do 100. Wartość domyślna to 5.
stepw
Ustaw krok poziomy podczas uśredniania. Wartość domyślna to 1. Dozwolony zakres to od 1 do 50. Przydatne głównie do przyspieszenia filtrowania.
steph
Ustaw krok w pionie podczas uśredniania. Wartość domyślna to 1. Dozwolony zakres to od 1 do 50. Przydatne głównie do przyspieszenia filtrowania.
threy
Ustaw próg Y dla uśredniania wartości chrominancji. Ustaw dokładniejszą kontrolę dla maksymalnej dozwolonej różnicy między komponentami Y bieżącego piksela i sąsiednich pikseli. Wartość domyślna to 200. Dozwolony zakres to od 1 do 200.
threu
Ustaw próg U dla uśredniania wartości chrominancji. Ustaw dokładniejszą kontrolę dla maksymalnej dozwolonej różnicy między składnikami U bieżącego piksela i sąsiednich pikseli. Wartość domyślna to 200. Dozwolony zakres to od 1 do 200.
threv
Ustaw próg V dla uśredniania wartości chrominancji. Ustaw dokładniejszą kontrolę dla maksymalnej dozwolonej różnicy między komponentami V bieżącego piksela i sąsiednich pikseli. Wartość domyślna to 200. Dozwolony zakres to od 1 do 200.
distance
Ustaw typ odległości używany w obliczeniach.
- '
manhattan
' Absolutna różnica.
- '
euclidean
' Różnica do kwadratu.
Domyślny typ odległości to Manhattan.
- '
11.23.1 Commands
Ten filtr obsługuje te same polecenia, co opcje. Polecenie akceptuje tę samą składnię odpowiedniej opcji.
11.24 chromashift
Przesuwaj piksele chrominancji w poziomie i/lub w pionie.
Filtr akceptuje następujące opcje:
cbh
Ustaw ilość, aby poziomo przesunąć chroma-blue.
cbv
Ustaw ilość, aby przesunąć kolor niebieski w pionie.
crh
Ustaw ilość, aby przesunąć chroma-czerwień w poziomie.
crv
Ustaw ilość, aby przesunąć chroma-czerwień w pionie.
edge
Ustaw tryb krawędzi, może być
smear
, domyślny lubwarp
.
11.24.1 Commands
Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .
11.25 ciescope
Wyświetl diagram kolorów CIE z nałożonymi na niego pikselami.
Filtr akceptuje następujące opcje:
system
Ustaw system kolorów.
- '
ntsc, 470m
' - '
ebu, 470bg
' - '
smpte
' - '
240m
' - '
apple
' - '
widergb
' - '
cie1931
' - '
rec709, hdtv
' - '
uhdtv, rec2020
' - '
dcip3
'
- '
cie
Ustaw system CIE.
- '
xyy
' - '
ucs
' - '
luv
'
- '
gamuts
Ustaw, jakie gamy rysować.
Zobacz
system
opcję dla dostępnych wartości.size, s
Ustaw rozmiar ciescope, domyślnie ustawiony na 512.
intensity, i
Ustaw intensywność używaną do mapowania wejściowych wartości pikseli na diagram CIE.
contrast
Ustaw kontrast używany do rysowania kolorów języka, które są poza gamą aktywnego systemu kolorów.
corrgamma
Poprawne gamma wyświetlane na oscyloskopie, domyślnie włączone.
showwhite
Pokaż biały punkt na diagramie CIE, domyślnie wyłączony.
gamma
Ustaw gamma wejścia. Używany tylko z wejściową przestrzenią kolorów XYZ.
fill
Wypełnij kolorami CIE. Domyślnie jest włączony.
11.26 codecview
Wizualizuj informacje eksportowane przez niektóre kodeki.
Niektóre kodeki mogą eksportować informacje za pośrednictwem ramek przy użyciu danych pobocznych lub w inny sposób. Na przykład, niektóre kodeki oparte na MPEG eksportują wektory ruchu za pomocą
export_mvs
flagi w kodekuflags2
opcja.
Filtr akceptuje następującą opcję:
block
Wyświetlaj strukturę partycji bloków za pomocą płaszczyzny luma.
mv
Ustaw wektory ruchu do wizualizacji.
Dostępne flagi dla
mv
to:- '
pf
' przewidywane w przód wartości MV ramek P
- '
bf
' przewidywane w przód wartości MV ramek B
- '
bb
' przewidywane wstecz wartości MV ramek B
- '
qp
Wyświetlaj parametry kwantyzacji za pomocą płaszczyzn chrominancji.
mv_type, mvt
Ustaw typ wektorów ruchu do wizualizacji. Obejmuje MV ze wszystkich ramek, chyba że określono w
frame_type
opcji.Dostępne flagi dla
mv_type
to:- '
fp
' przewidywane wartości MV
- '
bp
' MVs przewidywane wstecz
- '
frame_type, ft
Ustaw typ ramki, aby zwizualizować wektory ruchu.
Dostępne flagi dla
frame_type
to:- '
if
' ramki kodowane wewnętrznie (ramki I)
- '
pf
' przewidywane klatki (klatki P)
- '
bf
' ramki przewidywane dwukierunkowo (ramki B)
- '
11.26.1 Examples
- Wizualizuj przewidywane wartości MV wszystkich ramek za pomocą
ffplay
:ffplay -flags2 +export_mvs input.mp4 -vf codecview=mv_type=fp
- Wizualizuj wielokierunkowe wartości MV ramek P i B za pomocą
ffplay
:ffplay -flags2 +export_mvs input.mp4 -vf codecview=mv=pf+bf+bb
11.27 colorbalance
Modyfikuj intensywność kolorów podstawowych (czerwony, zielony i niebieski) ramek wejściowych.
Filtr umożliwia regulację klatki wejściowej w obszarach cieni, półcieni lub świateł w celu uzyskania balansu czerwonego-cyjanowego, zielonego-magenta lub niebiesko-żółtego.
Dodatnia wartość dostosowania przesuwa równowagę w kierunku koloru podstawowego, a ujemna w kierunku koloru uzupełniającego.
Filtr akceptuje następujące opcje:
rs
gs
bs
Dostosuj czerwone, zielone i niebieskie cienie (najciemniejsze piksele).
rm
gm
bm
Dostosuj czerwone, zielone i niebieskie półcienie (średnie piksele).
rh
gh
bh
Dostosuj czerwone, zielone i niebieskie światła (najjaśniejsze piksele).
Dozwolone zakresy dla opcji to
[-1.0, 1.0]
. Wartości domyślne to0
.pl
Zachowaj jasność podczas zmiany balansu kolorów. Domyślnie jest wyłączone.
11.27.1 Examples
- Dodaj czerwony kolor do cieni:
colorbalance=rs=.3
11.27.2 Commands
Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .
11.28 colorcontrast
Dostosuj kontrast kolorów między składnikami RGB.
Filtr akceptuje następujące opcje:
rc
Ustaw kontrast czerwono-cyjan. Wartość domyślna to 0,0. Dozwolony zakres to od -1,0 do 1,0.
gm
Ustaw kontrast zielono-purpurowy. Wartość domyślna to 0,0. Dozwolony zakres to od -1,0 do 1,0.
by
Ustaw kontrast niebiesko-żółty. Wartość domyślna to 0,0. Dozwolony zakres to od -1,0 do 1,0.
rcw
gmw
byw
Ustaw wagę każdej wartości opcji
rc
,gm
, .by
Wartość domyślna to 0,0. Dozwolony zakres to od 0,0 do 1,0. Jeśli wszystkie wagi wynoszą 0,0, filtrowanie jest wyłączone.pl
Ustaw ilość zachowania lekkości. Wartość domyślna to 0,0. Dozwolony zakres to od 0,0 do 1,0.
11.28.1 Commands
Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .
11.29 colorcorrect
Dostosuj selektywnie balans bieli koloru dla czerni i bieli. Ten filtr działa w przestrzeni kolorów YUV.
Filtr akceptuje następujące opcje:
rl
Ustaw czerwony cień. Dozwolony zakres to od -1,0 do 1,0. Wartość domyślna to 0.
bl
Ustaw niebieski punkt cienia. Dozwolony zakres to od -1,0 do 1,0. Wartość domyślna to 0.
rh
Ustaw czerwone podświetlenie. Dozwolony zakres to od -1,0 do 1,0. Wartość domyślna to 0.
bh
Ustaw czerwone podświetlenie. Dozwolony zakres to od -1,0 do 1,0. Wartość domyślna to 0.
saturation
Ustaw stopień nasycenia. Dozwolony zakres to od -3,0 do 3,0. Wartość domyślna to 1.
analyze
Jeśli jest ustawiony na cokolwiek innego niż
manual
przeanalizuje każdą klatkę i użyje pochodnych parametrów do filtrowania klatki wyjściowej.Możliwe wartości to:
- '
manual
' - '
average
' - '
minmax
' - '
median
'
Wartość domyślna to
manual
.- '
11.29.1 Commands
Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .
11.30 colorchannelmixer
Dostosuj klatki wejściowe wideo, ponownie mieszając kanały kolorów.
Ten filtr modyfikuje kanał koloru, dodając wartości powiązane z innymi kanałami tych samych pikseli. Na przykład, jeśli wartość do zmodyfikowania jest czerwona, wartość wyjściowa będzie wynosić:
red
=red
*rr
+ blue
*rb
+ green
*rg
+ alpha
*ra
Filtr akceptuje następujące opcje:
rr
rg
rb
ra
Ustaw udział wejściowych kanałów czerwonego, zielonego, niebieskiego i alfa dla wyjściowego kanału czerwonego. Wartość domyślna to , i
1
dla , i .rr
0
rg
rb
ra
gr
gg
gb
ga
Ustaw udział wejściowych kanałów czerwonego, zielonego, niebieskiego i alfa dla wyjściowego kanału zielonego. Wartość domyślna to , i
1
dla , i .gg
0
gr
gb
ga
br
bg
bb
ba
Dostosuj udział wejściowych kanałów czerwonego, zielonego, niebieskiego i alfa dla wyjściowego kanału niebieskiego. Wartość domyślna to , i
1
dla , i .bb
0
br
bg
ba
ar
ag
ab
aa
Dostosuj udział wejściowych kanałów czerwonego, zielonego, niebieskiego i alfa dla wyjściowego kanału alfa. Wartość domyślna to , i
1
dla , i .aa
0
ar
ag
ab
Dozwolone zakresy dla opcji to
[-2.0, 2.0]
.pc
Ustaw tryb zachowania kolorów. Akceptowane wartości to:
- '
none
' Wyłącz zachowywanie kolorów, jest to ustawienie domyślne.
- '
lum
' Zachowaj jasność.
- '
max
' Zachowaj maksymalną wartość trójki RGB.
- '
avg
' Zachowaj średnią wartość trójki RGB.
- '
sum
' Zachowaj wartość sumy trójki RGB.
- '
nrm
' Zachowaj znormalizowaną wartość trójki RGB.
- '
pwr
' Zachowaj wartość mocy trójki RGB.
- '
pa
Ustaw ilość zachowania koloru podczas zmiany kolorów. Dozwolony zakres to od
[0.0, 1.0]
. Wartość domyślna to0.0
, a zatem wyłączone.
11.30.1 Examples
- Konwertuj źródło na skalę szarości:
colorchannelmixer=.3:.4:.3:0:.3:.4:.3:0:.3:.4:.3
- Symuluj odcienie sepii:
colorchannelmixer=.393:.769:.189:0:.349:.686:.168:0:.272:.534:.131
11.30.2 Commands
Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .
11.31 colorize
Nałóż jednolity kolor na strumień wideo.
Filtr akceptuje następujące opcje:
hue
Ustaw odcień koloru. Dozwolony zakres to od 0 do 360. Wartość domyślna to 0.
saturation
Ustaw nasycenie kolorów. Dozwolony zakres to od 0 do 1. Wartość domyślna to 0,5.
lightness
Ustaw jasność koloru. Dozwolony zakres to od 0 do 1. Wartość domyślna to 0,5.
mix
Ustaw miks jasności źródła. Domyślnie jest ustawiony na 1.0. Dozwolony zakres to od 0,0 do 1,0.
11.31.1 Commands
Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .
11.32 colorkey
Kluczowanie kolorów w przestrzeni kolorów RGB. Ten filtr działa na 8-bitowych ramkach formatu RGB, ustawiając składnik alfa każdego piksela, który mieści się w promieniu podobieństwa koloru kluczowego na 0. Wartość alfa dla pikseli poza promieniem podobieństwa zależy od wartości opcji mieszania.
Filtr akceptuje następujące opcje:
color
Ustaw kolor, dla którego alfa zostanie ustawiona na 0 (pełna przezroczystość). Zobacz (ffmpeg-utils) sekcję "Kolor" w podręczniku ffmpeg-utils . Wartość domyślna to
black
.similarity
Ustaw promień od koloru kluczowego, w którym inne kolory również mają pełną przezroczystość. Obliczona odległość jest powiązana z jednostkową odległością ułamkową w przestrzeni 3D między wartościami RGB koloru kluczowego a kolorem piksela. Zakres wynosi od 0,01 do 1,0. 0.01 pasuje w bardzo małym promieniu wokół dokładnego koloru klucza, a 1.0 pasuje do wszystkiego. Wartość domyślna to
0.01
.blend
Ustaw sposób obliczania wartości alfa dla pikseli, które wychodzą poza promień podobieństwa. 0.0 sprawia, że ​​piksele są w pełni przezroczyste lub całkowicie nieprzezroczyste. Wyższe wartości skutkują półprzezroczystymi pikselami, im większa przezroczystość, tym bardziej zbliżony kolor piksela do koloru kluczowego. Zakres wynosi od 0,0 do 1,0. Wartość domyślna to
0.0
.
11.32.1 Examples
- Ustaw przezroczystość każdego zielonego piksela w obrazie wejściowym:
ffmpeg -i input.png -vf colorkey=green out.png
- Nałóż film z zielonego ekranu na statyczny obraz tła.
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.32.2 Commands
Ten filtr obsługuje te same polecenia, co opcje. Polecenie akceptuje tę samą składnię odpowiedniej opcji.
Jeśli podane wyrażenie jest niepoprawne, jest zachowywane z bieżącą wartością.
11.33 colorhold
Usuń wszystkie informacje o kolorach dla wszystkich kolorów RGB z wyjątkiem jednego.
Filtr akceptuje następujące opcje:
color
Kolor, którego nie zastąpi neutralna szarość.
similarity
Procent podobieństwa z powyższym kolorem. 0.01 pasuje tylko do dokładnego koloru klucza, a 1.0 pasuje do wszystkiego.
blend
Procent mieszanki. 0.0 sprawia, że ​​piksele są całkowicie szare. Wyższe wartości skutkują bardziej zachowanym kolorem.
11.33.1 Commands
Ten filtr obsługuje te same polecenia, co opcje. Polecenie akceptuje tę samą składnię odpowiedniej opcji.
Jeśli podane wyrażenie jest niepoprawne, jest zachowywane z bieżącą wartością.
11.34 colorlevels
Dostosuj klatki wejściowe wideo za pomocą poziomów.
Filtr akceptuje następujące opcje:
rimin
gimin
bimin
aimin
Ustaw czerwony, zielony, niebieski i alfa punkt czerni wejścia. Dozwolone zakresy dla opcji to
[-1.0, 1.0]
. Wartości domyślne to0
.rimax
gimax
bimax
aimax
Ustaw czerwony, zielony, niebieski i alfa punkt bieli. Dozwolone zakresy dla opcji to
[-1.0, 1.0]
. Wartości domyślne to1
.Poziomy wejściowe służą do rozjaśniania świateł (jasnych tonów), przyciemniania cieni (ciemnych tonów), zmiany równowagi jasnych i ciemnych tonów.
romin
gomin
bomin
aomin
Regulacja czerwonego, zielonego, niebieskiego i punktu czerni wyjścia alfa. Dozwolone zakresy dla opcji to
[0, 1.0]
. Wartości domyślne to0
.romax
gomax
bomax
aomax
Ustaw czerwony, zielony, niebieski i alfa punkt bieli. Dozwolone zakresy dla opcji to
[0, 1.0]
. Wartości domyślne to1
.Poziomy wyjściowe umożliwiają ręczny wybór ograniczonego zakresu poziomów wyjściowych.
preserve
Ustaw tryb zachowania kolorów. Akceptowane wartości to:
- '
none
' Wyłącz zachowywanie kolorów, jest to ustawienie domyślne.
- '
lum
' Zachowaj jasność.
- '
max
' Zachowaj maksymalną wartość trójki RGB.
- '
avg
' Zachowaj średnią wartość trójki RGB.
- '
sum
' Zachowaj wartość sumy trójki RGB.
- '
nrm
' Zachowaj znormalizowaną wartość trójki RGB.
- '
pwr
' Zachowaj wartość mocy trójki RGB.
- '
11.34.1 Examples
- Przyciemnij wyjście wideo:
colorlevels=rimin=0.058:gimin=0.058:bimin=0.058
- Zwiększ kontrast:
colorlevels=rimin=0.039:gimin=0.039:bimin=0.039:rimax=0.96:gimax=0.96:bimax=0.96
- Spraw, aby wyjście wideo było lżejsze:
colorlevels=rimax=0.902:gimax=0.902:bimax=0.902
- Zwiększ jasność:
colorlevels=romin=0.5:gomin=0.5:bomin=0.5
11.34.2 Commands
Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .
11.35 colormap
Zastosuj niestandardowe mapy kolorów do strumienia wideo.
Ten filtr wymaga trzech wejściowych strumieni wideo. Pierwszy strumień to strumień wideo, który zostanie odfiltrowany. Drugi i trzeci strumień wideo określają wstawki kolorów dla odwzorowania koloru źródłowego na docelowy.
Filtr akceptuje następujące opcje:
patch_size
Ustaw rozmiar poprawki źródłowego i docelowego strumienia wideo w pikselach.
nb_patches
Ustaw maksymalną liczbę używanych poprawek ze źródłowego i docelowego strumienia wideo. Wartość domyślna to liczba poprawek dostępnych w dodatkowych strumieniach wideo. Maksymalna dozwolona liczba poprawek to
64
.type
Ustaw dopasowania używane dla kolorów docelowych. Może być
relative
lubabsolute
. Wartość domyślna toabsolute
.kernel
Ustaw jądro używane do pomiaru różnic kolorów między odwzorowanymi kolorami.
Akceptowane wartości to:
- '
euclidean
' - '
weuclidean
'
Wartość domyślna to
euclidean
.- '
11.36 colormatrix
Konwersja matrycy kolorów.
Filtr akceptuje następujące opcje:
src
dst
Określ źródłową i docelową macierz kolorów. Należy określić obie wartości.
Akceptowane wartości to:
- '
bt709
' BT.709
- '
fcc
' FCC
- '
bt601
' BT.601
- '
bt470
' BT.470
- '
bt470bg
' BT.470BG
- '
smpte170m
' SMPTE-170M
- '
smpte240m
' SMPTE-240M
- '
bt2020
' BT.2020
- '
Na przykład do konwersji z BT.601 na SMPTE-240M użyj polecenia:
colormatrix=bt601:smpte240m
11.37 colorspace
Konwertuj przestrzeń kolorów, charakterystykę transferu lub kolory podstawowe. Wejście wideo musi mieć równy rozmiar.
Filtr akceptuje następujące opcje:
all
Określ wszystkie właściwości koloru jednocześnie.
Akceptowane wartości to:
- '
bt470m
' BT.470M
- '
bt470bg
' BT.470BG
- '
bt601-6-525
' BT.601-6 525
- '
bt601-6-625
' BT.601-6 625
- '
bt709
' BT.709
- '
smpte170m
' SMPTE-170M
- '
smpte240m
' SMPTE-240M
- '
bt2020
' BT.2020
- '
space
Określ wyjściową przestrzeń kolorów.
Akceptowane wartości to:
- '
bt709
' BT.709
- '
fcc
' FCC
- '
bt470bg
' BT.470BG lub BT.601-6 625
- '
smpte170m
' SMPTE-170M lub BT.601-6 525
- '
smpte240m
' SMPTE-240M
- '
ycgco
' YCgCo
- '
bt2020ncl
' BT.2020 z niestałą luminancją
- '
trc
Określ charakterystykę transferu wyjściowego.
Akceptowane wartości to:
- '
bt709
' BT.709
- '
bt470m
' BT.470M
- '
bt470bg
' BT.470BG
- '
gamma22
' Stała gamma 2,2
- '
gamma28
' Stała gamma 2,8
- '
smpte170m
' SMPTE-170M, BT.601-6 625 lub BT.601-6 525
- '
smpte240m
' SMPTE-240M
- '
srgb
' SRGB
- '
iec61966-2-1
' iec61966-2-1
- '
iec61966-2-4
' iec61966-2-4
- '
xvycc
' xvycc
- '
bt2020-10
' BT.2020 dla zawartości 10-bitowej
- '
bt2020-12
' BT.2020 dla zawartości 12-bitowej
- '
primaries
Określ podstawowe kolory wyjściowe.
Akceptowane wartości to:
- '
bt709
' BT.709
- '
bt470m
' BT.470M
- '
bt470bg
' BT.470BG lub BT.601-6 625
- '
smpte170m
' SMPTE-170M lub BT.601-6 525
- '
smpte240m
' SMPTE-240M
- '
film
' film
- '
smpte431
' SMPTE-431
- '
smpte432
' SMPTE-432
- '
bt2020
' BT.2020
- '
jedec-p22
' luminofory JEDEC P22
- '
range
Określ wyjściowy zakres kolorów.
Akceptowane wartości to:
- '
tv
' Zasięg telewizora (ograniczony)
- '
mpeg
' Zakres MPEG (ograniczony)
- '
pc
' PC (pełny) zakres
- '
jpeg
' JPEG (pełny) zakres
- '
format
Określ wyjściowy format koloru.
Akceptowane wartości to:
- '
yuv420p
' YUV 4:2:0 planarny 8-bitowy
- '
yuv420p10
' YUV 4:2:0 planarny 10-bitowy
- '
yuv420p12
' YUV 4:2:0 planarny 12-bitowy
- '
yuv422p
' YUV 4:2:2 planarny 8-bitowy
- '
yuv422p10
' YUV 4:2:2 planarny 10-bitowy
- '
yuv422p12
' YUV 4:2:2 planarny 12-bitowy
- '
yuv444p
' YUV 4:4:4 planarny 8-bitowy
- '
yuv444p10
' YUV 4:4:4 planarny 10-bitowy
- '
yuv444p12
' YUV 4:4:4 planarny 12-bitowy
- '
fast
Wykonaj szybką konwersję, która pomija korekcję gamma/pierwotną. Zajmie to znacznie mniej procesora, ale będzie matematycznie niepoprawne. Aby uzyskać wynik zgodny z tym generowanym przez filtr colormatrix, użyj fast=1.
dither
Określ tryb ditheringu.
Akceptowane wartości to:
- '
none
' Bez ditheringu
- '
fsb
' Roztrząsanie Floyda-Steinberga
- '
wpadapt
Tryb adaptacji punktu bieli.
Akceptowane wartości to:
- '
bradford
' Adaptacja Bradforda do punktu bieli
- '
vonkries
' Adaptacja punktu bieli von Kriesa
- '
identity
' adaptacja punktu bieli tożsamości (tj. brak adaptacji punktu bieli)
- '
iall
Zastąp wszystkie właściwości wejściowe jednocześnie. Takie same akceptowane wartości jak wszystkie .
ispace
Zastąp wejściową przestrzeń kolorów. Takie same akceptowane wartości jak spacja .
iprimaries
Zastąp podstawowe kolory wejściowe. Te same akceptowane wartości, co podstawowe .
itrc
Nadpisanie wejściowej charakterystyki przenoszenia. Te same akceptowane wartości co trc .
irange
Zastąp wejściowy zakres kolorów. Takie same akceptowane wartości jak zakres .
Filtr konwertuje charakterystyki transferu, przestrzeń kolorów i kolory podstawowe na określone wartości użytkownika. Wartość wyjściowa, jeśli nie jest określona, ​​jest ustawiana na wartość domyślną na podstawie właściwości „all”. Jeśli ta właściwość również nie zostanie określona, ​​filtr zarejestruje błąd. Wyjściowy zakres kolorów i format mają domyślnie taką samą wartość jak wejściowy zakres kolorów i format. W danych wejściowych należy ustawić charakterystykę transmisji wejściowej, przestrzeń kolorów, kolory podstawowe i zakres kolorów. Jeśli któregoś z tych braków, filtr zarejestruje błąd i nie nastąpi konwersja.
Na przykład, aby przekonwertować wejście na SMPTE-240M, użyj polecenia:
colorspace=smpte240m
11.38 colortemperature
Dostosuj temperaturę kolorów w filmie, aby symulować różnice w temperaturze kolorów otoczenia.
Filtr akceptuje następujące opcje:
temperature
Ustaw temperaturę w kelwinach. Dozwolony zakres to od 1000 do 40000. Wartość domyślna to 6500 K.
mix
Ustaw mieszanie z filtrowanym wyjściem. Dozwolony zakres to od 0 do 1. Wartość domyślna to 1.
pl
Ustaw ilość zachowania lekkości. Dozwolony zakres to od 0 do 1. Wartość domyślna to 0.
11.38.1 Commands
Ten filtr obsługuje te same polecenia, co opcje.
11.39 convolution
Zastosuj splot 3x3, 5x5, 7x7 lub poziomo/pionowo do 49 elementów.
Filtr akceptuje następujące opcje:
0m
1m
2m
3m
Ustaw matrycę dla każdej płaszczyzny. Macierz jest sekwencją 9, 25 lub 49 liczb całkowitych ze znakiem w
square
trybie i od 1 do 49 nieparzystej liczby liczb całkowitych ze znakiem wrow
trybie.0rdiv
1rdiv
2rdiv
3rdiv
Ustaw mnożnik dla obliczonej wartości dla każdej płaszczyzny. Jeśli nie jest ustawiona lub 0, będzie to suma wszystkich elementów macierzy.
0bias
1bias
2bias
3bias
Ustaw bias dla każdego samolotu. Ta wartość jest dodawana do wyniku mnożenia. Przydatne do rozjaśniania lub przyciemniania całego obrazu. Wartość domyślna to 0,0.
0mode
1mode
2mode
3mode
Ustaw tryb matrycy dla każdej płaszczyzny. Może być
square
,row
lubcolumn
. Wartość domyślna tosquare
.
11.39.1 Commands
Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .
11.39.2 Examples
- Zastosuj wyostrzenie:
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"
- Zastosuj rozmycie:
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"
- Zastosuj wzmocnienie krawędzi:
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"
- Zastosuj wykrywanie krawędzi:
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"
- Zastosuj wykrywacz krawędzi Laplacian, który obejmuje przekątne:
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"
- Zastosuj wytłoczenie:
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.40 convolve
Zastosuj splot 2D strumienia wideo w domenie częstotliwości, używając drugiego strumienia jako impulsu.
Filtr akceptuje następujące opcje:
planes
Ustaw samoloty do przetworzenia.
impulse
Ustaw, które impulsowe klatki wideo będą przetwarzane, może być
first
luball
. Wartość domyślna toall
.
Filtr convolve
obsługuje również opcje framesync .
11.41 copy
Skopiuj źródło sygnału wejściowego wideo bez zmian do wyjścia. Jest to przydatne głównie do celów testowych.
11.42 coreimage
Filtrowanie wideo na GPU przy użyciu interfejsu Apple CoreImage API na OSX.
Akceleracja sprzętowa opiera się na kontekście OpenGL. Zwykle oznacza to, że jest przetwarzany przez sprzęt wideo. Istnieją jednak implementacje OpenGL oparte na oprogramowaniu, co oznacza, że ​​nie ma gwarancji przetwarzania sprzętowego. To zależy od odpowiedniego systemu OSX.
Istnieje wiele filtrów i generatorów obrazów dostarczanych przez Apple, które są wyposażone w wiele różnych opcji. Do filtra musi się odwoływać jego nazwa wraz z opcjami.
Filtr coreimage akceptuje następujące opcje:
list_filters
Wymień wszystkie dostępne filtry i generatory wraz ze wszystkimi ich odpowiednimi opcjami, a także możliwymi wartościami minimalnymi i maksymalnymi wraz z wartościami domyślnymi.
list_filters=true
filter
Określ wszystkie filtry według ich nazwy i opcji. Służy
list_filters
do określania wszystkich prawidłowych nazw i opcji filtrów. Opcje numeryczne są określane przez wartość zmiennoprzecinkową i są automatycznie ograniczane do odpowiedniego zakresu wartości. Opcje wektora i koloru muszą być określone przez listę wartości zmiennoprzecinkowych oddzielonych spacjami. Ucieczka postaci musi zostać wykonana. Dostępna jest specjalna nazwa opcjidefault
, aby użyć domyślnych opcji filtru.Wymagane jest określenie jednej
default
lub przynajmniej jednej opcji filtrowania. Wszystkie pominięte opcje są używane z ich wartościami domyślnymi. Składnia łańcucha filtrującego jest następująca:filter=<NAME>@<OPTION>=<VALUE>[@<OPTION>=<VALUE>][@...][#<NAME>@<OPTION>=<VALUE>[@<OPTION>=<VALUE>][@...]][#...]
output_rect
Określ prostokąt, w którym dane wyjściowe łańcucha filtrów są kopiowane do obrazu wejściowego. Jest to lista wartości zmiennoprzecinkowych oddzielonych spacjami:
output_rect=x\ y\ width\ height
Jeśli nie zostanie podany, prostokąt wyjściowy jest równy wymiarom obrazu wejściowego. Prostokąt wyjściowy jest automatycznie przycinany na krawędziach obrazu wejściowego. Dla każdego składnika obowiązują wartości ujemne.
output_rect=25\ 25\ 100\ 100
Kilka filtrów można łączyć w łańcuch w celu kolejnego przetwarzania bez transferów GPU-HOST, co pozwala na szybkie przetwarzanie złożonych łańcuchów filtrów. Obecnie obsługiwane są tylko filtry z zerowym (generatory) lub dokładnie jednym (filtry) obrazem wejściowym i jednym obrazem wyjściowym. Ponadto filtrów przejściowych nie można jeszcze używać zgodnie z przeznaczeniem.
Niektóre filtry generują obrazy wyjściowe z dodatkowym wypełnieniem w zależności od odpowiedniego jądra filtru. Wypełnienie jest automatycznie usuwane, aby zapewnić, że wyjście filtra ma taki sam rozmiar jak obraz wejściowy.
W przypadku generatorów obrazów rozmiar obrazu wyjściowego jest określany odpowiednio przez poprzedni obraz wyjściowy łańcucha filtrów lub obraz wejściowy całego łańcucha filtrów. Generatory nie wykorzystują informacji o pikselach tego obrazu do generowania danych wyjściowych. Jednak wygenerowany wynik jest mieszany z tym obrazem, co powoduje częściowe lub całkowite pokrycie obrazu wyjściowego.
Źródło wideo coreimagesrc może być używane do generowania obrazów wejściowych, które są bezpośrednio wprowadzane do łańcucha filtrów. Dzięki niemu dostarczanie obrazów wejściowych z innego źródła wideo lub wejściowego wideo nie jest wymagane.
11.42.1 Examples
- Wymień wszystkie dostępne filtry:
coreimage=list_filters=true
- Użyj filtra CIBoxBlur z domyślnymi opcjami, aby rozmyć obraz:
coreimage=filter=CIBoxBlur@default
- Użyj łańcucha filtrów z CISepiaTone przy wartościach domyślnych i CIVignetteEffect ze środkiem o wymiarach 100x100 i promieniem 50 pikseli:
coreimage=filter=CIBoxBlur@default#CIVignetteEffect@inputCenter=100\ 100@inputRadius=50
- Użyj nullsrc i CIQRCodeGenerator, aby utworzyć kod QR dla strony głównej FFmpeg, podany jako kompletny i zmieniony wiersz poleceń dla standardowej powłoki bash firmy Apple:
ffmpeg -f lavfi -i nullsrc=s=100x100,coreimage=filter=CIQRCodeGenerator@inputMessage=https\\\\\://FFmpeg.org/@inputCorrectionLevel=H -frames:v 1 QRCode.png
11.43 cover_rect
Zakryj prostokątny obiekt
Akceptuje następujące opcje:
cover
Ścieżka pliku opcjonalnego obrazu okładki musi być w yuv420.
mode
Ustaw tryb krycia.
Przyjmuje następujące wartości:
- '
cover
' przykryj go dostarczonym obrazem!
- '
blur
' przykryj to przez interpolację otaczających pikseli
Wartość domyślna to
blur
.- '
11.43.1 Examples
- Zakryj prostokątny obiekt dostarczonym obrazem danego filmu za pomocą
ffmpeg
:ffmpeg -i file.ts -vf find_rect=newref.pgm,cover_rect=cover.jpg:mode=cover new.mkv
11.44 crop
Przytnij wideo wejściowe do podanych wymiarów.
Przyjmuje następujące parametry:
w, out_w
Szerokość wyjściowego wideo. Domyślnie jest to
iw
. To wyrażenie jest oceniane tylko raz podczas konfiguracji filtru lub gdy 'w
' lub 'out_w
' polecenie jest wysyłane.h, out_h
Wysokość wyjściowego wideo. Domyślnie jest to
ih
. To wyrażenie jest oceniane tylko raz podczas konfiguracji filtru lub gdy 'h
' lub 'out_h
' polecenie jest wysyłane.x
Pozycja pozioma, w wejściowym wideo, lewej krawędzi wyjściowego wideo. Domyślnie jest to
(in_w-out_w)/2
. To wyrażenie jest oceniane na klatkę.y
Pozycja pionowa, w wejściowym wideo, górnej krawędzi wyjściowego wideo. Domyślnie jest to
(in_h-out_h)/2
. To wyrażenie jest oceniane na klatkę.keep_aspect
Ustawienie na 1 spowoduje, że wyjściowy format obrazu będzie taki sam jak na wejściu, poprzez zmianę wyjściowego współczynnika kształtu próbki. Domyślnie jest to 0.
exact
Włącz dokładne kadrowanie. Jeśli ta opcja jest włączona, podpróbkowane filmy będą przycinane dokładnie do określonej szerokości/wysokości/x/y i nie będą zaokrąglane do najbliższej mniejszej wartości. Domyślnie jest to 0.
Parametry out_w
, out_h
, x
, y
to wyrażenia zawierające następujące stałe:
x
y
Obliczone wartości dla
x
iy
. Są oceniane dla każdej nowej klatki.in_w
in_h
Wejściowa szerokość i wysokość.
iw
ih
Są takie same jak
in_w
iin_h
.out_w
out_h
Wyjściowa (przycięta) szerokość i wysokość.
ow
oh
Są takie same jak
out_w
iout_h
.a
tak samo jak
iw
/ih
sar
wejściowy współczynnik proporcji próbki
dar
format obrazu wejściowego, taki sam jak (
iw
/ih
) *sar
hsub
vsub
wartości podpróbki chrominancji poziomej i pionowej. Na przykład dla formatu piksela „yuv422p”
hsub
to 2 ivsub
1.n
Numer ramki wejściowej, zaczynając od 0.
pos
pozycja w pliku ramki wejściowej, NAN jeśli nieznana
t
Znacznik czasu wyrażony w sekundach. Jest to NAN, jeśli wejściowy znacznik czasu jest nieznany.
Wyrażenie for out_w
może zależeć od wartości out_h
, a wyrażenie for out_h
może zależeć od out_w
, ale nie może zależeć od x
i y
, ponieważ x
i y
są oceniane po out_w
i out_h
.
Parametry x
i y
określają wyrażenia określające położenie lewego górnego rogu obszaru wyjściowego (nieprzyciętego). Są oceniane dla każdej klatki. Jeśli szacowana wartość nie jest prawidłowa, jest aproksymowana do najbliższej prawidłowej wartości.
Wyrażenie for x
może zależeć od y
, a wyrażenie for y
może zależeć od x
.
11.44.1 Examples
- Obszar przycinania o rozmiarze 100x100 na pozycji (12,34).
crop=100:100:12:34
Używając nazwanych opcji, powyższy przykład staje się:
crop=w=100:h=100:x=12:y=34
- Przytnij środkowy obszar wejściowy o rozmiarze 100x100:
crop=100:100
- Przytnij środkowy obszar wejściowy z rozmiarem 2/3 wejściowego wideo:
crop=2/3*in_w:2/3*in_h
- Przytnij centralny kwadrat wejściowego wideo:
crop=out_w=in_h crop=in_h
- Ogranicz prostokąt lewym górnym rogiem umieszczonym w pozycji 100:100 i prawym dolnym rogiem odpowiadającym prawemu dolnemu rogowi obrazu wejściowego.
crop=in_w-100:in_h-100:100:100
- Przytnij 10 pikseli z lewej i prawej krawędzi oraz 20 pikseli z górnej i dolnej krawędzi
crop=in_w-2*10:in_h-2*20
- Zachowaj tylko dolną prawą ćwiartkę obrazu wejściowego:
crop=in_w/2:in_h/2:in_w/2:in_h/2
- Wysokość upraw dla uzyskania greckiej harmonii:
crop=in_w:1/PHI*in_w
- Zastosuj efekt drżenia:
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)
- Zastosuj nieregularny efekt kamery w zależności od znacznika czasu:
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)"
- Ustaw x w zależności od wartości y:
crop=in_w/2:in_h/2:y:10+10*sin(n/10)
11.44.2 Commands
Ten filtr obsługuje następujące polecenia:
w, out_w
h, out_h
x
y
Ustaw szerokość/wysokość wyjściowego wideo i poziomą/pionową pozycję w wejściowym wideo. Polecenie akceptuje tę samą składnię odpowiedniej opcji.
Jeśli podane wyrażenie jest niepoprawne, jest zachowywane z bieżącą wartością.
11.45 cropdetect
Automatycznie wykryj rozmiar przycięcia.
Oblicza niezbędne parametry przycinania i drukuje zalecane parametry za pośrednictwem systemu logowania. Wykryte wymiary odpowiadają nieczarnemu obszarowi wejściowego wideo.
Przyjmuje następujące parametry:
limit
Ustaw wyższy próg wartości czerni, który można opcjonalnie określić od zera (0) do wszystkiego (255 dla formatów 8-bitowych). Wartość intensywności większa od ustawionej wartości jest uważana za nieczarną. Domyślnie jest to 24. Możesz także określić wartość z zakresu od 0,0 do 1,0, która będzie skalowana w zależności od głębi bitowej formatu pikseli.
round
Wartość, przez którą szerokość/wysokość powinna być podzielna. Wartość domyślna to 16. Przesunięcie jest automatycznie dostosowywane, aby wyśrodkować wideo. Użyj 2, aby uzyskać tylko równe wymiary (potrzebne w przypadku wideo 4:2:2). 16 jest najlepsze przy kodowaniu do większości kodeków wideo.
skip
Ustaw liczbę początkowych klatek, dla których ocena jest pomijana. Wartość domyślna to 2. Zakres wynosi od 0 do INT_MAX.
reset_count, reset
Ustaw licznik, który określa, po ilu klatkach funkcja cropdetect zresetuje poprzednio wykryty największy obszar wideo i rozpocznie od nowa wykrywanie bieżącego optymalnego obszaru przycięcia. Wartość domyślna to 0.
Może to być przydatne, gdy logo kanału zniekształca obszar wideo. 0 oznacza „nigdy nie resetuj” i zwraca największy obszar napotkany podczas odtwarzania.
11.46 cue
Opóźnij filtrowanie wideo do podanej sygnatury czasowej zegara ściennego. Filtr najpierw przechodzi dalejpreroll
ilość klatek, następnie buforuje co najwyżej
buffer
ilość klatek i czeka na cue. Po dotarciu do cue przesyła dalej buforowane ramki, a także wszystkie kolejne ramki przychodzące na jego wejściu.
Filtr może być używany do synchronizacji wyjścia wielu procesów ffmpeg dla urządzeń wyjściowych w czasie rzeczywistym, takich jak decklink. Umieszczając opóźnienie w łańcuchu filtrowania i ramkach wstępnego buforowania, proces może przekazać dane do wyjścia niemal natychmiast po osiągnięciu docelowego znacznika czasu zegara ściennego.
Nie można zagwarantować idealnej dokładności kadrowania, ale wynik jest wystarczająco dobry w niektórych przypadkach użycia.
cue
Sygnatura czasowa cue wyrażona w sygnaturze czasowej UNIX w mikrosekundach. Wartość domyślna to 0.
preroll
Czas trwania treści do przekazania jako preroll wyrażony w sekundach. Wartość domyślna to 0.
buffer
Maksymalny czas trwania zawartości buforowanej przed oczekiwaniem na cue wyrażony w sekundach. Wartość domyślna to 0.
11.47 curves
Zastosuj dopasowania kolorów za pomocą krzywych.
Ten filtr jest podobny do narzędzi krzywych Adobe Photoshop i GIMP. Każdy składnik (czerwony, zielony i niebieski) ma swoje wartości zdefiniowane przez N
kluczowe punkty powiązane ze sobą za pomocą gładkiej krzywej. Oś x reprezentuje wartości pikseli z klatki wejściowej, a oś y nowe wartości pikseli, które mają być ustawione dla klatki wyjściowej.
Domyślnie krzywa składowa jest definiowana przez dwa punkty (0;0)
i
(1;1)
. Tworzy to linię prostą, w której każda oryginalna wartość piksela jest „dopasowywana” do własnej wartości, co oznacza brak zmian w obrazie.
Filtr pozwala przedefiniować te dwa punkty i dodać trochę więcej. Nowa krzywa (przy użyciu naturalnej interpolacji splajnu sześciennego) zostanie zdefiniowana, aby płynnie przechodzić przez wszystkie nowe współrzędne. Nowe zdefiniowane punkty muszą ściśle rosnąć na osi x, a ich wartości x
i y
muszą znajdować się w [0;1]
przedziale. Jeśli obliczone krzywe wypadły poza przestrzenie wektorowe, wartości zostaną odpowiednio przycięte.
Filtr akceptuje następujące opcje:
preset
Wybierz jedno z dostępnych ustawień wstępnych kolorów. Ta opcja może być używana dodatkowo do
r
,g
,b
parametry; w tym przypadku późniejsze opcje mają pierwszeństwo w stosunku do wstępnie ustawionych wartości. Dostępne ustawienia wstępne to:- '
none
' - '
color_negative
' - '
cross_process
' - '
darker
' - '
increase_contrast
' - '
lighter
' - '
linear_contrast
' - '
medium_contrast
' - '
negative
' - '
strong_contrast
' - '
vintage
'
Wartość domyślna to
none
.- '
master, m
Ustaw główne punkty klucza. Punkty te zdefiniują mapowanie drugiego przebiegu. Czasami nazywa się to mapowaniem „luminancji” lub „wartości”. Może być używany z
r
,g
,b
luball
ponieważ działa jak LUT przetwarzania końcowego.red, r
Ustaw kluczowe punkty dla czerwonego komponentu.
green, g
Ustaw kluczowe punkty dla zielonego komponentu.
blue, b
Ustaw kluczowe punkty dla niebieskiego komponentu.
all
Ustaw kluczowe punkty dla wszystkich komponentów (nie wliczając wzorca). Może być używany jako dodatek do innych opcji komponentów kluczowych punktów. W takim przypadku nieuzbrojony(e) składnik(i) zastosuje się do tego
all
ustawienie.psfile
Określ plik krzywych programu Photoshop (
.acv
), z którego mają zostać zaimportowane ustawienia.plot
Zapisz skrypt Gnuplot krzywych w określonym pliku.
Aby uniknąć niektórych konfliktów składni wykresu filtra, każda lista punktów kluczowych musi być zdefiniowana przy użyciu następującej składni: x0/y0 x1/y1 x2/y2 ...
.
11.47.1 Commands
Ten filtr obsługuje te same polecenia, co opcje.
11.47.2 Examples
- Zwiększ nieco środkowy poziom niebieskiego:
curves=blue='0/0 0.5/0.58 1/1'
- Efekt vintage:
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'
Tutaj otrzymujemy następujące współrzędne dla każdego składnika:
red
(0;0.11) (0.42;0.51) (1;0.95)
green
(0;0) (0.50;0.48) (1;1)
blue
(0;0.22) (0.49;0.44) (1;0.80)
- Poprzedni przykład można również uzyskać z powiązanym wbudowanym ustawieniem wstępnym:
curves=preset=vintage
- Lub po prostu:
curves=vintage
- Użyj ustawienia wstępnego programu Photoshop i przedefiniuj punkty zielonego komponentu:
curves=psfile='MyCurvesPresets/purple.acv':green='0/0 0.45/0.53 1/1'
- Sprawdź krzywe
cross_process
profilu za pomocąffmpeg
ignuplot
:ffmpeg -f lavfi -i color -vf curves=cross_process:plot=/tmp/curves.plt -frames:v 1 -f null - gnuplot -p /tmp/curves.plt
11.48 datascope
Filtr analizy danych wideo.
Ten filtr pokazuje szesnastkowe wartości pikseli części wideo.
Filtr akceptuje następujące opcje:
size, s
Ustaw wyjściowy rozmiar wideo.
x
Ustaw przesunięcie x od miejsca pobrania pikseli.
y
Ustaw przesunięcie y od miejsca pobrania pikseli.
mode
Ustaw tryb zakresu, może być jednym z następujących:
- '
mono
' Narysuj szesnastkowe wartości pikseli z białym kolorem na czarnym tle.
- '
color
' Narysuj szesnastkowe wartości pikseli z kolorem piksela wejściowego wideo na czarnym tle.
- '
color2
' Rysuj szesnastkowe wartości pikseli na kolorowym tle pobranym z wejściowego wideo, kolor tekstu jest wybierany w taki sposób, aby był zawsze widoczny.
- '
axis
Narysuj numery wierszy i kolumn po lewej i u góry wideo.
opacity
Ustaw krycie tła.
format
Ustaw format wyświetlanych liczb. Może być
hex
, lubdec
. Wartość domyślna tohex
.components
Ustaw komponenty pikseli do wyświetlenia. Domyślnie wyświetlane są wszystkie składniki pikseli.
11.48.1 Commands
Ten filtr obsługuje te same polecenia, co opcje wykluczające size
opcję.
11.49 dblur
Zastosuj filtr Rozmycie kierunkowe.
Filtr akceptuje następujące opcje:
angle
Ustaw kąt rozmycia kierunkowego. Wartość domyślna to
45
.radius
Ustaw promień rozmycia kierunkowego. Wartość domyślna to
5
.planes
Ustaw samoloty do filtrowania. Domyślnie filtrowane są wszystkie samoloty.
11.49.1 Commands
Ten filtr obsługuje te same polecenia, co opcje. Polecenie akceptuje tę samą składnię odpowiedniej opcji.
Jeśli podane wyrażenie jest niepoprawne, jest zachowywane z bieżącą wartością.
11.50 dctdnoiz
Odszumianie ramek przy użyciu 2D DCT (filtrowanie w domenie częstotliwości).
Ten filtr nie jest przeznaczony do pracy w czasie rzeczywistym.
Filtr akceptuje następujące opcje:
sigma, s
Ustaw stałą sigma szumu.
Definiuje
sigma
to twardy próg3 * sigma
; każdy współczynnik DCT (wartość bezwzględna) poniżej tego progu zostanie usunięty.Jeśli potrzebujesz bardziej zaawansowanego filtrowania, zobacz
expr
.Wartość domyślna to
0
.overlap
Ustaw liczbę nakładających się pikseli dla każdego bloku. Ponieważ filtr może być powolny, warto zmniejszyć tę wartość kosztem mniej skutecznego filtra i ryzyka różnych artefaktów.
Jeśli nakładająca się wartość nie pozwala na przetwarzanie całej wejściowej szerokości lub wysokości, zostanie wyświetlone ostrzeżenie i odpowiednie obramowania nie będą odszumiane.
Wartość domyślna to
blocksize
-1, co jest najlepszym możliwym ustawieniem.expr, e
Ustaw wyrażenie współczynnika współczynnika.
Dla każdego współczynnika bloku DCT to wyrażenie będzie oceniane jako wartość mnożnika dla współczynnika.
Jeśli ta opcja jest ustawiona,
sigma
opcja zostanie zignorowana.Dostęp do wartości bezwzględnej współczynnika można uzyskać poprzez
c
zmienną.n
Ustaw przy
blocksize
użyciu liczby bitów. definiuje , czyli szerokość i wysokość przetwarzanych bloków.1<<
n
blocksize
Wartość domyślna to
3
(8x8) i może zostać podniesiona do4
16x16blocksize
. Pamiętaj, że zmiana tego ustawienia ma ogromne konsekwencje dla szybkości przetwarzania. Ponadto większy rozmiar bloku niekoniecznie oznacza lepsze usuwanie szumów.
11.50.1 Examples
Zastosuj odszumianie za pomocąsigma
z 4.5
:
dctdnoiz=4.5
Tę samą operację można osiągnąć za pomocą systemu ekspresyjnego:
dctdnoiz=e='gte(c, 4.5*3)'
Gwałtowny odgłos przy użyciu bloku o rozmiarze 16x16
:
dctdnoiz=15:n=4
11.51 deband
Usuń artefakty pasm z wejściowego wideo. Działa poprzez zastąpienie pikseli w pasmach średnią wartością pikseli, do których się odnosi.
Filtr akceptuje następujące opcje:
1thr
2thr
3thr
4thr
Ustaw próg wykrywania pasm dla każdej płaszczyzny. Wartość domyślna to 0,02. Prawidłowy zakres to 0,00003 do 0,5. Jeśli różnica między bieżącym pikselem a pikselem odniesienia jest mniejsza niż próg, zostanie on uznany za pasmowy.
range, r
Zakres wykrywania prążków w pikselach. Domyślnie 16. Jeśli jest dodatnia, zostanie użyta liczba losowa z zakresu od 0 do ustawionej wartości. Jeśli jest ujemna, zostanie użyta dokładna wartość bezwzględna. Zakres określa kwadrat czterech pikseli wokół bieżącego piksela.
direction, d
Ustaw kierunek w radianach, z którego będą porównywane cztery piksele. Jeśli jest dodatni, wybrany zostanie losowy kierunek od 0 do ustawionego kierunku. Jeśli jest ujemna, zostanie wybrana dokładna wartość bezwzględna. Na przykład kierunek 0, -PI lub -2*PI radiany wybierze tylko piksele w tym samym wierszu, a -PI/2 wybierze tylko piksele z tej samej kolumny.
blur, b
Jeśli ta opcja jest włączona, bieżący piksel jest porównywany ze średnią wartością wszystkich czterech otaczających pikseli. Domyślnie jest włączone. Jeśli wyłączone, bieżący piksel jest porównywany ze wszystkimi czterema otaczającymi pikselami. Piksel jest uważany za pasmowy, jeśli tylko wszystkie cztery różnice z otaczającymi pikselami są mniejsze niż próg.
coupling, c
Jeśli ta opcja jest włączona, bieżący piksel jest zmieniany wtedy i tylko wtedy, gdy wszystkie składowe piksela są pasmowe, np. próg wykrywania pasm jest wyzwalany dla wszystkich składowych koloru. Domyślnie jest wyłączone.
11.51.1 Commands
Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .
11.52 deblock
Usuń blokujące artefakty z wejściowego wideo.
Filtr akceptuje następujące opcje:
filter
Ustaw typ filtra, może być
weak
lubstrong
. Wartość domyślna tostrong
. Kontroluje to, jaki rodzaj odblokowania jest stosowany.block
Ustaw rozmiar bloku, dozwolony zakres to od 4 do 512. Domyślnie jest to
8
.alpha
beta
gamma
delta
Ustaw progi wykrywania blokowania. Dozwolony zakres to 0 do 1. Wartości domyślne to:
0.098
dlaalpha
i0.05
dla reszty. Zastosowanie wyższego progu daje większą siłę odblokowywania. Ustawieniealpha
kontroluje wykrywanie progu na dokładnej krawędzi bloku. Pozostałe opcje sterują wykrywaniem progu w pobliżu krawędzi. Każdy na dole/na górze lub na lewo/prawo. Ustawienie dowolnego z nich na0
wyłącza odblokowywanie.planes
Ustaw samoloty do filtrowania. Domyślnie filtrowane są wszystkie dostępne samoloty.
11.52.1 Examples
- Odblokuj przy użyciu słabego filtra i rozmiaru bloku 4 piksele.
deblock=filter=weak:block=4
- Odblokuj przy użyciu silnego filtra, rozmiaru bloku 4 piksele i niestandardowych progów dla odblokowania większej liczby krawędzi.
deblock=filter=strong:block=4:alpha=0.12:beta=0.07:gamma=0.06:delta=0.05
- Podobnie jak powyżej, ale filtruj tylko pierwszą płaszczyznę.
deblock=filter=strong:block=4:alpha=0.12:beta=0.07:gamma=0.06:delta=0.05:planes=1
- Podobnie jak powyżej, ale filtruj tylko drugą i trzecią płaszczyznę.
deblock=filter=strong:block=4:alpha=0.12:beta=0.07:gamma=0.06:delta=0.05:planes=6
11.52.2 Commands
Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .
11.53 decimate
Upuszczaj zduplikowane klatki w regularnych odstępach czasu.
Filtr akceptuje następujące opcje:
cycle
Ustaw liczbę klatek, z których jedna zostanie usunięta. Ustawienie tego na
N
oznacza, że ​​jedna ramka z każdej partiiN
ramek zostanie pominięta. Wartość domyślna to5
.dupthresh
Ustaw próg wykrywania duplikatów. Jeśli metryka różnicy dla ramki jest mniejsza lub równa tej wartości, jest ona deklarowana jako duplikat. Wartość domyślna to
1.1
scthresh
Ustaw próg zmiany sceny. Wartość domyślna to
15
.blockx
blocky
Ustaw rozmiar bloków osi x i y używanych podczas obliczeń metrycznych. Większe bloki dają lepsze tłumienie szumów, ale też gorsze wykrywanie małych ruchów. Musi być potęgą dwójki. Wartość domyślna to
32
.ppsrc
Oznacz wejście główne jako wejście wstępnie przetworzone i aktywuj czysty strumień wejściowy. Pozwala to na wstępne przetwarzanie danych wejściowych za pomocą różnych filtrów, aby pomóc w obliczeniach metryk przy jednoczesnym zachowaniu bezstratnego wyboru klatek. Po ustawieniu
1
na pierwszy strumień jest przeznaczony dla wstępnie przetworzonych danych wejściowych, a drugi strumień jest czystym źródłem, z którego wybierane są zachowane ramki. Wartość domyślna to0
.chroma
Określ, czy w obliczeniach metrycznych ma być uwzględniana barwa. Wartość domyślna to
1
.
11.54 deconvolve
Zastosuj dekonwolucję 2D strumienia wideo w domenie częstotliwości, używając drugiego strumienia jako impulsu.
Filtr akceptuje następujące opcje:
planes
Ustaw samoloty do przetworzenia.
impulse
Ustaw, które impulsowe klatki wideo będą przetwarzane, może być
first
luball
. Wartość domyślna toall
.noise
Ustaw hałas podczas dzielenia. Wartość domyślna to
0.0000001
. Przydatne, gdy szerokość i wysokość nie są takie same, a nie moc 2 lub jeśli strumień przed zwijaniem miał szum.
Filtr deconvolve
obsługuje również opcje framesync .
11.55 dedot
Zmniejsz krzyżową luminancję (pełzanie kropek) i krzyżowanie kolorów (tęcze) ​​z wideo.
Akceptuje następujące opcje:
m
Ustaw tryb pracy. Może być połączeniem
dotcrawl
do redukcji krzyżowej luminancji i/lubrainbows
do redukcji krzyżowych kolorów.lt
Ustaw próg przestrzennej jasności. Niższe wartości zwiększają redukcję luminancji krzyżowej.
tl
Ustaw tolerancję dla światła skroniowego. Wyższe wartości zwiększają redukcję luminancji krzyżowej.
tc
Ustaw tolerancję na czasową zmienność barwy. Wyższe wartości zwiększają redukcję przebarwień.
ct
Ustaw czasowy próg chrominancji. Niższe wartości zwiększają redukcję przebarwień.
11.56 deflate
Zastosuj efekt deflacji do wideo.
Filtr ten zastępuje piksel średnią lokalną (3x3), biorąc pod uwagę tylko wartości niższe niż piksel.
Akceptuje następujące opcje:
threshold0
threshold1
threshold2
threshold3
Ogranicz maksymalną zmianę dla każdej płaszczyzny, domyślnie 65535. Jeśli 0, płaszczyzna pozostanie niezmieniona.
11.56.1 Commands
Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .
11.57 deflicker
Usuń czasowe różnice w luminancji ramki.
Akceptuje następujące opcje:
size, s
Ustaw rozmiar filtra średniej ruchomej w ramkach. Wartość domyślna to 5. Dozwolony zakres to 2–129.
mode, m
Ustaw tryb uśredniania, aby wygładzić czasowe zmiany luminancji.
Dostępne wartości to:
- '
am
' Średnia arytmetyczna
- '
gm
' Średnia geometryczna
- '
hm
' Średnia harmoniczna
- '
qm
' Średnia kwadratowa
- '
cm
' Średnia sześcienna
- '
pm
' Moc średnia
- '
median
' Mediana
- '
bypass
Nie modyfikuj ramy. Przydatne, gdy ktoś potrzebuje tylko metadanych.
11.58 dejudder
Usuń drgania powodowane przez częściowo przeplatane treści telecine.
Judder można wywołać np . filtrem pullup . Jeśli oryginalne źródło było częściowo ztelecinowaną treścią, wyjście pullup,dejudder
będzie miało zmienną szybkość klatek. Może zmienić zarejestrowaną liczbę klatek na sekundę w kontenerze. Poza tą zmianą ten filtr nie wpłynie na wideo ze stałą liczbą klatek na sekundę.
Opcja dostępna w tym filtrze to:
cycle
Określ długość okna, nad którym powtarza się drganie.
Akceptuje dowolną liczbę całkowitą większą niż 1. Przydatnymi wartościami są:
- '
4
' Jeśli oryginał był telecine od 24 do 30 fps (Film do NTSC).
- '
5
' Jeśli oryginał był telecine od 25 do 30 fps (PAL do NTSC).
- '
20
' Jeśli mieszanka tych dwóch.
Wartość domyślna to „
4
„.- '
11.59 delogo
Pomiń logo stacji telewizyjnej przez prostą interpolację otaczających pikseli. Wystarczy ustawić prostokąt zakrywający logo i patrzeć, jak znika (a czasami pojawia się coś jeszcze brzydszego - Twój przebieg może się różnić).
Przyjmuje następujące parametry:
x
y
Określ współrzędne lewego górnego rogu logo. Muszą być określone.
w
h
Określ szerokość i wysokość logo do wyczyszczenia. Muszą być określone.
show
Po ustawieniu na 1, na ekranie jest rysowany zielony prostokąt, aby uprościć znajdowanie właściwych parametrów
x
,y
,w
ih
. Wartość domyślna to 0.Prostokąt jest rysowany na skrajnych pikselach, które zostaną (częściowo) zastąpione wartościami interpolowanymi. Wartości następnych pikseli bezpośrednio poza tym prostokątem w każdym kierunku zostaną użyte do obliczenia interpolowanych wartości pikseli wewnątrz prostokąta.
11.59.1 Examples
- Ustaw prostokąt obejmujący obszar o współrzędnych lewego górnego rogu 0,0 i rozmiarze 100x77:
delogo=x=0:y=0:w=100:h=77
11.60 derain
Usuń deszcz z obrazu wejściowego/wideo, stosując metody derain oparte na splotowych sieciach neuronowych. Obsługiwane modele:
- Sieć agregacji kontekstu cyklicznego ściskania i wzbudzania (RESCAN). Zobacz http://openaccess.thecvf.com/content_ECCV_2018/papers/Xia_Li_Recurrent_Squeeze-and-Excitation_Context_ECCV_2018_paper.pdf .
Szkolenie oraz skrypty generowania modeli znajdują się w repozytorium pod adresem https://github.com/XueweiMeng/derain_filter.git .
Pliki modeli natywnych (.model) można generować z plików modeli TensorFlow (.pb) za pomocą tools/python/convert.py
Filtr akceptuje następujące opcje:
filter_type
Określ, którego filtra użyć. Ta opcja akceptuje następujące wartości:
- '
derain
' Opróżnij filtr. Aby przeprowadzić filtr odwadniający, musisz użyć modelu odpływowego.
- '
dehaze
' Filtr usuwający mgłę. Aby przeprowadzić filtr dehaze, musisz użyć modelu dehaze.
Wartość domyślna to '
derain
„.- '
dnn_backend
Określ backend DNN, który ma być używany do ładowania i wykonywania modelu. Ta opcja akceptuje następujące wartości:
- '
native
' Natywna implementacja ładowania i wykonywania DNN.
- '
tensorflow
' Zaplecze TensorFlow. Aby włączyć ten backend, musisz zainstalować bibliotekę TensorFlow for C (zobacz https://www.tensorflow.org/install/lang_c ) i skonfigurować FFmpeg za pomocą
--enable-libtensorflow
Wartość domyślna to '
native
„.- '
model
Ustaw ścieżkę do pliku modelu określając architekturę sieci i jej parametry. Pamiętaj, że różne backendy używają różnych formatów plików. TensorFlow i natywny backend mogą ładować pliki tylko w swoim formacie.
Aby uzyskać pełną funkcjonalność (np. wykonywanie asynchroniczne), użyj filtra dnn_processing .
11.61 deshake
Spróbuj naprawić małe zmiany w przesunięciu w poziomie i/lub w pionie. Ten filtr pomaga usunąć drgania aparatu podczas trzymania aparatu za rękę, uderzania w statyw, poruszania się po pojeździe itp.
Filtr akceptuje następujące opcje:
x
y
w
h
Określ prostokątny obszar, w którym można ograniczyć wyszukiwanie wektorów ruchu. W razie potrzeby wyszukiwanie wektorów ruchu można ograniczyć do prostokątnego obszaru ramy zdefiniowanego przez jego lewy górny róg, szerokość i wysokość. Te parametry mają takie samo znaczenie jak filtr Drawbox, który może być użyty do wizualizacji położenia ramki ograniczającej.
Jest to przydatne, gdy jednoczesny ruch obiektów w kadrze może zostać pomylony z ruchem kamery przez wyszukiwanie wektora ruchu.
Jeśli którykolwiek lub wszystkie z
x
, i są ustawione na -1, używana jest pełna klatkay
. Pozwala to na ustawienie późniejszych opcji bez określania obwiedni dla wyszukiwania wektora ruchu.w
h
Domyślne - przeszukaj całą klatkę.
rx
ry
Określ maksymalny zakres ruchu w kierunkach x i y w zakresie 0-64 pikseli. Domyślnie 16.
edge
Określ sposób generowania pikseli w celu wypełnienia pustych miejsc na krawędzi ramki. Dostępne wartości to:
- '
blank, 0
' Wypełnij zera w pustych miejscach
- '
original, 1
' Oryginalny obraz w pustych lokalizacjach
- '
clamp, 2
' Wyciągnięta wartość krawędzi w pustych miejscach
- '
mirror, 3
' Lustrzana krawędź w pustych miejscach
Wartość domyślna to '
mirror
„.- '
blocksize
Określ rozmiar bloku, który ma być używany do wyszukiwania ruchu. Zakres 4-128 pikseli, domyślnie 8.
contrast
Określ próg kontrastu dla bloków. Tylko bloki z kontrastem większym niż określony (różnica między najciemniejszymi i najjaśniejszymi pikselami) będą brane pod uwagę. Zakres 1-255, domyślnie 125.
search
Określ strategię wyszukiwania. Dostępne wartości to:
- '
exhaustive, 0
' Ustaw wyczerpujące wyszukiwanie
- '
less, 1
' Ustaw mniej wyczerpujące wyszukiwanie.
Wartość domyślna to '
exhaustive
„.- '
filename
Jeśli jest ustawiona, do określonego pliku zostanie zapisany szczegółowy dziennik wyszukiwania ruchu.
11.62 despill
Usuń niechciane zanieczyszczenia kolorów pierwszego planu, spowodowane przez odbity kolor zielonego lub niebieskiego ekranu.
Ten filtr akceptuje następujące opcje:
type
Ustaw typ destylatu, którego chcesz użyć.
mix
Ustaw sposób generowania mapy rozlewania.
expand
Ustaw, ile chcesz pozbyć się pozostałego rozlania.
red
Kontroluje ilość czerwieni w obszarze rozlania.
green
Kontroluje ilość zieleni w obszarze rozlania. Powinno wynosić -1 dla zielonego ekranu.
blue
Kontroluje ilość błękitu w obszarze rozlania. Powinno wynosić -1 dla niebieskiego ekranu.
brightness
Kontroluje jasność obszaru rozlania, zachowując kolory.
alpha
Zmodyfikuj alfa z wygenerowanej mapy rozlewania.
11.62.1 Commands
Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .
11.63 detelecine
Zastosuj dokładną odwrotność operacji telecine. Wymaga predefiniowanego wzorca określonego za pomocą opcji wzorca, który musi być taki sam, jak ten przekazany do filtru telecine.
Ten filtr akceptuje następujące opcje:
first_field
- '
top, t
' najpierw górne pole
- '
bottom, b
' najpierw dolne pole Wartość domyślna to
top
.
- '
pattern
Ciąg liczb reprezentujący wzór rozwijany, który chcesz zastosować. Wartość domyślna to
23
.start_frame
Liczba reprezentująca pozycję pierwszej ramki w odniesieniu do wzorca telecine. Ma to być używane, jeśli strumień jest odcinany. Wartość domyślna to
0
.
11.64 dilation
Zastosuj efekt dylatacji do wideo.
Ten filtr zastępuje piksel przez maksimum lokalne (3x3).
Akceptuje następujące opcje:
threshold0
threshold1
threshold2
threshold3
Ogranicz maksymalną zmianę dla każdej płaszczyzny, domyślnie 65535. Jeśli 0, płaszczyzna pozostanie niezmieniona.
coordinates
Flaga określająca piksel, do którego ma się odnosić. Wartość domyślna to 255, tzn. używane są wszystkie osiem pikseli.
Flagi do lokalnych map ze współrzędnymi 3x3 w następujący sposób:
1 2 3 4 5 6 7 8
11.64.1 Commands
Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .
11.65 displace
Przesuwaj piksele, jak wskazuje drugi i trzeci strumień wejściowy.
Pobiera trzy strumienie wejściowe i wyprowadza jeden strumień, pierwsze wejście to źródło, a drugie i trzecie wejście to mapy przemieszczeń.
Drugie dane wejściowe określają, o ile mają przesunąć piksele wzdłuż osi x, a trzecie dane wejściowe określają, jak bardzo mają zostać przesunięte piksele wzdłuż osi y. Jeśli jeden ze strumieni mapy przemieszczeń zakończy się, zostanie użyta ostatnia ramka z tej mapy przemieszczeń.
Zauważ, że raz wygenerowane mapy przemieszczeń mogą być wielokrotnie używane.
Poniżej znajduje się opis akceptowanych opcji.
edge
Ustaw zachowanie przemieszczenia dla pikseli, które są poza zasięgiem.
Dostępne wartości to:
- '
blank
' Brakujące piksele są zastępowane czarnymi pikselami.
- '
smear
' Sąsiednie piksele rozłożą się, aby zastąpić brakujące piksele.
- '
wrap
' Piksele spoza zakresu są zawijane tak, aby wskazywały na piksele po drugiej stronie.
- '
mirror
' Piksele spoza zakresu zostaną zastąpione pikselami lustrzanymi.
Wartość domyślna to '
smear
„.- '
11.65.1 Examples
- Dodaj efekt tętnienia do wejścia rgb o rozmiarze wideo hd720:
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
- Dodaj efekt fali do wejścia rgb o rozmiarze wideo hd720:
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.66 dnn_classify
Wykonaj klasyfikację za pomocą głębokich sieci neuronowych na podstawie ramek ograniczających.
Filtr akceptuje następujące opcje:
dnn_backend
Określ backend DNN, który ma być używany do ładowania i wykonywania modelu. Ta opcja akceptuje teraz tylko openvino, zostaną dodane backendy tensorflow.
model
Ustaw ścieżkę do pliku modelu określając architekturę sieci i jej parametry. Pamiętaj, że różne backendy używają różnych formatów plików.
input
Ustaw nazwę wejściową sieci dnn.
output
Ustaw nazwę wyjściową sieci dnn.
confidence
Ustaw próg ufności (domyślnie: 0,5).
labels
Ustaw ścieżkę do pliku etykiety, określając mapowanie między identyfikatorem etykiety a nazwą. Każda nazwa etykiety jest zapisana w jednym wierszu, odstępy końcowe i puste wiersze są pomijane. Pierwszy wiersz to nazwa id etykiety 0, a drugi wiersz to nazwa id etykiety 1 itd. Identyfikator etykiety jest uważany za nazwę, jeśli nie podano pliku etykiety.
backend_configs
Ustaw konfiguracje, które mają być przekazywane do backendu
W przypadku backendu tensorflow możesz ustawić jego konfiguracje za pomocą
sess_config
opcji, użyj tools/python/tf_sess_config.py, aby pobrać konfiguracje dla swojego systemu.
11.67 dnn_detect
Wykrywaj obiekty za pomocą głębokich sieci neuronowych.
Filtr akceptuje następujące opcje:
dnn_backend
Określ backend DNN, który ma być używany do ładowania i wykonywania modelu. Ta opcja akceptuje teraz tylko openvino, zostaną dodane backendy tensorflow.
model
Ustaw ścieżkę do pliku modelu określając architekturę sieci i jej parametry. Pamiętaj, że różne backendy używają różnych formatów plików.
input
Ustaw nazwę wejściową sieci dnn.
output
Ustaw nazwę wyjściową sieci dnn.
confidence
Ustaw próg ufności (domyślnie: 0,5).
labels
Ustaw ścieżkę do pliku etykiety, określając mapowanie między identyfikatorem etykiety a nazwą. Każda nazwa etykiety jest zapisana w jednym wierszu, odstępy końcowe i puste wiersze są pomijane. Pierwsza linia to nazwa id etykiety 0 (zazwyczaj jest to 'tło'), a druga linia to nazwa id etykiety 1 itd. Identyfikator etykiety jest uważany za nazwę, jeśli plik etykiety nie jest dostarczony.
backend_configs
Ustaw konfiguracje, które mają być przekazywane do backendu. Aby użyć wykonywania asynchronicznego, ustaw asynchroniczne (domyślnie: set). Cofnij, aby wykonać synchronizację, jeśli backend nie obsługuje asynchronii.
11.68 dnn_processing
Przetwarzaj obrazy za pomocą głębokich sieci neuronowych. Współpracuje z innym filtrem, który konwertuje format pikseli ramki na wymagany przez sieć dnn.
Filtr akceptuje następujące opcje:
dnn_backend
Określ backend DNN, który ma być używany do ładowania i wykonywania modelu. Ta opcja akceptuje następujące wartości:
- '
native
' Natywna implementacja ładowania i wykonywania DNN.
- '
tensorflow
' Zaplecze TensorFlow. Aby włączyć ten backend, musisz zainstalować bibliotekę TensorFlow for C (zobacz https://www.tensorflow.org/install/lang_c ) i skonfigurować FFmpeg za pomocą
--enable-libtensorflow
- '
openvino
' Zaplecze OpenVINO. Aby włączyć ten backend, musisz zbudować i zainstalować bibliotekę OpenVINO for C (zobacz https://github.com/openvinotoolkit/openvino/blob/master/build-instruction.md ) i skonfigurować FFmpeg za pomocą
--enable-libopenvino
(–extra-cflags=- I... –extra-ldflags=-L... może być potrzebne, jeśli pliki nagłówkowe i biblioteki nie są zainstalowane w ścieżce systemowej)
Wartość domyślna to '
native
„.- '
model
Ustaw ścieżkę do pliku modelu określając architekturę sieci i jej parametry. Pamiętaj, że różne backendy używają różnych formatów plików. TensorFlow, OpenVINO i natywny backend mogą ładować pliki tylko dla swojego formatu.
Plik modelu natywnego (.model) można wygenerować z pliku modelu TensorFlow (.pb) za pomocą narzędzi/python/convert.py
input
Ustaw nazwę wejściową sieci dnn.
output
Ustaw nazwę wyjściową sieci dnn.
backend_configs
Ustaw konfiguracje, które mają być przekazywane do backendu. Aby użyć wykonywania asynchronicznego, ustaw asynchroniczne (domyślnie: set). Cofnij, aby wykonać synchronizację, jeśli backend nie obsługuje asynchronii.
W przypadku backendu tensorflow możesz ustawić jego konfiguracje za pomocą
sess_config
opcji, użyj tools/python/tf_sess_config.py, aby uzyskać konfiguracje backendu TensorFlow dla Twojego systemu.
11.68.1 Examples
- Usuń deszcz w ramce rgb24 za pomocą can.pb (patrz filtr odwadniający ):
./ffmpeg -i rain.jpg -vf format=rgb24,dnn_processing=dnn_backend=tensorflow:model=can.pb:input=x:output=y derain.jpg
- Zmniejsz o połowę wartość piksela ramki w formacie gray32f:
ffmpeg -i input.jpg -vf format=grayf32,dnn_processing=model=halve_gray_float.model:input=dnn_in:output=dnn_out:dnn_backend=native -y out.native.png
- Obsłuż kanał Y za pomocą srcnn.pb (patrz filtr sr ) dla ramki z yuv420p (obsługiwane planarne formaty YUV):
./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
- Obsługuj kanał Y za pomocą espcn.pb (patrz filtr sr ), który zmienia rozmiar ramki, dla formatu yuv420p (obsługiwane planarne formaty YUV), użyj tools/python/tf_sess_config.py, aby uzyskać konfiguracje backendu TensorFlow dla twojego systemu.
./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.69 drawbox
Narysuj kolorowe pole na obrazie wejściowym.
Przyjmuje następujące parametry:
x
y
Wyrażenia określające współrzędne lewego górnego rogu pudełka. Domyślnie jest to 0.
width, w
height, h
Wyrażenia określające szerokość i wysokość pudełka; jeśli 0 są interpretowane jako szerokość i wysokość wejściowa. Domyślnie jest to 0.
color, c
Określ kolor pola do pisania. Aby uzyskać ogólną składnię tej opcji, sprawdź sekcję (ffmpeg-utils)"Color" w podręczniku ffmpeg-utils . Jeśli użyto wartości specjalnej
invert
, kolor krawędzi pola jest taki sam, jak w przypadku wideo z odwróconą jasnością.thickness, t
Wyrażenie określające grubość krawędzi pudełka. Wartość
fill
spowoduje utworzenie wypełnionego pola. Wartość domyślna to3
.Zobacz poniżej listę akceptowanych stałych.
replace
Ma zastosowanie, jeśli wejście ma alfa. W przypadku wartości
1
piksele pomalowanego pola zastąpią kolor i piksele alfa wideo. Wartość domyślna to0
, która łączy pole z wejściem, pozostawiając nienaruszoną alfa wideo.
Parametry dla x
, y
i w
i h
są t
wyrażeniami zawierającymi następujące stałe:
dar
Proporcje obrazu wejściowego są takie same jak (
w
/h
) *sar
.hsub
vsub
wartości podpróbki chrominancji poziomej i pionowej. Na przykład dla formatu piksela „yuv422p”
hsub
to 2 ivsub
1.in_h, ih
in_w, iw
Wejściowa szerokość i wysokość.
sar
Wejściowy współczynnik proporcji próbki.
x
y
Współrzędne przesunięcia x i y, w którym narysowane jest pudełko.
w
h
Szerokość i wysokość narysowanego pudełka.
box_source
Źródło skrzynki można ustawić jako side_data_detection_bboxes, jeśli chcesz używać danych skrzynki w polach wykrywania danych pobocznych.
Jeśli
box_source
jest ustawione,x
,y
iwidth
będąheight
ignorowane i nadal będą używać danych w polach wykrywania danych pobocznych. Dlatego proszę nie używać tego parametru, jeśli nie jesteś pewien źródła pudełka.t
Grubość narysowanego pudełka.
Te stałe pozwalają wyrażeniom , , i
x
odwoływaćy
sięw
do siebie, więc możesz na przykład określić lub .h
t
y=x/dar
h=w/dar
11.69.1 Examples
- Narysuj czarną ramkę wokół krawędzi obrazu wejściowego:
drawbox
- Narysuj pudełko w kolorze czerwonym i stopniu krycia 50%:
drawbox=10:20:200:60:red@0.5
Poprzedni przykład można określić jako:
drawbox=x=10:y=20:w=200:h=60:color=red@0.5
- Wypełnij pudełko różowym kolorem:
drawbox=x=10:y=10:w=100:h=100:color=pink@0.5:t=fill
- Narysuj 2-pikselową czerwoną maskę 2,40:1:
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.69.2 Commands
Ten filtr obsługuje te same polecenia, co opcje. Polecenie akceptuje tę samą składnię odpowiedniej opcji.
Jeśli podane wyrażenie jest niepoprawne, jest zachowywane z bieżącą wartością.
11.70 drawgraph
Narysuj wykres za pomocą wejściowych metadanych wideo.
Przyjmuje następujące parametry:
m1
Ustaw klucz metadanych pierwszej klatki, z którego wartości metadanych będą używane do rysowania wykresu.
fg1
Ustaw pierwsze wyrażenie koloru pierwszego planu.
m2
Ustaw klucz metadanych drugiej klatki, z którego wartości metadanych będą używane do rysowania wykresu.
fg2
Ustaw drugie wyrażenie koloru pierwszego planu.
m3
Ustaw klucz metadanych trzeciej klatki, z którego wartości metadanych będą używane do rysowania wykresu.
fg3
Ustaw trzecią ekspresję koloru pierwszego planu.
m4
Ustaw czwarty klucz metadanych ramki, z którego wartości metadanych będą używane do rysowania wykresu.
fg4
Ustaw czwarte wyrażenie koloru pierwszego planu.
min
Ustaw minimalną wartość wartości metadanych.
max
Ustaw maksymalną wartość wartości metadanych.
bg
Ustaw kolor tła wykresu. Domyślnie jest biały.
mode
Ustaw tryb wykresu.
Dostępne wartości dla trybu to:
- '
bar
' - '
dot
' - '
line
'
Wartość domyślna to
line
.- '
slide
Ustaw tryb slajdów.
Dostępne wartości dla slajdu to:
- '
frame
' Narysuj nową ramkę po osiągnięciu prawej granicy.
- '
replace
' Wymień stare kolumny na nowe.
- '
scroll
' Przewiń od prawej do lewej.
- '
rscroll
' Przewiń od lewej do prawej.
- '
picture
' Narysuj pojedynczy obrazek.
Wartość domyślna to
frame
.- '
size
Ustaw rozmiar wideo wykresu. Aby poznać składnię tej opcji, sprawdź sekcję (ffmpeg-utils)"Rozmiar wideo" w podręczniku ffmpeg-utils . Wartość domyślna to
900x256
.rate, r
Ustaw wyjściową liczbę klatek na sekundę. Wartość domyślna to
25
.Wyrażenia koloru pierwszego planu mogą używać następujących zmiennych:
MIN
Minimalna wartość wartości metadanych.
MAX
Maksymalna wartość wartości metadanych.
VAL
Bieżąca wartość klucza metadanych.
Kolor jest zdefiniowany jako 0xAABBGGRR.
Przykład użycia metadanych z filtra signalstats :
signalstats,drawgraph=lavfi.signalstats.YAVG:min=0:max=255
Przykład użycia metadanych z filtra ebur128 :
ebur128=metadata=1,adrawgraph=lavfi.r128.M:min=-120:max=5
11.71 drawgrid
Narysuj siatkę na obrazie wejściowym.
Przyjmuje następujące parametry:
x
y
Wyrażenia określające współrzędne pewnego punktu przecięcia siatki (służą do skonfigurowania odsunięcia). Oba domyślnie mają wartość 0.
width, w
height, h
Wyrażenia określające szerokość i wysokość komórki siatki, jeśli 0 są interpretowane jako odpowiednio szerokość i wysokość wejściowa, minus
thickness
, więc obraz zostaje obramowany. Domyślnie 0.color, c
Określ kolor siatki. Aby uzyskać ogólną składnię tej opcji, sprawdź sekcję (ffmpeg-utils)"Color" w podręczniku ffmpeg-utils . Jeśli używana jest wartość specjalna
invert
, kolor siatki jest taki sam, jak w przypadku wideo z odwróconą jasnością.thickness, t
Wyrażenie określające grubość linii siatki. Wartość domyślna to
1
.Zobacz poniżej listę akceptowanych stałych.
replace
Ma zastosowanie, jeśli wejście ma alfa. Z
1
pikselami namalowanej siatki nadpiszą kolor wideo i piksele alfa. Wartość domyślna to0
, która łączy siatkę z wejściem, pozostawiając nienaruszone alfa wideo.
Parametry dla x
, y
i w
i h
są t
wyrażeniami zawierającymi następujące stałe:
dar
Proporcje obrazu wejściowego są takie same jak (
w
/h
) *sar
.hsub
vsub
wartości podpróbki chrominancji poziomej i pionowej. Na przykład dla formatu piksela „yuv422p”
hsub
to 2 ivsub
1.in_h, ih
in_w, iw
Wejściowa szerokość i wysokość komórki siatki.
sar
Wejściowy współczynnik proporcji próbki.
x
y
Współrzędne x i y pewnego punktu przecięcia siatki (ma na celu skonfigurowanie odsunięcia).
w
h
Szerokość i wysokość narysowanej komórki.
t
Grubość narysowanej komórki.
Te stałe pozwalają wyrażeniom , , i
x
odwoływaćy
sięw
do siebie, więc możesz na przykład określić lub .h
t
y=x/dar
h=w/dar
11.71.1 Examples
- Narysuj siatkę z komórką 100x100 pikseli, grubość 2 piksele, kolorem czerwonym i kryciem 50%:
drawgrid=width=100:height=100:thickness=2:color=red@0.5
- Narysuj białą siatkę 3x3 z kryciem 50%:
drawgrid=w=iw/3:h=ih/3:t=2:c=white@0.5
11.71.2 Commands
Ten filtr obsługuje te same polecenia, co opcje. Polecenie akceptuje tę samą składnię odpowiedniej opcji.
Jeśli podane wyrażenie jest niepoprawne, jest zachowywane z bieżącą wartością.
11.72 drawtext
Narysuj ciąg tekstowy lub tekst z określonego pliku na górze wideo, korzystając z biblioteki libfreetype.
Aby umożliwić kompilację tego filtra, musisz skonfigurować FFmpeg za pomocą
--enable-libfreetype
. Aby włączyć domyślną rezerwę czcionki i font
opcję, musisz skonfigurować FFmpeg za pomocą --enable-libfontconfig
. Aby włączyć tę text_shaping
opcję, musisz skonfigurować FFmpeg za pomocą
--enable-libfribidi
.
11.72.1 Syntax
Przyjmuje następujące parametry:
box
Służy do rysowania ramki wokół tekstu przy użyciu koloru tła. Wartość musi wynosić 1 (włącz) lub 0 (wyłącz). Domyślna wartość
box
to 0.boxborderw
Ustaw szerokość obramowania, które ma być narysowane wokół pola za pomocą
boxcolor
. Domyślna wartośćboxborderw
to 0.boxcolor
Kolor, który ma być używany do rysowania ramki wokół tekstu. Aby poznać składnię tej opcji, sprawdź sekcję (ffmpeg-utils)"Color" w podręczniku ffmpeg-utils .
Domyślna wartość
boxcolor
to „biały”.line_spacing
Ustaw odstępy między wierszami w pikselach obramowania, które ma być narysowane wokół ramki za pomocą
box
. Domyślna wartośćline_spacing
to 0.borderw
Ustaw szerokość obramowania, jaka ma być rysowana wokół tekstu za pomocą
bordercolor
. Domyślna wartośćborderw
to 0.bordercolor
Ustaw kolor, który będzie używany do rysowania obramowania wokół tekstu. Aby poznać składnię tej opcji, sprawdź sekcję (ffmpeg-utils)"Color" w podręczniku ffmpeg-utils .
Domyślna wartość
bordercolor
to „czarny”.expansion
Wybierz sposób
text
rozwinięcia. Może byćnone
,strftime
(przestarzałe) lubnormal
(domyślnie). Szczegółowe informacje można znaleźć w sekcji Rozszerzanie tekstu poniżej.basetime
Ustaw czas rozpoczęcia liczenia. Wartość w mikrosekundach. Stosowane tylko w przestarzałym trybie rozwijania strftime. Aby emulować w normalnym trybie rozwinięcia, użyj
pts
funkcji, podając czas rozpoczęcia (w sekundach) jako drugi argument.fix_bounds
Jeśli tak, sprawdź i popraw współrzędne tekstu, aby uniknąć obcinania.
fontcolor
Kolor używany do rysowania czcionek. Aby poznać składnię tej opcji, sprawdź sekcję (ffmpeg-utils)"Color" w podręczniku ffmpeg-utils .
Domyślna wartość
fontcolor
to „czarny”.fontcolor_expr
Ciąg rozwijany w taki sam sposób, jak w
text
celu uzyskaniafontcolor
wartości dynamicznej. Domyślnie ta opcja ma pustą wartość i nie jest przetwarzana. Gdy ta opcja jest ustawiona, zastępuje onafontcolor
opcję.font
Rodzina czcionek, która ma być używana do rysowania tekstu. Domyślnie Sans.
fontfile
Plik czcionki, który ma być używany do rysowania tekstu. Ścieżka musi być uwzględniona. Ten parametr jest obowiązkowy, jeśli obsługa fontconfig jest wyłączona.
alpha
Narysuj tekst, stosując mieszanie alfa. Wartość może być liczbą z zakresu od 0,0 do 1,0. Wyrażenie akceptuje również te same zmienne
x, y
. Wartość domyślna to 1. Zobaczfontcolor_expr
.fontsize
Rozmiar czcionki używany do rysowania tekstu. Domyślna wartość
fontsize
to 16.text_shaping
Jeśli jest ustawiona na 1, spróbuj ukształtować tekst (na przykład odwróć kolejność tekstu od prawej do lewej i połącz znaki arabskie) przed jego narysowaniem. W przeciwnym razie po prostu narysuj tekst dokładnie tak, jak podano. Domyślnie 1 (jeśli jest obsługiwany).
ft_load_flags
Flagi używane do ładowania czcionek.
Flagi mapują odpowiednie flagi obsługiwane przez libfreetype i są kombinacją następujących wartości:
default
no_scale
no_hinting
render
no_bitmap
vertical_layout
force_autohint
crop_bitmap
pedantic
ignore_global_advance_width
no_recurse
ignore_transform
monochrome
linear_design
no_autohint
Wartość domyślna to „domyślna”.
Aby uzyskać więcej informacji, zapoznaj się z dokumentacją dotyczącą flag libfreetype FT_LOAD_*.
shadowcolor
Kolor używany do rysowania cienia za rysowanym tekstem. Aby poznać składnię tej opcji, sprawdź sekcję (ffmpeg-utils)"Color" w podręczniku ffmpeg-utils .
Domyślna wartość
shadowcolor
to „czarny”.shadowx
shadowy
Przesunięcia x i y dla pozycji cienia tekstu w stosunku do pozycji tekstu. Mogą to być wartości dodatnie lub ujemne. Domyślną wartością dla obu jest „0”.
start_number
Początkowy numer klatki dla zmiennej n/frame_num. Wartość domyślna to „0”.
tabsize
Rozmiar w liczbie spacji do wykorzystania do renderowania karty. Wartość domyślna to 4.
timecode
Ustaw początkową reprezentację kodu czasowego w formacie „gg:mm:ss[:;.]ff”. Może być używany z parametrem tekstowym lub bez niego.
timecode_rate
opcja musi być określona.timecode_rate, rate, r
Ustaw szybkość klatek kodu czasowego (tylko kod czasowy). Wartość zostanie zaokrąglona do najbliższej liczby całkowitej. Minimalna wartość to „1”. Kod czasowy drop-frame jest obsługiwany dla szybkości klatek 30 i 60.
tc24hmax
Jeśli jest ustawiony na 1, wyjście opcji kodu czasowego zostanie zawinięte po 24 godzinach. Wartość domyślna to 0 (wyłączone).
text
Ciąg tekstowy do narysowania. Tekst musi być ciągiem znaków zakodowanych w UTF-8. Ten parametr jest obowiązkowy, jeśli w parametrze nie określono żadnego pliku
textfile
.textfile
Plik tekstowy zawierający tekst do narysowania. Tekst musi być ciągiem znaków zakodowanych w UTF-8.
Ten parametr jest obowiązkowy, jeśli w parametrze nie określono żadnego ciągu tekstowego
text
.Jeśli określono oba
text
itextfile
, zostanie zgłoszony błąd.text_source
Źródło tekstu należy ustawić jako side_data_detection_bboxes, jeśli chcesz używać danych tekstowych w polach wykrywania danych pobocznych.
Jeśli ustawiono źródło tekstu,
text
zostanietextfile
ono zignorowane i nadal będzie używać danych tekstowych w polach wykrywania danych pobocznych. Dlatego nie używaj tego parametru, jeśli nie masz pewności co do źródła tekstu.reload
Zostanie
textfile
ponownie załadowany w określonych odstępach czasu. Pamiętaj, aby zaktualizowaćtextfile
atomowo, w przeciwnym razie może zostać odczytany częściowo, a nawet nie powiedzie się. Zakres wynosi od 0 do INT_MAX. Wartość domyślna to 0.x
y
Wyrażenia określające przesunięcia, w których tekst będzie rysowany w ramce wideo. Odnoszą się do górnej/lewej krawędzi obrazu wyjściowego.
Domyślną wartością
x
iy
jest „0”.Zobacz poniżej listę akceptowanych stałych i funkcji.
Parametry dla x
i y
są wyrażeniami zawierającymi następujące stałe i funkcje:
dar
format obrazu wejściowego, taki sam jak (
w
/h
) *sar
hsub
vsub
wartości podpróbki chrominancji poziomej i pionowej. Na przykład dla formatu piksela „yuv422p”
hsub
to 2 ivsub
1.line_h, lh
wysokość każdej linii tekstu
main_h, h, H
wysokość wejściowa
main_w, w, W
szerokość wejściowa
max_glyph_a, ascent
maksymalna odległość od linii bazowej do najwyższej/górnej współrzędnej siatki użytej do umieszczenia punktu zarysu glifu dla wszystkich renderowanych glifów. Jest to wartość dodatnia, ze względu na orientację siatki z osią Y do góry.
max_glyph_d, descent
maksymalna odległość od linii bazowej do najniższej współrzędnej siatki użytej do umieszczenia punktu zarysu glifu dla wszystkich renderowanych glifów. Jest to wartość ujemna, ze względu na orientację siatki, z osią Y do góry.
max_glyph_h
maksymalna wysokość glifu, czyli maksymalna wysokość wszystkich glifów zawartych w renderowanym tekście, jest równoważna
ascent
-descent
.max_glyph_w
maksymalna szerokość glifu, czyli maksymalna szerokość wszystkich glifów zawartych w renderowanym tekście
n
liczba klatek wejściowych, zaczynając od 0
rand(min, max)
zwróć losową liczbę zawartą między
min
imax
sar
Wejściowy współczynnik proporcji próbki.
t
znacznik czasu wyrażony w sekundach, NAN, jeśli wejściowy znacznik czasu jest nieznany
text_h, th
wysokość renderowanego tekstu
text_w, tw
szerokość renderowanego tekstu
x
y
współrzędne przesunięcia x i y, w których rysowany jest tekst.
Te parametry pozwalają wyrażeniom
x
iy
odwoływać się do siebie, więc można na przykład określićy=x/dar
.pict_type
Jednoznakowy opis typu obrazu bieżącej ramki.
pkt_pos
Bieżąca pozycja pakietu w pliku wejściowym lub strumieniu (w bajtach od początku wejścia). Wartość -1 oznacza, że ​​ta informacja jest niedostępna.
pkt_duration
Czas trwania bieżącego pakietu w sekundach.
pkt_size
Bieżący rozmiar pakietu (w bajtach).
11.72.2 Text expansion
Jeśliexpansion
jest ustawiona na strftime
, filtr rozpoznaje sekwencje strftime() w dostarczonym tekście i odpowiednio je rozwija. Sprawdź dokumentację strftime(). Ta funkcja jest przestarzała.
Jeśliexpansion
jest ustawione na none
, tekst jest drukowany dosłownie.
Jeśliexpansion
jest ustawiona na normal
(co jest wartością domyślną), używany jest następujący mechanizm rozszerzania.
Znak odwrotnego ukośnika '\
', po którym następuje dowolny znak, zawsze rozwija się do drugiego znaku.
Rozwijane są sekwencje formularza %{...}
. Tekst w nawiasach klamrowych to nazwa funkcji, po której prawdopodobnie występują argumenty oddzielone znakiem ':'. Jeśli argumenty zawierają znaki specjalne lub ograniczniki (':' lub '}'), należy je zmienić.
Zwróć uwagę, że prawdopodobnie muszą one również zostać zmienione jako wartość dla
text
opcja w łańcuchu argumentów filtru i jako argument filtru w opisie wykresu filtru i ewentualnie także dla powłoki, co daje do czterech poziomów ucieczki; użycie pliku tekstowego pozwala uniknąć tych problemów.
Dostępne są następujące funkcje:
expr, e
Wynik oceny wyrażenia.
Musi przyjąć jeden argument określający wyrażenie do oceny, które akceptuje te same stałe i funkcje co wartości
x
iy
. Zauważ, że nie wszystkie stałe powinny być używane, na przykład rozmiar tekstu nie jest znany podczas oceny wyrażenia, więc stałetext_w
itext_h
będą miały niezdefiniowaną wartość.expr_int_format, eif
Oceń wartość i dane wyjściowe wyrażenia jako sformatowaną liczbę całkowitą.
Pierwszym argumentem jest wyrażenie, które ma zostać ocenione, tak jak w przypadku
expr
funkcji. Drugi argument określa format wyjściowy. Dozwolone wartości to 'x
','X
','d
' oraz 'u
„. Traktowane są dokładnie tak, jak wprintf
funkcji. Trzeci parametr jest opcjonalny i określa liczbę pozycji zajmowanych przez wyjście. Można go użyć do dodania dopełnienia zerami od lewej.gmtime
Czas działania filtra wyrażony w UTC. Może przyjąć argument: ciąg formatu strftime(). Ciąg formatujący został rozszerzony o obsługę zmiennej,
%[1-6]N
która wypisuje ułamki sekundy z opcjonalnie określoną liczbą cyfr.localtime
Czas działania filtra wyrażony w lokalnej strefie czasowej. Może przyjąć argument: ciąg formatu strftime(). Ciąg formatujący został rozszerzony o obsługę zmiennej,
%[1-6]N
która wypisuje ułamki sekundy z opcjonalnie określoną liczbą cyfr.metadata
Metadane ramki. Przyjmuje jeden lub dwa argumenty.
Pierwszy argument jest obowiązkowy i określa klucz metadanych.
Drugi argument jest opcjonalny i określa wartość domyślną, używaną, gdy klucz metadanych nie zostanie znaleziony lub jest pusty.
Dostępne metadane można zidentyfikować, sprawdzając wpisy zaczynające się od TAG zawartego w każdej sekcji ramki wydrukowanej przez uruchomienie
ffprobe -show_frames
.Dostępne są również metadane ciągów generowane w filtrach prowadzących do filtra tekstu rysunkowego.
n, frame_num
Numer klatki, zaczynając od 0.
pict_type
Jednoznakowy opis bieżącego typu obrazu.
pts
Sygnatura czasowa bieżącej klatki. Może zająć do trzech argumentów.
Pierwszym argumentem jest format znacznika czasu; domyślnie jest to
flt
liczba sekund jako liczba dziesiętna z dokładnością do mikrosekundy;hms
oznacza sformatowany[-]HH:MM:SS.mmm
znacznik czasu z dokładnością do milisekund.gmtime
oznacza znacznik czasu ramki sformatowany jako czas UTC;localtime
oznacza znacznik czasu ramki sformatowany jako czas lokalnej strefy czasowej.Drugi argument to offset dodany do znacznika czasu.
Jeśli format jest ustawiony na
hms
, można podać trzeci argument24HH
w celu przedstawienia części godzinowej sformatowanego znacznika czasu w formacie 24-godzinnym (00-23).Jeśli format jest ustawiony na
localtime
lubgmtime
, można podać trzeci argument: ciąg formatu strftime(). DomyślnieYYYY-MM-DD HH:MM:SS
używany będzie format.
11.72.3 Commands
Ten filtr obsługuje zmianę parametrów za pomocą poleceń:
reinit
Zmień istniejące parametry filtra.
Składnia argumentu jest taka sama jak w przypadku wywołania filtra, np.
fontsize=56:fontcolor=green:text='Hello World'
Wywołanie pełnego filtra za pomocą sendcmd wyglądałoby tak:
sendcmd=c='56.0 drawtext reinit fontsize=56\:fontcolor=green\:text=Hello\\ World'
Jeśli cały argument nie może zostać przeanalizowany lub zastosowany jako prawidłowe wartości, filtr będzie kontynuował z istniejącymi parametrami.
11.72.4 Examples
- Narysuj „Test Text” czcionką FreeSerif, używając domyślnych wartości parametrów opcjonalnych.
drawtext="fontfile=/usr/share/fonts/truetype/freefont/FreeSerif.ttf: text='Test Text'"
- Narysuj 'Test Text' czcionką FreeSerif o rozmiarze 24 na pozycji x=100 i y=50 (licząc od lewego górnego rogu ekranu), tekst jest żółty z czerwonym prostokątem wokół niego. Zarówno tekst, jak i ramka mają krycie 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"
Zauważ, że podwójne cudzysłowy nie są konieczne, jeśli spacje nie są używane na liście parametrów.
- Pokaż tekst na środku klatki wideo:
drawtext="fontsize=30:fontfile=FreeSerif.ttf:text='hello world':x=(w-text_w)/2:y=(h-text_h)/2"
- Pokaż tekst w losowej pozycji, przełączając się na nową pozycję co 30 sekund:
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)"
- Pokaż linię tekstu przesuwającą się od prawej do lewej w ostatnim rzędzie klatki wideo. Plik
LONG_LINE
zakłada się, że zawiera pojedynczy wiersz bez nowych wierszy.drawtext="fontsize=15:fontfile=FreeSerif.ttf:text=LONG_LINE:y=h-line_h:x=-50*t"
- Pokaż zawartość pliku
CREDITS
od dołu ramki i przewiń w górę.drawtext="fontsize=20:fontfile=FreeSerif.ttf:textfile=CREDITS:y=h-20*t"
- Narysuj pojedynczą zieloną literę „g” na środku wejściowego wideo. Linia bazowa glifu jest umieszczona na połowie wysokości ekranu.
drawtext="fontsize=60:fontfile=FreeSerif.ttf:fontcolor=green:text=g:x=(w-max_glyph_w)/2:y=h/2-ascent"
- Pokaż tekst przez 1 sekundę co 3 sekundy:
drawtext="fontfile=FreeSerif.ttf:fontcolor=white:x=100:y=x/dar:enable=lt(mod(t\,3)\,1):text='blink'"
- Użyj fontconfig, aby ustawić czcionkę. Zauważ, że dwukropki muszą być pominięte.
drawtext='fontfile=Linux Libertine O-40\:style=Semibold:text=FFmpeg'
- Narysuj „Test testowy” z rozmiarem czcionki zależnym od wysokości filmu.
drawtext="text='Test Text': fontsize=h/30: x=(w-text_w)/2: y=(h-text_h*2)"
- Wydrukuj datę kodowania w czasie rzeczywistym (patrz strftime(3)):
drawtext='fontfile=FreeSans.ttf:text=%{localtime\:%a %b %d %Y}'
- Pokaż pojawianie się i zanikanie tekstu (pojawianie się/znikanie):
#!/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 }"
- Wyrównaj w poziomie wiele oddzielnych tekstów. Zauważ, że
max_glyph_a
ifontsize
wartości są zawarte wy
zrównoważ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
- Wykreśl specjalne
lavf.image2dec.source_basename
metadane na każdą ramkę, jeśli takie metadane istnieją. W przeciwnym razie wykreśl ciąg „NA”. Pamiętaj, że demuxer image2 musi mieć opcję-export_path_metadata 1
aby specjalne pola metadanych były dostępne dla filtrów.drawtext="fontsize=20:fontcolor=white:fontfile=FreeSans.ttf:text='%{metadata\:lavf.image2dec.source_basename\:NA}':x=10:y=10"
Aby uzyskać więcej informacji o libfreetype, odwiedź: http://www.freetype.org/ .
Aby uzyskać więcej informacji o fontconfig, sprawdź: http://freedesktop.org/software/fontconfig/fontconfig-user.html .
Aby uzyskać więcej informacji o libfribidi, odwiedź: http://fribidi.org/ .
11.73 edgedetect
Wykrywaj i rysuj krawędzie. Filtr wykorzystuje algorytm Canny Edge Detection.
Filtr akceptuje następujące opcje:
low
high
Ustaw niskie i wysokie wartości progowe używane przez algorytm progowania Canny.
Wysoki próg wybiera „silne” piksele krawędzi, które są następnie połączone przez 8-łączność z pikselami „słabej” krawędzi wybranymi przez dolny próg.
low
ahigh
wartości progowe muszą być wybrane z zakresu [0,1] ilow
powinny być mniejsze lub równehigh
.Wartość domyślna dla
low
is20/255
, a wartość domyślna dlahigh
is50/255
.mode
Zdefiniuj tryb rysowania.
- '
wires
' Narysuj biało-szare przewody na czarnym tle.
- '
colormix
' Wymieszaj kolory, aby uzyskać efekt farby/kreskówki.
- '
canny
' Zastosuj wykrywacz krawędzi Canny na wszystkich wybranych płaszczyznach.
Wartość domyślna to
wires
.- '
planes
Wybierz samoloty do filtrowania. Domyślnie filtrowane są wszystkie dostępne samoloty.
11.73.1 Examples
- Standardowa detekcja krawędzi z niestandardowymi wartościami progu histerezy:
edgedetect=low=0.1:high=0.4
- Efekt malowania bez progowania:
edgedetect=mode=colormix:high=0
11.74 elbg
Zastosuj efekt posteryzacji za pomocą algorytmu ELBG (Enhanced LBG).
Dla każdego obrazu wejściowego filtr obliczy optymalne mapowanie z wejścia na wyjście, biorąc pod uwagę długość książki kodowej, czyli liczbę różnych kolorów wyjściowych.
Ten filtr akceptuje następujące opcje.
codebook_length, l
Ustaw długość książki kodowej. Wartość musi być dodatnią liczbą całkowitą i reprezentuje liczbę różnych kolorów wyjściowych. Wartość domyślna to 256.
nb_steps, n
Ustaw maksymalną liczbę iteracji do zastosowania w celu obliczenia optymalnego odwzorowania. Im wyższa wartość, tym lepszy wynik i dłuższy czas obliczeń. Wartość domyślna to 1.
seed, s
Ustaw losowy ziarno, musi być liczbą całkowitą zawartą między 0 a UINT32_MAX. Jeśli nie zostanie określony lub jeśli zostanie jawnie ustawiony na -1, filtr spróbuje użyć dobrego losowego inicjatora na zasadzie najlepszego wysiłku.
pal8
Ustaw format piksela wyjściowego pal8. Ta opcja nie działa z długością książki kodowej większą niż 256. Domyślnie jest wyłączona.
use_alpha
Uwzględnij wartości alfa w obliczeniach kwantyzacji. Umożliwia tworzenie obrazów wyjściowych na paletach (np. PNG8) z wielokrotnym płynnym mieszaniem alfa.
11.75 entropy
Zmierz entropię poziomu szarości w histogramie kanałów kolorów klatek wideo.
Przyjmuje następujące parametry:
mode
Może być albo
normal
lubdiff
. Wartość domyślna tonormal
.diff
tryb mierzy entropię wartości delta histogramu, bezwzględne różnice między sąsiednimi wartościami histogramu.
11.76 epx
Zastosuj filtr powiększenia EPX, który jest przeznaczony do grafiki pikselowej.
Akceptuje następującą opcję:
n
Ustaw wymiar skalowania:
2
dla2xEPX
,3
dla3xEPX
. Wartość domyślna to3
.
11.77 eq
Ustaw jasność, kontrast, nasycenie i przybliżoną regulację gamma.
Filtr akceptuje następujące opcje:
contrast
Ustaw wyraz kontrastu. Wartość musi być wartością zmiennoprzecinkową z zakresu
-1000.0
do1000.0
. Wartość domyślna to „1”.brightness
Ustaw wyraz jasności. Wartość musi być wartością zmiennoprzecinkową z zakresu
-1.0
do1.0
. Wartość domyślna to „0”.saturation
Ustaw wyrażenie nasycenia. Wartość musi być liczbą zmiennoprzecinkową w zakresie
0.0
do3.0
. Wartość domyślna to „1”.gamma
Ustaw wyrażenie gamma. Wartość musi być liczbą zmiennoprzecinkową w zakresie
0.1
do10.0
. Wartość domyślna to „1”.gamma_r
Ustaw wyrażenie gamma na kolor czerwony. Wartość musi być liczbą zmiennoprzecinkową w zakresie
0.1
do10.0
. Wartość domyślna to „1”.gamma_g
Ustaw wyrażenie gamma na zielony. Wartość musi być liczbą zmiennoprzecinkową w zakresie
0.1
do10.0
. Wartość domyślna to „1”.gamma_b
Ustaw wyrażenie gamma dla koloru niebieskiego. Wartość musi być liczbą zmiennoprzecinkową w zakresie
0.1
do10.0
. Wartość domyślna to „1”.gamma_weight
Ustaw wyrażenie wagi gamma. Można go użyć do zmniejszenia efektu wysokiej wartości gamma na jasnych obszarach obrazu, np. aby zapobiec nadmiernemu wzmocnieniu i po prostu czystej bieli. Wartość musi być liczbą zmiennoprzecinkową w zakresie
0.0
do1.0
. Wartość0.0
odwraca korekcję gamma całkowicie w dół,1.0
pozostawiając ją z pełną siłą. Wartość domyślna to „1”.eval
Ustaw, kiedy oceniane są wyrażenia jasności, kontrastu, nasycenia i gamma.
Przyjmuje następujące wartości:
- '
init
' Oceniaj wyrażenia tylko raz podczas inicjalizacji filtra lub podczas przetwarzania polecenia
- '
frame
' oceń wyrażenia dla każdej przychodzącej ramki
Wartość domyślna to '
init
„.- '
Wyrażenia przyjmują następujące parametry:
n
liczba klatek klatki wejściowej począwszy od 0
pos
pozycja w bajtach odpowiedniego pakietu w pliku wejściowym, NAN, jeśli nie określono
r
liczba klatek na sekundę wejściowego wideo, NAN, jeśli liczba klatek na sekundę wejściowa jest nieznana
t
znacznik czasu wyrażony w sekundach, NAN, jeśli wejściowy znacznik czasu jest nieznany
11.77.1 Commands
Filtr obsługuje następujące polecenia:
contrast
Ustaw wyraz kontrastu.
brightness
Ustaw wyraz jasności.
saturation
Ustaw wyrażenie nasycenia.
gamma
Ustaw wyrażenie gamma.
gamma_r
Ustaw wyrażenie gamma_r.
gamma_g
Ustaw wyrażenie gamma_g.
gamma_b
Ustaw wyrażenie gamma_b.
gamma_weight
Ustaw wyrażenie gamma_weight.
Polecenie akceptuje tę samą składnię odpowiedniej opcji.
Jeśli podane wyrażenie jest niepoprawne, jest zachowywane z bieżącą wartością.
11.78 erosion
Zastosuj efekt erozji do filmu.
Filtr ten zastępuje piksel przez minimum lokalne (3x3).
Akceptuje następujące opcje:
threshold0
threshold1
threshold2
threshold3
Ogranicz maksymalną zmianę dla każdej płaszczyzny, domyślnie 65535. Jeśli 0, płaszczyzna pozostanie niezmieniona.
coordinates
Flaga określająca piksel, do którego ma się odnosić. Wartość domyślna to 255, tzn. używane są wszystkie osiem pikseli.
Flagi do lokalnych map ze współrzędnymi 3x3 w następujący sposób:
1 2 3 4 5 6 7 8
11.78.1 Commands
Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .
11.79 estdif
Usuń przeplot z wejściowego wideo („estdif” oznacza „Edge Slope Tracing Deinterlacing Filter”).
Filtr tylko przestrzenny, który wykorzystuje algorytm śledzenia nachylenia krawędzi do interpolacji brakujących linii. Przyjmuje następujące parametry:
mode
Tryb przeplotu do przyjęcia. Przyjmuje jedną z następujących wartości:
frame
Wyprowadza jedną klatkę na każdą klatkę.
field
Wyprowadza jedną ramkę dla każdego pola.
Wartość domyślna to
field
.parity
Parzystość pola obrazu przyjęta dla wejściowego wideo z przeplotem. Przyjmuje jedną z następujących wartości:
tff
Załóżmy, że górne pole jest pierwsze.
bff
Załóżmy, że dolne pole jest pierwsze.
auto
Włącz automatyczne wykrywanie parzystości pola.
Wartość domyślna to
auto
. Jeśli przeplot jest nieznany lub dekoder nie eksportuje tych informacji, jako pierwsze zostanie przyjęte górne pole.deint
Określ, które klatki usunąć z przeplotu. Akceptuje jedną z następujących wartości:
all
Usuń przeplot ze wszystkich klatek.
interlaced
Usuwaj tylko klatki oznaczone jako z przeplotem.
Wartość domyślna to
all
.rslope
Określ promień wyszukiwania dla śledzenia nachylenia krawędzi. Wartość domyślna to 1. Dozwolony zakres to od 1 do 15.
redge
Określ promień wyszukiwania dla najlepszego dopasowania krawędzi. Wartość domyślna to 2. Dozwolony zakres to od 0 do 15.
ecost
Określ koszt krawędzi dla dopasowania krawędzi. Wartość domyślna to 1.0. Dozwolony zakres to od 0 do 9.
mcost
Określ średni koszt dopasowania krawędzi. Wartość domyślna to 0,5. Dozwolony zakres to od 0 do 1.
dcost
Określ koszt odległości dla dopasowania krawędzi. Wartość domyślna to 0,5. Dozwolony zakres to od 0 do 1.
interp
Określ używaną interpolację. Domyślnie jest to interpolacja 4-punktowa. Przyjmuje jedną z następujących wartości:
2p
Interpolacja dwupunktowa.
4p
Interpolacja czteropunktowa.
6p
Interpolacja sześciopunktowa.
11.79.1 Commands
Ten filtr obsługuje te same polecenia, co opcje.
11.80 exposure
Dostosuj ekspozycję strumienia wideo.
Filtr akceptuje następujące opcje:
exposure
Ustaw korekcję ekspozycji w EV. Dozwolony zakres to od -3,0 do 3,0 EV Wartość domyślna to 0 EV.
black
Ustaw korekcję poziomu czerni. Dozwolony zakres to od -1,0 do 1,0. Wartość domyślna to 0.
11.80.1 Commands
Ten filtr obsługuje te same polecenia, co opcje.
11.81 extractplanes
Wyodrębnij komponenty kanału kolorów z wejściowego strumienia wideo do oddzielnych strumieni wideo w skali szarości.
Filtr akceptuje następującą opcję:
planes
Ustaw samolot(y) do wyodrębnienia.
Dostępne wartości dla samolotów to:
- '
y
' - '
u
' - '
v
' - '
a
' - '
r
' - '
g
' - '
b
'
Wybranie płaszczyzn niedostępnych na wejściu spowoduje błąd. Oznacza to, że nie możesz jednocześnie wybierać płaszczyzn
r
,g
, z płaszczyznami , .b
y
u
v
- '
11.81.1 Examples
- Wyodrębnij składową kanału kolorów luma, u i v z wejściowej klatki wideo do 3 wyjść w skali szarości:
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.82 fade
Zastosuj efekt ściemniania/zanikania do wejściowego wideo.
Przyjmuje następujące parametry:
type, t
Typ efektu może być „in” dla efektu ściemniania lub „out” dla efektu ściemniania. Wartość domyślna to
in
.start_frame, s
Określ numer klatki, od której zaczniesz stosować efekt zanikania. Wartość domyślna to 0.
nb_frames, n
Liczba klatek, przez które trwa efekt zanikania. Pod koniec efektu zanikania wideo wyjściowe będzie miało taką samą intensywność jak wideo wejściowe. Pod koniec przejścia zanikania wideo wyjściowe zostanie wypełnione wybranym
color
. Wartość domyślna to 25.alpha
Jeśli jest ustawiony na 1, tłumi tylko kanał alfa, jeśli taki istnieje na wejściu. Wartość domyślna to 0.
start_time, st
Określ znacznik czasu (w sekundach) klatki, aby rozpocząć stosowanie efektu zanikania. Jeśli określono zarówno start_frame, jak i start_time, zanikanie rozpocznie się od tego, co nastąpi jako ostatnie. Wartość domyślna to 0.
duration, d
Liczba sekund, przez które musi trwać efekt zanikania. Pod koniec efektu zanikania wyjściowe wideo będzie miało taką samą intensywność jak wideo wejściowe, pod koniec przejścia zanikania wyjściowe wideo będzie wypełnione wybranym
color
. Jeśli określono zarówno czas trwania, jak i nb_frames, używany jest czas trwania. Wartość domyślna to 0 (domyślnie używane jest nb_frames).color, c
Określ kolor zanikania. Domyślnie jest „czarny”.
11.82.1 Examples
- Zanikanie w pierwszych 30 klatkach wideo:
fade=in:0:30
Powyższe polecenie jest równoważne:
fade=t=in:s=0:n=30
- Wygaś ostatnie 45 klatek 200-klatkowego wideo:
fade=out:155:45 fade=type=out:start_frame=155:nb_frames=45
- Rozpoznawanie pierwszych 25 klatek i zanikanie ostatnich 25 klatek 1000-klatkowego wideo:
fade=in:0:25, fade=out:975:25
- Zrób pierwsze 5 klatek na żółto, a następnie zanikaj od klatki 5-24:
fade=in:5:20:color=yellow
- Znikaj w alfabecie na pierwszych 25 klatkach wideo:
fade=in:0:25:alpha=1
- Zrób pierwsze 5,5 sekundy czarne, a następnie zanikaj przez 0,5 sekundy:
fade=t=in:st=5.5:d=0.5
11.83 feedback
Zastosuj filtr wideo opinii.
Ten filtr przekazuje przycięte klatki wejściowe do drugiego wyjścia. Stamtąd można go filtrować za pomocą innych filtrów wideo. Po odebraniu przez filtr ramki z drugiego wejścia, ta ramka jest łączona z oryginalną ramką z pierwszego wejścia i przekazywana do pierwszego wyjścia.
Typowym zastosowaniem jest filtrowanie tylko części ramki.
Filtr akceptuje następujące opcje:
x
y
Ustaw górną lewą pozycję przycinania.
w
h
Ustaw rozmiar przycięcia.
11.83.1 Examples
- Rozmyj tylko górną lewą prostokątną część klatki wideo o rozmiarze 100x100 z filtrem gblur.
[in][blurin]feedback=x=0:y=0:w=100:h=100[out][blurout];[blurout]gblur=8[blurin]
- Narysuj czarną ramkę w lewej górnej części klatki wideo o wymiarach 100x100 z filtrem Drawbox.
[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]
11.84 fftdnoiz
Odszumianie klatek przy użyciu 3D FFT (filtrowanie w domenie częstotliwości).
Filtr akceptuje następujące opcje:
sigma
Ustaw stałą sigma szumu. To ustawia siłę odszumiania. Domyślna wartość to 1. Dozwolony zakres to od 0 do 30. Użycie bardzo wysokiej sigma z małym nakładaniem się może dawać artefakty blokujące.
amount
Ustaw ilość odszumiania. Domyślnie wszystkie wykryte szumy są redukowane. Wartość domyślna to 1. Dozwolony zakres to od 0 do 1.
block
Ustaw rozmiar bloku w pikselach, domyślnie 32, może wynosić od 8 do 256.
overlap
Ustaw nakładanie się bloków. Wartość domyślna to 0,5. Dozwolony zakres to od 0,2 do 0,8.
method
Ustaw metodę odszumiania. Wartość domyślna to
wiener
, może być równieżhard
.prev
Ustaw liczbę poprzednich klatek, które mają być użyte do odszumiania. Domyślnie jest ustawiony na 0.
next
Ustaw liczbę następnych klatek do użycia do odszumiania. Domyślnie jest ustawiony na 0.
planes
Ustaw samoloty, które będą filtrowane, domyślnie dostępne są wszystkie filtrowane z wyjątkiem alfa.
11.85 fftfilt
Zastosuj dowolne wyrażenia do próbek w domenie częstotliwości
dc_Y
Dostosuj wartość prądu stałego (wzmocnienie) płaszczyzny luma obrazu. Filtr akceptuje liczbę całkowitą z zakresu
0
do1000
. Wartość domyślna to0
.dc_U
Dostosuj wartość prądu stałego (wzmocnienie) pierwszej płaszczyzny chromatycznej obrazu. Filtr akceptuje liczbę całkowitą z zakresu
0
do1000
. Wartość domyślna to0
.dc_V
Dostosuj wartość prądu stałego (wzmocnienie) drugiej płaszczyzny chrominancji obrazu. Filtr akceptuje liczbę całkowitą z zakresu
0
do1000
. Wartość domyślna to0
.weight_Y
Ustaw wyrażenie wagi domeny częstotliwości dla płaszczyzny luma.
weight_U
Ustaw wyrażenie wagi domeny częstotliwości dla pierwszej płaszczyzny chrominancji.
weight_V
Ustaw wyrażenie wagi domeny częstotliwości dla drugiej płaszczyzny chrominancji.
eval
Ustaw, kiedy wyrażenia są oceniane.
Przyjmuje następujące wartości:
- '
init
' Oceniaj wyrażenia tylko raz podczas inicjowania filtru.
- '
frame
' Oceń wyrażenia dla każdej przychodzącej ramki.
Wartość domyślna to '
init
„.Filtr akceptuje następujące zmienne:
- '
X
Y
Współrzędne bieżącej próbki.
W
H
Szerokość i wysokość obrazu.
N
Liczba klatek wejściowych, zaczynając od 0.
WS
HS
Rozmiar tablicy FFT do przetwarzania poziomego i pionowego.
11.85.1 Examples
- Górnoprzepustowy:
fftfilt=dc_Y=128:weight_Y='squish(1-(Y+X)/100)'
- Dolnoprzepustowy:
fftfilt=dc_Y=0:weight_Y='squish((Y+X)/100-1)'
- Wyostrzyć:
fftfilt=dc_Y=0:weight_Y='1+squish(1-(Y+X)/100)'
- Plama:
fftfilt=dc_Y=0:weight_Y='exp(-4 * ((Y+X)/(W+H)))'
11.86 field
Wyodrębnij pojedyncze pole z obrazu z przeplotem za pomocą arytmetyki kroków, aby uniknąć marnowania czasu procesora. Ramki wyjściowe są oznaczone jako bez przeplotu.
Filtr akceptuje następujące opcje:
type
Określ, czy wyodrębnić górne (jeśli wartość to
0
lubtop
) czy dolne pole (jeśli wartość to1
lubbottom
).
11.87 fieldhint
Utwórz nowe ramki, kopiując górne i dolne pola z otaczających ramek dostarczonych jako liczby w pliku podpowiedzi.
hint
Ustaw plik zawierający podpowiedzi: bezwzględne/względne numery klatek.
Na każdą klatkę w klipie musi przypadać jedna linia. Każdy wiersz musi zawierać dwie liczby oddzielone przecinkiem, po których opcjonalnie występuje
-
lub+
. Liczby podane w każdym wierszu pliku nie mogą być poza [N-1,N+1], gdzie N jest bieżącym numerem klatki dlaabsolute
trybu lub poza zakresem [-1,1] dlarelative
trybu. Pierwsza liczba mówi, z której klatki pobrać górne pole, a druga, z której klatki pobrać dolne pole.Jeśli opcjonalnie nastąpi
+
ramka wyjściowa zostanie oznaczona jako z przeplotem, w przeciwnym razie-
ramka wyjściowa zostanie oznaczona jako progresywna, w przeciwnym razie zostanie oznaczona tak samo jak ramka wejściowa. Jeśli opcjonalnie nastąpit
wyjście, ramka użyje tylko górnego pola, lubb
tylko dolnego pola. Jeśli linia zaczyna się od#
lub;
ta linia jest pominięta.mode
Może być elementem
absolute
lubrelative
lubpattern
. Wartość domyślna toabsolute
. Trybpattern
jest taki sam jakrelative
tryb, z wyjątkiem ostatniego wpisu pliku, jeśli jest więcej ramek do przetworzenia niżhint
plik jest szukany z powrotem do początku.
Przykład pierwszych kilku wierszy hint
pliku dla relative
trybu:
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.88 fieldmatch
Filtr dopasowania pola dla odwróconego telecine. Ma na celu rekonstrukcję klatek progresywnych ze strumienia telecine. Filtr nie gubi zduplikowanych ramek, więc aby osiągnąć całkowite odwrócenie telecine fieldmatch
, musi nastąpić filtr dziesiątkowania, taki jak decimate na wykresie filtra .
Oddzielenie dopasowywania pól i dziesiątkowania jest w szczególności motywowane możliwością wstawienia między te dwa filtry usuwające przeplot. Jeśli źródło ma mieszaną zawartość telecine i rzeczywistą z przeplotem,
fieldmatch
nie będzie w stanie dopasować pól dla części z przeplotem. Ale te pozostałe przeczesane klatki zostaną oznaczone jako z przeplotem, a zatem mogą zostać usunięte z przeplotu przez późniejszy filtr, taki jak yadif , przed dziesiątkowaniem.
Oprócz różnych opcji konfiguracyjnych fieldmatch
może wziąć opcjonalny drugi strumień, aktywowany przezppsrc
opcja. Jeśli ta opcja jest włączona, rekonstrukcja ramek będzie oparta na polach i ramkach z tego drugiego strumienia. Pozwala to na wstępne przetworzenie pierwszego sygnału wejściowego, aby wspomóc różne algorytmy filtra, przy jednoczesnym utrzymaniu bezstratnego wyjścia (przy założeniu, że pola są odpowiednio dopasowane). Zazwyczaj pomocne może być odszumianie obrazu w terenie lub regulacja jasności/kontrastu.
Zauważ, że ten filtr używa tych samych algorytmów co TIVTC/TFM (projekt AviSynth) i VIVTC/VFM (projekt VapourSynth). Ten ostatni to lekki klon TFM, na którym fieldmatch
się opiera. Chociaż semantyka i użycie są bardzo zbliżone, niektóre nazwy zachowań i opcji mogą się różnić.
Filtr dziesiątek działa obecnie tylko przy wprowadzaniu ze stałą szybkością klatek. Jeśli na wejściu mieszasz zawartość telecine (30 fps) i progresywną z niższą szybkością klatek, np. 24 fps, użyj następującego łańcucha filtrów, aby wytworzyć niezbędny strumień CFR: dejudder,fps=30000/1001,fieldmatch,decimate
.
Filtr akceptuje następujące opcje:
order
Określ zakładaną kolejność pól strumienia wejściowego. Dostępne wartości to:
- '
auto
' Automatyczne wykrywanie parzystości (użyj wewnętrznej wartości parzystości FFmpeg).
- '
bff
' Załóż najpierw dolne pole.
- '
tff
' Załóż najpierw górne pole.
Pamiętaj, że czasami zaleca się, aby nie ufać parzystości ogłaszanej przez strumień.
Wartość domyślna to
auto
.- '
mode
Ustaw tryb lub strategię dopasowywania do użycia.
pc
tryb jest najbezpieczniejszy w tym sensie, że w miarę możliwości nie będzie powodował szarpnięć z powodu zduplikowanych ramek, ale jeśli istnieją złe edycje lub pola mieszane, w końcu wygeneruje przeczesane ramki, gdy rzeczywiście istnieje dobre dopasowanie. Z drugiej strony,pcn_ub
tryb jest najbardziej ryzykowny pod względem szarpania, ale prawie zawsze znajdzie dobrą klatkę, jeśli taka istnieje. Pozostałe wartości są gdzieś pomiędzypc
orazpcn_ub
pod względem ryzyka szarpania i tworzenia zduplikowanych ramek w porównaniu do znajdowania dobrych dopasowań w sekcjach ze złą edycją, polami osieroconymi, polami mieszanymi itp.Więcej szczegółów na temat p/c/n/u/b można znaleźć w sekcji dotyczącej p/c/n/u/b .
Dostępne wartości to:
- '
pc
' Dopasowanie dwukierunkowe (p/c)
- '
pc_n
' Dopasowywanie dwukierunkowe i próba trzeciego dopasowania, jeśli nadal jest czesana (p/c + n)
- '
pc_u
' Dopasowywanie dwukierunkowe i próba dopasowania trzeciego (ta sama kolejność), jeśli nadal jest czesana (p/c + u)
- '
pc_n_ub
' Dopasowywanie dwukierunkowe, próba trzeciego dopasowania, jeśli nadal jest czesana, i próba dopasowania czwartego/5, jeśli nadal jest czesana (p/c + n + u/b)
- '
pcn
' Dopasowanie trójdrożne (p/c/n)
- '
pcn_ub
' Dopasowywanie trójstronne i próba dopasowania 4/5, jeśli wszystkie 3 oryginalne dopasowania zostaną wykryte jako czesane (p/c/n + u/b)
Nawiasy na końcu wskazują dopasowania, które zostałyby użyte w tym trybie, zakładając
order
=tff
(ifield
auto
lubtop
) .Pod względem szybkości
pc
tryb jest zdecydowanie najszybszy ipcn_ub
jest najwolniejszy.Wartość domyślna to
pc_n
.- '
ppsrc
Oznacz główny strumień wejściowy jako wstępnie przetworzony sygnał wejściowy i włącz drugorzędny strumień wejściowy jako czyste źródło do pobierania pól. Więcej szczegółów znajdziesz we wstępie do filtra. Jest podobny do
clip2
funkcja z VFM/TFM.Wartość domyślna to
0
(wyłączone).field
Ustaw pole do dopasowania. Zaleca się ustawienie tej samej wartości, co
order
chyba że wystąpią błędy dopasowania z tym ustawieniem. W pewnych okolicznościach zmiana pola używanego do dopasowania z może mieć duży wpływ na wydajność dopasowania. Dostępne wartości to:- '
auto
' Automatycznie (ta sama wartość co
order
).- '
bottom
' Dopasuj z dolnego pola.
- '
top
' Dopasuj z górnego pola.
Wartość domyślna to
auto
.- '
mchroma
Określ, czy podczas porównywania dopasowań ma być uwzględniana barwa. W większości przypadków zaleca się pozostawienie tej opcji włączonej. Powinieneś ustawić to
0
tylko wtedy, gdy twój klip ma złe problemy z chrominacją, takie jak silne tęcze lub inne artefakty. Ustawienie tego na0
może być również użyte do przyspieszenia rzeczy kosztem pewnej dokładności.Wartość domyślna to
1
.y0
y1
Definiują one pasmo wykluczenia, które wyklucza linie między
y0
orazy1
od uwzględnienia w decyzji o dopasowaniu pól. Opaska wykluczająca może służyć do ignorowania napisów, logo lub innych rzeczy, które mogą zakłócać dopasowanie.y0
ustawia początkową linię skanowania iy1
ustawia linię końcową; wszystkie linie pomiędzyy0
orazy1
(włącznie zy0
orazy1
) zostaną zignorowane. Ustawieniey0
orazy1
do tej samej wartości wyłączy tę funkcję.y0
orazy1
domyślnie0
.scthresh
Ustaw próg wykrywania zmiany sceny jako procent maksymalnej zmiany na płaszczyźnie luma. Dobre wartości mieszczą się w
[8.0, 14.0]
zakresie. Wykrywanie zmiany sceny ma znaczenie tylko w przypadkucombmatch
=sc
. Zakres dlascthresh
jest[0.0, 100.0]
.Wartość domyślna to
12.0
.combmatch
Kiedy
combatch
is notnone
,fieldmatch
przy podejmowaniu decyzji, który mecz zostanie użyty jako mecz finałowy, weźmie pod uwagę czesane wyniki meczów. Dostępne wartości to:- '
none
' Brak ostatecznego dopasowania na podstawie czesanych wyników.
- '
sc
' Wyniki czesane są używane tylko po wykryciu zmiany sceny.
- '
full
' Używaj czesanych wyników przez cały czas.
Wartość domyślna to
sc
.- '
combdbg
Wymuś
fieldmatch
obliczenie czesanych metryk dla określonych dopasowań i wydrukowanie ich. To ustawienie jest znane jakomicout
w słownictwie TFM/VFM. Dostępne wartości to:- '
none
' Brak wymuszonych obliczeń.
- '
pcn
' Obliczenia siły p/c/n.
- '
pcnub
' Wymuś obliczenia p/c/n/u/b.
Wartość domyślna to
none
.- '
cthresh
Jest to próg czesania obszarów używany do wykrywania przeczesanych ramek. To zasadniczo kontroluje, jak „mocne” lub „widoczne” czesanie musi być wykryte. Większe wartości oznaczają, że czesanie musi być bardziej widoczne, a mniejsze wartości oznaczają, że czesanie może być mniej widoczne lub mocne i nadal być wykrywane. Prawidłowe ustawienia to od
-1
(każdy piksel zostanie wykryty jako czesany) do255
(żaden piksel nie zostanie wykryty jako czesany). Jest to w zasadzie wartość różnicy pikseli. Dobry zasięg to[8, 12]
.Wartość domyślna to
9
.chroma
Ustawia, czy chroma jest brana pod uwagę przy podejmowaniu decyzji o przeczesywaniu ramki. Wyłącz tę opcję tylko wtedy, gdy źródło ma problemy z kolorem (tęczowe itp.), które powodują problemy z wykrywaniem czesanych ramek przy włączonej chromacie. Właściwie, używając
chroma
=0
jest zwykle bardziej wiarygodne, z wyjątkiem przypadku, gdy w źródle występuje tylko czesanie barwy.Wartość domyślna to
0
.blockx
blocky
Ustaw odpowiednio rozmiar osi X i Y okna używanego podczas wykrywania czesanych ramek. Ma to związek z wielkością obszaru, na którym
combpel
piksele muszą być wykrywane jako czesane, aby ramka została zadeklarowana jako czesana. Zobaczcombpel
opis parametrów, aby uzyskać więcej informacji. Możliwe wartości to dowolna liczba, która jest potęgą dwójki, zaczynając od 4 i przechodząc do 512.Wartość domyślna to
16
.combpel
Liczba przeczesanych pikseli w dowolnym z
blocky
za pomocąblockx
bloki rozmiaru na ramce, aby ramka została wykryta jako czesana. Podczas gdycthresh
kontroluje jak "widoczne" musi być czesanie, to ustawienie kontroluje "jak dużo" czesania musi być w dowolnym zlokalizowanym obszarze (okno zdefiniowane przezblockx
orazblocky
ustawienia) na ramie. Minimalna wartość to,0
a maksymalna toblocky x blockx
(w którym to momencie żadne ramki nie zostaną wykryte jako czesane). To ustawienie jest znane jakoMI
w słownictwie TFM/VFM.Wartość domyślna to
80
.
11.88.1 p/c/n/u/b meaning
11.88.1.1 p/c/n
Zakładamy następujący strumień telecine:
Top fields: 1 2 2 3 4
Bottom fields: 1 2 3 4 4
Liczby odpowiadają ramce progresywnej, której dotyczą pola. Tutaj dwie pierwsze klatki są progresywne, trzecia i czwarta są czesane i tak dalej.
Kiedy fieldmatch
jest skonfigurowany do uruchamiania dopasowywania od dołu (field
= bottom
) w ten sposób ten strumień wejściowy zostaje przekształcony:
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
W wyniku dopasowania pól widzimy, że niektóre ramki ulegają zduplikowaniu. Aby wykonać pełne odwrotne telecine, musisz po tej operacji polegać na filtrze dziesiątkującym. Zobacz na przykład filtr dziesiątek .
Ta sama operacja jest teraz dopasowywana z górnych pól (field
= top
) wygląda tak:
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
W tych przykładach możemy zobaczyć co i p
oznaczać ; zasadniczo odnoszą się do ramki i pola o przeciwnej parzystości:
c
n
-
p
pasuje do pola o przeciwnej parzystości w poprzedniej klatce -
c
dopasowuje pole o przeciwnej parzystości w bieżącej ramce -
n
dopasowuje pole o przeciwnej parzystości w następnej klatce
11.88.1.2 u/b
Dopasowanie u
i b
jest nieco szczególne w tym sensie, że pasuje do przeciwnej flagi parzystości. W poniższych przykładach zakładamy, że aktualnie dopasowujemy drugą klatkę (Góra:2, dół:2). Zgodnie z dopasowaniem, „x” jest umieszczany nad i pod każdym dopasowanym polem.
Z dopasowaniem dolnym (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
Z najlepszym dopasowaniem (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.88.2 Examples
Prosty IVTC pierwszego strumienia telecine z górnego pola:
fieldmatch=order=tff:combmatch=none, decimate
Zaawansowany IVTC, z rezerwą na yadif dla wciąż czesanych ramek:
fieldmatch=order=tff:combmatch=full, yadif=deint=interlaced, decimate
11.89 fieldorder
Przekształć kolejność pól wejściowego wideo.
Przyjmuje następujące parametry:
order
Kolejność pól wyjściowych. Prawidłowe wartości to
tff
najpierw górne pole lub najpierwbff
dolne pole.
Wartość domyślna to 'tff
„.
Przekształcenie odbywa się poprzez przesunięcie zawartości obrazu w górę lub w dół o jedną linię i wypełnienie pozostałej linii odpowiednią zawartością obrazu. Ta metoda jest zgodna z większością konwerterów kolejności pól rozgłoszeniowych.
Jeśli wejściowy sygnał wideo nie jest oznaczony jako z przeplotem lub jest już oznaczony jako zgodny z wymaganą kolejnością pól wyjściowych, filtr ten nie zmienia przychodzącego wideo.
Jest to bardzo przydatne podczas konwersji do lub z materiału PAL DV, który jest najpierw dolny.
Na przykład:
ffmpeg -i in.vob -vf "fieldorder=bff" out.dv
11.90 fifo, afifo
Buforuj obrazy wejściowe i wysyłaj je na żądanie.
Jest to przydatne głównie przy automatycznym wstawianiu przez framework libavfilter.
Nie przyjmuje parametrów.
11.91 fillborders
Wypełnij granice wejściowego wideo bez zmiany wymiarów strumienia wideo. Czasami wideo może mieć śmieci na czterech krawędziach i możesz nie chcieć przycinać wejścia wideo, aby zachować wielokrotność rozmiaru pewnej liczby.
Ten filtr akceptuje następujące opcje:
left
Liczba pikseli do wypełnienia od lewej krawędzi.
right
Liczba pikseli do wypełnienia od prawej krawędzi.
top
Liczba pikseli do wypełnienia od górnej krawędzi.
bottom
Liczba pikseli do wypełnienia od dolnej krawędzi.
mode
Ustaw tryb wypełnienia.
Przyjmuje następujące wartości:
- '
smear
' wypełniaj piksele przy użyciu zewnętrznych pikseli
- '
mirror
' wypełnij piksele za pomocą odbicia lustrzanego (połowa próbki symetrycznie)
- '
fixed
' wypełnij piksele stałą wartością
- '
reflect
' wypełnij piksele za pomocą odbicia (cała próbka symetrycznie)
- '
wrap
' wypełnij piksele za pomocą zawijania
- '
fade
' zanikanie pikseli do stałej wartości
- '
margins
' wypełnić piksele na górze i na dole ważonymi średnimi pikselami w pobliżu granic
Wartość domyślna to
smear
.- '
color
Ustaw kolor pikseli w trybie stałym lub zanikania. Wartość domyślna to
black
.
11.91.1 Commands
Ten filtr obsługuje te same polecenia, co opcje. Polecenie akceptuje tę samą składnię odpowiedniej opcji.
Jeśli podane wyrażenie jest niepoprawne, jest zachowywane z bieżącą wartością.
11.92 find_rect
Znajdź prostokątny obiekt
Akceptuje następujące opcje:
object
Ścieżka do pliku obrazu obiektu musi być w kolorze gray8.
threshold
Próg wykrywania, domyślnie 0,5.
mipmaps
Liczba mipmap, domyślnie 3.
xmin, ymin, xmax, ymax
Określa prostokąt, w którym należy szukać.
discard
Odrzuć ramki, w których obiekt nie został wykryty. Domyślnie jest wyłączone.
11.92.1 Examples
- Zakryj prostokątny obiekt dostarczonym obrazem danego filmu za pomocą
ffmpeg
:ffmpeg -i file.ts -vf find_rect=newref.pgm,cover_rect=cover.jpg:mode=cover new.mkv
11.93 floodfill
Zalej obszar wartościami tych samych składowych pikseli innymi wartościami.
Akceptuje następujące opcje:
x
Ustaw współrzędną piksela x.
y
Ustaw współrzędną y piksela.
s0
Ustaw wartość komponentu #0 źródła.
s1
Ustaw wartość komponentu źródłowego nr 1.
s2
Ustaw wartość komponentu źródłowego nr 2.
s3
Ustaw wartość komponentu źródłowego #3.
d0
Ustaw docelową wartość składnika nr 0.
d1
Ustaw docelową wartość komponentu #1.
d2
Ustaw wartość komponentu docelowego nr 2.
d3
Ustaw docelową wartość komponentu #3.
11.94 format
Konwertuj wideo wejściowe na jeden z określonych formatów pikseli. Libavfilter spróbuje wybrać taki, który jest odpowiedni jako dane wejściowe do następnego filtra.
Przyjmuje następujące parametry:
pix_fmts
Lista nazw formatów pikseli rozdzielonych znakiem „|”, np. „pix_fmts=yuv420p|monow|rgb24”.
11.94.1 Examples
- Konwertuj wideo wejściowe do
yuv420p
formatuformat=pix_fmts=yuv420p
Konwertuj wideo wejściowe na dowolny format z listy
format=pix_fmts=yuv420p|yuv444p|yuv410p
11.95 fps
Konwertuj wideo do określonej stałej szybkości klatek, w razie potrzeby duplikując lub upuszczając klatki.
Przyjmuje następujące parametry:
fps
Żądana szybkość klatek wyjściowych. Przyjmuje wyrażenia zawierające następujące stałe:
- '
source_fps
' Szybkość klatek na wejściu
- '
ntsc
' Szybkość klatek NTSC
30000/1001
- '
pal
' Liczba klatek na sekundę PAL
25.0
- '
film
' Szybkość klatek filmu
24.0
- '
ntsc_film
' Szybkość klatek filmu NTSC
24000/1001
Wartość domyślna to
25
.- '
start_time
Załóżmy, że pierwszy PTS powinien mieć podaną wartość w sekundach. Pozwala to na dopełnienie/przycinanie na początku strumienia. Domyślnie nie przyjmuje się żadnych założeń dotyczących oczekiwanego PTS pierwszej klatki, więc nie wykonuje się dopełniania ani przycinania. Na przykład może to być ustawione na 0, aby uzupełnić początek duplikatami pierwszej klatki, jeśli strumień wideo rozpoczyna się po strumieniu audio lub aby przyciąć dowolne klatki z ujemnym PTS.
round
Metoda zaokrąglania znacznika czasu (PTS).
Możliwe wartości to:
zero
okrągłe w kierunku 0
inf
zaokrąglić od 0
down
okrągłe w kierunku -nieskończoności
up
okrągły w kierunku +nieskończoności
near
zaokrąglić do najbliższego
Wartość domyślna to
near
.eof_action
Czynność wykonywana podczas odczytu ostatniej klatki.
Możliwe wartości to:
round
Użyj tej samej metody zaokrąglania znacznika czasu, jak w przypadku innych ramek.
pass
Przejdź przez ostatnią klatkę, jeśli czas trwania wejścia nie został jeszcze osiągnięty.
Wartość domyślna to
round
.
Alternatywnie opcje można określić jako płaski ciąg:
fps
[: start_time
[: round
]].
Zobacz także filtr setpts .
11.95.1 Examples
- Typowe zastosowanie w celu ustawienia fps na 25:
fps=fps=25
- Ustawia fps na 24, używając skrótu i ​​metody zaokrąglania, aby zaokrąglić do najbliższej:
fps=fps=film:round=near
11.96 framepack
Spakuj dwa różne strumienie wideo w stereoskopowe wideo, ustawiając odpowiednie metadane na obsługiwanych kodekach. Oba widoki powinny mieć ten sam rozmiar i liczbę klatek na sekundę, a przetwarzanie zostanie zatrzymane po zakończeniu krótszego filmu. Pamiętaj, że możesz wygodnie dostosować właściwości widoku za pomocą filtrów skali i fps .
Przyjmuje następujące parametry:
format
Pożądany format pakowania. Obsługiwane wartości to:
sbs
Widoki są obok siebie (domyślnie).
tab
Widoki są jeden na drugim.
lines
Widoki są upakowane liniami.
columns
Widoki są upakowane po kolumnach.
frameseq
Widoki są czasowo przeplatane.
Kilka przykładów:
# 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.97 framerate
Zmień szybkość klatek, interpolując nowe klatki wyjściowe wideo z klatek źródłowych.
Ten filtr nie jest przeznaczony do prawidłowego działania z mediami z przeplotem. Jeśli chcesz zmienić szybkość klatek mediów z przeplotem, musisz usunąć przeplot przed tym filtrem i ponownie przeplot po tym filtrze.
Poniżej znajduje się opis akceptowanych opcji.
fps
Określ wyjściowe klatki na sekundę. Tę opcję można również określić jako samą wartość. Wartość domyślna to
50
.interp_start
Określ początek zakresu, w którym klatka wyjściowa zostanie utworzona jako liniowa interpolacja dwóch klatek. Zakres to [
0
-255
], wartość domyślna to15
.interp_end
Określ koniec zakresu, w którym klatka wyjściowa zostanie utworzona jako liniowa interpolacja dwóch klatek. Zakres to [
0
-255
], wartość domyślna to240
.scene
Określ poziom, na którym zmiana sceny jest wykrywana jako wartość z zakresu od 0 do 100, aby wskazać nową scenę; niska wartość odzwierciedla małe prawdopodobieństwo, że bieżąca klatka wprowadzi nową scenę, podczas gdy wyższa wartość oznacza, że ​​bieżąca klatka jest bardziej prawdopodobna. Wartość domyślna to
8.2
.flags
Określ flagi wpływające na proces filtrowania.
Dostępna wartość dla
flags
to:scene_change_detect, scd
Włącz wykrywanie zmiany sceny za pomocą wartości opcji
scene
. Ta flaga jest domyślnie włączona.
11.98 framestep
Wybierz jedną klatkę co N-tą klatkę.
Ten filtr akceptuje następującą opcję:
step
Wybierz klatkę po każdej klatce
step
. Dozwolone wartości to dodatnie liczby całkowite większe od 0. Wartość domyślna to1
.
11.99 freezedetect
Wykryj zamrożone wideo.
Ten filtr rejestruje komunikat i ustawia metadane ramki, gdy wykryje, że wejściowy obraz wideo nie ma znaczących zmian w treści w określonym czasie. Wykrywanie zamrożenia wideo oblicza średnią średnią bezwzględną różnicę wszystkich składników klatek wideo i porównuje ją z poziomem szumów.
Wydrukowane czasy i czas trwania są wyrażone w sekundach. Klucz metadanych jest
lavfi.freezedetect.freeze_start
ustawiany na pierwszej klatce, której znacznik czasu jest równy lub przekracza czas trwania wykrywania i zawiera znacznik czasu pierwszej klatki zamrożenia. Klucze
metadanych lavfi.freezedetect.freeze_duration
i
lavfi.freezedetect.freeze_end
są ustawiane w pierwszej klatce po zamrożeniu.
Filtr akceptuje następujące opcje:
noise, n
Ustaw tolerancję hałasu. Można określić w dB (w przypadku, gdy "dB" jest dołączone do określonej wartości) lub jako stosunek różnicy między 0 a 1. Wartość domyślna to -60 dB lub 0,001.
duration, d
Ustaw czas trwania zamrożenia do powiadomienia (domyślnie 2 sekundy).
11.100 freezeframes
Zatrzymaj klatki wideo.
Ten filtr zamraża klatki wideo przy użyciu klatki z drugiego wejścia.
Filtr akceptuje następujące opcje:
first
Ustaw numer pierwszej klatki, od której rozpocznie się zamrożenie.
last
Ustaw numer ostatniej klatki, od której ma się zakończyć zamrażanie.
replace
Ustaw numer ramki z drugiego wejścia, która będzie używana zamiast zastępowanych ramek.
11.101 frei0r
Zastosuj efekt frei0r do wejściowego wideo.
Aby umożliwić kompilację tego filtra, musisz zainstalować nagłówek frei0r i skonfigurować FFmpeg za pomocą --enable-frei0r
.
Przyjmuje następujące parametry:
filter_name
Nazwa efektu frei0r do załadowania. Jeśli zmienna środowiskowa
FREI0R_PATH
jest zdefiniowana, efekt frei0r jest wyszukiwany w każdym z katalogów określonych przez listę oddzieloną dwukropkami wFREI0R_PATH
. W przeciwnym razie przeszukiwane są standardowe ścieżki frei0r w następującej kolejności:HOME/.frei0r-1/lib/
,/usr/local/lib/frei0r-1/
,/usr/lib/frei0r-1/
.filter_params
Oddzielona '|' lista parametrów do przekazania do efektu frei0r.
Parametrem efektu frei0r może być wartość logiczna (jego wartość to „y” lub „n”), double, kolor (określony jako
R
/ G
/ B
, gdzie R
, G
i B
są liczbami zmiennoprzecinkowymi z zakresu od 0.0 do 1.0 włącznie) lub opis koloru określony w sekcji
(ffmpeg-utils)"Color" w podręczniku ffmpeg-utils , pozycja (określona jako X
/ Y
, gdzie
X
i Y
są liczbami zmiennoprzecinkowymi) i/lub ciąg.
Liczba i rodzaje parametrów zależą od załadowanego efektu. Jeśli parametr efektu nie jest określony, ustawiana jest wartość domyślna.
11.101.1 Examples
- Zastosuj efekt distortion0r, ustawiając dwa pierwsze podwójne parametry:
frei0r=filter_name=distort0r:filter_params=0.5|0.01
- Zastosuj efekt odległości kolorów, przyjmując kolor jako pierwszy parametr:
frei0r=colordistance:0.2/0.3/0.4 frei0r=colordistance:violet frei0r=colordistance:0x112233
- Zastosuj efekt perspektywy, określając lewą górną i prawą górną pozycję obrazu:
frei0r=perspective:0.2/0.2|0.8/0.2
Aby uzyskać więcej informacji, zobacz http://frei0r.dyne.org
11.101.2 Commands
Ten filtr obsługujefilter_params
opcja jako polecenia .
11.102 fspp
Zastosuj szybkie i proste przetwarzanie końcowe. Jest to szybsza wersja spp .
Dzieli (I)DCT na przejścia poziome/pionowe. W przeciwieństwie do prostego filtra przetwarzania końcowego, jeden z nich jest wykonywany raz na blok, a nie na piksel. Pozwala to na znacznie większą prędkość.
Filtr akceptuje następujące opcje:
quality
Ustaw jakość. Ta opcja określa liczbę poziomów do uśredniania. Przyjmuje liczbę całkowitą z zakresu 4-5. Wartość domyślna to
4
.qp
Wymuś stały parametr kwantyzacji. Przyjmuje liczbę całkowitą z zakresu 0-63. Jeśli nie jest ustawiony, filtr użyje QP ze strumienia wideo (jeśli jest dostępny).
strength
Ustaw siłę filtra. Przyjmuje liczbę całkowitą z zakresu od -15 do 32. Niższe wartości oznaczają więcej szczegółów, ale także więcej artefaktów, podczas gdy wyższe wartości sprawiają, że obraz jest gładszy, ale także bardziej rozmyty. Wartość domyślna to
0
− PSNR optymalna.use_bframe_qp
Włącz korzystanie z QP z ramek B, jeśli jest ustawione na
1
. Użycie tej opcji może powodować migotanie, ponieważ ramki B mają często większe QP. Wartość domyślna to0
(nie włączone).
11.103 gblur
Zastosuj filtr rozmycia Gaussa.
Filtr akceptuje następujące opcje:
sigma
Ustaw poziomą sigma, odchylenie standardowe rozmycia Gaussa. Wartość domyślna to
0.5
.steps
Ustaw liczbę kroków dla aproksymacji Gaussa. Wartość domyślna to
1
.planes
Ustaw samoloty do filtrowania. Domyślnie filtrowane są wszystkie samoloty.
sigmaV
Ustaw pionową sigma, jeśli jest ujemna, będzie taka sama jak
sigma
. Wartość domyślna to-1
.
11.103.1 Commands
Ten filtr obsługuje te same polecenia, co opcje. Polecenie akceptuje tę samą składnię odpowiedniej opcji.
Jeśli podane wyrażenie jest niepoprawne, jest zachowywane z bieżącą wartością.
11.104 geq
Zastosuj równanie ogólne do każdego piksela.
Filtr akceptuje następujące opcje:
lum_expr, lum
Ustaw wyrażenie luminancji.
cb_expr, cb
Ustaw ekspresję chrominance blue.
cr_expr, cr
Ustaw wyraz czerwonej chrominancji.
alpha_expr, a
Ustaw wyrażenie alfa.
red_expr, r
Ustaw czerwony wyraz.
green_expr, g
Ustaw zielone wyrażenie.
blue_expr, b
Ustaw niebieski wyraz.
Przestrzeń kolorów jest wybierana zgodnie z określonymi opcjami. Jeśli jeden zlum_expr
,cb_expr
, lubcr_expr
Jeśli określono opcje, filtr automatycznie wybierze przestrzeń kolorów YCbCr. Jeśli jeden zred_expr
,green_expr
, lub
blue_expr
Jeśli określono opcje, wybierze przestrzeń kolorów RGB.
Jeśli jedno z wyrażeń chrominancji nie jest zdefiniowane, wraca do drugiego. Jeśli nie zostanie określone żadne wyrażenie alfa, zostanie ono ocenione jako wartość nieprzezroczysta. Jeśli żadne z wyrażeń chrominancji nie zostanie określone, zostaną one ocenione jako wyrażenie luminancji.
Wyrażenia mogą wykorzystywać następujące zmienne i funkcje:
N
Numer kolejny przefiltrowanej ramki, począwszy od
0
.X
Y
Współrzędne bieżącej próbki.
W
H
Szerokość i wysokość obrazu.
SW
SH
Skala szerokości i wysokości w zależności od aktualnie filtrowanej płaszczyzny. Jest to stosunek między odpowiednią liczbą pikseli w płaszczyźnie luma a bieżącą liczbą pikseli. Np. dla YUV4:2:0 wartości dotyczą
1,1
płaszczyzny luminancji i0.5,0.5
płaszczyzny chromatycznej.T
Czas bieżącej klatki wyrażony w sekundach.
p(x, y)
Zwróć wartość piksela w lokalizacji (
x
,y
) bieżącej płaszczyzny.lum(x, y)
Zwróć wartość piksela w lokalizacji (
x
,y
) płaszczyzny luminancji.cb(x, y)
Zwróć wartość piksela w lokalizacji (
x
,y
) płaszczyzny chrominancji niebieskiej różnicy. Zwróć 0, jeśli nie ma takiego samolotu.cr(x, y)
Zwraca wartość piksela w lokalizacji (
x
,y
) płaszczyzny chromatycznej różnicy czerwieni. Zwróć 0, jeśli nie ma takiego samolotu.r(x, y)
g(x, y)
b(x, y)
Zwróć wartość piksela w lokalizacji (
x
,y
) składnika czerwonego/zielonego/niebieskiego. Zwróć 0, jeśli nie ma takiego składnika.alpha(x, y)
Zwróć wartość piksela w lokalizacji (
x
,y
) płaszczyzny alfa. Zwróć 0, jeśli nie ma takiego samolotu.psum(x,y), lumsum(x, y), cbsum(x,y), crsum(x,y), rsum(x,y), gsum(x,y), bsum(x,y), alphasum(x,y)
Suma wartości próbek w prostokącie od (0,0) do (x,y), pozwala to uzyskać sumy próbek w prostokącie. Zobacz funkcje bez przyrostka sumy.
interpolation
Ustaw jedną z metod interpolacji:
nearest, n
bilinear, b
Domyślnie jest dwuliniowy.
W przypadku funkcji, jeśli x
i y
znajdują się poza obszarem, wartość zostanie automatycznie przycięta do bliższej krawędzi.
Należy pamiętać, że ten filtr może używać wielu wątków, w którym to przypadku każdy wycinek będzie miał swój własny stan wyrażenia. Jeśli chcesz użyć tylko jednego stanu wyrażenia, ponieważ twoje wyrażenia zależą od poprzedniego stanu, powinieneś ograniczyć liczbę wątków filtra do 1.
11.104.1 Examples
- Odwróć obraz w poziomie:
geq=p(W-X\,Y)
- Wygeneruj dwuwymiarową falę sinusoidalną o kącie
PI/3
i długości fali 100 pikseli:geq=128 + 100*sin(2*(PI/100)*(cos(PI/3)*(X-50*T) + sin(PI/3)*Y)):128:128
- Wygeneruj fantazyjne, enigmatyczne ruchome światło:
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
- Wygeneruj szybki efekt wytłoczenia:
format=gray,geq=lum_expr='(p(X,Y)+(256-p(X-4,Y-4)))/2'
- Zmodyfikuj komponenty RGB w zależności od pozycji piksela:
geq=r='X/W*r(X,Y)':g='(1-X/W)*g(X,Y)':b='(H-Y)/H*b(X,Y)'
- Utwórz gradient promieniowy o takim samym rozmiarze jak dane wejściowe (zobacz także filtr
winietowy ):
geq=lum=255*gauss((X/W-0.5)*3)*gauss((Y/H-0.5)*3)/gauss(0)/gauss(0),format=gray
11.105 gradfun
Napraw artefakty pasków, które czasami są wprowadzane do prawie płaskich obszarów przez obcięcie do 8-bitowej głębi kolorów. Przeprowadź interpolację gradientów, które powinny przebiegać w miejscu, w którym znajdują się wstęgi, i roztrząsaj je.
Jest przeznaczony wyłącznie do odtwarzania. Nie używaj go przed kompresją stratną, ponieważ kompresja ma tendencję do utraty ditheringu i przywracania pasm.
Przyjmuje następujące parametry:
strength
Maksymalna wartość, o jaką filtr zmieni jeden piksel. Jest to również próg wykrywania prawie płaskich obszarów. Dopuszczalne wartości wahają się od 0,51 do 64; domyślna wartość to 1,2. Wartości spoza zakresu zostaną przycięte do prawidłowego zakresu.
radius
Okolica, do której należy dopasować nachylenie. Większy promień zapewnia gładsze gradienty, ale także zapobiega modyfikowaniu przez filtr pikseli w pobliżu szczegółowych regionów. Dopuszczalne wartości to 8-32; domyślna wartość to 16. Wartości spoza zakresu zostaną przycięte do prawidłowego zakresu.
Alternatywnie opcje można określić jako płaski ciąg:
strength
[: radius
]
11.105.1 Examples
- Zastosuj filtr o
3.5
sile i promieniu8
:gradfun=3.5:8
- Określ promień, pomijając siłę (która powróci do wartości domyślnej):
gradfun=radius=8
11.106 graphmonitor
Pokaż różne statystyki filtrowania.
Za pomocą tego filtru można debugować pełny wykres filtra. Zwłaszcza problemy z wypełnianiem linków ramkami w kolejce.
Filtr akceptuje następujące opcje:
size, s
Ustaw rozmiar wyjścia wideo. Wartość domyślna to
hd720
.opacity, o
Ustaw przezroczystość wideo. Wartość domyślna to
0.9
. Dozwolony zakres to od0
do1
.mode, m
Ustaw tryb wyjścia, może być
fulll
lubcompact
. Wcompact
trybie tylko filtry z niektórymi ramkami w kolejce wyświetlają statystyki.flags, f
Ustaw flagi, które umożliwiają wyświetlanie statystyk w filmie.
Dostępne wartości dla flag to:
- '
queue
' Wyświetl liczbę ramek w kolejce w każdym łączu.
- '
frame_count_in
' Wyświetl liczbę klatek pobranych z filtra.
- '
frame_count_out
' Wyświetla liczbę klatek wydanych z filtra.
- '
frame_count_delta
' Wyświetla deltę liczby klatek między powyższymi dwiema wartościami.
- '
pts
' Wyświetlaj aktualne przefiltrowane punkty ramki.
- '
pts_delta
' Wyświetlaj deltę punktów między bieżącą a poprzednią klatką.
- '
time
' Wyświetla bieżący czas filtrowania klatek.
- '
time_delta
' Wyświetl deltę czasu między bieżącą a poprzednią klatką.
- '
timebase
' Wyświetl podstawę czasu dla linku filtra.
- '
format
' Wyświetl używany format linku filtra.
- '
size
' Wyświetlaj rozmiar wideo lub liczbę kanałów audio w przypadku dźwięku używanego przez łącze filtra.
- '
rate
' Wyświetlaj częstotliwość klatek wideo lub częstotliwość próbkowania w przypadku dźwięku używanego przez łącze filtra.
- '
eof
' Wyświetl stan wyjścia łącza.
- '
sample_count_in
' Wyświetl liczbę próbek pobranych z filtra.
- '
sample_count_out
' Wyświetla liczbę próbek wydanych z filtra.
- '
sample_count_delta
' Wyświetla deltę liczby próbek między powyższymi dwiema wartościami.
- '
rate, r
Ustaw górny limit szybkości wideo strumienia wyjściowego. Wartość domyślna to
25
. Gwarantuje to, że wyjściowa szybkość klatek wideo nie będzie wyższa niż ta wartość.
11.107 grayworld
Filtr stałości kolorów, który stosuje korekcję kolorów w oparciu o założenie grayworld
Algorytm wykorzystuje światło liniowe, dlatego dane wejściowe powinny być wcześniej zlinearyzowane (i ewentualnie poprawnie otagowane).
ffmpeg -i INPUT -vf zscale=transfer=linear,grayworld,zscale=transfer=bt709,format=yuv420p OUTPUT
11.108 greyedge
Filtr zmienności kolorów, który szacuje oświetlenie sceny za pomocą algorytmu krawędzi szarości i odpowiednio koryguje kolory sceny.
Zobacz: https://staff.science.uva.nl/th.gevers/pub/GeversTIP07.pdf
Filtr akceptuje następujące opcje:
difford
Kolejność różnicowania do zastosowania na scenie. Musi być wybrany z zakresu [0,2], a wartość domyślna to 1.
minknorm
Parametr Minkowskiego do obliczenia odległości Minkowskiego. Musi być wybrany w zakresie [0,20], a domyślna wartość to 1. Ustaw na 0, aby uzyskać maksymalną wartość zamiast obliczania odległości Minkowskiego.
sigma
Odchylenie standardowe rozmycia Gaussa do zastosowania na scenie. Musi być wybrany z zakresu [0,1024,0], a wartość domyślna = 1. floor(
sigma
* break_off_sigma(3) ) nie może być równe 0, jeślidifford
jest większe od 0.
11.108.1 Examples
- Szara krawędź:
greyedge=difford=1:minknorm=5:sigma=2
- Maksymalna krawędź:
greyedge=difford=1:minknorm=0:sigma=2
11.109 guided
Zastosuj filtr z przewodnikiem do wygładzania krawędzi, usuwania zamglenia i tak dalej.
Filtr akceptuje następujące opcje:
radius
Ustaw promień pudełka w pikselach. Dozwolony zakres to 1 do 20. Wartość domyślna to 3.
eps
Ustaw parametr regularyzacji (z kwadratem). Dozwolony zakres to 0 do 1. Wartość domyślna to 0,01.
mode
Ustaw tryb filtrowania. Może być
basic
lubfast
. Wartość domyślna tobasic
.sub
Ustaw współczynnik podpróbkowania dla
fast
trybu. Zakres od 2 do 64. Wartość domyślna to 4. Wbasic
trybie nie występuje podpróbkowanie.guidance
Ustaw tryb prowadzenia. Może być
off
lubon
. Wartość domyślna tooff
. Jeślioff
wymagane jest jedno wejście. Jeślion
wymagane są dwa wejścia o tej samej rozdzielczości i formacie pikseli. Drugie wejście służy jako wskazówka.planes
Ustaw samoloty do filtrowania. Domyślnie jest tylko pierwszy.
11.109.1 Commands
Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .
11.109.2 Examples
- Wygładzanie z zachowaniem krawędzi z filtrem prowadzonym:
ffmpeg -i in.png -vf guided out.png
- Usuwanie zamglenia, filtrowanie przenoszące strukturę, uwydatnianie szczegółów za pomocą filtra kierowanego. Informacje na temat generowania obrazu nawigacji można znaleźć w dokumencie „Guided Image Filtering”. Zobacz: http://kaiminghe.com/publications/pami12guidedfilter.pdf .
ffmpeg -i in.png -i guidance.png -filter_complex guided=guidance=on out.png
11.110 haldclut
Zastosuj Hald CLUT do strumienia wideo.
Pierwsze wejście to strumień wideo do przetworzenia, a drugie to Hald CLUT. Wejście Hald CLUT może być prostym obrazem lub pełnym strumieniem wideo.
Filtr akceptuje następujące opcje:
clut
Ustaw, które klatki wideo CLUT będą przetwarzane z drugiego strumienia wejściowego, może to być
first
luball
. Wartość domyślna toall
.shortest
Wymuś zakończenie po zakończeniu najkrótszego wejścia. Wartość domyślna to
0
.repeatlast
Kontynuuj stosowanie ostatniej CLUT po zakończeniu strumienia. Wartość
0
wyłączenia filtra po osiągnięciu ostatniej ramki CLUT. Wartość domyślna to1
.
haldclut
ma również te same opcje interpolacji co lut3d (oba filtry mają te same elementy wewnętrzne).
Ten filtr obsługuje również opcje framesync .
Więcej informacji na temat Hald CLUT można znaleźć na stronie internetowej Eskila Steenberga (autora Hald CLUT) pod adresem http://www.quelsolaar.com/technology/clut.html .
11.110.1 Commands
Ten filtr obsługuje interp
opcję jako polecenia .
11.110.2 Workflow examples
11.110.2.1 Hald CLUT video stream
Wygeneruj strumień tożsamości Hald CLUT zmieniony z różnymi efektami:
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
Uwaga: upewnij się, że używasz bezstratnego kodeka.
Następnie użyj go z, haldclut
aby zastosować go w jakimś losowym strumieniu:
ffmpeg -f lavfi -i mandelbrot -i clut.nut -filter_complex '[0][1] haldclut' -t 20 mandelclut.mkv
Hald CLUT zostanie zastosowany do pierwszych 10 sekund (czas trwania
clut.nut
), najnowszy obraz tego strumienia CLUT zostanie zastosowany do pozostałych ramek mandelbrot
strumienia.
11.110.2.2 Hald CLUT with preview
Hald CLUT ma być kwadratowym obrazem o Level*Level*Level
pikselach
Level*Level*Level
. Dla danego Hald CLUT, FFmpeg wybierze największy możliwy kwadrat, zaczynając od lewego górnego rogu obrazu. Pozostałe piksele dopełniające (dolne lub prawe) zostaną zignorowane. Ten obszar może być użyty do dodania podglądu Hald CLUT.
Zazwyczaj filtr obsługuje następujące wygenerowane elementy Hald CLUT
haldclut
:
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
Zawiera oryginał i podgląd efektu CLUT: paski kolorów SMPTE są wyświetlane w prawym górnym rogu, a poniżej te same paski kolorów przetworzone przez zmiany kolorów.
Następnie efekt tego Hald CLUT można zwizualizować za pomocą:
ffplay input.mkv -vf "movie=clut.png, [in] haldclut"
11.111 hflip
Odwróć wejściowy sygnał wideo w poziomie.
Na przykład, aby odwrócić wejście wideo w poziomie za pomocą ffmpeg
:
ffmpeg -i in.avi -vf "hflip" out.avi
11.112 histeq
Ten filtr stosuje globalne wyrównanie histogramu kolorów na klatkę.
Może być używany do poprawiania wideo, które ma skompresowany zakres intensywności pikseli. Filtr dokonuje redystrybucji intensywności pikseli, aby wyrównać ich rozkład w całym zakresie intensywności. Może być postrzegany jako „automatycznie dostosowujący się filtr kontrastu”. Ten filtr jest przydatny tylko do korygowania zdegradowanego lub słabo przechwyconego źródła wideo.
Filtr akceptuje następujące opcje:
strength
Określ ilość wyrównania do zastosowania. W miarę zmniejszania się siły rozkład intensywności pikseli coraz bardziej zbliża się do ramki wejściowej. Wartość musi być liczbą zmiennoprzecinkową z zakresu [0,1] i domyślnie wynosi 0,200.
intensity
Ustaw maksymalną intensywność, jaką można wygenerować i odpowiednio skaluj wartości wyjściowe. Siłę należy ustawić według potrzeb, a następnie w razie potrzeby ograniczyć intensywność, aby uniknąć wymywania. Wartość musi być liczbą zmiennoprzecinkową z zakresu [0,1] i domyślnie wynosi 0,210.
antibanding
Ustaw poziom przeciwdziałania prążkom. Jeśli jest włączony, filtr będzie losowo zmieniał luminancję wyjściowych pikseli o niewielką wartość, aby uniknąć prążkowania histogramu. Możliwe wartości to
none
,weak
lubstrong
. Domyślnie jest tonone
.
11.113 histogram
Oblicz i narysuj histogram rozkładu kolorów dla wejściowego wideo.
Obliczony histogram jest reprezentacją rozkładu składowej koloru na obrazie.
Histogram standardowy wyświetla rozkład składników koloru na obrazie. Wyświetla wykres kolorów dla każdego składnika koloru. Pokazuje rozkład składowych Y, U, V, A lub R, G, B, w zależności od formatu wejściowego, w bieżącej ramce. Pod każdym wykresem pokazany jest miernik skali składowej koloru.
Filtr akceptuje następujące opcje:
level_height
Ustaw wysokość poziomu. Wartość domyślna to
200
. Dozwolony zakres to [50, 2048].scale_height
Ustaw wysokość skali kolorów. Wartość domyślna to
12
. Dozwolony zakres to [0, 40].display_mode
Ustaw tryb wyświetlania. Przyjmuje następujące wartości:
- '
stack
' Wykresy składowe dla poszczególnych kolorów są umieszczane pod sobą.
- '
parade
' Wykresy składowe kolorów są umieszczane obok siebie.
- '
overlay
' Przedstawia informacje identyczne jak w
parade
, z tą różnicą, że wykresy przedstawiające składowe kolorów nakładają się bezpośrednio na siebie.
Wartość domyślna to
stack
.- '
levels_mode
Ustaw tryb. Może być
linear
, lublogarithmic
. Wartość domyślna tolinear
.components
Ustaw komponenty kolorów do wyświetlenia. Wartość domyślna to
7
.fgopacity
Ustaw krycie pierwszego planu. Wartość domyślna to
0.7
.bgopacity
Ustaw krycie tła. Wartość domyślna to
0.5
.colors_mode
Ustaw tryb kolorów. Przyjmuje następujące wartości:
- '
whiteonblack
' - '
blackonwhite
' - '
whiteongray
' - '
blackongray
' - '
coloronblack
' - '
coloronwhite
' - '
colorongray
' - '
blackoncolor
' - '
whiteoncolor
' - '
grayoncolor
'
Wartość domyślna to
whiteonblack
.- '
11.113.1 Examples
- Oblicz i narysuj histogram:
ffplay -i input -vf histogram
11.114 hqdn3d
Jest to filtr odszumiający 3D o wysokiej precyzji/jakości. Ma na celu zmniejszenie szumów obrazu, uzyskanie płynnych obrazów i uzyskanie naprawdę nieruchomych obrazów. Powinien poprawiać ściśliwość.
Akceptuje następujące parametry opcjonalne:
luma_spatial
Nieujemna liczba zmiennoprzecinkowa określająca przestrzenną siłę światła. Domyślnie 4.0.
chroma_spatial
Nieujemna liczba zmiennoprzecinkowa, która określa przestrzenną siłę koloru. Domyślnie jest to 3.0*
luma_spatial
/4.0.luma_tmp
Liczba zmiennoprzecinkowa określająca czasową siłę luma. Domyślnie jest to 6.0*/
luma_spatial
4.0.chroma_tmp
Liczba zmiennoprzecinkowa, która określa czasową siłę barwy. Domyślnie jest to
luma_tmp
*chroma_spatial
/luma_spatial
.
11.114.1 Commands
Ten filtr obsługuje te same polecenia, co opcje. Polecenie akceptuje tę samą składnię odpowiedniej opcji.
Jeśli podane wyrażenie jest niepoprawne, jest zachowywane z bieżącą wartością.
11.115 hwdownload
Pobierz ramki sprzętowe do pamięci systemowej.
Wejście musi być w ramkach sprzętowych, a wyjście w formacie niesprzętowym. Nie wszystkie formaty będą obsługiwane na wyjściu - może być konieczne wstawienie dodatkowegoformat
filtruj bezpośrednio na wykresie, aby uzyskać dane wyjściowe w obsługiwanym formacie.
11.116 hwmap
Mapuj ramki sprzętowe do pamięci systemowej lub do innego urządzenia.
Ten filtr ma kilka różnych trybów działania; który z nich jest używany, zależy od formatu wejściowego i wyjściowego:
- Wejście ramki sprzętowej, normalne wyjście ramki
Zmapuj ramki wejściowe do pamięci systemowej i przekaż je do wyjścia. Jeśli oryginalna rama sprzętowa jest później wymagana (na przykład po nałożeniu czegoś innego na jej część),
hwmap
filtr może być użyty ponownie w następnym trybie, aby go pobrać. - Normalne wejście ramki, wyjście ramki sprzętowej
Jeśli dane wejściowe są w rzeczywistości mapowaną programowo ramką sprzętową, usuń ją — to znaczy zwróć oryginalną ramkę sprzętową.
W przeciwnym razie należy dostarczyć urządzenie. Utwórz nowe powierzchnie sprzętowe na tym urządzeniu dla danych wyjściowych, a następnie zamapuj je z powrotem na format oprogramowania na wejściu i przypisz te ramki do poprzedniego filtru. To będzie wtedy działać jak
hwupload
filtr, ale może być w stanie uniknąć dodatkowej kopii, gdy dane wejściowe są już w zgodnym formacie. - Wejście i wyjście ramki sprzętowej
Urządzenie musi być dostarczone do wyjścia, bezpośrednio lub z
derive_device
opcja. Urządzenia wejściowe i wyjściowe muszą być różnych typów i kompatybilne — dokładne znaczenie tego zależy od systemu, ale zazwyczaj oznacza to, że muszą odnosić się do tego samego kontekstu sprzętowego (na przykład do tej samej karty graficznej).Jeśli ramki wejściowe zostały pierwotnie utworzone na urządzeniu wyjściowym, usuń mapowanie, aby pobrać oryginalne ramki.
W przeciwnym razie zmapuj ramki na urządzenie wyjściowe - utwórz nowe ramki sprzętowe na wyjściu, odpowiadające ramkom na wejściu.
Akceptowane są następujące dodatkowe parametry:
mode
Ustaw tryb mapowania ramek. Pewna kombinacja:
read
Zmapowana ramka powinna być czytelna.
write
Zmapowana ramka powinna być zapisywalna.
overwrite
Mapowanie zawsze nadpisze całą ramkę.
W niektórych przypadkach może to poprawić wydajność, ponieważ oryginalna zawartość ramki nie musi być ładowana.
direct
Mapowanie nie może obejmować żadnego kopiowania.
Pośrednie mapowania do kopii ramek są tworzone w niektórych przypadkach, gdy bezpośrednie mapowanie nie jest możliwe lub miałoby nieoczekiwane właściwości. Ustawienie tej flagi zapewnia, że ​​mapowanie jest bezpośrednie i nie powiedzie się, jeśli nie jest to możliwe.
Wartość domyślna to
read+write
, jeśli nie określono.derive_device
type
Zamiast używać urządzenia dostarczonego podczas inicjalizacji, zamiast tego wyprowadź nowe urządzenie typu
type
z urządzenia, na którym istnieją ramki wejściowe.reverse
W mapowaniu sprzętu na sprzęt, mapuj w odwrotnej kolejności - utwórz ramki w zlewie i mapuj je z powrotem do źródła. Może to być konieczne w niektórych przypadkach, gdy wymagane jest mapowanie w jednym kierunku, ale używane urządzenia obsługują tylko kierunek przeciwny.
Ta opcja jest niebezpieczna - może przerwać poprzedni filtr w nieokreślony sposób, jeśli istnieją dodatkowe ograniczenia na wyjściu tego filtra. Nie używaj go bez pełnego zrozumienia konsekwencji jego użycia.
11.117 hwupload
Prześlij ramki pamięci systemowej na powierzchnie sprzętowe.
Urządzenie do załadowania musi być dostarczone podczas inicjalizacji filtra. Jeśli używasz ffmpeg, wybierz odpowiednie urządzenie za pomocą-filter_hw_device
opcja lub zderive_device
opcja. Urządzenia wejściowe i wyjściowe muszą być różnych typów i kompatybilne — dokładne znaczenie tego zależy od systemu, ale zazwyczaj oznacza to, że muszą odnosić się do tego samego kontekstu sprzętowego (na przykład do tej samej karty graficznej).
Akceptowane są następujące dodatkowe parametry:
derive_device
type
Zamiast używać urządzenia dostarczonego podczas inicjalizacji, zamiast tego wyprowadź nowe urządzenie typu
type
z urządzenia, na którym istnieją ramki wejściowe.
11.118 hwupload_cuda
Prześlij ramki pamięci systemowej do urządzenia CUDA.
Akceptuje następujące parametry opcjonalne:
device
Numer używanego urządzenia CUDA
11.119 hqx
Zastosuj wysokiej jakości filtr powiększenia przeznaczony do grafiki pikselowej. Ten filtr został pierwotnie stworzony przez Maxima Stepina.
Akceptuje następującą opcję:
n
Ustaw wymiar skalowania:
2
forhq2x
,3
forhq3x
i4
forhq4x
. Wartość domyślna to3
.
11.120 hstack
Ułóż wideo wejściowe w poziomie.
Wszystkie strumienie muszą mieć ten sam format pikseli i tę samą wysokość.
Zauważ, że ten filtr jest szybszy niż użycie filtra nakładki i padu do stworzenia tego samego wyjścia.
Filtr akceptuje następującą opcję:
inputs
Ustaw liczbę strumieni wejściowych. Wartość domyślna to 2.
shortest
Jeśli jest ustawiony na 1, wymusza zakończenie wyjścia po zakończeniu najkrótszego wejścia. Wartość domyślna to 0.
11.121 hsvhold
Zamienia określony zakres HSV na wartości szarości.
Ten filtr mierzy różnicę kolorów między ustawionym kolorem HSV w opcjach a kolorami mierzonymi w strumieniu wideo. W zależności od opcji, kolory wyjściowe można zmienić na szare lub nie.
Filtr akceptuje następujące opcje:
hue
Ustaw wartość odcienia, która będzie używana do obliczania różnicy kolorów. Dozwolony zakres to od -360 do 360. Wartość domyślna to 0.
sat
Ustaw wartość nasycenia, która będzie używana do obliczania różnicy kolorów. Dozwolony zakres to od -1 do 1. Wartość domyślna to 0.
val
Ustaw wartość, która będzie używana do obliczania różnicy kolorów. Dozwolony zakres to od -1 do 1. Wartość domyślna to 0.
similarity
Ustaw procent podobieństwa za pomocą koloru klucza. Dozwolony zakres to od 0 do 1. Wartość domyślna to 0,01.
0,00001 pasuje tylko do dokładnego koloru klucza, podczas gdy 1.0 pasuje do wszystkiego.
blend
Procent mieszanki. Dozwolony zakres to od 0 do 1. Wartość domyślna to 0.
0.0 sprawia, że ​​piksele są albo całkowicie szare, albo wcale nie są szare.
Wyższe wartości dają więcej szarych pikseli, im wyższy szary piksel, tym bardziej zbliżony kolor pikseli do koloru kluczowego.
11.122 hsvkey
Zamienia określony zakres HSV w przezroczystość.
Ten filtr mierzy różnicę kolorów między ustawionym kolorem HSV w opcjach a kolorami mierzonymi w strumieniu wideo. W zależności od opcji kolory wyjściowe można zmienić na przezroczyste, dodając kanał alfa.
Filtr akceptuje następujące opcje:
hue
Ustaw wartość odcienia, która będzie używana do obliczania różnicy kolorów. Dozwolony zakres to od -360 do 360. Wartość domyślna to 0.
sat
Ustaw wartość nasycenia, która będzie używana do obliczania różnicy kolorów. Dozwolony zakres to od -1 do 1. Wartość domyślna to 0.
val
Ustaw wartość, która będzie używana do obliczania różnicy kolorów. Dozwolony zakres to od -1 do 1. Wartość domyślna to 0.
similarity
Ustaw procent podobieństwa za pomocą koloru klucza. Dozwolony zakres to od 0 do 1. Wartość domyślna to 0,01.
0,00001 pasuje tylko do dokładnego koloru klucza, podczas gdy 1.0 pasuje do wszystkiego.
blend
Procent mieszanki. Dozwolony zakres to od 0 do 1. Wartość domyślna to 0.
0.0 sprawia, że ​​piksele są w pełni przezroczyste lub w ogóle nie są przezroczyste.
Wyższe wartości skutkują półprzezroczystymi pikselami, przy większej przezroczystości kolor pikseli jest bardziej zbliżony do koloru kluczowego.
11.123 hue
Zmodyfikuj odcień i/lub nasycenie wejścia.
Przyjmuje następujące parametry:
h
Określ kąt barwy jako liczbę stopni. Akceptuje wyrażenie i domyślnie przyjmuje wartość „0”.
s
Określ nasycenie w zakresie [-10,10]. Akceptuje wyrażenie i domyślnie przyjmuje wartość „1”.
H
Określ kąt barwy jako liczbę radianów. Akceptuje wyrażenie i domyślnie przyjmuje wartość „0”.
b
Określ jasność w zakresie [-10,10]. Akceptuje wyrażenie i domyślnie przyjmuje wartość „0”.
h
orazH
wykluczają się wzajemnie i nie można ich jednocześnie określić.
Theb
,h
,H
orazs
wartości opcji to wyrażenia zawierające następujące stałe:
n
liczba klatek klatki wejściowej począwszy od 0
pts
znacznik czasu prezentacji ramki wejściowej wyrażony w jednostkach podstawy czasu
r
liczba klatek na sekundę wejściowego wideo, NAN, jeśli liczba klatek na sekundę wejściowa jest nieznana
t
znacznik czasu wyrażony w sekundach, NAN, jeśli wejściowy znacznik czasu jest nieznany
tb
podstawa czasu wejściowego wideo
11.123.1 Examples
- Ustaw barwę na 90 stopni, a nasycenie na 1.0:
hue=h=90:s=1
- To samo polecenie, ale wyrażające odcień w radianach:
hue=H=PI/2:s=1
- Obróć odcień i ustaw nasycenie w zakresie od 0 do 2 w ciągu 1 sekundy:
hue="H=2*PI*t: s=sin(2*PI*t)+1"
- Zastosuj 3-sekundowy efekt zanikania nasycenia, zaczynając od 0:
hue="s=min(t/3\,1)"
Ogólne wyrażenie zanikania można zapisać jako:
hue="s=min(0\, max((t-START)/DURATION\, 1))"
- Zastosuj 3-sekundowy efekt zanikania nasycenia, zaczynając od 5 sekund:
hue="s=max(0\, min(1\, (8-t)/3))"
Ogólne wyrażenie zanikania można zapisać jako:
hue="s=max(0\, min(1\, (START+DURATION-t)/DURATION))"
11.123.2 Commands
Ten filtr obsługuje następujące polecenia:
b
s
h
H
Zmodyfikuj odcień i/lub nasycenie i/lub jasność wejściowego wideo. Polecenie akceptuje tę samą składnię odpowiedniej opcji.
Jeśli podane wyrażenie jest niepoprawne, jest zachowywane z bieżącą wartością.
11.124 huesaturation
Zastosuj korekty barwy-nasycenia-intensywności do wejściowego strumienia wideo.
Ten filtr działa w przestrzeni kolorów RGB.
Ten filtr akceptuje następujące opcje:
hue
Ustaw zmianę odcienia w stopniach do zastosowania. Wartość domyślna to 0. Dozwolony zakres to od -180 do 180.
saturation
Ustaw przesunięcie nasycenia. Wartość domyślna to 0. Dozwolony zakres to od -1 do 1.
intensity
Ustaw zmianę intensywności. Wartość domyślna to 0. Dozwolony zakres to od -1 do 1.
colors
Ustaw, które kolory podstawowe i uzupełniające będą dostosowywane. Ta opcja jest ustawiana przez podanie jednej lub wielu wartości. To może wybrać wiele kolorów na raz. Domyślnie wybrane są wszystkie kolory.
- '
r
' Dostosuj czerwienie.
- '
y
' Dostosuj żółcie.
- '
g
' Dostosuj zielenie.
- '
c
' Dostosuj cyjan.
- '
b
' Dostosuj blues.
- '
m
' Dostosuj magenta.
- '
a
' Dostosuj wszystkie kolory.
- '
strength
Ustaw siłę filtrowania. Dozwolony zakres to od 0 do 100. Wartość domyślna to 1.
rw, gw, bw
Ustaw wagę dla każdego składnika RGB. Dozwolony zakres to od 0 do 1. Domyślnie jest ustawiony na 0,333, 0,334, 0,333. Te opcje są wykorzystywane w nasyceniu i rozjaśnieniu przetwarzania.
lightness
Zestaw zachowujący lekkość, domyślnie jest wyłączony. Dostosowanie odcieni może zmienić jasność z oryginalnej trójki RGB, przy włączonej tej opcji jasność jest utrzymywana na tej samej wartości.
11.125 hysteresis
Rozwijaj pierwszy strumień w drugi, łącząc komponenty. Umożliwia to budowanie bardziej wytrzymałych masek krawędzi.
Ten filtr akceptuje następujące opcje:
planes
Ustaw, które płaszczyzny będą przetwarzane jako bitmapa, nieprzetworzone płaszczyzny zostaną skopiowane z pierwszego strumienia. Domyślna wartość 0xf, wszystkie płaszczyzny będą przetwarzane.
threshold
Ustaw próg, który jest używany w filtrowaniu. Jeśli wartość składnika piksela jest wyższa od tej wartości, aktywowany jest algorytm filtrowania łączenia składników. Domyślna wartość to 0.
Filtr hysteresis
obsługuje również opcje framesync .
11.126 iccdetect
Wykryj przestrzeń kolorów z osadzonego profilu ICC (jeśli jest obecny) i odpowiednio zaktualizuj znaczniki ramki.
Ten filtr akceptuje następujące opcje:
force
Jeśli tak, istniejące znaczniki przestrzeni kolorów w ramce będą zawsze zastępowane wartościami wykrytymi z profilu ICC. W przeciwnym razie zostaną przypisane tylko wtedy, gdy zawierają
unknown
. Domyślnie włączone.
11.127 iccgen
Generuj profile ICC i dołączaj je do ram.
Ten filtr akceptuje następujące opcje:
color_primaries
color_trc
Skonfiguruj przestrzeń kolorów, dla której będzie generowany profil ICC. Domyślna wartość
auto
wyprowadza wartość z metadanych ramki wejściowej, domyślnie BT.709/sRGB.Zobacz filtr setparams , aby uzyskać listę możliwych wartości, ale pamiętaj, że
unknown
nie są to prawidłowe wartości dla tego filtru.force
Jeśli tak, profil ICC zostanie wygenerowany, nawet jeśli nadpisze już istniejący profil ICC. Domyślnie wyłączone.
11.128 identity
Uzyskaj wynik tożsamości między dwoma wejściowymi filmami wideo.
Ten filtr pobiera dwa wideo wejściowe.
Aby ten filtr działał poprawnie, oba wideo wejściowe muszą mieć tę samą rozdzielczość i format pikseli. Zakłada również, że oba wejścia mają taką samą liczbę klatek, które są porównywane jedna po drugiej.
Uzyskany na składnik, średni, minimalny i maksymalny wynik tożsamości jest drukowany przez system rejestrowania.
Filtr przechowuje obliczone wyniki tożsamości każdej ramki w metadanych ramki.
W poniższym przykładzie plik wejściowymain.mpg
przetwarzany jest porównywany z plikiem referencyjnymref.mpg
.
ffmpeg -i main.mpg -i ref.mpg -lavfi identity -f null -
11.129 idet
Wykryj typ przeplotu wideo.
Ten filtr próbuje wykryć, czy ramki wejściowe są najpierw z przeplotem, progresywne, górne czy dolne. Będzie również próbował wykryć pola, które powtarzają się między sąsiednimi ramkami (oznaka telecine).
Wykrywanie pojedynczej ramki uwzględnia tylko bezpośrednio przylegające ramki podczas klasyfikowania każdej ramki. Wykrywanie wielu ramek obejmuje historię klasyfikacji poprzednich ramek.
Filtr zarejestruje te wartości metadanych:
single.current_frame
Wykryty typ bieżącej ramki przy użyciu wykrywania pojedynczej ramki. Jedno z: „tff” (najpierw górne pole), „bff” (najpierw dolne pole), „progresywne” lub „nieokreślone”
single.tff
Skumulowana liczba ramek wykrytych jako pierwsze w górnym polu przy użyciu wykrywania pojedynczej ramki.
multiple.tff
Skumulowana liczba ramek wykrytych jako pierwsze w górnym polu przy użyciu wykrywania wielu ramek.
single.bff
Skumulowana liczba ramek wykrytych jako pierwsze w dolnym polu przy użyciu wykrywania pojedynczej ramki.
multiple.current_frame
Wykryty typ bieżącej ramki przy użyciu wykrywania wielu ramek. Jedno z: „tff” (najpierw górne pole), „bff” (najpierw dolne pole), „progresywne” lub „nieokreślone”
multiple.bff
Skumulowana liczba ramek wykrytych jako pierwsze w dolnym polu przy użyciu wykrywania wielu ramek.
single.progressive
Skumulowana liczba ramek wykrytych jako progresywne przy użyciu wykrywania pojedynczej ramki.
multiple.progressive
Skumulowana liczba ramek wykrytych jako progresywne przy użyciu wykrywania wielu ramek.
single.undetermined
Łączna liczba ramek, których nie można było sklasyfikować za pomocą wykrywania pojedynczych ramek.
multiple.undetermined
Łączna liczba ramek, których nie można było sklasyfikować za pomocą wykrywania wielu ramek.
repeated.current_frame
Które pole w bieżącej ramce powtarza się od ostatniego. Jedno z „ani”, „góra” lub „dół”.
repeated.neither
Skumulowana liczba ramek bez powtarzającego się pola.
repeated.top
Skumulowana liczba ramek z górnym polem powtórzonym z górnego pola poprzedniej ramki.
repeated.bottom
Łączna liczba ramek z dolnym polem powtórzonym z dolnego pola poprzedniej ramki.
Filtr akceptuje następujące opcje:
intl_thres
Ustaw próg przeplotu.
prog_thres
Ustaw progresywny próg.
rep_thres
Próg dla wielokrotnego wykrywania pola.
half_life
Liczba ramek, po których udział danej ramki w statystykach zmniejsza się o połowę (tj. wnosi tylko 0,5 do jej klasyfikacji). Domyślna wartość 0 oznacza, że ​​wszystkie widziane klatki otrzymują na zawsze pełną wagę 1.0.
analyze_interlaced_flag
Gdy nie jest to 0, idet użyje określonej liczby ramek do określenia, czy flaga z przeplotem jest dokładna, nie będzie zliczać nieokreślonych ramek. Jeśli flaga zostanie uznana za dokładną, zostanie użyta bez dalszych obliczeń, jeśli okaże się, że jest niedokładna, zostanie wyczyszczona bez dalszych obliczeń. Pozwala to na wstawienie filtra idet jako niskiej metody obliczeniowej w celu oczyszczenia flagi z przeplotem
11.130 il
Pola Usuń przeplot lub przeplot.
Filtr ten umożliwia przetwarzanie pól obrazów z przeplotem bez ich usuwania. Deinterleaving dzieli klatkę wejściową na 2 pola (tzw. półobrazy). Linie nieparzyste są przenoszone do górnej połowy obrazu wyjściowego, a linie parzyste do dolnej połowy. Można je przetwarzać (filtrować) niezależnie, a następnie ponownie je przeplatać.
Filtr akceptuje następujące opcje:
luma_mode, l
chroma_mode, c
alpha_mode, a
Dostępne wartości dla
luma_mode
ichroma_mode
toalpha_mode
:- '
none
' Nic nie robić.
- '
deinterleave, d
' Rozwiąż pola, umieszczając jedno nad drugim.
- '
interleave, i
' Pola przeplotu. Odwróć efekt rozplatania.
Wartość domyślna to
none
.- '
luma_swap, ls
chroma_swap, cs
alpha_swap, as
Zamień pola luma/chroma/alpha. Wymieniaj linie parzyste i nieparzyste. Wartość domyślna to
0
.
11.130.1 Commands
Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .
11.131 inflate
Zastosuj efekt nadmuchania do filmu.
Filtr ten zastępuje piksel średnią lokalną (3x3), biorąc pod uwagę tylko wartości wyższe niż piksel.
Akceptuje następujące opcje:
threshold0
threshold1
threshold2
threshold3
Ogranicz maksymalną zmianę dla każdej płaszczyzny, domyślnie 65535. Jeśli 0, płaszczyzna pozostanie niezmieniona.
11.131.1 Commands
Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .
11.132 interlace
Prosty filtr z przeplotem z zawartości progresywnej. Przeplata to górne (lub dolne) linie z nieparzystych ramek z dolnymi (lub górnymi) liniami z parzystych ramek, zmniejszając o połowę liczbę klatek na sekundę i zachowując wysokość obrazu.
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
Akceptuje następujące parametry opcjonalne:
scan
Określa to, czy klatka z przeplotem jest pobierana z parzystych (tff - domyślnie) czy nieparzystych (bff) linii klatki progresywnej.
lowpass
Pionowy filtr dolnoprzepustowy, aby uniknąć przeplotu twittera i zredukować efekt mory.
- '
0, off
' Wyłącz pionowy filtr dolnoprzepustowy
- '
1, linear
' Włącz filtr liniowy (domyślnie)
- '
2, complex
' Włącz złożony filtr. Zmniejszy to nieco mniej twittera i mory, ale lepiej zachowa szczegóły i subiektywne wrażenie ostrości.
- '
11.133 kerndeint
Usuwanie przeplotu wideo wejściowego przez zastosowanie adaptacyjnego usuwania przeplotu jądra Donalda Grafta. Pracuj nad przeplatanymi częściami wideo, aby wyprodukować klatki progresywne.
Poniżej znajduje się opis akceptowanych parametrów.
thresh
Ustaw próg, który wpływa na tolerancję filtra podczas określania, czy linia pikseli musi zostać przetworzona. Musi to być liczba całkowita z zakresu [0,255] i domyślnie 10. Wartość 0 spowoduje zastosowanie procesu na każdym pikselu.
map
Pomaluj piksele przekraczające wartość progową na kolor biały, jeśli jest ustawiony na 1. Wartość domyślna to 0.
order
Ustaw kolejność pól. Zamień pola, jeśli jest ustawione na 1, pozostaw pola bez zmian, jeśli 0. Wartość domyślna to 0.
sharp
Włącz dodatkowe wyostrzanie, jeśli jest ustawione na 1. Wartość domyślna to 0.
twoway
Włącz wyostrzanie dwukierunkowe, jeśli jest ustawione na 1. Wartość domyślna to 0.
11.133.1 Examples
- Zastosuj wartości domyślne:
kerndeint=thresh=10:map=0:order=0:sharp=0:twoway=0
- Włącz dodatkowe wyostrzanie:
kerndeint=sharp=1
- Maluj przetworzone piksele na biało:
kerndeint=map=1
11.134 kirsch
Zastosuj operator kirsch do wejścia strumienia wideo.
Filtr akceptuje następującą opcję:
planes
Ustaw, które płaszczyzny będą przetwarzane, nieprzetworzone płaszczyzny zostaną skopiowane. Domyślna wartość 0xf, wszystkie płaszczyzny będą przetwarzane.
scale
Ustaw wartość, która zostanie pomnożona przez przefiltrowany wynik.
delta
Ustaw wartość, która zostanie dodana do przefiltrowanego wyniku.
11.134.1 Commands
Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .
11.135 lagfun
Powoli aktualizuj ciemniejsze piksele.
Filtr ten sprawia, że ​​krótkie błyski światła pojawiają się dłużej. Ten filtr akceptuje następujące opcje:
decay
Ustaw współczynnik rozpadu. Wartość domyślna to 0,95. Dozwolony zakres to od 0 do 1.
planes
Ustaw samoloty do filtrowania. Domyślność to wszystko. Dozwolony zakres to od 0 do 15.
11.135.1 Commands
Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .
11.136 lenscorrection
Prawidłowe zniekształcenie soczewki promieniowej
Filtr ten może być używany do korygowania zniekształceń promieniowych, które mogą wynikać z użycia obiektywów szerokokątnych, a tym samym do ponownej korekcji obrazu. Aby znaleźć odpowiednie parametry można skorzystać z narzędzi dostępnych np. w ramach opencv lub po prostu metodą prób i błędów. Aby użyć opencv, użyj próbki kalibracyjnej (pod sample/cpp) ze źródeł opencv i wyodrębnij współczynniki k1 i k2 z otrzymanej macierzy.
Zauważ, że faktycznie ten sam filtr jest dostępny w narzędziach open-source Krita i Digikam z projektu KDE.
W przeciwieństwie do filtra winietowego , który może być również używany do kompensacji błędów obiektywu, filtr ten koryguje zniekształcenie obrazu, podczas gdy winietowanie koryguje rozkład jasności, więc w niektórych przypadkach możesz chcieć użyć obu filtrów razem, chociaż będziesz miał zadbać o porządek, czyli czy winietowanie powinno być nakładane przed czy po korekcji obiektywu.
11.136.1 Options
Filtr akceptuje następujące opcje:
cx
Względna współrzędna x ogniska obrazu, a tym samym środka zniekształcenia. Ta wartość ma zakres [0,1] i jest wyrażona jako ułamki szerokości obrazu. Wartość domyślna to 0,5.
cy
Względna współrzędna y ogniska obrazu, a tym samym środka zniekształcenia. Wartość ta ma zakres [0,1] i jest wyrażona jako ułamki wysokości obrazu. Wartość domyślna to 0,5.
k1
Współczynnik kwadratowego członu korekcyjnego. Ta wartość ma zakres [-1,1]. 0 oznacza brak korekty. Wartość domyślna to 0.
k2
Współczynnik podwójnej kwadratowej składowej korekcji. Ta wartość ma zakres [-1,1]. 0 oznacza brak korekty. Wartość domyślna to 0.
i
Ustaw typ interpolacji. Może być
nearest
lubbilinear
. Wartość domyślna tonearest
.fc
Określ kolor niezmapowanych pikseli. Aby poznać składnię tej opcji, sprawdź sekcję (ffmpeg-utils)"Color" w podręczniku ffmpeg-utils . Kolor domyślny to
black@0
.
Formuła generująca korektę to:
r_src
= r_tgt
* (1 + k1
* ( r_tgt
/ r_0
)^2 + k2
* ( r_tgt
/ r_0
)^4)
gdzie r_0
jest połową przekątnej obrazu, a r_src
i r_tgt
są odległościami od ogniska odpowiednio w obrazie źródłowym i docelowym.
11.136.2 Commands
Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .
11.137 lensfun
Zastosuj korekcję obiektywu za pomocą biblioteki lensfun ( http://lensfun.sourceforge.net/ ).
Filtr lensfun
wymaga marki aparatu, modelu aparatu i modelu obiektywu, aby zastosować korekcję obiektywu. Filtr załaduje bazę danych lensfun i przeszuka ją, aby znaleźć odpowiednie wpisy aparatu i obiektywu w bazie danych. Dopóki te wpisy można znaleźć przy danych opcjach, filtr może dokonywać korekt na ramkach. Zwróć uwagę, że niekompletne ciągi spowodują, że filtr wybierze najlepsze dopasowanie do podanych opcji, a filtr wyświetli wybrane modele aparatu i obiektywu (zalogowane z poziomem „informacje”). Musisz podać markę, model aparatu i model obiektywu, ponieważ są one wymagane.
Aby uzyskać listę dostępnych marek i modeli, pomiń jedną lub obie opcje make
i
. model
Filtr wyśle ​​pełną listę do logu z poziomem INFO
. Pierwsza kolumna to marka, a druga to model. Aby uzyskać listę dostępnych obiektywów, ustaw dowolne wartości marki i modelu i pomiń
lens_model
opcję. Filtr wyśle ​​pełną listę soczewek w logu z poziomem
INFO
. Narzędzie ffmpeg zostanie zamknięte po wydrukowaniu listy.
Filtr akceptuje następujące opcje:
make
Marka aparatu (na przykład „Canon”). Ta opcja jest wymagana.
model
Model aparatu (na przykład „Canon EOS 100D”). Ta opcja jest wymagana.
lens_model
Model obiektywu (na przykład „Canon EF-S 18-55mm f/3,5-5,6 IS STM”). Ta opcja jest wymagana.
db_path
Pełna ścieżka do folderu bazy danych obiektywów. Jeśli nie jest ustawiona, filtr będzie próbował załadować bazę danych ze ścieżki instalacyjnej podczas budowania biblioteki. Wartość domyślna nie jest ustawiona.
mode
Rodzaj korekty do zastosowania. Poprawnymi opcjami są następujące wartości:
- '
vignetting
' Umożliwia naprawianie winietowania obiektywu.
- '
geometry
' Umożliwia ustalenie geometrii soczewki. To jest ustawienie domyślne.
- '
subpixel
' Umożliwia naprawę aberracji chromatycznych.
- '
vig_geo
' Umożliwia naprawianie winietowania i geometrii soczewki.
- '
vig_subpixel
' Umożliwia naprawianie winietowania obiektywu i aberracji chromatycznych.
- '
distortion
' Umożliwia naprawę zarówno geometrii soczewki, jak i aberracji chromatycznych.
- '
all
' Umożliwia wszystkie możliwe poprawki.
- '
focal_length
Ogniskowa obrazu/wideo (zoom; oczekiwana stała dla wideo). Na przykład obiektyw 18–55 mm ma zakres ogniskowych [18–55], więc podczas korzystania z tego obiektywu należy wybrać wartość z tego zakresu. Domyślnie 18.
aperture
Apertura obrazu/wideo (oczekiwana stała dla wideo). Zwróć uwagę, że przysłona jest używana tylko do korekcji winietowania. Domyślnie 3.5.
focus_distance
Odległość ogniskowania obrazu/wideo (oczekiwana stała dla wideo). Zwróć uwagę, że odległość ogniskowania jest używana tylko do winietowania i tylko nieznacznie wpływa na proces korekcji winietowania. Jeśli nie jest znana, pozostaw ją przy wartości domyślnej (czyli 1000).
scale
Współczynnik skali stosowany po przekształceniu. Po korekcie wideo niekoniecznie jest już prostokątne. Ten parametr kontroluje, jaka część wynikowego obrazu jest widoczna. Wartość 0 oznacza, że ​​wartość zostanie wybrana automatycznie, tak że na obrazie wyjściowym będzie niewiele lub nie będzie żadnego niemapowanego obszaru. 1.0 oznacza, że ​​nie jest wykonywane żadne dodatkowe skalowanie. Niższe wartości mogą skutkować większą widocznością skorygowanego obrazu, podczas gdy wyższe wartości mogą unikać niemapowanych obszarów na wydruku.
target_geometry
Docelowa geometria wyjściowego obrazu/wideo. Poprawnymi opcjami są następujące wartości:
- '
rectilinear (default)
' - '
fisheye
' - '
panoramic
' - '
equirectangular
' - '
fisheye_orthographic
' - '
fisheye_stereographic
' - '
fisheye_equisolid
' - '
fisheye_thoby
'
- '
reverse
Zastosuj odwrotność korekcji obrazu (zamiast korygować zniekształcenia, zastosuj ją).
interpolation
Rodzaj interpolacji używany podczas korekcji zniekształceń. Poprawnymi opcjami są następujące wartości:
- '
nearest
' - '
linear (default)
' - '
lanczos
'
- '
11.137.1 Examples
- Zastosuj korekcję obiektywu za pomocą marki „Canon”, modelu aparatu „Canon EOS 100D” i modelu obiektywu „Canon EF-S 18-55mm f/3,5-5,6 IS STM” o ogniskowej „18” i przesłonie „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
- Zastosuj to samo co poprzednio, ale tylko przez pierwsze 5 sekund filmu.
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.138 libplacebo
Elastyczny filtr przetwarzania przyspieszany przez GPU oparty na libplacebo ( https://code.videolan.org/videolan/libplacebo ). Zauważ, że ten filtr obecnie akceptuje tylko ramki wejściowe Vulkan.
11.138.1 Options
Opcje tego filtra są podzielone na następujące sekcje:
11.138.1.1 Output mode
Te opcje sterują ogólnym trybem wyjścia. Domyślnie libplacebo stara się jak najlepiej zachować kolorymetrię i rozmiar źródła, ale zastosuje dowolne osadzone ziarno filmu, metadane Dolby vision lub anamorficzny SAR obecne w klatkach źródłowych.
w
h
Ustaw wyrażenie wyjściowego wymiaru wideo. Wartość domyślna to wymiar wejściowy.
Pozwala na te same wyrażenia, co filtr skali .
format
Ustaw nadpisanie formatu wyjściowego. Jeśli nie jest ustawiona (domyślnie), ramki będą wyprowadzane w tym samym formacie, co odpowiednie ramki wejściowe. W przeciwnym razie zostanie wykonana konwersja formatu.
force_original_aspect_ratio
force_divisible_by
Działaj tak samo, jak identyczne opcje filtra skali .
normalize_sar
Jeśli ta opcja jest włączona (domyślnie), ramki wyjściowe zawsze będą miały proporcje pikseli 1:1. Jeśli ta opcja jest wyłączona, wszelkie niezgodności proporcji, w tym te pochodzące np. z anamorficznych źródeł wideo, są przekazywane do proporcji wyjściowego piksela.
pad_crop_ratio
Określa stosunek (pomiędzy
0.0
i1.0
) między dopełnieniem a kadrowaniem, gdy wejściowe proporcje nie są zgodne z wyjściowymi proporcjami inormalize_sar
obowiązuje. Wartość domyślna0.0
zawsze dopełnia zawartość czarnymi ramkami, a wartość1.0
zawsze wycina część zawartości. Możliwe są wartości pośrednie, co prowadzi do połączenia tych dwóch podejść.colorspace
color_primaries
color_trc
range
Skonfiguruj przestrzeń kolorów, w której będą dostarczane ramki wyjściowe. Domyślna wartość
auto
wyprowadza ramki w tym samym formacie co ramki wejściowe, co nie powoduje żadnych zmian. Dla każdej innej wartości zostanie wykonana konwersja.Zobacz filtr setparams dla listy możliwych wartości.
apply_filmgrain
Zastosuj ziarno filmu (np. AV1 lub H.274), jeśli jest obecne w klatkach źródłowych, i usuń je z wyjścia. Domyślnie włączone.
apply_dolbyvision
Zastosuj metadane Dolby Vision RPU, jeśli są obecne w ramkach źródłowych, i usuń je z wyjścia. Domyślnie włączone. Zwróć uwagę, że Dolby Vision zawsze wyprowadza BT.2020+PQ, zastępując zwykłe metadane ramki wejściowej. Zostaną one również wybrane jako wartości
auto
dla odpowiednich opcji wyjścia ramki.
11.138.1.2 Scaling
Opcje w tej sekcji kontrolują sposób, w jaki libplacebo wykonuje skalowanie w górę i (jeśli to konieczne) skalowanie w dół. Zwróć uwagę, że libplacebo zawsze będzie wewnętrznie operować na zawartości 4:4:4, więc wszelkie pod-próbkowane formaty chromatyczne, takie jak yuv420p
będą z konieczności upsamplingiem i downsamplingiem w ramach procesu renderowania. Oznacza to, że skalowanie może działać, nawet jeśli rozdzielczość źródłowa i docelowa są takie same.
upscaler
downscaler
Skonfiguruj jądro filtru używane do skalowania w górę i w dół. Odpowiednie wartości domyślne to
spline36
imitchell
. Aby uzyskać pełną listę możliwych wartości, przejdźhelp
do tych opcji. Najważniejsze wartości to:- '
none
' Wymusza użycie wbudowanego próbkowania tekstur GPU (zazwyczaj dwuliniowego). Niezwykle szybka, ale słaba jakość, zwłaszcza przy zmniejszaniu skali.
- '
bilinear
' Interpolacja dwuliniowa. Generalnie można to zrobić za darmo na procesorach graficznych, z wyjątkiem sytuacji, gdy prowadziłoby to do aliasingu. Szybka i niska jakość.
- '
nearest
' Interpolacja najbliższego sąsiedztwa. Ostre, ale mocno aliasingowe.
- '
oversample
' Algorytm, który wizualnie wygląda podobnie do interpolacji najbliższego sąsiedztwa, ale stara się zachować proporcje pikseli. Dobre dla sztuki pikselowej, ponieważ powoduje minimalne zniekształcenie wyglądu artystycznego.
- '
lanczos
' Standardowe jądro interpolacji sinc-sinc.
- '
spline36
' Przybliżenie krzywej sześciennej lanczosa. Brak różnicy w wydajności, ale ma nieco mniej dzwonka.
- '
ewa_lanczos
' Eliptycznie ważona średnia wersja lanczosa, oparta na jądrze jinc-sinc. Jest to również popularnie nazywane po prostu „skalowaniem Jinc”. Powolny, ale bardzo wysokiej jakości.
- '
gaussian
' Jądro Gaussa. Ma pewne idealne własności matematyczne, ale subiektywnie bardzo rozmyte.
- '
mitchell
' Krzywa Cubic BC o parametrach rekomendowanych przez Mitchella i Netravali. Bardzo mało dzwonienia.
- '
lut_entries
Konfiguruje rozmiar LUT-ów skalujących w zakresie od
1
do256
. Wartość domyślna0
wybierze wewnętrzną wartość domyślną libplacebo, zazwyczaj64
.antiringing
Włącza antydzwonienie (dla filtrów innych niż EWA). Wartość (pomiędzy
0.0
i1.0
) konfiguruje siłę algorytmu zapobiegającego dzwonieniu. Może zwiększyć aliasing, jeśli jest ustawiony zbyt wysoko. Domyślnie wyłączone.sigmoid
Włącz kompresję sigmoidalną podczas skalowania. Lekko zmniejsza dzwonienie. Domyślnie włączone.
11.138.1.3 Debanding
Libplacebo ma wbudowany filtr usuwający pasy, który jest dobry w przeciwdziałaniu wielu powszechnym źródłom pasmowania i blokowania. Włączenie tego jest wysoce zalecane, gdy wymagana jest jakość.
deband
Włącz (szybki) algorytm usuwania pasma. Domyślnie wyłączone.
deband_iterations
Liczba iteracji deband algorytmu debandingu. Każda iteracja jest wykonywana ze stopniowo zwiększanym promieniem (i zmniejszanym progiem). Zalecane wartości mieszczą się w zakresie
1
do4
. Domyślnie1
.deband_threshold
Siła filtra usuwającego pasma. Wyższe liczby prowadzą do bardziej agresywnego usuwania pasma. Domyślnie
4.0
.deband_radius
Promień filtra usuwającego pasma. Większy promień jest lepszy dla powolnych gradientów, a mniejszy promień jest lepszy dla stromych gradientów. Domyślnie
16.0
.deband_grain
Ilość dodatkowego ziarna wyjściowego do dodania. Pomaga ukryć niedoskonałości. Domyślnie
6.0
.
11.138.1.4 Color adjustment
Zbiór subiektywnych kontroli kolorów. Niezbyt rygorystyczne, więc dokładny efekt będzie się nieco różnić w zależności od wejściowych kolorów podstawowych i przestrzeni kolorów.
brightness
Zwiększenie jasności, między
-1.0
i1.0
. Domyślnie0.0
.contrast
Wzmocnienie kontrastu między
0.0
i16.0
. Domyślnie1.0
.saturation
Wzmocnienie nasycenia, pomiędzy
0.0
a16.0
. Domyślnie1.0
.hue
Zmiana odcienia w radianach, pomiędzy
-3.14
i3.14
. Domyślnie0.0
. Spowoduje to obrócenie podwektora UV, domyślnie do współczynników BT.709 dla wejść RGB.gamma
Regulacja gamma, pomiędzy
0.0
i16.0
. Domyślnie1.0
.cones
Model stożka do użycia w symulacji ślepoty barw. Akceptuje dowolną kombinację
l
,m
is
. Oto kilka przykładów:- '
m
' Deuteranomalia / deuteranopia (dotyczy 3%-4% populacji)
- '
l
' Protanomalia / protanopia (dotyczy 1%-2% populacji)
- '
l+m
' Monochromatyczność (bardzo rzadko)
- '
l+m+s
' Achromatopsja (całkowita utrata widzenia w ciągu dnia, niezwykle rzadko)
- '
cone-strength
Współczynnik wzmocnienia dla czopków określonych przez
cones
, pomiędzy0.0
i10.0
. Wartość1.0
wynikająca z braku zmian w postrzeganiu kolorów. Wartość0.0
(domyślna) symuluje całkowitą utratę tych czopków. Powyższe wartości1.0
powodują wyolbrzymianie różnic między czopkami, co może pomóc zrekompensować pogorszenie widzenia kolorów.
11.138.1.5 Peak detection
Aby pomóc w radzeniu sobie ze źródłami, które mają tylko statyczne metadane HDR10 (lub bez tagowania), libplacebo używa własnego wewnętrznego modułu obliczeniowego do analizy klatek, aby analizować klatki źródłowe i dostosowywać funkcję mapowania tonów w czasie rzeczywistym. Jeśli jest to zbyt wolne lub jeśli potrzebne są dokładnie odtwarzalne wyniki z idealnymi klatkami, zaleca się wyłączenie tej funkcji.
peak_detect
Włącz wykrywanie pików HDR. Ignoruje statyczne wartości MaxCLL/MaxFALL na rzecz dynamicznego wykrywania z danych wejściowych. Zauważ, że wykryte wartości nie są zapisywane z powrotem do ramek wyjściowych, a jedynie kierują wewnętrznym procesem mapowania tonów. Domyślnie włączone.
smoothing_period
Okres wygładzania wykrywania szczytów, między
0.0
a1000.0
. Wyższe wartości powodują, że wykrywanie szczytów staje się mniej czułe na zmiany na wejściu. Domyślnie100.0
.minimum_peak
Dolna granica wykrytego piku (w stosunku do bieli SDR), pomiędzy
0.0
a100.0
. Domyślnie1.0
.scene_threshold_low
scene_threshold_high
Dolny i górny próg wykrywania zmiany sceny. Wyrażony w skali logarytmicznej między
0.0
a100.0
. Domyślnie do5.5
i10.0
. Ustawienie wartości ujemnej wyłącza tę funkcję.overshoot
Margines przeregulowania wygładzania pików, między
0.0
a1.0
. Zapewnia margines bezpieczeństwa, aby zapobiec przycinaniu w wyniku wygładzania pików. Domyślnie0.05
, co odpowiada marginesowi 5%.
11.138.1.6 Tone mapping
Opcje w tej sekcji kontrolują sposób, w jaki libplacebo wykonuje mapowanie tonów i mapowanie gamutów, gdy mamy do czynienia z niezgodnościami między treściami o szerokim gamutach lub HDR. Ogólnie rzecz biorąc, libplacebo opiera się na dokładnym tagowaniu źródeł i informacji o gamie wyświetlania masteringu, aby uzyskać najlepsze wyniki.
intent
Renderowanie przeznaczone do użycia podczas adaptacji między różnymi podstawowymi gamami kolorów (po mapowaniu tonalnym).
- '
perceptual
' Percepcyjne mapowanie gamutu. Obecnie odpowiednik względnej kolorymetrii.
- '
relative
' Kolorymetria względna. To jest ustawienie domyślne.
- '
absolute
' Absolutna kolorymetryczna.
- '
saturation
' Mapowanie nasycenia. Wymuszone rozciąganie gamy źródłowej do gamy docelowej.
- '
gamut_mode
Jak radzić sobie z kolorami spoza gamutu, które mogą wystąpić w wyniku mapowania kolorymetrycznego gamutu.
- '
clip
' Nic nie rób, po prostu przytnij kolory spoza zakresu do głośności RGB. To jest ustawienie domyślne.
- '
warn
' Wyróżnij piksele spoza przestrzeni (poprzez zabarwienie ich na różowo).
- '
darken
' Liniowo zmniejsza jasność treści, aby zachować nasycone szczegóły, a następnie przycina pozostałe kolory spoza przestrzeni. Jak sama nazwa wskazuje, sprawia to, że wszystko jest ciemniejsze, ale zapewnia dobrą równowagę między zachowaniem szczegółów i kolorów.
- '
desaturate
' Mocno zmniejsza nasycenie kolorów spoza przestrzeni w kierunku bieli, zachowując jednocześnie luminancję. Ma tendencję do zmiany kolorów.
- '
tonemapping
Algorytm mapowania tonów do użycia. Dostępne wartości to:
- '
auto
' Wybór automatyczny oparty na heurystyce wewnętrznej. To jest ustawienie domyślne.
- '
clip
' Nie wykonuje mapowania tonów, tylko przycina kolory spoza zakresu. Zachowuje idealną dokładność kolorów dla kolorów z zakresu, ale całkowicie niszczy informacje spoza zakresu. Nie wykonuje adaptacji czarnego punktu. Nie można konfigurować.
- '
bt.2390
' EETF z raportu ITU-R BT.2390, toczenie splajnu pustelnika z segmentem liniowym. Przesunięcie punktu kolanowego jest konfigurowalne. Zauważ, że ten parametr jest domyślnie ustawiony na
1.0
, a nie na wartość0.5
ze specyfikacji ITU-R.- '
bt.2446a
' EETF z raportu ITU-R BT.2446, metoda A. Przeznaczony dla dobrze opanowanych źródeł HDR. Może być używany do mapowania tonów do przodu i do tyłu. Nie można konfigurować.
- '
spline
' Prosty splajn składający się z dwóch wielomianów połączonych jednym punktem obrotu. Parametr podaje punkt obrotu (w przestrzeni PQ), domyślnie
0.30
. Może być używany do mapowania tonów do przodu i do tyłu.- '
reinhard
' Prosty nieliniowy, globalny algorytm mapowania tonów. Parametr określa lokalny współczynnik kontrastu w piku wyświetlacza. Zasadniczo, parametr
0.5
oznacza, że ​​biel odniesienia będzie o połowę jaśniejsza niż podczas przycinania. Domyślnie to0.5
, co skutkuje najprostszym sformułowaniem tej funkcji.- '
mobius
' Uogólnienie algorytmu mapowania tonów wzmocnionego w celu obsługi dodatkowego liniowego nachylenia w pobliżu czerni. Parametr odwzorowania tonów wskazuje na kompromis między sekcją liniową a sekcją nieliniową. Zasadniczo, dla danego parametru
x
każda wartość koloru poniżejx
będzie mapowana liniowo, podczas gdy wyższe wartości będą mapowane nieliniowo. Wartości w pobliżu1.0
sprawiają, że ta krzywa zachowuje się jakclip
, podczas gdy wartości w pobliżu0.0
sprawiają, że ta krzywa zachowuje się jakreinhard
. Wartość domyślna to0.3
, która zapewnia dobrą równowagę między dokładnością kolorymetryczną a zachowaniem szczegółów spoza gamutu.- '
hable
' Odcinkowy, filmowy algorytm mapowania tonów opracowany przez Johna Hable do użytku w Uncharted 2, inspirowany podobnym algorytmem mapowania tonów używanym przez firmę Kodak. Spopularyzowany przez zastosowanie w grach wideo z renderowaniem HDR. Bardzo dobrze zachowuje zarówno ciemne, jak i jasne detale, ale ma tę wadę, że dość znacząco zmienia średnią jasność. Jest to podobne do
reinhard
z parametrem0.24
.- '
gamma
' Dopasowuje funkcję gamma (moc) do przenoszenia między źródłową a docelową przestrzenią kolorów, co skutecznie skutkuje percepcyjnym twardym kolanem łączącym dwie z grubsza liniowe sekcje. Pozwala to dość dokładnie zachować szczegóły we wszystkich skalach, ale może skutkować przytłumionym lub matowym wyglądem obrazu. Parametr jest używany jako punkt odcięcia, domyślnie
0.5
.- '
linear
' Liniowo rozciąga zakres wejściowy do zakresu wyjściowego w przestrzeni PQ. Pozwoli to dokładnie zachować wszystkie szczegóły, ale spowoduje znacznie inną średnią jasność. Może być używany do odwróconego mapowania tonów oprócz zwykłego mapowania tonów. Parametr może być użyty jako dodatkowy liniowy współczynnik wzmocnienia (domyślnie
1.0
).
- '
tonemapping_param
W przypadku przestrajalnych funkcji mapowania tonów, ten parametr może być użyty do precyzyjnego dostrojenia zachowania krzywej. Zapoznaj się z dokumentacją
tonemapping
. Domyślna wartość0.0
jest zastępowana przez preferowane domyślne ustawienie krzywej.tonemapping_mode
Ta opcja określa, w jaki sposób funkcja odwzorowania tonów określona przez
tonemapping
jest stosowana do kolorów w scenie. Możliwe wartości to:- '
auto
' Wybór automatyczny oparty na heurystyce wewnętrznej. To jest ustawienie domyślne.
- '
rgb
' Zastosuj funkcję na kanał w przestrzeni kolorów RGB. Mapowanie tonów na kanał w RGB. Gwarantuje brak przycinania i mocno desaturuje wydruk, ale dość znacząco zniekształca kolory. Bardzo podobny do wyglądu i stylu „Hollywood”.
- '
max
' Mapowanie tonów jest wykonywane na najjaśniejszym składniku sygnału. Dobrze zachowuje szczegóły w pasemkach, ale ma tendencję do miażdżenia czerni.
- '
hybrid
' Mapa tonalna na kanał dla świateł i liniowo (oparta na luminacji) dla półcieni/cieni, w oparciu o stałą
2.4
krzywą współczynnika gamma.- '
luma
' Mapuj tony liniowo na składowej luma (CIE Y) i dostosuj (odsaturuj) chromatyczność, aby skompensować za pomocą prostego stałego współczynnika. Jest to zasadniczo tryb używany w metodzie A ITU-R BT.2446.
- '
inverse_tonemapping
Jeśli jest włączony, ten filtr będzie również próbował rozciągać sygnały SDR w celu wypełnienia objętości kolorów wyjściowych HDR. Domyślnie wyłączone.
tonemapping_crosstalk
Dodatkowy współczynnik przesłuchów mapowania tonów, między
0.0
a0.3
. Może to pomóc w zmniejszeniu problemów z mapowaniem tonów niektórych jasnych kolorów widmowych. Domyślnie0.04
.tonemapping_lut_size
Rozmiar LUT mapowania tonów, pomiędzy
2
a1024
. Domyślnie256
. Zauważ, że ta liczba jest podniesiona do kwadratu w połączeniu zpeak_detect
.
11.138.1.7 Dithering
Domyślnie libplacebo będzie dithering, gdy jest to konieczne, co obejmuje renderowanie do dowolnego formatu liczb całkowitych poniżej 16-bitowej precyzji. Zaleca się, aby zawsze pozostawić to włączone, ponieważ zaniechanie tego może skutkować widocznymi pasami na wyjściu, nawet jeśli debanding
filtr jest włączony. Jeśli potrzebna jest maksymalna wydajność, użyj ordered_fixed
zamiast wyłączania ditheringu.
dithering
Metoda ditheringu do użycia. Akceptuje następujące wartości:
- '
none
' Całkowicie wyłącza dithering. Może powodować widoczne prążki.
- '
blue
' Dither z pseudo-niebieskim szumem. To jest ustawienie domyślne.
- '
ordered
' Przestrajalny uporządkowany wzór ditheringu.
- '
ordered_fixed
' Szybszy uporządkowany dither o stałym rozmiarze
6
. Bez tekstur.- '
white
' Dither z białym szumem. Bez tekstur.
- '
dither_lut_size
Roztrząsaj rozmiar LUT, jako log base2 między
1
a8
. Wartość domyślna to6
, odpowiadająca rozmiarowi tablicy LUT64x64
.dither_temporal
Włącza dithering czasowy. Domyślnie wyłączone.
11.138.1.8 Custom shaders
libplacebo obsługuje wiele niestandardowych shaderów opartych na składni mpv .hook GLSL. Zbiór takich shaderów można znaleźć tutaj: https://github.com/mpv-player/mpv/wiki/User-Scripts#user-shaders
Pełny opis formatu mpv shader wykracza poza zakres tej sekcji, ale podsumowanie można znaleźć tutaj: https://mpv.io/manual/master/#options-glsl-shader
custom_shader_path
Określa ścieżkę do niestandardowego pliku modułu cieniującego do załadowania w czasie wykonywania.
custom_shader_bin
Określa kompletny niestandardowy shader jako nieprzetworzony ciąg.
11.138.1.9 Debugging / performance
Wszystkie opcje w tej sekcji są domyślnie wyłączone. Mogą być pomocne przy próbach wyciskania maksymalnej wydajności kosztem jakości.
skip_aa
Wyłącz antyaliasing podczas skalowania w dół.
polar_cutoff
Obetnij jądra skalujące biegunowe (EWA) poniżej tej wartości bezwzględnej, między
0.0
a1.0
.disable_linear
Wyłącz liniowe skalowanie światła.
disable_builtin
Wyłącz wbudowane próbkowanie GPU (wymusza LUT).
force_icc_lut
Wymuś użycie pełnego ICC 3DLUT do mapowania gamutów.
disable_fbos
Przymusowo wyłącz FBO, powodując utratę prawie wszystkich funkcji, ale oferując maksymalną możliwą prędkość.
11.138.2 Commands
Ten filtr obsługuje prawie wszystkie powyższe opcje jako polecenia .
11.138.3 Examples
- Kompletny przykład, jak zainicjować urządzenie Vulkan, przesłać ramki do GPU, wykonać konwersję filtra do yuv420p i pobrać ramki z powrotem do procesora w celu wyprowadzenia. Zwróć uwagę, że w określonych przypadkach możesz obejść potrzebę przeprowadzenia konwersji formatu, określając odpowiednią
format
opcję filtrowania odpowiadającą ramkom wejściowym.ffmpeg -i $INPUT -init_hw_device vulkan -vf hwupload,libplacebo=format=yuv420p,hwdownload,format=yuv420p $OUTPUT
- Wejście mapy tonalnej do standardowego wyjścia gamut BT.709:
libplacebo=colorspace=bt709:color_primaries=bt709:color_trc=bt709:range=tv
- Przeskaluj wejście, aby pasowało do standardowego 1080p, z wysokiej jakości skalowaniem:
libplacebo=w=1920:h=1080:force_original_aspect_ratio=decrease:normalize_sar=true:upscaler=ewa_lanczos:downscaler=ewa_lanczos
- Konwertuj wejście na standardowy JPEG sRGB:
libplacebo=format=yuv420p:colorspace=bt470bg:color_primaries=bt709:color_trc=iec61966-2-1:range=pc
- Użyj ustawień usuwania pasma o wyższej jakości:
libplacebo=deband=true:deband_iterations=3:deband_radius=8:deband_threshold=6
- Uruchom ten filtr na procesorze, w systemach z zainstalowanym Mesą (i wyłączonymi najdroższymi opcjami):
ffmpeg ... -init_hw_device vulkan:llvmpipe ... -vf libplacebo=upscaler=none:downscaler=none:peak_detect=false
- Pomiń w dekoderze zastosowanie ziarna AV1/H.274 opartego na procesorze, zamiast robić to za pomocą tego filtra. Zauważ, że jest to zysk tylko wtedy, gdy ramki są już na GPU lub jeśli używasz libplacebo do innych celów, ponieważ w przeciwnym razie okrążenie VRAM z nawiązką zrekompensuje wszelkie oczekiwane przyspieszenie.
ffmpeg -export_side_data +film_grain ... -vf libplacebo=apply_filmgrain=true
11.139 libvmaf
Oblicz wynik VMAF (Video Multi-Method Assessment Fusion) dla pary referencyjnej/zniekształconej pary wejściowych filmów wideo.
Pierwsze wejście to zniekształcone wideo, a drugie to wideo referencyjne.
Uzyskany wynik VMAF jest drukowany przez system rejestrowania.
Wymaga biblioteki vmaf Netflix (libvmaf) jako warunku wstępnego. Po zainstalowaniu biblioteki można ją włączyć za pomocą:
./configure --enable-libvmaf
.
Filtr posiada następujące opcje:
model
„|” ograniczona lista modeli vmaf. Każdy model można skonfigurować za pomocą wielu parametrów. Domyślna wartość:
"version=vmaf_v0.6.1"
model_path
Przestarzałe, użyj model='path=...'.
enable_transform
Przestarzałe, użyj model='enable_transform=true'.
phone_model
Przestarzałe, użyj model='enable_transform=true'.
enable_conf_interval
Przestarzałe, użyj model='enable_conf_interval=true'.
feature
„|” ograniczona lista funkcji. Każdą funkcję można skonfigurować za pomocą wielu parametrów.
psnr
Przestarzałe, użyj funkcji='name=psnr'.
ssim
Przestarzałe, użyj funkcji feature='name=ssim'.
ms_ssim
Przestarzałe, użyj funkcji='name=ms_ssim'.
log_path
Ustaw ścieżkę pliku, która będzie używana do przechowywania plików dziennika.
log_fmt
Ustaw format pliku dziennika (xml, json, csv lub sub).
n_threads
Ustaw liczbę wątków do użycia podczas inicjowania libvmaf. Wartość domyślna:
0
, bez wątków.n_subsample
Ustaw interwał podpróbkowania ramek, który ma być używany.
Ten filtr obsługuje również opcje framesync .
11.139.1 Examples
- W poniższych przykładach zniekształcone wideo
distorted.mpg
jest porównywany z plikiem referencyjnymreference.mpg
. - Podstawowe zastosowanie:
ffmpeg -i distorted.mpg -i reference.mpg -lavfi libvmaf=log_path=output.xml -f null -
- Przykład z wieloma modelami:
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 -
- Przykład z wieloma dodatkowymi funkcjami:
ffmpeg -i distorted.mpg -i reference.mpg -lavfi libvmaf='feature=name=psnr|name=ciede' -f null -
- Przykład z opcjami i różnymi pojemnikami:
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.140 limitdiff
Zastosuj ograniczony filtr różnicowy za pomocą drugiego i opcjonalnie trzeciego strumienia wideo.
Filtr akceptuje następujące opcje:
threshold
Ustaw próg, który ma być używany, gdy zezwalasz na pewne różnice między strumieniami wideo. Każda wartość różnicy bezwzględnej niższa lub dokładna niż ten próg spowoduje pobranie składowych pikseli z pierwszego strumienia wideo.
elasticity
Ustaw elastyczność miękkiego progowania podczas przetwarzania strumieni wideo. Ta wartość pomnożona przez pierwszą wyznacza drugi próg. Każda wartość różnicy bezwzględnej większa lub dokładna niż drugi próg będzie pobierać składowe piksela z drugiego strumienia wideo. Dla wartości pomiędzy tymi dwoma progami zostanie zastosowana interpolacja liniowa pomiędzy pierwszym i drugim strumieniem wideo.
reference
Włącz przetwarzanie referencyjnego (trzeciego) strumienia wideo. Domyślnie jest wyłączona. Jeśli jest ustawiony, ten strumień wideo będzie używany do obliczania różnicy bezwzględnej z pierwszym strumieniem wideo.
planes
Określ, które samoloty będą przetwarzane. Domyślnie wszystkie dostępne.
11.140.1 Commands
Ten filtr obsługuje wszystkie powyższe opcje jako polecenia z wyjątkiem opcji 'reference
„.
11.141 limiter
Ogranicza wartości składowych pikseli do określonego zakresu [min, max].
Filtr akceptuje następujące opcje:
min
Dolna granica. Domyślnie jest to najniższa dozwolona wartość dla danych wejściowych.
max
Górna granica. Domyślnie jest to najwyższa dozwolona wartość dla danych wejściowych.
planes
Określ, które samoloty będą przetwarzane. Domyślnie wszystkie dostępne.
11.141.1 Commands
Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .
11.142 loop
Zapętlaj klatki wideo.
Filtr akceptuje następujące opcje:
loop
Ustaw liczbę pętli. Ustawienie tej wartości na -1 spowoduje powstanie nieskończonych pętli. Wartość domyślna to 0.
size
Ustaw maksymalny rozmiar w liczbie klatek. Wartość domyślna to 0.
start
Ustaw pierwszą klatkę pętli. Wartość domyślna to 0.
11.142.1 Examples
- Zapętl pojedynczą pierwszą klatkę w nieskończoność:
loop=loop=-1:size=1:start=0
- Zapętl pojedynczą pierwszą klatkę 10 razy:
loop=loop=10:size=1:start=0
- Zapętl 10 pierwszych klatek 5 razy:
loop=loop=5:size=10:start=0
11.143 lut1d
Zastosuj tablicę 1D LUT do wejściowego wideo.
Filtr akceptuje następujące opcje:
file
Ustaw nazwę pliku 1D LUT.
Obecnie obsługiwane formaty:
- '
cube
' Iridas
- '
csp
' cineSpace
- '
interp
Wybierz tryb interpolacji.
Dostępne wartości to:
- '
nearest
' Użyj wartości z najbliższego zdefiniowanego punktu.
- '
linear
' Interpoluj wartości za pomocą interpolacji liniowej.
- '
cosine
' Interpoluj wartości za pomocą interpolacji cosinus.
- '
cubic
' Interpoluj wartości za pomocą interpolacji sześciennej.
- '
spline
' Interpoluj wartości za pomocą interpolacji splajnu.
- '
11.143.1 Commands
Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .
11.144 lut3d
Zastosuj tablicę 3D LUT do wejściowego wideo.
Filtr akceptuje następujące opcje:
file
Ustaw nazwę pliku 3D LUT.
Obecnie obsługiwane formaty:
- '
3dl
' Po efektach
- '
cube
' Iridas
- '
dat
' Da Vinci
- '
m3d
' Pandora
- '
csp
' cineSpace
- '
interp
Wybierz tryb interpolacji.
Dostępne wartości to:
- '
nearest
' Użyj wartości z najbliższego zdefiniowanego punktu.
- '
trilinear
' Interpoluj wartości używając 8 punktów definiujących sześcian.
- '
tetrahedral
' Interpoluj wartości za pomocą czworościanu.
- '
pyramid
' Interpoluj wartości za pomocą piramidy.
- '
prism
' Interpoluj wartości za pomocą pryzmatu.
- '
11.144.1 Commands
Ten filtr obsługuje interp
opcję jako polecenia .
11.145 lumakey
Przekształć niektóre wartości luma w przezroczystość.
Filtr akceptuje następujące opcje:
threshold
Ustaw lumę, która będzie używana jako podstawa przezroczystości. Wartość domyślna to
0
.tolerance
Ustaw zakres wartości luminancji do wykreślenia. Wartość domyślna to
0.01
.softness
Ustaw zakres miękkości. Wartość domyślna to
0
. Użyj tego, aby kontrolować stopniowe przejście od zera do pełnej przezroczystości.
11.145.1 Commands
Ten filtr obsługuje te same polecenia, co opcje. Polecenie akceptuje tę samą składnię odpowiedniej opcji.
Jeśli podane wyrażenie jest niepoprawne, jest zachowywane z bieżącą wartością.
11.146 lut, lutrgb, lutyuv
Oblicz tabelę przeglądową w celu powiązania wartości wejściowej każdego składnika piksela z wartością wyjściową i zastosuj ją do wejściowego wideo.
lutyuv
stosuje tabelę przeglądową do wejściowego wideo YUV, lutrgb
do wejściowego wideo RGB.
Filtry te akceptują następujące parametry:
c0
ustaw wyrażenie pierwszego składnika piksela
c1
ustaw wyrażenie drugiego składnika piksela
c2
ustaw wyrażenie trzeciego składnika piksela
c3
ustaw wyrażenie czwartego składnika piksela, odpowiada składnikowi alfa
r
ustaw czerwone wyrażenie składowe
g
ustaw zielone wyrażenie składowe
b
ustaw niebieskie wyrażenie składowe
a
wyrażenie składnika alfa
y
ustaw Y/wyrażenie składowej luminancji
u
ustaw wyrażenie składowe U/Cb
v
ustaw wyrażenie składowe V/Cr
Każdy z nich określa wyrażenie używane do obliczania tabeli przeglądowej dla odpowiednich wartości składowych pikseli.
Dokładny składnik powiązany z każdą z c*
opcji zależy od formatu danych wejściowych.
Filtr lut
wymaga wejścia w formacie pikseli YUV lub RGB,
lutrgb
wymaga formatu pikseli RGB na wejściu i lutyuv
wymaga YUV.
Wyrażenia mogą zawierać następujące stałe i funkcje:
w
h
Wejściowa szerokość i wysokość.
val
Wartość wejściowa składnika pikselowego.
clipval
Wartość wejściowa przycięta do zakresu
minval
-maxval
.maxval
Maksymalna wartość składnika pikselowego.
minval
Minimalna wartość składnika pikselowego.
negval
Zanegowana wartość dla wartości składnika piksela, przycięta do zakresu
minval
-maxval
; odpowiada wyrażeniu „maxval-clipval+minval”.clip(val)
Wartość obliczona w
val
, przycięta do zakresuminval
-maxval
.gammaval(gamma)
Obliczona wartość korekcji gamma wartości składnika piksela, przycięta do zakresu
minval
-maxval
. Odpowiada wyrażeniu "pow((clipval-minval)/(maxval-minval)\,gamma
)*(maxval-minval)+minval"
Wszystkie wyrażenia domyślnie mają wartość „clipval”.
11.146.1 Commands
Ten filtr obsługuje te same polecenia, co opcje.
11.146.2 Examples
- Neguj wejście wideo:
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"
Powyższe jest takie samo jak:
lutrgb="r=negval:g=negval:b=negval" lutyuv="y=negval:u=negval:v=negval"
- Zanegować luminancję:
lutyuv=y=negval
- Usuń komponenty chrominancji, zmieniając wideo w obraz w odcieniach szarości:
lutyuv="u=128:v=128"
- Zastosuj efekt wypalania lumy:
lutyuv="y=2*val"
- Usuń zielone i niebieskie komponenty:
lutrgb="g=0:b=0"
- Ustaw stałą wartość kanału alfa na wejściu:
format=rgba,lutrgb=a="maxval-minval/2"
- Prawidłowa gamma luminancji o współczynnik 0,5:
lutyuv=y=gammaval(0.5)
- Odrzuć najmniej znaczące bity lumy:
lutyuv=y='bitand(val, 128+64+32)'
- Efekt Technicolor:
lutyuv=u='(val-maxval/2)*2+maxval/2':v='(val-maxval/2)*2+maxval/2'
11.147 lut2, tlut2
Filtr lut2
przyjmuje dwa strumienie wejściowe i wyprowadza jeden strumień.
Filtr tlut2
(czas lut2) pobiera dwie kolejne klatki z jednego strumienia.
Ten filtr akceptuje następujące parametry:
c0
ustaw wyrażenie pierwszego składnika piksela
c1
ustaw wyrażenie drugiego składnika piksela
c2
ustaw wyrażenie trzeciego składnika piksela
c3
ustaw wyrażenie czwartego składnika piksela, odpowiada składnikowi alfa
d
ustaw głębię bitową wyjścia, dostępne tylko dla
lut2
filtra. Domyślnie jest to 0, co oznacza, że ​​głębia bitowa jest automatycznie wybierana z pierwszego formatu wejściowego.
Filtr lut2
obsługuje również opcje framesync .
Każdy z nich określa wyrażenie używane do obliczania tabeli przeglądowej dla odpowiednich wartości składowych pikseli.
Dokładny składnik powiązany z każdą z c*
opcji zależy od formatu danych wejściowych.
Wyrażenia mogą zawierać następujące stałe:
w
h
Wejściowa szerokość i wysokość.
x
Pierwsza wartość wejściowa składnika piksela.
y
Druga wartość wejściowa składnika piksela.
bdx
Głębia bitowa pierwszego wejścia wideo.
bdy
Drugie wejście głębi bitowej wideo.
Wszystkie wyrażenia domyślnie mają „x”.
11.147.1 Commands
Ten filtr obsługuje wszystkie powyższe opcje jako polecenia z wyjątkiem opcji d
.
11.147.2 Examples
- Podkreśl różnice między dwoma strumieniami wideo 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)'
- Podkreśl różnice między dwoma strumieniami wideo 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)'
- Pokaż maksymalną różnicę między dwoma strumieniami wideo:
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.148 maskedclamp
Zablokuj pierwszy strumień wejściowy z drugim strumieniem wejściowym i trzecim strumieniem wejściowym.
Zwraca wartość pierwszego strumienia, która znajduje się między drugim strumieniem wejściowym undershoot
a trzecim strumieniem wejściowym + overshoot
.
Ten filtr akceptuje następujące opcje:
undershoot
Wartość domyślna to
0
.overshoot
Wartość domyślna to
0
.planes
Ustaw, które płaszczyzny będą przetwarzane jako bitmapa, nieprzetworzone płaszczyzny zostaną skopiowane z pierwszego strumienia. Domyślna wartość 0xf, wszystkie płaszczyzny będą przetwarzane.
11.148.1 Commands
Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .
11.149 maskedmax
Scal drugi i trzeci strumień wejściowy w strumień wyjściowy, wykorzystując bezwzględne różnice między drugim strumieniem wejściowym a pierwszym strumieniem wejściowym oraz bezwzględną różnicę między trzecim strumieniem wejściowym a pierwszym strumieniem wejściowym. Wybrana wartość będzie pochodzić z drugiego strumienia wejściowego, jeśli druga bezwzględna różnica jest większa niż pierwsza lub z trzeciego strumienia wejściowego w przeciwnym razie.
Ten filtr akceptuje następujące opcje:
planes
Ustaw, które płaszczyzny będą przetwarzane jako bitmapa, nieprzetworzone płaszczyzny zostaną skopiowane z pierwszego strumienia. Domyślna wartość 0xf, wszystkie płaszczyzny będą przetwarzane.
11.149.1 Commands
Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .
11.150 maskedmerge
Scal pierwszy strumień wejściowy z drugim strumieniem wejściowym, używając wag na piksel w trzecim strumieniu wejściowym.
Wartość 0 w składniku pikselowym trzeciego strumienia oznacza, że ​​składnik pikselowy z pierwszego strumienia jest zwracany bez zmian, natomiast wartość maksymalna (np. 255 dla filmów 8-bitowych) oznacza, że ​​składnik pikselowy z drugiego strumienia jest zwracany bez zmian. Wartości pośrednie definiują stopień scalania między obydwoma komponentami pikselowymi strumienia wejściowego.
Ten filtr akceptuje następujące opcje:
planes
Ustaw, które płaszczyzny będą przetwarzane jako bitmapa, nieprzetworzone płaszczyzny zostaną skopiowane z pierwszego strumienia. Domyślna wartość 0xf, wszystkie płaszczyzny będą przetwarzane.
11.150.1 Commands
Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .
11.151 maskedmin
Scal drugi i trzeci strumień wejściowy w strumień wyjściowy, wykorzystując bezwzględne różnice między drugim strumieniem wejściowym a pierwszym strumieniem wejściowym oraz bezwzględną różnicę między trzecim strumieniem wejściowym a pierwszym strumieniem wejściowym. Wybrana wartość będzie pochodzić z drugiego strumienia wejściowego, jeśli druga bezwzględna różnica jest mniejsza niż pierwsza lub z trzeciego strumienia wejściowego w przeciwnym razie.
Ten filtr akceptuje następujące opcje:
planes
Ustaw, które płaszczyzny będą przetwarzane jako bitmapa, nieprzetworzone płaszczyzny zostaną skopiowane z pierwszego strumienia. Domyślna wartość 0xf, wszystkie płaszczyzny będą przetwarzane.
11.151.1 Commands
Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .
11.152 maskedthreshold
Wybierz piksele porównując bezwzględną różnicę dwóch strumieni wideo ze stałym progiem.
Jeżeli bezwzględna różnica między składową pikselową pierwszego i drugiego strumienia wideo jest równa lub mniejsza niż próg podany przez użytkownika, wybierana jest składowa pikselowa z pierwszego strumienia wideo, w przeciwnym razie wybierana jest składowa pikselowa z drugiego strumienia wideo.
Ten filtr akceptuje następujące opcje:
threshold
Ustaw próg używany podczas wybierania pikseli z różnicy bezwzględnej z dwóch wejściowych strumieni wideo.
planes
Ustaw, które płaszczyzny będą przetwarzane jako bitmapa, nieprzetworzone płaszczyzny zostaną skopiowane z drugiego strumienia. Domyślna wartość 0xf, wszystkie płaszczyzny będą przetwarzane.
11.152.1 Commands
Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .
11.153 maskfun
Utwórz maskę z wejściowego wideo.
Na przykład przydatne jest tworzenie masek ruchu po tblend
filtrze.
Ten filtr akceptuje następujące opcje:
low
Ustaw niski próg. Każdy składnik pikseli niższy lub dokładny niż ta wartość zostanie ustawiony na 0.
high
Ustaw wysoki próg. Każdy składnik pikseli wyższy niż ta wartość zostanie ustawiony na maksymalną wartość dozwoloną dla bieżącego formatu pikseli.
planes
Ustaw samoloty do filtrowania, domyślnie filtrowane są wszystkie dostępne samoloty.
fill
Wypełnij wszystkie piksele ramki tą wartością.
sum
Ustaw maksymalną średnią wartość pikseli dla ramki. Jeśli suma wszystkich składowych pikseli jest większa niż ta średnia, wyjściowa ramka zostanie całkowicie wypełniona wartością ustawioną przez
fill
opcję. Zwykle przydatne do zmian scen w połączeniu ztblend
filtrem.
11.153.1 Commands
Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .
11.154 mcdeint
Zastosuj usuwanie przeplotu z kompensacją ruchu.
Potrzebuje jednego pola na ramkę jako danych wejściowych i dlatego musi być używane razem z yadif=1/3 lub równoważnym.
Ten filtr jest dostępny tylko w ffmpeg w wersji 4.4 lub wcześniejszej.
Ten filtr akceptuje następujące opcje:
mode
Ustaw tryb usuwania przeplotu.
Przyjmuje jedną z następujących wartości:
- '
fast
' - '
medium
' - '
slow
' użyj iteracyjnego szacowania ruchu
- '
extra_slow
' tak jak '
slow
', ale używaj wielu ramek odniesienia.
Wartość domyślna to '
fast
„.- '
parity
Ustaw parzystość pola obrazu zakładaną dla wejściowego wideo. Musi to być jedna z następujących wartości:
- '
0, tff
' załóż najpierw górne pole
- '
1, bff
' załóż najpierw dolne pole
Wartość domyślna to '
bff
„.- '
qp
Ustaw parametr kwantyzacji na blok (QP) używany przez wewnętrzny koder.
Wyższe wartości powinny skutkować gładszym polem wektora ruchu, ale mniej optymalnymi pojedynczymi wektorami. Wartość domyślna to 1.
11.155 median
Wybierz medianę piksela z określonego prostokąta określonego przez promień.
Ten filtr akceptuje następujące opcje:
radius
Ustaw rozmiar promienia poziomego. Wartość domyślna to
1
. Dozwolony zakres to liczba całkowita od 1 do 127.planes
Ustaw samoloty do przetworzenia. Domyślnie jest to
15
, co oznacza wszystkie dostępne płaszczyzny.radiusV
Ustaw rozmiar promienia pionowego. Wartość domyślna to
0
. Dozwolony zakres to liczba całkowita od 0 do 127. Jeżeli jest to 0, wartość zostanie pobrana zradius
opcji poziomej.percentile
Ustaw medianę percentyla. Wartość domyślna to
0.5
. Domyślna wartość0.5
wybierze zawsze wartości mediany, podczas gdy0
wybierze wartości minimalne i1
maksymalne.
11.155.1 Commands
Ten filtr obsługuje te same polecenia, co opcje. Polecenie akceptuje tę samą składnię odpowiedniej opcji.
Jeśli podane wyrażenie jest niepoprawne, jest zachowywane z bieżącą wartością.
11.156 mergeplanes
Scal komponenty kanału kolorów z kilku strumieni wideo.
Filtr akceptuje do 4 strumieni wejściowych i łączy wybrane płaszczyzny wejściowe z wyjściowym wideo.
Ten filtr akceptuje następujące opcje:
mapping
Ustaw wejście na mapowanie płaszczyzny wyjściowej. Wartość domyślna to
0
.Mapowania są określone jako bitmapa. Powinna być podana jako liczba szesnastkowa w postaci 0xAa[Bb[Cc[Dd]]]. 'Aa' opisuje mapowanie dla pierwszej płaszczyzny strumienia wyjściowego. „A” ustawia numer używanego strumienia wejściowego (od 0 do 3), a „a” numer płaszczyzny odpowiedniego wejścia do użycia (od 0 do 3). Pozostałe mapowania są podobne, „Bb” opisuje mapowanie dla drugiej płaszczyzny strumienia wyjściowego, „Cc” opisuje mapowanie dla trzeciej płaszczyzny strumienia wyjściowego, a „Dd” opisuje mapowanie dla czwartej płaszczyzny strumienia wyjściowego.
format
Ustaw format wyjściowy w pikselach. Wartość domyślna to
yuva444p
.map0s
map1s
map2s
map3s
Ustaw mapowanie strumienia wejściowego na wyjściowy dla N-tej płaszczyzny wyjściowej. Wartość domyślna to
0
.map0p
map1p
map2p
map3p
Ustaw odwzorowanie wejścia na płaszczyznę wyjściową dla N-tej płaszczyzny wyjściowej. Wartość domyślna to
0
.
11.156.1 Examples
- Połącz trzy szare strumienie wideo o tej samej szerokości i wysokości w jeden strumień wideo:
[a0][a1][a2]mergeplanes=0x001020:yuv444p
- Scal pierwszy strumień yuv444p i drugi szary strumień wideo w strumień wideo yuva444p:
[a0][a1]mergeplanes=0x00010210:yuva444p
- Zamień samolot Y i A w strumieniu yuva444p:
format=yuva444p,mergeplanes=0x03010200:yuva444p
- Zamień samoloty U i V w strumieniu yuv420p:
format=yuv420p,mergeplanes=0x000201:yuv420p
- Przesyłaj klip rgb24 do yuv444p:
format=rgb24,mergeplanes=0x000102:yuv444p
11.157 mestimate
Estymuj i eksportuj wektory ruchu za pomocą algorytmów dopasowywania bloków. Wektory ruchu są przechowywane w danych po stronie ramki do wykorzystania przez inne filtry.
Ten filtr akceptuje następujące opcje:
method
Określ metodę estymacji ruchu. Akceptuje jedną z następujących wartości:
- '
esa
' Wyczerpujący algorytm wyszukiwania.
- '
tss
' Algorytm wyszukiwania w trzech krokach.
- '
tdls
' Dwuwymiarowy algorytm przeszukiwania logarytmicznego.
- '
ntss
' Nowy trzyetapowy algorytm wyszukiwania.
- '
fss
' Algorytm wyszukiwania czterostopniowego.
- '
ds
' Algorytm wyszukiwania diamentów.
- '
hexbs
' Algorytm wyszukiwania oparty na sześciokątach.
- '
epzs
' Ulepszony predykcyjny algorytm wyszukiwania strefowego.
- '
umh
' Algorytm wyszukiwania nierównego wieloheksagonowego.
Wartość domyślna to '
esa
„.- '
mb_size
Rozmiar makrobloku. Domyślny
16
.search_param
Wyszukaj parametr. Domyślny
7
.
11.158 midequalizer
Zastosuj efekt wyrównania obrazu w połowie za pomocą dwóch strumieni wideo.
Wyrównanie obrazu w połowie umożliwia dostosowanie pary obrazów do tego samego histogramu, zachowując jednocześnie ich dynamikę na tyle, na ile to możliwe. Przydaje się np. do dopasowywania ekspozycji z pary kamer stereoskopowych.
Ten filtr ma dwa wejścia i jedno wyjście, które muszą mieć ten sam format pikseli, ale mogą mieć różne rozmiary. Wyjście filtra jest pierwszym wejściem regulowanym histogramem w połowie obu wejść.
Ten filtr akceptuje następującą opcję:
planes
Ustaw samoloty do przetworzenia. Domyślnie jest to
15
, co oznacza wszystkie dostępne płaszczyzny.
11.159 minterpolate
Konwertuj wideo do określonej szybkości klatek za pomocą interpolacji ruchu.
Ten filtr akceptuje następujące opcje:
fps
Określ wyjściową liczbę klatek na sekundę. Może to być racjonalne np
60000/1001
. . Klatki są odrzucane, jeślifps
jest niższa niż źródłowa liczba fps. Domyślny60
.mi_mode
Tryb interpolacji ruchu. Akceptowane są następujące wartości:
- '
dup
' Powiel poprzednią lub następną klatkę w celu interpolacji nowych.
- '
blend
' Połącz klatki źródłowe. Interpolowana klatka to średnia z poprzednich i następnych klatek.
- '
mci
' Interpolacja z kompensacją ruchu. Po wybraniu tego trybu obowiązują następujące opcje:
- '
mc_mode
' Tryb kompensacji ruchu. Akceptowane są następujące wartości:
- '
obmc
' Kompensacja ruchu nakładającego się bloku.
- '
aobmc
' Adaptacyjna kompensacja ruchu nakładającego się bloku. Współczynniki ważenia okien są sterowane adaptacyjnie zgodnie z niezawodnością sąsiednich wektorów ruchu w celu zmniejszenia nadmiernego wygładzania.
Tryb domyślny to '
obmc
„.- '
- '
me_mode
' Tryb oceny ruchu. Akceptowane są następujące wartości:
- '
bidir
' Dwukierunkowa estymacja ruchu. Wektory ruchu są szacowane dla każdej klatki źródłowej zarówno w kierunku do przodu, jak i do tyłu.
- '
bilat
' Obustronna estymacja ruchu. Wektory ruchu są estymowane bezpośrednio dla interpolowanej klatki.
Tryb domyślny to '
bilat
„.- '
- '
me
' Algorytm używany do estymacji ruchu. Akceptowane są następujące wartości:
- '
esa
' Wyczerpujący algorytm wyszukiwania.
- '
tss
' Algorytm wyszukiwania w trzech krokach.
- '
tdls
' Dwuwymiarowy algorytm przeszukiwania logarytmicznego.
- '
ntss
' Nowy trzyetapowy algorytm wyszukiwania.
- '
fss
' Algorytm wyszukiwania czterostopniowego.
- '
ds
' Algorytm wyszukiwania diamentów.
- '
hexbs
' Algorytm wyszukiwania oparty na sześciokątach.
- '
epzs
' Ulepszony predykcyjny algorytm wyszukiwania strefowego.
- '
umh
' Algorytm wyszukiwania nierównego wieloheksagonowego.
Domyślny algorytm to '
epzs
„.- '
- '
mb_size
' Rozmiar makrobloku. Domyślny
16
.- '
search_param
' Parametr wyszukiwania estymacji ruchu. Domyślny
32
.- '
vsbmc
' Włącz kompensację ruchu bloku o zmiennej wielkości. Oszacowanie ruchu jest stosowane przy mniejszych rozmiarach bloków na granicach obiektów, aby były mniej rozmyte. Wartość domyślna to
0
(wyłączone).
- '
- '
scd
Metoda wykrywania zmiany sceny. Zmiana sceny powoduje, że wektory ruchu są w losowym kierunku. Wykrywanie zmiany sceny zastępuje interpolowane klatki duplikatami. Może nie być potrzebny w innych trybach. Akceptowane są następujące wartości:
- '
none
' Wyłącz wykrywanie zmiany sceny.
- '
fdiff
' Różnica ramek. Odpowiednie wartości pikseli są porównywane i jeśli to spełnia
scd_threshold
, wykrywana jest zmiana sceny.
Domyślna metoda to '
fdiff
„.- '
scd_threshold
Próg wykrywania zmiany sceny. Wartość domyślna to
10.
.
11.160 mix
Zmiksuj kilka strumieni wejściowych wideo w jeden strumień wideo.
Poniżej znajduje się opis akceptowanych opcji.
inputs
Liczba wejść. Jeśli nie jest określony, domyślnie wynosi 2.
weights
Określ wagę każdego wejściowego strumienia wideo jako sekwencji. Każda waga jest oddzielona spacją. Jeśli liczba odważników jest mniejsza niż liczba
frames
ostatnio określonych odważników, zostanie użyta dla wszystkich pozostałych nieustawionych odważników.scale
Określ skalę, jeśli jest ustawiona, zostanie pomnożona przez sumę każdej wagi pomnożoną przez wartości pikseli, aby uzyskać ostateczną docelową wartość piksela. Domyślnie
scale
jest skalowane automatycznie do sumy wag.planes
Ustaw samoloty do filtrowania. Domyślność to wszystko. Dozwolony zakres to od 0 do 15.
duration
Określ sposób określania końca strumienia.
- '
longest
' Czas trwania najdłuższego wejścia. (domyślna)
- '
shortest
' Czas trwania najkrótszego wejścia.
- '
first
' Czas trwania pierwszego wejścia.
- '
11.160.1 Commands
Ten filtr obsługuje następujące polecenia:
weights
scale
planes
Składnia jest taka sama jak opcja o tej samej nazwie.
11.161 monochrome
Konwertuj wideo na szarość za pomocą niestandardowego filtra kolorów.
Poniżej znajduje się opis akceptowanych opcji.
cb
Ustaw niebieski punkt chroma. Dozwolony zakres to od -1 do 1. Wartość domyślna to 0.
cr
Ustaw czerwony punkt chromatyczny. Dozwolony zakres to od -1 do 1. Wartość domyślna to 0.
size
Ustaw rozmiar filtra kolorów. Dozwolony zakres to od 0,1 do 10. Wartość domyślna to 1.
high
Ustaw siłę podświetleń. Dozwolony zakres to od 0 do 1. Wartość domyślna to 0.
11.161.1 Commands
Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .
11.162 morpho
Filtr ten pozwala na zastosowanie głównych morfologicznych przekształceń skali szarości, erozję i rozszerzanie z dowolnymi strukturami ustawionymi w drugim strumieniu wejściowym.
W przeciwieństwie do naiwnej implementacji i znacznie wolniejszej wydajności w filtrach erozji
i dylatacji , gdy prędkość jest krytyczna morpho
, należy zamiast tego użyć filtra.
Poniżej znajduje się opis akceptowanych opcji,
mode
Ustaw transformację morfologiczną do zastosowania, może być:
- '
erode
' - '
dilate
' - '
open
' - '
close
' - '
gradient
' - '
tophat
' - '
blackhat
'
Wartość domyślna to
erode
.- '
planes
Ustaw samoloty do filtrowania, domyślnie filtrowane są wszystkie samoloty z wyjątkiem alfa.
structure
Ustaw, która struktura klatek wideo będzie przetwarzana z drugiego strumienia wejściowego, może być
first
luball
. Wartość domyślna toall
.
Filtr morpho
obsługuje również opcje framesync .
11.162.1 Commands
Ten filtr obsługuje te same polecenia, co opcje.
11.163 mpdecimate
Odrzuć klatki, które nie różnią się zbytnio od poprzedniej klatki, aby zmniejszyć liczbę klatek na sekundę.
Głównym zastosowaniem tego filtra jest kodowanie z bardzo niską przepływnością (np. przesyłanie strumieniowe przez modem), ale teoretycznie można by go użyć do naprawy filmów, które zostały nieprawidłowo odwrócone telecine.
Poniżej znajduje się opis akceptowanych opcji.
max
Ustaw maksymalną liczbę kolejnych ramek, które mogą zostać pominięte (jeśli jest dodatnia) lub minimalny odstęp między pominiętymi ramkami (jeśli jest ujemny). Jeśli wartość wynosi 0, ramka jest usuwana niezależnie od liczby poprzednich sekwencyjnie usuwanych ramek.
Wartość domyślna to 0.
hi
lo
frac
Ustaw wartości progowe spadku.
Wartości dla
hi
orazlo
są dla bloków 8x8 pikseli i reprezentują rzeczywiste różnice wartości pikseli, więc próg 64 odpowiada 1 jednostce różnicy dla każdego piksela lub to samo rozłożone w różny sposób w całym bloku.Ramka jest kandydatem do porzucenia, jeśli żadne bloki 8x8 nie różnią się o więcej niż próg
hi
, a jeśli nie więcej niżfrac
bloki (1 oznacza cały obraz) różnią się o więcej niż próglo
.Wartość domyślna dla
hi
to 64*12, domyślna wartość dlalo
to 64*5, a domyślna wartośćfrac
wynosi 0,33.
11.164 msad
Uzyskaj MSAD (średnią sumę różnic bezwzględnych) między dwoma wejściowymi wideo.
Ten filtr pobiera dwa wideo wejściowe.
Aby ten filtr działał poprawnie, oba wideo wejściowe muszą mieć tę samą rozdzielczość i format pikseli. Zakłada również, że oba wejścia mają taką samą liczbę klatek, które są porównywane jedna po drugiej.
Uzyskane na składnik, średnie, minimalne i maksymalne MSAD są drukowane przez system rejestrowania.
Filtr przechowuje obliczone MSAD każdej ramki w metadanych ramki.
W poniższym przykładzie plik wejściowymain.mpg
przetwarzany jest porównywany z plikiem referencyjnymref.mpg
.
ffmpeg -i main.mpg -i ref.mpg -lavfi msad -f null -
11.165 multiply
Pomnóż wartości pikseli pierwszego strumienia wideo przez wartości pikseli drugiego strumienia wideo.
Filtr akceptuje następujące opcje:
scale
Ustaw skalę stosowaną do drugiego strumienia wideo. Domyślnie jest to
1
. Dozwolony zakres to od0
do9
.offset
Ustaw przesunięcie zastosowane do drugiego strumienia wideo. Domyślnie jest to
0.5
. Dozwolony zakres to od-1
do1
.planes
Określ płaszczyzny z wejściowego strumienia wideo, które będą przetwarzane. Domyślnie przetwarzane są wszystkie płaszczyzny.
11.165.1 Commands
Ten filtr obsługuje te same polecenia, co opcje.
11.166 negate
Negacja (odwrócenie) wejściowego wideo.
Akceptuje następującą opcję:
components
Ustaw komponenty do zanegowania.
Dostępne wartości dla komponentów to:
- '
y
' - '
u
' - '
v
' - '
a
' - '
r
' - '
g
' - '
b
'
- '
negate_alpha
Przy wartości 1 neguje składnik alfa, jeśli jest obecny. Wartość domyślna to 0.
11.166.1 Commands
Ten filtr obsługuje te same polecenia, co opcje.
11.167 nlmeans
Odszumianie klatek przy użyciu algorytmu średnich nielokalnych.
Każdy piksel jest dostosowywany poprzez wyszukiwanie innych pikseli o podobnym kontekście. To podobieństwo kontekstu jest definiowane przez porównanie otaczających ich łat o rozmiarze
p
xp
. Plastry są przeszukiwane na obszarzer
xr
wokół piksela.
Zwróć uwagę, że obszar badań definiuje centra dla łat, co oznacza, że ​​niektóre łaty będą wykonane z pikseli poza tym obszarem badań.
Filtr akceptuje następujące opcje.
s
Ustaw siłę odszumiania. Wartość domyślna to 1.0. Musi być w zakresie [1,0, 30,0].
p
Ustaw rozmiar poprawki. Wartość domyślna to 7. Musi być liczbą nieparzystą z zakresu [0, 99].
pc
Taki sam jak
p
ale dla płaszczyzn barw.Wartość domyślna to
0
i oznacza automatyczne.r
Ustaw rozmiar badań. Domyślnie 15. Musi być liczbą nieparzystą z zakresu [0, 99].
rc
Taki sam jak
r
ale dla płaszczyzn barw.Wartość domyślna to
0
i oznacza automatyczne.
11.168 nnedi
Usuwanie przeplotu wideo przy użyciu interpolacji skierowanej na brzeg sieci neuronowej.
Ten filtr akceptuje następujące opcje:
weights
Opcja obowiązkowa, bez binarnego filtru plików nie działa. Aktualny plik można znaleźć tutaj: https://github.com/dubhater/vapoursynth-nnedi3/blob/master/src/nnedi3_weights.bin
deint
Ustaw ramki do usunięcia przeplotu, domyślnie jest to
all
. Może byćall
lubinterlaced
.field
Ustaw tryb pracy.
Może być jednym z następujących:
- '
af
' Użyj flag ramek, obu pól.
- '
a
' Użyj flag ramek, jedno pole.
- '
t
' Użyj tylko górnego pola.
- '
b
' Użyj tylko dolnego pola.
- '
tf
' Użyj obu pól, najpierw u góry.
- '
bf
' Użyj obu pól, najpierw na dole.
- '
planes
Ustaw, które płaszczyzny mają zostać przetworzone, domyślnie filtr przetwarza wszystkie klatki.
nsize
Ustaw rozmiar lokalnego sąsiedztwa wokół każdego piksela, używanego przez sieć neuronową predykcyjną.
Może być jednym z następujących:
- '
s8x6
' - '
s16x6
' - '
s32x6
' - '
s48x6
' - '
s8x4
' - '
s16x4
' - '
s32x4
'
- '
nns
Ustaw liczbę neuronów w predykcyjnej sieci neuronowej. Może być jednym z następujących:
- '
n16
' - '
n32
' - '
n64
' - '
n128
' - '
n256
'
- '
qual
Steruje liczbą różnych predykcji sieci neuronowych, które są łączone w celu obliczenia końcowej wartości wyjściowej. Może być
fast
, domyślny lubslow
.etype
Ustaw, który zestaw wag ma być używany w predyktorze. Może być jednym z następujących:
- '
a, abs
' obciążniki wyszkolone w celu zminimalizowania błędu bezwzględnego
- '
s, mse
' obciążniki wyszkolone w celu zminimalizowania kwadratu błędu
- '
pscrn
Określa, czy sieć neuronowa preselektora jest używana do decydowania, które piksele powinny być przetwarzane przez sieć neuronową predykcyjną, a które mogą być obsługiwane przez prostą interpolację sześcienną. Preselektor jest szkolony, aby wiedzieć, czy interpolacja sześcienna będzie wystarczająca dla piksela, czy też powinna być przewidziana przez predyktor nn. Złożoność obliczeniowa preselektora nn jest znacznie mniejsza niż predyktora nn. Ponieważ większość pikseli może być obsługiwana przez interpolację sześcienną, użycie prescreenera zazwyczaj powoduje znacznie szybsze przetwarzanie. Prescreener jest dość dokładny, więc różnica między jego użyciem a nieużywaniem jest prawie zawsze niezauważalna.
Może być jednym z następujących:
- '
none
' - '
original
' - '
new
' - '
new2
' - '
new3
'
Wartość domyślna to
new
.- '
11.168.1 Commands
Ten filtr obsługuje te same polecenia , co opcje, z wyjątkiem weights
opcji.
11.169 noformat
Wymuś libavfilter, aby nie używał żadnego z określonych formatów pikseli dla danych wejściowych następnego filtra.
Przyjmuje następujące parametry:
pix_fmts
Lista nazw formatów pikseli rozdzielonych znakiem „|”, np. pix_fmts=yuv420p|monow|rgb24”.
11.169.1 Examples
- Wymuś użycie przez libavfilter formatu innego niż
yuv420p
dla danych wejściowych filtra vflip:noformat=pix_fmts=yuv420p,vflip
- Konwertuj wideo wejściowe na dowolny z formatów niewymienionych na liście:
noformat=yuv420p|yuv444p|yuv410p
11.170 noise
Dodaj szum do klatki wejściowej wideo.
Filtr akceptuje następujące opcje:
all_seed
c0_seed
c1_seed
c2_seed
c3_seed
Ustaw ziarno szumu dla określonego składnika piksela lub wszystkich składników piksela w przypadku
all_seed
. Wartość domyślna to123457
.all_strength, alls
c0_strength, c0s
c1_strength, c1s
c2_strength, c2s
c3_strength, c3s
Ustaw siłę szumu dla określonego składnika piksela lub wszystkich składników piksela w przypadku
all_strength
. Wartość domyślna to0
. Dozwolony zakres to [0, 100].all_flags, allf
c0_flags, c0f
c1_flags, c1f
c2_flags, c2f
c3_flags, c3f
Ustaw flagi komponentów pikselowych lub ustaw flagi dla wszystkich komponentów, jeśli
all_flags
. Dostępne wartości dla flag komponentów to:- '
a
' uśredniony szum czasowy (gładszy)
- '
p
' mieszaj losowy szum z (pół)regularnym wzorem
- '
t
' szum czasowy (zmiana wzorca szumu między klatkami)
- '
u
' jednolity szum (w przeciwnym razie gaussowski)
- '
11.170.1 Examples
Dodaj czasowy i jednolity szum do wejściowego wideo:
noise=alls=20:allf=t+u
11.171 normalize
Normalizuj wideo RGB (inaczej rozciąganie histogramu, rozciąganie kontrastu). Zobacz: https://en.wikipedia.org/wiki/Normalizacja_(przetwarzanie_obrazu)
Dla każdego kanału każdej ramki filtr oblicza zakres wejściowy i odwzorowuje go liniowo na zakres wyjściowy określony przez użytkownika. Zakres wyjściowy to domyślnie pełny zakres dynamiczny od czystej czerni do czystej bieli.
W zakresie wejściowym można zastosować wygładzanie czasowe, aby zredukować migotanie (szybkie zmiany jasności) powstałe, gdy małe ciemne lub jasne obiekty wchodzą lub opuszczają scenę. Jest to podobne do automatycznej ekspozycji (automatycznej kontroli wzmocnienia) w kamerze wideo i, podobnie jak kamera wideo, może powodować okres prześwietlenia lub niedoświetlenia obrazu wideo.
Kanały R,G,B mogą być normalizowane niezależnie, co może powodować pewne przesunięcia kolorów, lub połączone razem w jeden kanał, co zapobiega przesunięciom kolorów. Połączona normalizacja zachowuje odcień. Niezależna normalizacja nie, więc może być używana do usuwania niektórych przebarwień. Normalizację niezależną i połączoną można łączyć w dowolnym stosunku.
Filtr normalizacji akceptuje następujące opcje:
blackpt
whitept
Kolory określające zakres wyjściowy. Minimalna wartość wejściowa jest mapowana na
blackpt
. Maksymalna wartość wejściowa jest mapowana nawhitept
. Wartości domyślne to odpowiednio czarny i biały. Określenie białego dlablackpt
i czarnego dlawhitept
da odwrócone, znormalizowane wideo. Odcienie szarości mogą być użyte do zmniejszenia zakresu dynamicznego (kontrastu). Określenie tutaj nasyconych kolorów może stworzyć ciekawe efekty.smoothing
Liczba poprzednich klatek używanych do wygładzania tymczasowego. Zakres wejściowy każdego kanału jest wygładzany przy użyciu średniej kroczącej bieżącej i
smoothing
poprzednich ramek. Wartość domyślna to 0 (brak czasowego wygładzania).independence
Kontroluje stosunek niezależnej (przesunięcie koloru) normalizacji kanału do połączonej (z zachowaniem koloru) normalizacji. 0.0 jest w pełni połączone, 1.0 jest w pełni niezależne. Domyślnie 1.0 (w pełni niezależne).
strength
Ogólna wytrzymałość filtra. 1.0 to pełna siła. 0.0 to dość kosztowny no-op. Domyślnie 1,0 (pełna siła).
11.171.1 Commands
Ten filtr obsługuje te same polecenia , co opcje, z wyjątkiem smoothing
opcji. Polecenie akceptuje tę samą składnię odpowiedniej opcji.
Jeśli podane wyrażenie jest niepoprawne, jest zachowywane z bieżącą wartością.
11.171.2 Examples
Rozciągnij kontrast wideo, aby korzystać z pełnego zakresu dynamiki, bez czasowego wygładzania; może migotać w zależności od zawartości źródła:
normalize=blackpt=black:whitept=white:smoothing=0
Jak wyżej, ale z 50 klatkami czasowego wygładzania; migotanie powinno być zredukowane w zależności od zawartości źródła:
normalize=blackpt=black:whitept=white:smoothing=50
Jak powyżej, ale z normalizacją kanału połączonego z zachowaniem odcienia:
normalize=blackpt=black:whitept=white:smoothing=50:independence=0
Jak wyżej, ale z połową mocy:
normalize=blackpt=black:whitept=white:smoothing=50:independence=0:strength=0.5
Odwzoruj najciemniejszy kolor wejściowy na czerwony, najjaśniejszy kolor wejściowy na cyjan:
normalize=blackpt=red:whitept=cyan
11.172 null
Przekaż niezmienione źródło wideo do wyjścia.
11.173 ocr
Optyczne rozpoznawanie znaków
Ten filtr wykorzystuje Tesseract do optycznego rozpoznawania znaków. Aby umożliwić kompilację tego filtra, musisz skonfigurować FFmpeg za pomocą
--enable-libtesseract
.
Akceptuje następujące opcje:
datapath
Ustaw ścieżkę danych na dane tesseract. Domyślnie używa się tego, co zostało ustawione podczas instalacji.
language
Ustaw język, domyślnie "eng".
whitelist
Ustaw białą listę znaków.
blacklist
Ustaw czarną listę znaków.
Filtr eksportuje rozpoznany tekst jako metadane ramki lavfi.ocr.text
. Filtr eksportuje pewność rozpoznanych słów jako metadane ramki lavfi.ocr.confidence
.
11.174 ocv
Zastosuj transformację wideo za pomocą libopencv.
Aby włączyć ten filtr, zainstaluj bibliotekę i nagłówki libopencv i skonfiguruj FFmpeg za pomocą --enable-libopencv
.
Przyjmuje następujące parametry:
filter_name
Nazwa filtru libopencv do zastosowania.
filter_params
Parametry do przekazania do filtra libopencv. Jeśli nie określono, przyjmowane są wartości domyślne.
Więcej informacji można znaleźć w oficjalnej dokumentacji libopencv: http://docs.opencv.org/master/modules/imgproc/doc/filtering.html
Obsługiwanych jest kilka filtrów libopencv; patrz następujące podrozdziały.
11.174.1 dilate
Poszerzyć obraz, używając określonego elementu strukturyzującego. Odpowiada funkcji libopencv cvDilate
.
Przyjmuje parametry: struct_el
| nb_iterations
.
struct_el
reprezentuje element strukturyzujący i ma składnię:
cols
x rows
+ anchor_x
x anchor_y
/shape
cols
i rows
reprezentują liczbę kolumn i wierszy elementu strukturyzującego, punkt zakotwiczenia i anchor_x
kształt elementu strukturyzującego.
musi być „prosty”, „krzyż”, „elipsa” lub „niestandardowy”.
anchor_y
shape
shape
Jeśli wartością dla shape
jest „custom”, musi następować po niej ciąg w postaci „= filename
”. Zakłada się, że plik o nazwie
filename
reprezentuje obraz binarny, w którym każdy drukowalny znak odpowiada jasnemu pikselowi. shape
Gdy używany jest niestandardowy
cols
i rows
jest ignorowany, zamiast tego przyjmowana jest liczba lub kolumny i wiersze odczytanego pliku.
Domyślna wartość struct_el
to „3x3+0x0/prost”.
nb_iterations
określa, ile razy transformacja jest stosowana do obrazu, i domyślnie wynosi 1.
Kilka przykładów:
# 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.174.2 erode
Erozji obrazu przy użyciu określonego elementu strukturyzującego. Odpowiada funkcji libopencv cvErode
.
Przyjmuje parametry: struct_el
: nb_iterations
, z taką samą składnią i semantyką jak filtr
dilate .
11.174.3 smooth
Wygładź wideo wejściowe.
Filtr przyjmuje następujące parametry:
type
| param1
| param2
| param3
| param4
.
type
jest typem filtru wygładzającego, który ma zostać zastosowany, i musi być jedną z następujących wartości: „blur”, „blur_no_scale”, „mediana”, „gaussian” lub „dwustronna”. Wartość domyślna to „gaussowski”.
Znaczenie param1
, param2
, param3
i param4
zależy od typu gładkiego. param1
i
param2
akceptuj wartości całkowite dodatnie lub 0. param3
i
param4
akceptuj wartości zmiennoprzecinkowe.
Domyślna wartość dla param1
to 3. Domyślna wartość dla pozostałych parametrów to 0.
Parametry te odpowiadają parametrom przypisanym do funkcji libopencv cvSmooth
.
11.175 oscilloscope
Oscyloskop wideo 2D.
Przydatne do pomiaru impulsów przestrzennych, odpowiedzi skokowych, opóźnień chrominancji itp.
Przyjmuje następujące parametry:
x
Ustaw środek lunety x pozycję.
y
Ustaw pozycję y środka oscyloskopu.
s
Ustaw rozmiar lunety względem przekątnej ramki.
t
Ustaw pochylenie/obrót lunety.
o
Ustaw krycie śladu.
tx
Ustaw środek śledzenia x pozycję.
ty
Ustaw pozycję y środka śledzenia.
tw
Ustaw szerokość śladu w stosunku do szerokości ramki.
th
Ustaw wysokość śladu względem wysokości ramki.
c
Ustaw komponenty do śledzenia. Domyślnie śledzi pierwsze trzy składniki.
g
Narysuj siatkę śledzenia. Domyślnie jest włączony.
st
Narysuj statystyki. Domyślnie jest włączony.
sc
Narysuj zakres. Domyślnie jest włączony.
11.175.1 Commands
Ten filtr obsługuje te same polecenia, co opcje. Polecenie akceptuje tę samą składnię odpowiedniej opcji.
Jeśli podane wyrażenie jest niepoprawne, jest zachowywane z bieżącą wartością.
11.175.2 Examples
- Sprawdź cały pierwszy wiersz klatki wideo.
oscilloscope=x=0.5:y=0:s=1
- Sprawdź cały ostatni wiersz klatki wideo.
oscilloscope=x=0.5:y=1:s=1
- Sprawdź pełną piątą linię klatki wideo o wysokości 1080.
oscilloscope=x=0.5:y=5/1080:s=1
- Sprawdź całą ostatnią kolumnę klatki wideo.
oscilloscope=x=1:y=0.5:s=1:t=1
11.176 overlay
Nakładaj jeden film na drugi.
Zajmuje dwa wejścia i ma jedno wyjście. Pierwsze wejście to „główne” wideo, na które nakładane jest drugie wejście.
Przyjmuje następujące parametry:
Poniżej znajduje się opis akceptowanych opcji.
x
y
Ustaw wyrażenie dla współrzędnych x i y nałożonego wideo w głównym wideo. Wartość domyślna to „0” dla obu wyrażeń. W przypadku, gdy wyrażenie jest nieprawidłowe, ustawiane jest na dużą wartość (co oznacza, że ​​nakładka nie będzie wyświetlana w widocznym obszarze wyjściowym).
eof_action
Zobacz framesync .
eval
Ustaw, kiedy wyrażenia dla
x
, orazy
są oceniane.Przyjmuje następujące wartości:
- '
init
' Oceniaj wyrażenia tylko raz podczas inicjalizacji filtra lub podczas przetwarzania polecenia
- '
frame
' oceń wyrażenia dla każdej przychodzącej ramki
Wartość domyślna to '
frame
„.- '
shortest
Zobacz framesync .
format
Ustaw format wyjściowego wideo.
Przyjmuje następujące wartości:
- '
yuv420
' wymuszenie wyjścia YUV420
- '
yuv420p10
' wymuszenie wyjścia YUV420p10
- '
yuv422
' wymuś wyjście YUV422
- '
yuv422p10
' wymuś wyjście YUV422p10
- '
yuv444
' wymuś wyjście YUV444
- '
rgb
' wymuszone pakowanie wyjścia RGB
- '
gbrp
' wymuszenie planarnego wyjścia RGB
- '
auto
' automatycznie wybierz format
Wartość domyślna to '
yuv420
„.- '
repeatlast
Zobacz framesync .
alpha
Ustaw format alfa nakładki wideo, może to być
straight
lubpremultiplied
. Wartość domyślna tostraight
.
Thex
, orazy
wyrażenia mogą zawierać następujące parametry.
main_w, W
main_h, H
Główna szerokość i wysokość danych wejściowych.
overlay_w, w
overlay_h, h
Szerokość i wysokość danych wejściowych nakładki.
x
y
Obliczone wartości dla
x
iy
. Są oceniane dla każdej nowej klatki.hsub
vsub
Podpróbki wartości chrominancji poziomej i pionowej formatu wyjściowego. Na przykład dla formatu piksela „yuv422p”
hsub
to 2 ivsub
1.n
liczba klatek wejściowych, zaczynając od 0
pos
pozycja w pliku ramki wejściowej, NAN jeśli nieznana
t
Znacznik czasu wyrażony w sekundach. Jest to NAN, jeśli wejściowy znacznik czasu jest nieznany.
Ten filtr obsługuje również opcje framesync .
Zwróć uwagę, że n
zmienne , , są dostępne tylko wtedy, gdy ocena jest wykonywana pos
na ramkę i będą oceniane jako NAN, gdyt
eval
jest ustawione na 'init
„.
Należy pamiętać, że klatki są pobierane z każdego wejściowego wideo w kolejności znaczników czasowych, dlatego jeśli ich początkowe znaczniki czasowe różnią się, dobrym pomysłem jest przepuszczenie dwóch wejść przez setpts=PTS-STARTPTS
filtr, aby zaczynały się od tego samego zerowego znacznika czasowego, jak w przykładzie dla movie
filtr.
Możesz połączyć ze sobą więcej nakładek, ale powinieneś przetestować skuteczność takiego podejścia.
11.176.1 Commands
Ten filtr obsługuje następujące polecenia:
x
y
Zmodyfikuj x i y danych wejściowych nakładki. Polecenie akceptuje tę samą składnię odpowiedniej opcji.
Jeśli podane wyrażenie jest niepoprawne, jest zachowywane z bieżącą wartością.
11.176.2 Examples
- Narysuj nakładkę w 10 pikselach od prawego dolnego rogu głównego wideo:
overlay=main_w-overlay_w-10:main_h-overlay_h-10
Używając nazwanych opcji, powyższy przykład staje się:
overlay=x=main_w-overlay_w-10:y=main_h-overlay_h-10
- Wstaw przezroczyste logo PNG w lewym dolnym rogu danych wejściowych, używając
ffmpeg
narzędzia z-filter_complex
opcją:ffmpeg -i input -i logo -filter_complex 'overlay=10:main_h-overlay_h-10' output
- Wstaw 2 różne przezroczyste logo PNG (drugie logo w prawym dolnym rogu) za pomocą
ffmpeg
narzędzia: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
- Dodaj przezroczystą warstwę kolorów na górze głównego wideo;
WxH
musi określić rozmiar głównego wejścia do filtra nakładkowego:color=color=red@.3:size=WxH [over]; [in][over] overlay [out]
- Odtwórz oryginalny film i wersję przefiltrowaną (tu z filtrem deshake) obok siebie, używając
ffplay
narzędzia:ffplay input.avi -vf 'split[a][b]; [a]pad=iw*2:ih[src]; [b]deshake[filt]; [src][filt]overlay=w'
Powyższe polecenie jest takie samo jak:
ffplay input.avi -vf 'split[b], pad=iw*2[src], [b]deshake, [src]overlay=w'
- Utwórz przesuwaną nakładkę pojawiającą się od lewej do prawej górnej części ekranu, zaczynając od czasu 2:
overlay=x='if(gte(t,2), -w+(t-2)*20, NAN)':y=0
- Skomponuj dane wyjściowe, umieszczając dwa wideo wejściowe obok siebie:
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] "
- Zamaskuj 10-20 sekund filmu, stosując filtr delogo do sekcji
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
- Połącz kilka nakładek kaskadowo:
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.177 overlay_cuda
Nakładaj jeden film na drugi.
To jest wariant CUDA filtra nakładkowego . Akceptuje tylko ramki CUDA. Podstawowe formaty pikseli wejściowych muszą być zgodne.
Zajmuje dwa wejścia i ma jedno wyjście. Pierwsze wejście to „główne” wideo, na które nakładane jest drugie wejście.
Przyjmuje następujące parametry:
x
y
Ustaw wyrażenia dla współrzędnych x i y nałożonego wideo w głównym wideo.
Mogą zawierać następujące parametry:
main_w, W
main_h, H
Główna szerokość i wysokość danych wejściowych.
overlay_w, w
overlay_h, h
Szerokość i wysokość danych wejściowych nakładki.
x
y
Obliczone wartości dla
x
iy
. Są oceniane dla każdej nowej klatki.n
Indeks porządkowy głównej ramki wejściowej, zaczynając od 0.
pos
Pozycja przesunięcia bajtów w pliku głównej ramki wejściowej, NAN jeśli nieznana.
t
Znacznik czasu głównej ramki wejściowej wyrażony w sekundach, NAN, jeśli jest nieznany.
Wartość domyślna to „0” dla obu wyrażeń.
eval
Ustaw, kiedy wyrażenia dla
x
orazy
są oceniane.Przyjmuje następujące wartości:
init
Oceń wyrażenia raz podczas inicjowania filtru lub podczas przetwarzania polecenia.
frame
Oceń wyrażenia dla każdej przychodzącej ramki
Wartość domyślna to
frame
.eof_action
Zobacz framesync .
shortest
Zobacz framesync .
repeatlast
Zobacz framesync .
Ten filtr obsługuje również opcje framesync .
11.178 owdenoise
Zastosuj odszumiacz Overcomplete Wavelet.
Filtr akceptuje następujące opcje:
depth
Ustaw głębokość.
Większe wartości głębokości będą bardziej odszumiać komponenty o niższej częstotliwości, ale spowalniają filtrowanie.
Musi być int z zakresu 8-16, domyślnie
8
.luma_strength, ls
Ustaw siłę luma.
Musi być podwójną wartością z zakresu 0-1000, domyślnie
1.0
.chroma_strength, cs
Ustaw siłę barwy.
Musi być podwójną wartością z zakresu 0-1000, domyślnie
1.0
.
11.179 pad
Dodaj dopełnienia do obrazu wejściowego i umieść oryginalne dane wejściowe w podanych x
współrzędnych y
.
Przyjmuje następujące parametry:
width, w
height, h
Określ wyrażenie określające rozmiar obrazu wyjściowego z dodanymi dopełnieniami. Jeśli wartość
width
lubheight
wynosi 0, odpowiedni rozmiar wejściowy jest używany dla danych wyjściowych.Wyrażenie
width
może odwoływać się do wartości ustawionej przezheight
wyrażenie i na odwrót.Domyślna wartość
width
iheight
wynosi 0.x
y
Określ przesunięcia, w których ma zostać umieszczony obraz wejściowy w obszarze dopełnienia, w odniesieniu do górnej/lewej krawędzi obrazu wyjściowego.
Wyrażenie
x
może odwoływać się do wartości ustawionej przezy
wyrażenie i na odwrót.Domyślna wartość
x
iy
wynosi 0.Jeśli
x
luby
ocenisz na liczbę ujemną, zostaną one zmienione tak, aby obraz wejściowy był wyśrodkowany na obszarze z wypełnieniem.color
Określ kolor wyściełanego obszaru. Aby poznać składnię tej opcji, sprawdź sekcję (ffmpeg-utils)"Color" w podręczniku ffmpeg-utils .
Domyślna wartość
color
to „czarny”.eval
Określ, kiedy oceniać
width
,height
i wyrażeniex
.y
Przyjmuje następujące wartości:
- '
init
' Oceniaj wyrażenia tylko raz podczas inicjowania filtru lub podczas przetwarzania polecenia.
- '
frame
' Oceń wyrażenia dla każdej przychodzącej ramki.
Wartość domyślna to '
init
„.- '
aspect
Dopasuj do proporcji zamiast do rozdzielczości.
Wartością opcji width
, height
, x
i y
są wyrażenia zawierające następujące stałe:
in_w
in_h
Wejściowa szerokość i wysokość wideo.
iw
ih
Są takie same jak
in_w
iin_h
.out_w
out_h
Wyjściowa szerokość i wysokość (rozmiar obszaru dopełnionego), określona przez wyrażenia
width
i .height
ow
oh
Są takie same jak
out_w
iout_h
.x
y
Przesunięcia x i y określone przez wyrażenia i lub NAN, jeśli jeszcze nie zostały określone
x
.y
a
tak samo jak
iw
/ih
sar
wejściowy współczynnik proporcji próbki
dar
format obrazu wejściowego, taki sam jak (
iw
/ih
) *sar
hsub
vsub
Wartości podpróbki chrominancji poziomej i pionowej. Na przykład dla formatu piksela „yuv422p”
hsub
to 2 ivsub
1.
11.179.1 Examples
- Dodaj dopełnienia z kolorem „fioletowym” do wejściowego wideo. Rozmiar wyjściowego wideo to 640x480, a lewy górny róg wejściowego wideo znajduje się w kolumnie 0, wierszu 40
pad=640:480:0:40:violet
Powyższy przykład jest odpowiednikiem następującego polecenia:
pad=width=640:height=480:x=0:y=40:color=violet
- Wypełnij wejście, aby uzyskać wyjście o wymiarach zwiększonych o 3/2, i umieść wejściowe wideo na środku wyściełanego obszaru:
pad="3/2*iw:3/2*ih:(ow-iw)/2:(oh-ih)/2"
- Wypełnij wejście, aby uzyskać kwadratowy wynik o rozmiarze równym maksymalnej wartości między szerokością a wysokością wejścia, i umieść wejściowy sygnał wideo na środku wyściełanego obszaru:
pad="max(iw\,ih):ow:(ow-iw)/2:(oh-ih)/2"
- Dopełnij dane wejściowe, aby uzyskać ostateczny stosunek w/h 16:9:
pad="ih*16/9:ih:(ow-iw)/2:(oh-ih)/2"
- W przypadku wideo anamorficznego, w celu poprawnego ustawienia wyjściowego aspektu wyświetlania, należy użyć
sar
w wyrażeniu, zgodnie z zależnością:(ih * X / ih) * sar = output_dar X = output_dar / sar
Dlatego poprzedni przykład należy zmodyfikować do:
pad="ih*16/9/sar:ih:(ow-iw)/2:(oh-ih)/2"
- Podwój rozmiar wyjściowy i umieść wideo wejściowe w prawym dolnym rogu wyściełanego obszaru wyjściowego:
pad="2*iw:2*ih:ow-iw:oh-ih"
11.180 palettegen
Generuj jedną paletę dla całego strumienia wideo.
Akceptuje następujące opcje:
max_colors
Ustaw maksymalną liczbę kolorów do kwantyzacji w palecie. Uwaga: paleta nadal będzie zawierała 256 kolorów; niewykorzystane wpisy palety będą czarne.
reserve_transparent
Utwórz paletę maksymalnie 255 kolorów i zarezerwuj ostatnią na przezroczystość. Zarezerwowanie koloru przezroczystości jest przydatne do optymalizacji GIF. Jeśli nie jest ustawiona, maksymalna liczba kolorów w palecie wyniesie 256. Prawdopodobnie chcesz wyłączyć tę opcję dla samodzielnego obrazu. Ustawione domyślnie.
transparency_color
Ustaw kolor, który będzie używany jako tło dla przezroczystości.
stats_mode
Ustaw tryb statystyki.
Przyjmuje następujące wartości:
- '
full
' Oblicz histogramy pełnoklatkowe.
- '
diff
' Oblicz histogramy tylko dla części, która różni się od poprzedniej klatki. Może to być istotne, aby nadać większą wagę ruchomej części danych wejściowych, jeśli tło jest statyczne.
- '
single
' Oblicz nowy histogram dla każdej klatki.
Wartość domyślna to
full
.- '
use_alpha
Stwórz paletę kolorów z komponentami alfa. Ustawienie tego spowoduje automatyczne wyłączenie „reserve_transparent”.
Filtr eksportuje również metadane klatek lavfi.color_quant_ratio
( nb_color_in / nb_color_out
), których można użyć do oceny stopnia kwantyzacji kolorów palety. Ta informacja jest również widoczna na
info
poziomie logowania.
11.180.1 Examples
- Wygeneruj reprezentatywną paletę danego filmu za pomocą
ffmpeg
:ffmpeg -i input.mkv -vf palettegen palette.png
11.181 paletteuse
Użyj palety do downsamplingu wejściowego strumienia wideo.
Filtr przyjmuje dwa wejścia: jeden strumień wideo i paletę. Paleta musi składać się z 256 pikseli obrazu.
Akceptuje następujące opcje:
dither
Wybierz tryb ditheringu. Dostępne algorytmy to:
- '
bayer
' Zamówiony dithering bayer 8x8 (deterministyczny)
- '
heckbert
' Dithering zdefiniowany przez Paula Heckberta w 1982 r. (proste rozproszenie błędów). Uwaga: ten dithering jest czasami uważany za „niewłaściwy” i jest uwzględniany jako odniesienie.
- '
floyd_steinberg
' Dithering Floyda i Steingberga (dyfuzja błędów)
- '
sierra2
' Frankie Sierra dithering v2 (dyfuzja błędów)
- '
sierra2_4a
' Frankie Sierra dithering v2 „Lite” (dyfuzja błędów)
Wartość domyślna to
sierra2_4a
.- '
bayer_scale
Po
bayer
wybraniu ditheringu ta opcja określa skalę wzoru (jak bardzo widoczny jest wzór kreskowania). Niska wartość oznacza bardziej widoczny wzór oznaczający mniej prążków, a wyższa wartość oznacza mniej widoczny wzór kosztem większej liczby prążków.Opcja musi być liczbą całkowitą z zakresu [0,5]. Wartość domyślna to
2
.diff_mode
Jeśli ustawione, zdefiniuj strefę do przetworzenia
- '
rectangle
' Tylko zmieniający się prostokąt zostanie ponownie przetworzony. Jest to podobne do mechanizmu przycinania/przesuwania GIF-ów. Ta opcja może byćprzydatna dla szybkości, jeśli tylko część obrazu się zmienia i ma przypadki użycia takie jak ograniczenie zakresu rozproszenia błędu
dither
do prostokąta, który ogranicza ruchomą scenę (prowadzi do bardziej deterministycznego wyniku, jeśli scena nie zmienia się zbytnio, a w rezultacie mniej szumu ruchu i lepszą kompresję GIF).
Wartość domyślna to
none
.- '
new
Weź nową paletę dla każdej klatki wyjściowej.
alpha_threshold
Ustawia próg alfa dla przezroczystości. Wartości alfa powyżej tego progu będą traktowane jako całkowicie nieprzezroczyste, a wartości poniżej tego progu będą traktowane jako całkowicie przezroczyste.
Opcja musi być liczbą całkowitą z zakresu [0,255]. Wartość domyślna to
128
.use_alpha
Zastosuj paletę, biorąc pod uwagę wartości alfa. Przydatne tylko w przypadku palet zawierających wiele kolorów ze składnikami alfa. Ustawienie tego spowoduje automatyczne wyłączenie „alpha_treshold”.
11.181.1 Examples
- Użyj palety (generowanej na przykład za pomocą palettegen ), aby zakodować GIF za pomocą
ffmpeg
:ffmpeg -i input.mkv -i palette.png -lavfi paletteuse output.gif
11.182 perspective
Prawidłowa perspektywa wideo nie jest nagrana prostopadle do ekranu.
Poniżej znajduje się opis akceptowanych parametrów.
x0
y0
x1
y1
x2
y2
x3
y3
Ustaw wyrażenie współrzędnych dla lewego górnego, prawego górnego, lewego dolnego i prawego dolnego narożnika. Wartości domyślne określają,
0:0:W:0:0:H:W:H
z którymi perspektywa pozostanie niezmieniona. Jeślisense
opcja jest ustawiona nasource
, określone punkty zostaną wysłane do rogów miejsca docelowego. Jeślisense
opcja jest ustawiona nadestination
, to narożniki źródła zostaną wysłane do określonych współrzędnych.Wyrażenia mogą używać następujących zmiennych:
W
H
szerokość i wysokość klatki wideo.
in
Liczba klatek wejściowych.
on
Liczba klatek wyjściowych.
interpolation
Ustaw interpolację do korekcji perspektywy.
Przyjmuje następujące wartości:
- '
linear
' - '
cubic
'
Wartość domyślna to '
linear
„.- '
sense
Ustaw interpretację opcji współrzędnych.
Przyjmuje następujące wartości:
- '
0, source
' -
Wyślij punkt w źródle określonym przez podane współrzędne do rogów celu.
- '
1, destination
' -
Wyślij rogi źródła do punktu docelowego określonego przez podane współrzędne.
Wartość domyślna to '
source
„.
- '
eval
Ustaw, kiedy wyrażenia dla współrzędnych
x0,y0,...x3,y3
są oceniane.Przyjmuje następujące wartości:
- '
init
' Oceniaj wyrażenia tylko raz podczas inicjalizacji filtra lub podczas przetwarzania polecenia
- '
frame
' oceń wyrażenia dla każdej przychodzącej ramki
Wartość domyślna to '
init
„.- '
11.183 phase
Opóźnij wideo z przeplotem o jeden czas pola, aby zmienić kolejność pól.
Zamierzonym zastosowaniem jest naprawa filmów PAL, które zostały przechwycone z odwrotną kolejnością pól do transferu filmu na wideo.
Poniżej znajduje się opis akceptowanych parametrów.
mode
Ustaw tryb fazy.
Przyjmuje następujące wartości:
- '
t
' Przechwyć kolejność w polu od góry do góry, przenieś najpierw na dół. Filtr opóźni dolne pole.
- '
b
' Przechwyć kolejność w polu od dołu do pierwszego, przenieś najpierw na górę. Filtr opóźni górne pole.
- '
p
' Przechwytywanie i przesyłanie z tą samą kolejnością w terenie. Ten tryb istnieje tylko w celu odniesienia się do dokumentacji innych opcji, ale jeśli faktycznie go wybierzesz, filtr wiernie nic nie zrobi.
- '
a
' Uchwyć kolejność pól określoną automatycznie przez flagi pól, przenieś odwrotnie. Filtruj wybrane spośród '
t
' oraz 'b
' tryby ramka po ramce przy użyciu flag pola. Jeśli nie są dostępne żadne informacje dotyczące pól, działa to tak samo, jak „u
„.- '
u
' Uchwyć nieznane lub zmienne, przenieś odwrotnie. Filtruj wybrane spośród '
t
' oraz 'b
' klatka po klatce, analizując obrazy i wybierając alternatywę, która zapewnia najlepsze dopasowanie pól.- '
T
' Uchwyć najpierw na górze, przenieś nieznane lub zmienne. Filtruj wybrane spośród '
t
' oraz 'p
' za pomocą analizy obrazu.- '
B
' Przechwytuj najpierw od dołu, przenieś nieznane lub zmienne. Filtruj wybrane spośród '
b
' oraz 'p
' za pomocą analizy obrazu.- '
A
' Przechwytywanie określone przez flagi pola, transfer nieznany lub zmienny. Filtruj wybrane spośród '
t
','b
' oraz 'p
' za pomocą flag terenowych i analizy obrazu. Jeśli nie są dostępne żadne informacje dotyczące pól, działa to tak samo, jak „U
„. To jest tryb domyślny.- '
U
' Zarówno przechwytywanie, jak i przesyłanie nieznane lub różne. Filtruj wybrane spośród '
t
','b
' oraz 'p
' wyłącznie przy użyciu analizy obrazu.
- '
11.183.1 Commands
Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .
11.184 photosensitivity
Zmniejsz liczbę błysków w wideo, aby pomóc użytkownikom z padaczką.
Akceptuje następujące opcje:
frames, f
Ustaw liczbę ramek do użycia podczas filtrowania. Wartość domyślna to 30.
threshold, t
Ustaw współczynnik progu wykrywania. Wartość domyślna to 1. Niższy oznacza bardziej rygorystyczny.
skip
Ustaw liczbę pikseli do pominięcia podczas próbkowania klatek. Wartość domyślna to 1. Dozwolony zakres to od 1 do 1024.
bypass
Pozostaw ramki bez zmian. Domyślnie jest wyłączone.
11.185 pixdesctest
Filtr testowy deskryptora formatu pikseli, przydatny głównie do testów wewnętrznych. Wyjściowy obraz wideo powinien być równy wejściowemu wideo.
Na przykład:
format=monow, pixdesctest
może służyć do testowania definicji deskryptora formatu monobiałych pikseli.
11.186 pixelize
Zastosuj pikselizację do strumienia wideo.
Filtr akceptuje następujące opcje:
width, w
height, h
Ustaw wymiary bloku, które będą używane do pikselizacji. Wartość domyślna to
16
.mode, m
Ustaw używany tryb pikselizacji.
Możliwe wartości to:
- '
avg
' - '
min
' - '
max
'
Wartość domyślna to
avg
.- '
planes, p
Ustaw samoloty do filtrowania. Domyślnie filtrowane są wszystkie płaszczyzny.
11.186.1 Commands
Ten filtr obsługuje wszystkie opcje jako polecenia .
11.187 pixscope
Wyświetl przykładowe wartości kanałów kolorów. Głównie przydatne do sprawdzania koloru i poziomów. Minimalna obsługiwana rozdzielczość to 640x480.
Filtry akceptują następujące opcje:
x
Ustaw pozycję X zakresu, względne przesunięcie na osi X.
y
Ustaw pozycję Y zakresu, względne przesunięcie na osi Y.
w
Ustaw szerokość zakresu.
h
Ustaw wysokość zakresu.
o
Ustaw przezroczystość okna. To okno zawiera również statystyki dotyczące obszaru pikseli.
wx
Ustaw pozycję okna X, względne przesunięcie na osi X.
wy
Ustaw pozycję okna Y, względne przesunięcie na osi Y.
11.187.1 Commands
Ten filtr obsługuje te same polecenia, co opcje.
11.188 pp
Włącz określony łańcuch podfiltrów przetwarzania końcowego za pomocą libpostproc. Ta biblioteka powinna zostać automatycznie wybrana przy kompilacji GPL ( --enable-gpl
). Filtry podrzędne muszą być oddzielone znakiem „/” i można je wyłączyć, dodając przedrostek „-”. Każdy podfiltr i niektóre opcje mają krótką i długą nazwę, których można używać zamiennie, tj. dr/dering są takie same.
Filtry akceptują następujące opcje:
subfilters
Ustaw ciąg podfiltrów przetwarzania końcowego.
Wszystkie podfiltry mają wspólne opcje określania ich zakresu:
a/autoq
Przestrzegaj poleceń dotyczących jakości tego podfiltra.
c/chrom
Wykonaj również filtrowanie chrominancji (domyślne).
y/nochrom
Czy tylko filtrowanie luminancji (bez chrominancji).
n/noluma
Czy tylko filtrowanie chrominancji (bez luminancji).
Opcje te można dołączyć po nazwie podfiltra, oddzielone znakiem „|”.
Dostępne podfiltry to:
hb/hdeblock[|difference[|flatness]]
Poziomy filtr odblokowujący
difference
Współczynnik różnicy, gdzie wyższe wartości oznaczają większe odblokowanie (domyślnie:
32
).flatness
Próg płaskości, gdzie niższe wartości oznaczają większe usuwanie bloków (domyślnie:
39
).
vb/vdeblock[|difference[|flatness]]
Pionowy filtr odblokowujący
difference
Współczynnik różnicy, gdzie wyższe wartości oznaczają większe odblokowanie (domyślnie:
32
).flatness
Próg płaskości, gdzie niższe wartości oznaczają większe usuwanie bloków (domyślnie:
39
).
ha/hadeblock[|difference[|flatness]]
Dokładny poziomy filtr odblokowujący
difference
Współczynnik różnicy, gdzie wyższe wartości oznaczają większe odblokowanie (domyślnie:
32
).flatness
Próg płaskości, gdzie niższe wartości oznaczają większe usuwanie bloków (domyślnie:
39
).
va/vadeblock[|difference[|flatness]]
Dokładny pionowy filtr odblokowujący
difference
Współczynnik różnicy, gdzie wyższe wartości oznaczają większe odblokowanie (domyślnie:
32
).flatness
Próg płaskości, gdzie niższe wartości oznaczają większe usuwanie bloków (domyślnie:
39
).
Poziome i pionowe filtry usuwania bloków mają wspólne wartości różnicy i płaskości, więc nie można ustawić różnych progów poziomych i pionowych.
h1/x1hdeblock
Eksperymentalny poziomy filtr odblokowujący
v1/x1vdeblock
Eksperymentalny pionowy filtr odblokowujący
dr/dering
Filtr Deringa
tn/tmpnoise[|threshold1[|threshold2[|threshold3]]], temporal noise reducer
threshold1
większe -> silniejsze filtrowanie
threshold2
większe -> silniejsze filtrowanie
threshold3
większe -> silniejsze filtrowanie
al/autolevels[:f/fullyrange], automatic brightness / contrast correction
f/fullyrange
Rozciągnij luminancję do
0-255
.
lb/linblenddeint
Filtr usuwania przeplotu mieszania liniowego, który usuwa przeplot z danego bloku, filtrując wszystkie linie za pomocą
(1 2 1)
filtru.li/linipoldeint
Filtr usuwający przeplot z liniową interpolacją, który usuwa przeplot z danego bloku, interpolując liniowo co drugą linię.
ci/cubicipoldeint
Sześcienny filtr usuwający przeplot z interpolacją usuwa przeplot z danego bloku, interpolując sześciennie co drugą linię.
md/mediandeint
Medianowy filtr usuwania przeplotu, który usuwa przeplot z danego bloku, stosując filtr medianowy do co drugiej linii.
fd/ffmpegdeint
Filtr usuwający przeplot FFmpeg, który usuwa przeplot z danego bloku, filtrując co drugą linię za pomocą
(-1 4 2 4 -1)
filtra.l5/lowpass5
Pionowo zastosowany filtr dolnoprzepustowego usuwania przeplotu FIR, który usuwa przeplot z danego bloku, filtrując wszystkie linie za pomocą
(-1 2 6 2 -1)
filtru.fq/forceQuant[|quantizer]
Zastępuje tabelę kwantyzatora z danych wejściowych stałym kwantyzatorem, który określisz.
quantizer
Kwantyzator do użycia
de/default
Domyślna kombinacja filtrów pp (
hb|a,vb|a,dr|a
)fa/fast
Szybka kombinacja filtrów pp (
h1|a,v1|a,dr|a
)ac
Wysokiej jakości kombinacja filtrów pp (
ha|a|128|7,va|a,dr|a
)
11.188.1 Examples
- Zastosuj usuwanie blokad w poziomie i pionie, usuwanie rogów oraz automatyczną jasność/kontrast:
pp=hb/vb/dr/al
- Zastosuj domyślne filtry bez korekcji jasności/kontrastu:
pp=de/-al
- Zastosuj filtry domyślne i odszumiacz czasowy:
pp=default/tmpnoise|1|2|3
- Zastosuj odblokowywanie tylko przy luminancji i automatycznie włączaj lub wyłączaj pionowe odblokowywanie w zależności od dostępnego czasu procesora:
pp=hb|y/vb|a
11.189 pp7
Zastosuj filtr postprocessingu 7. Jest to wariant filtra spp , podobny do spp = 6 z 7-punktowym DCT, gdzie po IDCT używana jest tylko próbka środkowa.
Filtr akceptuje następujące opcje:
qp
Wymuś stały parametr kwantyzacji. Akceptuje liczbę całkowitą z zakresu od 0 do 63. Jeśli nie jest ustawiona, filtr użyje QP ze strumienia wideo (jeśli jest dostępny).
mode
Ustaw tryb progowania. Dostępne tryby to:
- '
hard
' Ustaw twardy próg.
- '
soft
' Ustaw miękkie progi (lepszy efekt wygładzania, ale prawdopodobnie bardziej rozmyty).
- '
medium
' Ustaw średni próg (dobre wyniki, domyślnie).
- '
11.190 premultiply
Zastosuj efekt premultiply alfa do wejściowego strumienia wideo, używając pierwszej płaszczyzny drugiego strumienia jako alfa.
Oba strumienie muszą mieć te same wymiary i ten sam format pikseli.
Filtr akceptuje następującą opcję:
planes
Ustaw, które płaszczyzny będą przetwarzane, nieprzetworzone płaszczyzny zostaną skopiowane. Domyślna wartość 0xf, wszystkie płaszczyzny będą przetwarzane.
inplace
Nie wymagaj drugiego wejścia do przetwarzania, zamiast tego użyj płaszczyzny alfa ze strumienia wejściowego.
11.191 prewitt
Zastosuj operator prewitt do wejściowego strumienia wideo.
Filtr akceptuje następującą opcję:
planes
Ustaw, które płaszczyzny będą przetwarzane, nieprzetworzone płaszczyzny zostaną skopiowane. Domyślna wartość 0xf, wszystkie płaszczyzny będą przetwarzane.
scale
Ustaw wartość, która zostanie pomnożona przez przefiltrowany wynik.
delta
Ustaw wartość, która zostanie dodana do przefiltrowanego wyniku.
11.191.1 Commands
Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .
11.192 pseudocolor
Zmieniaj kolory klatek w wideo za pomocą pseudokolorów.
Ten filtr akceptuje następujące opcje:
c0
ustaw wyrażenie pierwszego składnika piksela
c1
ustaw wyrażenie drugiego składnika piksela
c2
ustaw wyrażenie trzeciego składnika piksela
c3
ustaw wyrażenie czwartego składnika piksela, odpowiada składnikowi alfa
index, i
ustawić komponent, który będzie używany jako podstawa do zmiany kolorów
preset, p
Wybierz jedną z wbudowanych tablic LUT. Domyślnie jest ustawiony na brak.
Dostępne LUT:
- '
magma
' - '
inferno
' - '
plasma
' - '
viridis
' - '
turbo
' - '
cividis
' - '
range1
' - '
range2
' - '
shadows
' - '
highlights
' - '
solar
' - '
nominal
' - '
preferred
' - '
total
'
- '
opacity
Ustaw krycie kolorów wyjściowych. Dozwolony zakres to od 0 do 1. Wartość domyślna to 1.
Każda z opcji wyrażenia określa wyrażenie, które ma być użyte do obliczenia tabeli przeglądowej dla odpowiednich wartości składowych pikseli.
Wyrażenia mogą zawierać następujące stałe i funkcje:
w
h
Wejściowa szerokość i wysokość.
val
Wartość wejściowa składnika pikselowego.
ymin, umin, vmin, amin
Minimalna dozwolona wartość składnika.
ymax, umax, vmax, amax
Maksymalna dozwolona wartość składnika.
Wszystkie wyrażenia domyślnie mają wartość „val”.
11.192.1 Commands
Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .
11.192.2 Examples
- Zmień zbyt wysokie wartości jasności na gradient:
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.193 psnr
Uzyskaj średni, maksymalny i minimalny współczynnik PSNR (Peak Signal to Noise Ratio) między dwoma wejściowymi wideo.
Ten filtr pobiera dwa wejściowe filmy wideo, pierwsze wejście jest uważane za „główne” źródło i jest przekazywane bez zmian do wyjścia. Drugie wejście jest używane jako wideo „odniesienia” do obliczania PSNR.
Aby filtr działał poprawnie, oba wejścia wideo muszą mieć tę samą rozdzielczość i format pikseli. Zakłada również, że oba wejścia mają taką samą liczbę klatek, które są porównywane jedna po drugiej.
Uzyskany średni PSNR jest drukowany przez system rejestrowania.
Filtr przechowuje skumulowany MSE (błąd średniokwadratowy) każdej ramki, a pod koniec przetwarzania jest uśredniany dla wszystkich ramek jednakowo. W celu uzyskania PSNR stosuje się następujący wzór:
PSNR = 10*log10(MAX^2/MSE)
Gdzie MAX to średnia z maksymalnych wartości każdego składnika obrazu.
Poniżej znajduje się opis akceptowanych parametrów.
stats_file, f
Jeśli zostanie określony, filtr użyje nazwanego pliku do zapisania PSNR każdej pojedynczej ramki. Gdy nazwa pliku jest równa "-" dane są wysyłane na standardowe wyjście.
stats_version
Określa, której wersji formatu pliku statystyk należy użyć. Szczegóły dotyczące każdego formatu są opisane poniżej. Wartość domyślna to 1.
stats_add_max
Określa, czy maksymalna wartość jest wyprowadzana do dziennika statystyk. Domyślna wartość to 0. Wymaga stats_version >= 2. Jeśli ta opcja jest ustawiona i stats_version < 2, filtr zwróci błąd.
Ten filtr obsługuje również opcje framesync .
Plik drukowany, jeśli stats_file
jest zaznaczony, zawiera sekwencję par klucz/wartość postaci key
: value
dla każdej porównywanej pary ramek.
Jeśli określono wartość stats_version
większą niż 1, wiersz nagłówka poprzedza listę statystyk dla każdej pary ramek, a pary klucz-wartość następują po formacie ramki z następującymi parametrami:
psnr_log_version
Wersja formatu pliku dziennika. Dopasuje się
stats_version
.fields
Rozdzielona przecinkami lista parametrów na każdą parę ramek zawartych w dzienniku.
Poniżej znajduje się opis każdego pokazanego parametru na parę ramek:
n
kolejny numer ramki wejściowej, zaczynając od 1
mse_avg
Błąd średniej kwadratowej średnia różnica piksel po pikselu porównywanych klatek, uśredniona dla wszystkich składników obrazu.
mse_y, mse_u, mse_v, mse_r, mse_g, mse_b, mse_a
Błąd średniokwadratowy średnia różnica piksel po pikselu porównywanych klatek dla składnika określonego przez sufiks.
psnr_y, psnr_u, psnr_v, psnr_r, psnr_g, psnr_b, psnr_a
Szczytowy stosunek sygnału do szumu porównywanych klatek dla składnika określonego przez sufiks.
max_avg, max_y, max_u, max_v
Maksymalna dozwolona wartość dla każdego kanału i średnia dla wszystkich kanałów.
11.193.1 Examples
- Na przykład:
movie=ref_movie.mpg, setpts=PTS-STARTPTS [main]; [main][ref] psnr="stats_file=stats.log" [out]
W tym przykładzie przetwarzany plik wejściowy jest porównywany z plikiem referencyjnym
ref_movie.mpg
. PSNR każdej pojedynczej ramki jest przechowywany wstats.log
. - Kolejny przykład z różnymi pojemnikami:
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.194 pullup
Filtr odwracania pulldown (inverse telecine), zdolny do obsługi mieszanej zawartości twardego telecine, progresywnej 24000/1001 fps i progresywnej 30000/1001 fps.
Filtr pullup został zaprojektowany, aby wykorzystać przyszły kontekst przy podejmowaniu decyzji. Ten filtr jest bezstanowy w tym sensie, że nie blokuje się na wzorcu do naśladowania, ale zamiast tego oczekuje na kolejne pola w celu zidentyfikowania dopasowań i odbudowania ramek progresywnych.
Aby wyprodukować zawartość z równą szybkością klatek, wstaw filtr fps po pullup, użyj, fps=24000/1001
jeśli szybkość wejściowa wynosi 29,97 fps,
fps=24
dla 30 fps i (rzadko) telecine 25 fps.
Filtr akceptuje następujące opcje:
jl
jr
jt
jb
Te opcje określają ilość „śmieci” do zignorowania odpowiednio po lewej, prawej stronie, na górze i na dole obrazu. Lewy i prawy są w jednostkach 8 pikseli, a góra i dół są w jednostkach 2 linii. Wartość domyślna to 8 pikseli z każdej strony.
sb
Ustaw ścisłe przerwy. Ustawienie tej opcji na 1 zmniejszy szanse na generowanie przez filtr okazjonalnych niedopasowanych klatek, ale może również spowodować porzucenie nadmiernej liczby klatek podczas sekwencji o dużym natężeniu ruchu. I odwrotnie, ustawienie go na -1 ułatwi filtrowanie pól dopasowywania. Może to pomóc w przetwarzaniu wideo, w którym występuje nieznaczne rozmycie między polami, ale może również spowodować, że na wyjściu pojawią się klatki z przeplotem. Wartość domyślna to
0
.mp
Ustaw płaszczyznę metryczną do użycia. Przyjmuje następujące wartości:
- '
l
' Użyj płaszczyzny luma.
- '
u
' Użyj płaszczyzny chroma blue.
- '
v
' Użyj płaszczyzny chroma red.
Ta opcja może być ustawiona na użycie płaszczyzny barwy zamiast domyślnej płaszczyzny luma do wykonywania obliczeń filtra. Może to poprawić dokładność na bardzo czystym materiale źródłowym, ale bardziej prawdopodobnie zmniejszy dokładność, zwłaszcza jeśli występuje szum chrominancji (efekt tęczy) lub jakiekolwiek wideo w skali szarości. Głównym celem ustawienia
mp
do płaszczyzny chromatycznej jest zmniejszenie obciążenia procesora i uczynienie pullup użytecznym w czasie rzeczywistym na wolnych maszynach.- '
Aby uzyskać najlepsze wyniki (bez zduplikowanych klatek w pliku wyjściowym) konieczna jest zmiana wyjściowej szybkości klatek. Na przykład, aby odwrócić wejście telecine NTSC:
ffmpeg -i input -vf pullup -r 24000/1001 ...
11.195 qp
Zmień parametry kwantyzacji wideo (QP).
Filtr akceptuje następującą opcję:
qp
Ustaw wyrażenie dla parametru kwantyzacji.
Wyrażenie jest oceniane przez eval API i może zawierać między innymi następujące stałe:
known
1 jeśli indeksem nie jest 129, 0 w przeciwnym wypadku.
qp
Indeks sekwencyjny od -129 do 128.
11.195.1 Examples
- Niektóre równania takie jak:
qp=2+2*sin(PI*qp)
11.196 random
Opróżnij klatki wideo z wewnętrznej pamięci podręcznej klatek w losowej kolejności. Żadna ramka nie jest odrzucana. Zainspirowany filtrem nerwowym Frei0r .
frames
Ustaw rozmiar w liczbie ramek wewnętrznej pamięci podręcznej, w zakresie od
2
do512
. Wartość domyślna to30
.seed
Zestaw zalążkowy generatora liczb losowych, musi być liczbą całkowitą zawartą między
0
iUINT32_MAX
. Jeśli nie zostanie określony lub zostanie jawnie ustawiony na wartość mniejszą niż0
, filtr spróbuje użyć dobrego losowego materiału siewnego na zasadzie najlepszego wysiłku.
11.197 readeia608
Odczytuj informacje o napisach kodowanych (EIA-608) z górnych wierszy klatki wideo.
Ten filtr dodaje metadane ramki dla lavfi.readeia608.X.cc
i
lavfi.readeia608.X.line
, gdzie X
jest numerem zidentyfikowanej linii z danymi EIA-608 (zaczynając od 0). Opis każdej wartości metadanych jest następujący:
lavfi.readeia608.X.cc
Dwa bajty przechowywane jako dane EIA-608 (wydrukowane szesnastkowo).
lavfi.readeia608.X.line
Numer linii, na której zidentyfikowano i odczytano dane EIA-608.
Ten filtr akceptuje następujące opcje:
scan_min
Ustaw linię, aby rozpocząć skanowanie w poszukiwaniu danych EIA-608. Wartość domyślna to
0
.scan_max
Ustaw linię, aby zakończyć skanowanie danych EIA-608. Wartość domyślna to
29
.spw
Ustaw proporcję szerokości zarezerwowaną dla wykrywania kodu synchronizacji. Wartość domyślna to
0.27
. Dozwolony zakres to[0.1 - 0.7]
.chp
Włącz sprawdzanie bitu parzystości. W przypadku błędu parzystości filtr wyświetli dane
0x00
dla tego znaku. Wartość domyślna to fałsz.lp
Linie dolnoprzepustowe przed dalszą obróbką. Domyślnie jest włączone.
11.197.1 Commands
Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .
11.197.2 Examples
- Wygeneruj plik csv z czasem prezentacji i dwoma pierwszymi wierszami zidentyfikowanych danych napisów 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.198 readvitc
Odczytaj informacje o pionowym interwale czasowym (VITC) z górnych wierszy klatki wideo.
Filtr dodaje klucz metadanych klatki lavfi.readvitc.tc_str
z wartością kodu czasowego, jeśli wykryto prawidłowy kod czasowy. Dalszy klucz metadanych
lavfi.readvitc.found
jest ustawiony na 0/1 w zależności od tego, czy dane kodu czasowego zostały znalezione, czy nie.
Ten filtr akceptuje następujące opcje:
scan_max
Ustaw maksymalną liczbę linii do skanowania w poszukiwaniu danych VITC. Jeśli wartość jest ustawiona na
-1
skanowana jest pełna klatka wideo. Wartość domyślna to45
.thr_b
Ustaw próg jasności dla czerni. Akceptuje liczby zmiennoprzecinkowe z zakresu [0.0,1.0], wartość domyślna to
0.2
. Wartość musi być równa lub mniejsza niżthr_w
.thr_w
Ustaw próg jasności dla bieli. Akceptuje liczby zmiennoprzecinkowe z zakresu [0.0,1.0], wartość domyślna to
0.6
. Wartość musi być równa lub większa niżthr_b
.
11.198.1 Examples
- Wykryj i narysuj dane VITC na ramce wideo; jeśli nie wykryto prawidłowego VITC, narysuj
--:--:--:--
jako symbol zastępczy: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.199 remap
Ponownie mapuj piksele za pomocą wejściowego strumienia wideo 2: Xmap i 3: Ymap.
Piksel docelowy na pozycji (X, Y) zostanie pobrany z pozycji źródłowej (x, y), gdzie x = Xmap(X, Y) i y = Ymap(X, Y). Jeśli wartości mapowania są poza zakresem, dla piksela docelowego zostanie użyta wartość zerowa dla piksela.
Wejściowe strumienie wideo Xmap i Ymap muszą mieć te same wymiary. Wyjściowy strumień wideo będzie miał wymiary strumienia wideo Xmap/Ymap. Wejściowe strumienie wideo Xmap i Ymap mają 16-bitową głębię, jeden kanał.
format
Określ format pikselowy danych wyjściowych tego filtra. Może być
color
lubgray
. Wartość domyślna tocolor
.fill
Określ kolor niezmapowanych pikseli. Aby poznać składnię tej opcji, sprawdź sekcję (ffmpeg-utils)"Color" w podręczniku ffmpeg-utils . Kolor domyślny to
black
.
11.200 removegrain
Filtr removegrain to przestrzenny odszumiacz dla progresywnego wideo.
m0
Ustaw tryb dla pierwszego samolotu.
m1
Ustaw tryb dla drugiego samolotu.
m2
Ustaw tryb dla trzeciej płaszczyzny.
m3
Ustaw tryb dla czwartej płaszczyzny.
Zakres trybu wynosi od 0 do 24. Opis każdego trybu jest następujący:
0
Pozostaw płaszczyznę wejściową niezmienioną. Domyślna.
1
Przycina piksel z minimum i maksimum 8 sąsiednich pikseli.
2
Przycina piksel z drugim minimum i maksimum z 8 sąsiednich pikseli.
3
Przycina piksel z trzecim minimum i maksimum z 8 sąsiednich pikseli.
4
Przycina piksel z czwartym minimum i maksimum z 8 sąsiednich pikseli. Odpowiada to filtrowi mediany.
5
Przycinanie wrażliwe na linię dające minimalną zmianę.
6
Przycinanie wrażliwe na żyłkę, pośrednie.
7
Przycinanie wrażliwe na żyłkę, pośrednie.
8
Przycinanie wrażliwe na żyłkę, pośrednie.
9
Przycinanie zależne od linii na linii, w której sąsiednie piksele są najbliżej.
10
Zastępuje piksel docelowy najbliższym sąsiadem.
11
[1 2 1] poziome i pionowe rozmycie jądra.
12
Tak samo jak w trybie 11.
13
Tryb Boba, interpoluje górne pole od linii, w której sąsiednie piksele są najbliżej.
14
Tryb Boba, interpoluje dolne pole od linii, w której sąsiednie piksele są najbliżej.
15
Tryb Boba, interpoluje górne pole. To samo co 13, ale z bardziej skomplikowaną formułą interpolacji.
16
Tryb Boba, interpoluje dolne pole. To samo co 14, ale z bardziej skomplikowaną formułą interpolacji.
17
Przycina piksel z minimum i maksimum odpowiednio maksimum i minimum każdej pary przeciwległych sąsiednich pikseli.
18
Przycinanie z uwzględnieniem linii przy użyciu przeciwległych sąsiadów, których największa odległość od bieżącego piksela jest minimalna.
19
Zastępuje piksel średnią z jego 8 sąsiadów.
20
Uśrednia 9 pikseli ([1 1 1] rozmycie w poziomie iw pionie).
21
Przycina piksele przy użyciu średnich z przeciwnego sąsiada.
22
Taki sam jak tryb 21, ale prostszy i szybszy.
23
Małe usuwanie krawędzi i aureoli, ale podobno bezużyteczne.
24
Podobnie jak 23.
11.201 removelogo
Pomiń logo stacji telewizyjnej, używając pliku obrazu, aby określić, które piksele składają się na logo. Działa poprzez wypełnienie pikseli składających się na logo sąsiednimi pikselami.
Filtr akceptuje następujące opcje:
filename, f
Ustaw plik bitmapy filtra, który może być dowolnym formatem obrazu obsługiwanym przez libavformat. Szerokość i wysokość pliku obrazu muszą odpowiadać przetwarzanym strumieniom wideo.
Piksele w dostarczonym obrazie bitmapowym o wartości zero nie są uważane za część logo, piksele niezerowe są uważane za część logo. Jeśli użyjesz białego (255) do logo i czarnego (0) do reszty, będziesz bezpieczny. W celu wykonania bitmapy filtra zaleca się wykonanie zrzutu ekranu czarnej ramki z widocznym logo, a następnie użycie filtra progowego, a następnie raz lub dwa razy filtra erozji.
W razie potrzeby małe plamy można naprawić ręcznie. Pamiętaj, że jeśli piksele logo nie zostaną zakryte, jakość filtra ulegnie znacznemu pogorszeniu. Oznaczenie zbyt wielu pikseli jako części logo nie boli tak bardzo, ale zwiększy ilość rozmycia potrzebną do zakrycia obrazu i zniszczy więcej informacji niż to konieczne, a dodatkowe piksele spowolnią działanie na dużym logo.
11.202 repeatfields
Ten filtr używa flagi repeat_field z nagłówków Video ES i pól twardych powtórzeń na podstawie jej wartości.
11.203 reverse
Odwróć klip wideo.
Ostrzeżenie: ten filtr wymaga pamięci do buforowania całego klipu, dlatego sugeruje się przycinanie.
11.203.1 Examples
- Weź pierwsze 5 sekund klipu i odwróć go.
trim=end=5,reverse
11.204 rgbashift
Przesuwaj piksele R/G/B/A w poziomie i/lub w pionie.
Filtr akceptuje następujące opcje:
rh
Ustaw kwotę, aby przesunąć czerwony poziomo.
rv
Ustaw kwotę, aby przesunąć czerwony w pionie.
gh
Ustaw kwotę, aby przesunęła się na zielono w poziomie.
gv
Ustaw kwotę, aby przesunąć zielony w pionie.
bh
Ustaw kwotę, aby przesunąć kolor niebieski w poziomie.
bv
Ustaw kwotę, aby przesunąć niebieski w pionie.
ah
Ustaw kwotę, aby przesunąć alfa w poziomie.
av
Ustaw kwotę, aby przesunąć alfa w pionie.
edge
Ustaw tryb krawędzi, może być
smear
, domyślny lubwarp
.
11.204.1 Commands
Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .
11.205 roberts
Zastosuj operator krzyżowy Roberts do wejściowego strumienia wideo.
Filtr akceptuje następującą opcję:
planes
Ustaw, które płaszczyzny będą przetwarzane, nieprzetworzone płaszczyzny zostaną skopiowane. Domyślna wartość 0xf, wszystkie płaszczyzny będą przetwarzane.
scale
Ustaw wartość, która zostanie pomnożona przez przefiltrowany wynik.
delta
Ustaw wartość, która zostanie dodana do przefiltrowanego wyniku.
11.205.1 Commands
Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .
11.206 rotate
Obróć wideo o dowolny kąt wyrażony w radianach.
Filtr akceptuje następujące opcje:
Poniżej znajduje się opis parametrów opcjonalnych.
angle, a
Ustaw wyrażenie określające kąt, o jaki ma zostać obrócony wejściowy sygnał wideo zgodnie z ruchem wskazówek zegara, wyrażony jako liczba radianów. Wartość ujemna spowoduje obrót w kierunku przeciwnym do ruchu wskazówek zegara. Domyślnie jest ustawiony na „0”.
To wyrażenie jest oceniane dla każdej klatki.
out_w, ow
Ustaw wyrażenie szerokości wyjściowej, wartość domyślna to "iw". To wyrażenie jest oceniane tylko raz podczas konfiguracji.
out_h, oh
Ustaw wyrażenie wysokości wyjściowej, domyślną wartością jest "ih". To wyrażenie jest oceniane tylko raz podczas konfiguracji.
bilinear
Włącz interpolację dwuliniową, jeśli jest ustawiona na 1, wartość 0 wyłącza ją. Wartość domyślna to 1.
fillcolor, c
Ustaw kolor używany do wypełnienia obszaru wyjściowego, którego nie obejmuje obrócony obraz. Aby uzyskać ogólną składnię tej opcji, sprawdź sekcję (ffmpeg-utils)"Color" w podręczniku ffmpeg-utils . W przypadku wybrania specjalnej wartości „none” tło nie jest drukowane (przydatne na przykład, jeśli tło nigdy nie jest pokazywane).
Wartość domyślna to „czarny”.
Wyrażenia określające kąt i rozmiar wyjściowy mogą zawierać następujące stałe i funkcje:
n
kolejny numer ramki wejściowej, zaczynając od 0. Zawsze jest to NAN przed filtrowaniem pierwszej ramki.
t
czas w sekundach ramki wejściowej, jest ustawiony na 0, gdy filtr jest skonfigurowany. Zawsze jest NAN przed filtrowaniem pierwszej klatki.
hsub
vsub
wartości podpróbki chrominancji poziomej i pionowej. Na przykład dla formatu piksela „yuv422p”
hsub
to 2 ivsub
1.in_w, iw
in_h, ih
szerokość i wysokość wejściowego wideo
out_w, ow
out_h, oh
szerokość i wysokość wyjściową, czyli rozmiar obszaru dopełnionego określony przez wyrażenia
width
iheight
rotw(a)
roth(a)
minimalna szerokość/wysokość wymagana do całkowitego zamknięcia wejściowego wideo obróconego przez
a
radiany.Są one dostępne tylko podczas obliczania
out_w
orazout_h
wyrażenia.
11.206.1 Examples
- Obróć wejście o PI/6 radianów zgodnie z ruchem wskazówek zegara:
rotate=PI/6
- Obróć wejście o PI/6 radianów w lewo:
rotate=-PI/6
- Obróć wejście o 45 stopni w prawo:
rotate=45*PI/180
- Zastosuj stały obrót z okresem T, zaczynając od kąta PI/3:
rotate=PI/3+2*PI*t/T
- Obróć wejściowy sygnał wideo oscyluje z okresem T sekund i amplitudą radianów A:
rotate=A*sin(2*PI/T*t)
- Obróć wideo, rozmiar wyjściowy jest wybierany tak, aby całe obracające się wideo wejściowe było zawsze całkowicie zawarte w wyjściu:
rotate='2*PI*t:ow=hypot(iw,ih):oh=ow'
- Obróć wideo, zmniejsz rozmiar wyjściowy, aby nigdy nie było wyświetlane żadne tło:
rotate=2*PI*t:ow='min(iw,ih)/sqrt(2)':oh=ow:c=none
11.206.2 Commands
Filtr obsługuje następujące polecenia:
a, angle
Ustaw wyrażenie kąta. Polecenie akceptuje tę samą składnię odpowiedniej opcji.
Jeśli podane wyrażenie jest niepoprawne, jest zachowywane z bieżącą wartością.
11.207 sab
Zastosuj rozmycie adaptacyjne do kształtu.
Filtr akceptuje następujące opcje:
luma_radius, lr
Ustaw siłę filtra rozmycia luma, musi mieścić się w zakresie 0,1-4,0, domyślna wartość to 1,0. Większa wartość spowoduje bardziej rozmyty obraz i wolniejsze przetwarzanie.
luma_pre_filter_radius, lpfr
Ustaw promień luma filtra wstępnego, musi być wartością z zakresu 0,1-2,0, domyślna wartość to 1,0.
luma_strength, ls
Ustaw maksymalną różnicę luma między pikselami, która ma być nadal brana pod uwagę, musi być wartością z zakresu 0,1-100,0, domyślna wartość to 1,0.
chroma_radius, cr
Ustaw siłę filtra rozmycia chrominancji, musi mieścić się w zakresie -0,9-4,0. Większa wartość spowoduje bardziej rozmyty obraz i wolniejsze przetwarzanie.
chroma_pre_filter_radius, cpfr
Ustaw promień wstępnego filtru chrominancji, musi być wartością z zakresu -0,9-2,0.
chroma_strength, cs
Ustaw maksymalną różnicę chrominancji między pikselami, która ma być nadal brana pod uwagę, musi być wartością z zakresu -0,9-100,0.
Każda wartość opcji chroma, jeśli nie została wyraźnie określona, ​​jest ustawiana na odpowiadającą jej wartość opcji luma.
11.208 scale
Skaluj (zmień rozmiar) wejściowego wideo za pomocą biblioteki libswscale.
Filtr skali wymusza, aby wyjściowe proporcje wyświetlania były takie same jak wejściowe, zmieniając proporcje wyjściowej próbki.
Jeśli format obrazu wejściowego różni się od formatu wymaganego przez następny filtr, filtr skali przekonwertuje dane wejściowe na żądany format.
11.208.1 Options
Filtr akceptuje następujące opcje lub dowolne opcje obsługiwane przez skaler libswscale.
Zobacz (ffmpeg-scaler) podręcznik ffmpeg-scaler, aby uzyskać pełną listę opcji skalowania.
width, w
height, h
Ustaw wyrażenie wyjściowego wymiaru wideo. Wartość domyślna to wymiar wejściowy.
Jeśli wartość
width
lubw
wynosi 0, dla danych wyjściowych jest używana szerokość wejściowa. Jeśli wartośćheight
lubh
wynosi 0, wysokość wejściowa jest używana dla danych wyjściowych.Jeśli jedna i tylko jedna z wartości to -n przy n >= 1, filtr skali użyje wartości, która zachowuje proporcje obrazu wejściowego, obliczone na podstawie innego określonego wymiaru. Po tym jednak upewni się, że obliczony wymiar jest podzielny przez n iw razie potrzeby dostosuje wartość.
Jeśli obie wartości to -n przy n >= 1, zachowanie będzie identyczne z obiema wartościami ustawionymi na 0, jak opisano wcześniej.
Zobacz poniżej listę stałych akceptowanych do użycia w wyrażeniu wymiaru.
eval
Określ, kiedy oceniać
width
iheight
wyrażać. Przyjmuje następujące wartości:- '
init
' Oceniaj wyrażenia tylko raz podczas inicjowania filtru lub podczas przetwarzania polecenia.
- '
frame
' Oceń wyrażenia dla każdej przychodzącej ramki.
Wartość domyślna to '
init
„.- '
interl
Ustaw tryb przeplotu. Przyjmuje następujące wartości:
- '
1
' Wymuś świadome skalowanie z przeplotem.
- '
0
' Nie stosować skalingu z przeplotem.
- '
-1
' Wybierz skalowanie świadome z przeplotem w zależności od tego, czy klatki źródłowe są oflagowane jako z przeplotem, czy nie.
Wartość domyślna to '
0
„.- '
flags
Ustaw flagi skalowania libswscale. Zobacz (ffmpeg-scaler) podręcznik ffmpeg-scaler, aby uzyskać pełną listę wartości. Jeśli nie określono wyraźnie, filtr stosuje domyślne flagi.
param0, param1
Ustaw parametry wejściowe libswscale dla algorytmów skalowania, które ich potrzebują. Zobacz (ffmpeg-scaler) podręcznik ffmpeg-scaler, aby uzyskać pełną dokumentację. Jeśli nie określono wyraźnie, filtr stosuje puste parametry.
size, s
Ustaw rozmiar wideo. Aby poznać składnię tej opcji, sprawdź sekcję (ffmpeg-utils)"Rozmiar wideo" w podręczniku ffmpeg-utils .
in_color_matrix
out_color_matrix
Ustaw typ przestrzeni kolorów wejścia/wyjścia YCbCr.
Pozwala to na nadpisanie wartości wykrytej automatycznie, a także umożliwia wymuszenie określonej wartości używanej dla wyjścia i enkodera.
Jeśli nie zostanie określony, typ przestrzeni kolorów zależy od formatu pikseli.
Możliwa wartość:
- '
auto
' Wybierz automatycznie.
- '
bt709
' Format zgodny z zaleceniem BT.709 Międzynarodowego Związku Telekomunikacyjnego (ITU).
- '
fcc
' Ustaw przestrzeń kolorów zgodnie z Kodeksem Przepisów Federalnych (CFR) United States Federal Communications Commission (FCC) Tytuł 47 (2003) 73.682 (a).
- '
bt601
' - '
bt470
' - '
smpte170m
' Ustaw przestrzeń kolorów zgodnie z:
- Zalecenie Sektora Radiokomunikacji ITU (ITU-R) BT.601
- Zalecenie ITU-R BT.470-6 (1998) Systemy B, B1 i G
- Stowarzyszenie Inżynierów Filmowych i Telewizyjnych (SMPTE) ST 170:2004
- '
smpte240m
' Ustaw przestrzeń kolorów zgodnie z SMPTE ST 240:1999.
- '
bt2020
' Ustaw przestrzeń kolorów zgodnie z systemem niestałej luminancji ITU-R BT.2020.
- '
in_range
out_range
Ustaw zakres próbkowania wejścia/wyjścia YCbCr.
Pozwala to na nadpisanie wartości wykrytej automatycznie, a także umożliwia wymuszenie określonej wartości używanej dla wyjścia i enkodera. Jeśli nie zostanie określony, zakres zależy od formatu pikseli. Możliwa wartość:
- '
auto/unknown
' Wybierz automatycznie.
- '
jpeg/full/pc
' Ustaw pełny zakres (0-255 w przypadku 8-bitowej lumy).
- '
mpeg/limited/tv
' Ustaw zakres „MPEG” (16-235 w przypadku 8-bitowej lumy).
- '
force_original_aspect_ratio
W razie potrzeby włącz zmniejszanie lub zwiększanie szerokości lub wysokości wyjściowego wideo, aby zachować oryginalne proporcje. Możliwa wartość:
- '
disable
' Skaluj wideo zgodnie z opisem i wyłącz tę funkcję.
- '
decrease
' W razie potrzeby wymiary wyjściowego wideo zostaną automatycznie zmniejszone.
- '
increase
' W razie potrzeby wymiary wyjściowego wideo zostaną automatycznie zwiększone.
Jednym z przydatnych przykładów tej opcji jest to, że gdy znasz maksymalną dozwoloną rozdzielczość konkretnego urządzenia, możesz użyć tego, aby ograniczyć wyjściowe wideo do tego, zachowując proporcje. Na przykład urządzenie A umożliwia odtwarzanie w rozdzielczości 1280x720, a Twój film ma rozdzielczość 1920x800. Użycie tej opcji (ustaw ją na zmniejszenie) i podanie 1280x720 w wierszu poleceń daje wynik 1280x533.
Pamiętaj, że jest to coś innego niż określenie -1 dla
w
lubh
, nadal musisz określić rozdzielczość wyjściową, aby ta opcja działała.- '
force_divisible_by
Zapewnia, że ​​oba wymiary wyjściowe, szerokość i wysokość, są podzielne przez podaną liczbę całkowitą, gdy są używane razem z
force_original_aspect_ratio
. Działa to podobnie do używania-n
ww
orazh
opcje.Ta opcja uwzględnia wartość ustawioną dla
force_original_aspect_ratio
, odpowiednio zwiększając lub zmniejszając rozdzielczość. Proporcje obrazu wideo mogą ulec niewielkim zmianom.Ta opcja może być przydatna, jeśli chcesz, aby wideo mieściło się w określonej rozdzielczości lub ją przekraczało za pomocą
force_original_aspect_ratio
ale mają również ograniczenia enkodera dotyczące podzielności szerokości lub wysokości.
Wartościw
orazh
opcje to wyrażenia zawierające następujące stałe:
in_w
in_h
Szerokość i wysokość wejściowa
iw
ih
Są takie same jak
in_w
iin_h
.out_w
out_h
Wyjściowa (skalowana) szerokość i wysokość
ow
oh
Są takie same jak
out_w
iout_h
a
Tak samo jak
iw
/ih
sar
wejściowy współczynnik proporcji próbki
dar
Format obrazu wejściowego. Obliczono od
(iw / ih) * sar
.hsub
vsub
wartości podpróbek wejścia poziomego i pionowego. Na przykład dla formatu piksela „yuv422p”
hsub
to 2 ivsub
1.ohsub
ovsub
wartości podpróbki poziomej i pionowej barwy wyjściowej. Na przykład dla formatu piksela „yuv422p”
hsub
to 2 ivsub
1.n
Numer (sekwencyjny) ramki wejściowej, zaczynając od 0. Dostępne tylko z
eval=frame
.t
Znacznik czasu prezentacji ramki wejściowej wyrażony jako liczba sekund. Dostępne tylko z
eval=frame
.pos
Pozycja (przesunięcie bajtów) ramki w strumieniu wejściowym lub NaN, jeśli ta informacja jest niedostępna i/lub bez znaczenia (na przykład w przypadku syntetycznego wideo). Dostępne tylko z
eval=frame
.
11.208.2 Examples
- Skaluj wideo wejściowe do rozmiaru 200x100
scale=w=200:h=100
Odpowiada to:
scale=200:100
lub:
scale=200x100
- Określ skrót rozmiaru dla rozmiaru wyjściowego:
scale=qcif
który można również zapisać jako:
scale=size=qcif
- Skaluj wejście do 2x:
scale=w=2*iw:h=2*ih
- Powyższe jest takie samo jak:
scale=2*in_w:2*in_h
- Skaluj wejście do 2x z wymuszonym skalowaniem z przeplotem:
scale=2*iw:2*ih:interl=1
- Skaluj dane wejściowe do połowy rozmiaru:
scale=w=iw/2:h=ih/2
- Zwiększ szerokość i ustaw wysokość na ten sam rozmiar:
scale=3/2*iw:ow
- Szukaj greckiej harmonii:
scale=iw:1/PHI*iw scale=ih*PHI:ih
- Zwiększ wysokość i ustaw szerokość na 3/2 wysokości:
scale=w=3/2*oh:h=3/5*ih
- Zwiększ rozmiar, czyniąc go wielokrotnością wartości podpróbki chroma:
scale="trunc(3/2*iw/hsub)*hsub:trunc(3/2*ih/vsub)*vsub"
- Zwiększ szerokość do maksymalnie 500 pikseli, zachowując ten sam współczynnik proporcji, co dane wejściowe:
scale=w='min(500\, iw*3/2):h=-1'
- Ustaw piksele jako kwadratowe, łącząc scale i setsar:
scale='trunc(ih*dar):ih',setsar=1/1
- Ustaw piksele kwadratowe, łącząc scale i setsar, upewniając się, że wynikowa rozdzielczość jest równa (wymagana przez niektóre kodeki):
scale='trunc(ih*dar/2)*2:trunc(ih/2)*2',setsar=1/1
11.208.3 Commands
Ten filtr obsługuje następujące polecenia:
width, w
height, h
Ustaw wyrażenie wyjściowego wymiaru wideo. Polecenie akceptuje tę samą składnię odpowiedniej opcji.
Jeśli podane wyrażenie jest niepoprawne, jest zachowywane z bieżącą wartością.
11.209 scale_cuda
Skaluj (zmieniaj rozmiar) i konwertuj (format w pikselach) wejściowe wideo za pomocą akcelerowanych jąder CUDA. Ustawienie szerokości i wysokości wyjścia działa tak samo, jak dla filtra skali .
Filtr akceptuje następujące opcje:
w
h
Ustaw wyrażenie wyjściowego wymiaru wideo. Wartość domyślna to wymiar wejściowy.
Pozwala na te same wyrażenia, co filtr skali .
interp_algo
Ustawia algorytm używany do skalowania:
nearest
Najbliższy sąsiad
Używane domyślnie, jeśli parametry wejściowe pasują do żądanego wyjścia.
bilinear
Dwuliniowe
bicubic
Dwusześcienny
To jest ustawienie domyślne.
lanczos
Lanczos
format
Steruje wyjściowym formatem pikseli. Domyślnie lub jeśli nie określono żadnego, używany jest format pikseli wejściowych.
Filtr nie obsługuje konwersji między formatami pikseli YUV i RGB.
passthrough
Jeśli jest ustawiony na 0, przetwarzana jest każda ramka, nawet jeśli konwersja nie jest konieczna. Ten tryb może być przydatny do używania filtra jako bufora dla odbiorcy ramek w dół strumienia, który wyczerpuje ograniczoną pulę ramek dekodera.
Jeśli jest ustawiony na 1, ramki są przekazywane bez zmian, jeśli pasują do żądanych parametrów wyjściowych. To jest zachowanie domyślne.
param
Parametr specyficzny dla algorytmu.
Wpływa na krzywe algorytmu dwusześciennego.
force_original_aspect_ratio
force_divisible_by
Działaj tak samo, jak identyczne opcje filtra skali .
11.209.1 Examples
- Skaluj wejście do 720p, zachowując proporcje i zapewniając, że wyjście to yuv420p.
scale_cuda=-2:720:format=yuv420p
- Skaluj do 4K przy użyciu algorytmu najbliższego sąsiada.
scale_cuda=4096:2160:interp_algo=nearest
- Nie rób żadnej konwersji ani skalowania, ale skopiuj wszystkie ramki wejściowe do nowo przydzielonych. Może to być przydatne do radzenia sobie z łańcuchem filtrów i kodowania, który w przeciwnym razie wyczerpuje pulę ramek dekoderów.
scale_cuda=passthrough=0
11.210 scale_npp
Użyj narzędzi NVIDIA Performance Primitives (libnpp), aby wykonać skalowanie i/lub konwersję formatu pikseli w klatkach wideo CUDA. Ustawienie szerokości i wysokości wyjścia działa tak samo jak w przypadku scale
filtra.
Akceptowane są następujące opcje dodatkowe:
format
Format pikseli wyjściowych ramek CUDA. Jeśli jest ustawiony na ciąg "taki sam" (domyślnie), format wejściowy zostanie zachowany. Pamiętaj, że automatyczna negocjacja formatu i konwersja nie jest jeszcze obsługiwana dla ramek sprzętowych
interp_algo
Algorytm interpolacji używany do zmiany rozmiaru. Jeden z następujących:
nn
Najbliższy sąsiad.
linear
cubic
cubic2p_bspline
sześcienny 2-parametrowy (B=1, C=0)
cubic2p_catmullrom
sześcienny 2-parametrowy (B=0, C=1/2)
cubic2p_b05c03
sześcienny 2-parametrowy (B=1/2, C=3/10)
super
Superpróbkowanie
lanczos
force_original_aspect_ratio
W razie potrzeby włącz zmniejszanie lub zwiększanie szerokości lub wysokości wyjściowego wideo, aby zachować oryginalne proporcje. Możliwa wartość:
- '
disable
' Skaluj wideo zgodnie z opisem i wyłącz tę funkcję.
- '
decrease
' W razie potrzeby wymiary wyjściowego wideo zostaną automatycznie zmniejszone.
- '
increase
' W razie potrzeby wymiary wyjściowego wideo zostaną automatycznie zwiększone.
Jednym z przydatnych przykładów tej opcji jest to, że gdy znasz maksymalną dozwoloną rozdzielczość konkretnego urządzenia, możesz użyć tego, aby ograniczyć wyjściowe wideo do tego, zachowując proporcje. Na przykład urządzenie A umożliwia odtwarzanie w rozdzielczości 1280x720, a Twój film ma rozdzielczość 1920x800. Użycie tej opcji (ustaw ją na zmniejszenie) i podanie 1280x720 w wierszu poleceń daje wynik 1280x533.
Pamiętaj, że jest to coś innego niż określenie -1 dla
w
lubh
, nadal musisz określić rozdzielczość wyjściową, aby ta opcja działała.- '
force_divisible_by
Zapewnia, że ​​oba wymiary wyjściowe, szerokość i wysokość, są podzielne przez podaną liczbę całkowitą, gdy są używane razem z
force_original_aspect_ratio
. Działa to podobnie do używania-n
ww
orazh
opcje.Ta opcja uwzględnia wartość ustawioną dla
force_original_aspect_ratio
, odpowiednio zwiększając lub zmniejszając rozdzielczość. Proporcje obrazu wideo mogą ulec niewielkim zmianom.Ta opcja może być przydatna, jeśli chcesz, aby wideo mieściło się w określonej rozdzielczości lub ją przekraczało za pomocą
force_original_aspect_ratio
ale mają również ograniczenia enkodera dotyczące podzielności szerokości lub wysokości.eval
Określ, kiedy oceniać
width
iheight
wyrażać. Przyjmuje następujące wartości:- '
init
' Oceniaj wyrażenia tylko raz podczas inicjowania filtru lub podczas przetwarzania polecenia.
- '
frame
' Oceń wyrażenia dla każdej przychodzącej ramki.
- '
Wartościw
orazh
opcje to wyrażenia zawierające następujące stałe:
in_w
in_h
Szerokość i wysokość wejściowa
iw
ih
Są takie same jak
in_w
iin_h
.out_w
out_h
Wyjściowa (skalowana) szerokość i wysokość
ow
oh
Są takie same jak
out_w
iout_h
a
Tak samo jak
iw
/ih
sar
wejściowy współczynnik proporcji próbki
dar
Format obrazu wejściowego. Obliczono od
(iw / ih) * sar
.n
Numer (sekwencyjny) ramki wejściowej, zaczynając od 0. Dostępne tylko z
eval=frame
.t
Znacznik czasu prezentacji ramki wejściowej wyrażony jako liczba sekund. Dostępne tylko z
eval=frame
.pos
Pozycja (przesunięcie bajtów) ramki w strumieniu wejściowym lub NaN, jeśli ta informacja jest niedostępna i/lub bez znaczenia (na przykład w przypadku syntetycznego wideo). Dostępne tylko z
eval=frame
.
11.211 scale2ref
Skaluj (zmień rozmiar) wejściowego wideo na podstawie referencyjnego wideo.
Zobacz filtr skali dla dostępnych opcji, scale2ref obsługuje to samo, ale jako podstawę używa referencyjnego wideo zamiast głównego wejścia. scale2ref obsługuje również następujące dodatkowe stałe dlaw
oraz
h
opcje:
main_w
main_h
Szerokość i wysokość głównego wejścia wideo
main_a
Tak samo jak
main_w
/main_h
main_sar
Przykładowe proporcje głównego wejścia wideo
main_dar, mdar
Proporcje obrazu głównego wejścia wideo. Obliczono od
(main_w / main_h) * main_sar
.main_hsub
main_vsub
Wartości podpróbki chrominancji w poziomie i w pionie głównego wejścia wideo. Na przykład dla formatu piksela „yuv422p”
hsub
to 2 ivsub
1.main_n
Numer (sekwencyjny) głównej ramki wejściowej, zaczynając od 0. Dostępne tylko z
eval=frame
.main_t
Znacznik czasu prezentacji głównej ramki wejściowej wyrażony jako liczba sekund. Dostępne tylko z
eval=frame
.main_pos
Pozycja (przesunięcie bajtów) ramki w głównym strumieniu wejściowym lub NaN, jeśli ta informacja jest niedostępna i/lub nie ma znaczenia (na przykład w przypadku syntetycznego wideo). Dostępne tylko z
eval=frame
.
11.211.1 Examples
- Skaluj strumień napisów (b), aby dopasować rozmiar głównego filmu (a) przed nałożeniem
'scale2ref[b][a];[a][b]overlay'
- Skaluj logo do 1/10 wysokości filmu, zachowując proporcje wyświetlania.
[logo-in][video-in]scale2ref=w=oh*mdar:h=ih/10[logo-out][video-out]
11.211.2 Commands
Ten filtr obsługuje następujące polecenia:
width, w
height, h
Ustaw wyrażenie wyjściowego wymiaru wideo. Polecenie akceptuje tę samą składnię odpowiedniej opcji.
Jeśli podane wyrażenie jest niepoprawne, jest zachowywane z bieżącą wartością.
11.212 scale2ref_npp
Użyj narzędzi NVIDIA Performance Primitives (libnpp), aby skalować (zmieniać rozmiar) wejściowego wideo na podstawie referencyjnego wideo.
Zobacz filtr scale_npp dla dostępnych opcji, scale2ref_npp obsługuje to samo, ale używa referencyjnego wideo zamiast głównego wejścia jako podstawy. scale2ref_npp obsługuje również następujące dodatkowe stałe dlaw
oraz
h
opcje:
main_w
main_h
Szerokość i wysokość głównego wejścia wideo
main_a
Tak samo jak
main_w
/main_h
main_sar
Przykładowe proporcje głównego wejścia wideo
main_dar, mdar
Proporcje obrazu głównego wejścia wideo. Obliczono od
(main_w / main_h) * main_sar
.main_n
Numer (sekwencyjny) głównej ramki wejściowej, zaczynając od 0. Dostępne tylko z
eval=frame
.main_t
Znacznik czasu prezentacji głównej ramki wejściowej wyrażony jako liczba sekund. Dostępne tylko z
eval=frame
.main_pos
Pozycja (przesunięcie bajtów) ramki w głównym strumieniu wejściowym lub NaN, jeśli ta informacja jest niedostępna i/lub nie ma znaczenia (na przykład w przypadku syntetycznego wideo). Dostępne tylko z
eval=frame
.
11.212.1 Examples
- Skaluj strumień napisów (b), aby dopasować rozmiar głównego filmu (a) przed nałożeniem
'scale2ref_npp[b][a];[a][b]overlay_cuda'
- Skaluj logo do 1/10 wysokości filmu, zachowując proporcje wyświetlania.
[logo-in][video-in]scale2ref_npp=w=oh*mdar:h=ih/10[logo-out][video-out]
11.213 scharr
Zastosuj operator scharr do wejściowego strumienia wideo.
Filtr akceptuje następującą opcję:
planes
Ustaw, które płaszczyzny będą przetwarzane, nieprzetworzone płaszczyzny zostaną skopiowane. Domyślna wartość 0xf, wszystkie płaszczyzny będą przetwarzane.
scale
Ustaw wartość, która zostanie pomnożona przez przefiltrowany wynik.
delta
Ustaw wartość, która zostanie dodana do przefiltrowanego wyniku.
11.213.1 Commands
Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .
11.214 scroll
Przewijanie wejściowego wideo w poziomie i/lub w pionie ze stałą prędkością.
Filtr akceptuje następujące opcje:
horizontal, h
Ustaw prędkość przewijania w poziomie. Wartość domyślna to 0. Dozwolony zakres to od -1 do 1. Wartości ujemne zmieniają kierunek przewijania.
vertical, v
Ustaw prędkość przewijania w pionie. Wartość domyślna to 0. Dozwolony zakres to od -1 do 1. Wartości ujemne zmieniają kierunek przewijania.
hpos
Ustaw początkową pozycję przewijania w poziomie. Wartość domyślna to 0. Dozwolony zakres to od 0 do 1.
vpos
Ustaw początkową pozycję przewijania w pionie. Wartość domyślna to 0. Dozwolony zakres to od 0 do 1.
11.214.1 Commands
Ten filtr obsługuje następujące polecenia :
horizontal, h
Ustaw prędkość przewijania w poziomie.
vertical, v
Ustaw prędkość przewijania w pionie.
11.215 scdet
Wykryj zmianę sceny wideo.
Ten filtr ustawia metadane klatki z mafd między klatkami, wynikiem sceny i przekazuje klatkę do następnego filtra, aby mogli użyć tych metadanych do wykrycia zmiany sceny lub innych.
Ponadto ten filtr rejestruje wiadomość i ustawia metadane ramki, gdy wykryje zmianę sceny przezthreshold
.
lavfi.scd.mafd
klucze metadanych są ustawiane za pomocą mafd dla każdej klatki.
lavfi.scd.score
klucze metadanych są ustawiane z wynikiem zmiany sceny dla każdej klatki w celu wykrycia zmiany sceny.
lavfi.scd.time
klucze metadanych są ustawione z bieżącym filtrowanym czasem klatki, który wykrywa zmianę sceny za pomocąthreshold
.
Filtr akceptuje następujące opcje:
threshold, t
Ustaw próg wykrywania zmiany sceny jako procent maksymalnej zmiany. Dobre wartości mieszczą się w
[8.0, 14.0]
zakresie. Zakres dlathreshold
jest[0., 100.]
.Wartość domyślna to
10.
.sc_pass, s
Ustaw flagę, aby przekazywać klatki zmiany sceny do następnego filtra. Wartość domyślna to
0
Możesz włączyć tę opcję, jeśli chcesz uzyskać zrzut tylko klatek zmiany sceny.
11.216 selectivecolor
Dostosuj cyjan, magenta, żółty i czarny (CMYK) do określonych zakresów kolorów (takich jak "czerwony", "żółty", "zielony", "cyjan", ...). Zakres regulacji jest określony przez „czystość” koloru (czyli stopień jego nasycenia).
Ten filtr jest podobny do narzędzia Adobe Photoshop Selective Color.
Filtr akceptuje następujące opcje:
correction_method
Wybierz metodę korekcji kolorów.
Dostępne wartości to:
- '
absolute
' Określone korekty są stosowane „tak jak jest” (dodawane/odejmowane od oryginalnej wartości składnika piksela).
- '
relative
' Określone korekty odnoszą się do oryginalnej wartości składnika.
Wartość domyślna to
absolute
.- '
reds
Dopasowania dla czerwonych pikseli (piksele, w których czerwony składnik jest maksymalny)
yellows
Dopasowania dla żółtych pikseli (piksele, w których składnik niebieski jest minimum)
greens
Dopasowania dla zielonych pikseli (piksele, w których zielony składnik jest maksymalny)
cyans
Dopasowania dla pikseli niebieskozielonych (piksele, w których składowa czerwona jest minimalna)
blues
Dopasowania dla niebieskich pikseli (piksele, w których składnik niebieski jest maksymalny)
magentas
Dopasowania dla pikseli magenta (piksele, w których zielony składnik jest minimalny)
whites
Dopasowania dla białych pikseli (piksele, w których wszystkie składniki są większe niż 128)
neutrals
Korekty dla wszystkich pikseli z wyjątkiem czystej czerni i czystej bieli
blacks
Korekty czarnych pikseli (piksele, w których wszystkie składniki są mniejsze niż 128)
psfile
Określ plik kolorów selektywnych programu Photoshop (
.asv
), z którego mają zostać zaimportowane ustawienia.
Wszystkie ustawienia regulacji (reds
,yellows
, ...) zaakceptuj do 4 wartości regulacji zmiennoprzecinkowych oddzielonych spacjami w zakresie [-1,1], odpowiednio, aby dostosować ilość koloru cyjan, magenta, żółtego i czarnego dla pikseli tego zakresu.
11.216.1 Examples
- Zwiększ cyjan o 50% i zmniejsz żółty o 33% na wszystkich zielonych obszarach i zwiększ magenta o 27% na niebieskich obszarach:
selectivecolor=greens=.5 0 -.33 0:blues=0 .27
- Użyj ustawienia kolorów selektywnych programu Photoshop:
selectivecolor=psfile=MySelectiveColorPresets/Misty.asv
11.217 separatefields
Pobiera sygnał wejściowy wideo oparty na separatefields
klatkach i dzieli każdą klatkę na jej pola składowe, tworząc nowy klip o połowie wysokości z dwukrotnie większą liczbą klatek na sekundę i dwukrotnie większą liczbą klatek.
Ten filtr wykorzystuje informacje o dominacji pól w ramce, aby zdecydować, które z każdej pary pól umieścić jako pierwsze w danych wyjściowych. Jeśli się nie powiedzie, użyj filtra setfield przed separatefields
filtrem.
11.218 setdar, setsar
Filtr setdar
ustawia współczynnik proporcji wyświetlania dla wyjściowego wideo filtra.
Odbywa się to poprzez zmianę określonego współczynnika proporcji próbki (aka piksela), zgodnie z następującym równaniem:
DAR
= HORIZONTAL_RESOLUTION
/ VERTICAL_RESOLUTION
* SAR
Pamiętaj, że setdar
filtr nie zmienia wymiarów klatki wideo w pikselach. Również proporcje wyświetlania ustawione przez ten filtr mogą być zmieniane przez późniejsze filtry w łańcuchu filtrów, np. w przypadku skalowania lub zastosowania innego filtra „setdar” lub „setsar”.
Filtr setsar
ustawia współczynnik proporcji próbki (aka Pixel) dla wyjściowego wideo filtra.
Zwróć uwagę, że w wyniku zastosowania tego filtru proporcje obrazu wyjściowego zmienią się zgodnie z powyższym równaniem.
Pamiętaj, że proporcje próbki ustawione przez setsar
filtr mogą zostać zmienione przez późniejsze filtry w łańcuchu filtrów, np. jeśli zostanie zastosowany inny filtr „setsar” lub „setdar”.
Przyjmuje następujące parametry:
r, ratio, dar (
setdar
only), sar (setsar
only)Ustaw proporcje używane przez filtr.
Parametr może być ciągiem liczb zmiennoprzecinkowych, wyrażeniem lub ciągiem w postaci
num
:den
, gdzienum
iden
są licznikiem i mianownikiem współczynnika proporcji. Jeżeli parametr nie jest określony, przyjmowana jest wartość „0”. W przypadku użycia postaci "num
:den
":
znak powinien zostać zmieniony.max
Ustaw maksymalną wartość całkowitą, która ma być używana do wyrażania licznika i mianownika podczas zmniejszania wyrażonego współczynnika proporcji do liczby wymiernej. Wartość domyślna to
100
.
Parametr sar
jest wyrażeniem zawierającym następujące stałe:
E, PI, PHI
Są to przybliżone wartości stałych matematycznych e (liczba Eulera), pi (greckie pi) i phi (złoty podział).
w, h
Wejściowa szerokość i wysokość.
a
Są takie same jak
w
/h
.sar
Wejściowy współczynnik proporcji próbki.
dar
Format obrazu wejściowego. Jest taki sam jak (
w
/h
) *sar
.hsub, vsub
Poziome i pionowe wartości podpróbki chrominancji. Na przykład dla formatu piksela „yuv422p”
hsub
to 2 ivsub
1.
11.218.1 Examples
- Aby zmienić proporcje ekranu na 16:9, określ jedną z następujących opcji:
setdar=dar=1.77777 setdar=dar=16/9
- Aby zmienić proporcje próbki na 10:11, określ:
setsar=sar=10/11
- Aby ustawić współczynnik proporcji wyświetlania 16:9 i określić maksymalną wartość całkowitą 1000 w redukcji współczynnika proporcji, użyj polecenia:
setdar=ratio=16/9:max=1000
11.219 setfield
Pole siłowe dla wyjściowej klatki wideo.
Filtr setfield
oznacza pole typu przeplotu dla klatek wyjściowych. Nie zmienia ramki wejściowej, a jedynie ustawia odpowiednią właściwość, która wpływa na sposób traktowania ramki przez następujące filtry (np . fieldorder
lub yadif
).
Filtr akceptuje następujące opcje:
mode
Dostępne wartości to:
- '
auto
' Zachowaj tę samą właściwość pola.
- '
bff
' Oznacz ramkę jako najpierw dolne pole.
- '
tff
' Oznacz ramkę jako pierwszą w górnym polu.
- '
prog
' Oznacz ramkę jako progresywną.
- '
11.220 setparams
Wymuś parametr ramki dla wyjściowej ramki wideo.
Filtr setparams
oznacza przeplot i zakres kolorów dla klatek wyjściowych. Nie zmienia ramki wejściowej, a jedynie ustawia odpowiednią właściwość, która wpływa na sposób traktowania ramki przez filtry/enkodery.
field_mode
Dostępne wartości to:
- '
auto
' Zachowaj tę samą właściwość pola (domyślnie).
- '
bff
' Oznacz ramkę jako najpierw dolne pole.
- '
tff
' Oznacz ramkę jako pierwszą w górnym polu.
- '
prog
' Oznacz ramkę jako progresywną.
- '
range
Dostępne wartości to:
- '
auto
' Zachowaj tę samą właściwość zakresu kolorów (domyślnie).
- '
unspecified, unknown
' Oznacz ramkę jako nieokreślony zakres kolorów.
- '
limited, tv, mpeg
' Oznacz ramkę jako ograniczony zasięg.
- '
full, pc, jpeg
' Oznacz klatkę jako pełny zakres.
- '
color_primaries
Ustaw kolory podstawowe. Dostępne wartości to:
- '
auto
' Zachowaj tę samą właściwość kolorów podstawowych (domyślnie).
- '
bt709
' - '
unknown
' - '
bt470m
' - '
bt470bg
' - '
smpte170m
' - '
smpte240m
' - '
film
' - '
bt2020
' - '
smpte428
' - '
smpte431
' - '
smpte432
' - '
jedec-p22
'
- '
color_trc
Ustaw transfer kolorów. Dostępne wartości to:
- '
auto
' Zachowaj tę samą właściwość trc koloru (domyślnie).
- '
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
Ustaw przestrzeń kolorów. Dostępne wartości to:
- '
auto
' Zachowaj tę samą właściwość przestrzeni kolorów (domyślnie).
- '
gbr
' - '
bt709
' - '
unknown
' - '
fcc
' - '
bt470bg
' - '
smpte170m
' - '
smpte240m
' - '
ycgco
' - '
bt2020nc
' - '
bt2020c
' - '
smpte2085
' - '
chroma-derived-nc
' - '
chroma-derived-c
' - '
ictcp
'
- '
11.221 sharpen_npp
Użyj narzędzi NVIDIA Performance Primitives (libnpp) do wyostrzania obrazu z kontrolą granic.
Akceptowane są następujące opcje dodatkowe:
border_type
Rodzaj próbkowania, jaki ma być użyty do obramowania ramek reklamowych. Jeden z następujących:
replicate
Replikuj wartości pikseli.
11.222 shear
Zastosuj transformację ścinającą do wejściowego wideo.
Ten filtr obsługuje następujące opcje:
shx
Współczynnik ścinania w kierunku X. Wartość domyślna to 0. Dozwolony zakres to od -2 do 2.
shy
Współczynnik ścinania w kierunku Y. Wartość domyślna to 0. Dozwolony zakres to od -2 do 2.
fillcolor, c
Ustaw kolor używany do wypełnienia obszaru wyjściowego, którego nie obejmuje przekształcone wideo. Aby uzyskać ogólną składnię tej opcji, sprawdź sekcję (ffmpeg-utils)"Color" w podręczniku ffmpeg-utils . W przypadku wybrania specjalnej wartości „none” tło nie jest drukowane (przydatne na przykład, jeśli tło nigdy nie jest pokazywane).
Wartość domyślna to „czarny”.
interp
Ustaw typ interpolacji. Może być
bilinear
lubnearest
. Wartość domyślna tobilinear
.
11.222.1 Commands
Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .
11.223 showinfo
Pokaż wiersz zawierający różne informacje dla każdej wejściowej klatki wideo. Wejściowy sygnał wideo nie jest modyfikowany.
Ten filtr obsługuje następujące opcje:
checksum
Oblicz sumy kontrolne każdej płaszczyzny. Domyślnie włączone.
Pokazany wiersz zawiera sekwencję par klucz/wartość postaci
key
: value
.
Na wyjściu pokazane są następujące wartości:
n
Numer (sekwencyjny) ramki wejściowej, zaczynając od 0.
pts
Znacznik czasu prezentacji ramki wejściowej wyrażony jako liczba jednostek podstawy czasu. Podstawa czasu zależy od wkładki wejściowej filtra.
pts_time
Znacznik czasu prezentacji ramki wejściowej wyrażony jako liczba sekund.
pos
Pozycja klatki w strumieniu wejściowym lub -1, jeśli ta informacja jest niedostępna i/lub bez znaczenia (na przykład w przypadku syntetycznego wideo).
fmt
Nazwa formatu pikseli.
sar
Przykładowe proporcje klatki wejściowej wyrażone w postaci
num
/den
.s
Rozmiar ramki wejściowej. Aby poznać składnię tej opcji, sprawdź sekcję (ffmpeg-utils)"Rozmiar wideo" w podręczniku ffmpeg-utils .
i
Rodzaj trybu z przeplotem („P” dla „progresywnego”, „T” dla najpierw górnego pola, „B” dla najpierw dolnego pola).
iskey
To jest 1, jeśli ramka jest klatką kluczową, 0 w przeciwnym razie.
type
Typ obrazu ramki wejściowej („I” dla ramki I, „P” dla ramki P, „B” dla ramki B lub „?” dla nieznanego typu). Zapoznaj się również z dokumentacją
AVPictureType
wyliczenia iav_get_picture_type_char
funkcji zdefiniowanej wlibavutil/avutil.h
.checksum
Suma kontrolna Adler-32 (wydrukowana szesnastkowo) wszystkich płaszczyzn ramki wejściowej.
plane_checksum
Suma kontrolna Adlera-32 (wydrukowana w systemie szesnastkowym) każdej płaszczyzny ramki wejściowej, wyrażona w postaci „[ ]”.
c0
c1
c2
c3
mean
Średnia wartość pikseli w każdej płaszczyźnie klatki wejściowej, wyrażona w postaci „[ ]”.
mean0
mean1
mean2
mean3
stdev
Odchylenie standardowe wartości pikseli w każdej płaszczyźnie klatki wejściowej, wyrażone w postaci „[ ]”.
stdev0
stdev1
stdev2
stdev3
11.224 showpalette
Wyświetla paletę 256 kolorów każdej klatki. Ten filtr dotyczy tylko
pal8
ramek w formacie pikselowym.
Akceptuje następującą opcję:
s
Ustaw rozmiar pola używanego do reprezentowania jednego wpisu koloru palety. Wartość domyślna to
30
(dla30x30
pola z pikselami).
11.225 shuffleframes
Zmień kolejność i/lub duplikuj i/lub upuszczaj klatki wideo.
Przyjmuje następujące parametry:
mapping
Ustaw indeksy docelowe ramek wejściowych. To jest spacja lub „|” oddzielona lista indeksów, która odwzorowuje ramki wejściowe na ramki wyjściowe. Liczba indeksów określa również maksymalną wartość, jaką może mieć każdy indeks. Indeks '-1' ma specjalne znaczenie i oznacza opuszczenie klatki.
Pierwsza ramka ma indeks 0. Domyślnie dane wejściowe pozostają niezmienione.
11.225.1 Examples
- Zamień drugą i trzecią klatkę co trzy klatki danych wejściowych:
ffmpeg -i INPUT -vf "shuffleframes=0 2 1" OUTPUT
- Zamień dziesiątą i pierwszą klatkę na każde dziesięć ramek danych wejściowych:
ffmpeg -i INPUT -vf "shuffleframes=9 1 2 3 4 5 6 7 8 0" OUTPUT
11.226 shufflepixels
Zmień kolejność pikseli w klatkach wideo.
Ten filtr akceptuje następujące opcje:
direction, d
Ustaw kierunek odtwarzania losowego. Może być w kierunku do przodu lub do tyłu. Domyślny kierunek to do przodu.
mode, m
Ustaw tryb losowy. Może być w trybie poziomym, pionowym lub blokowym.
width, w
height, h
Ustaw losowo blok_rozmiar. W trybie tasowania poziomego używana jest tylko część szerokości rozmiaru, aw przypadku trybu tasowania pionowego wykorzystywana jest tylko część rozmiaru rozmiaru.
seed, s
Ustaw losowe ziarno używane z tasowaniem pikseli. Głównie przydatne do ustawienia, aby móc odwrócić proces filtrowania, aby uzyskać oryginalne dane wejściowe. Na przykład, aby odwrócić tasowanie do przodu, musisz użyć tych samych parametrów i dokładnie tego samego ziarna i ustawić kierunek na odwrotny.
11.227 shuffleplanes
Zmień kolejność i/lub zduplikuj samoloty wideo.
Przyjmuje następujące parametry:
map0
Indeks płaszczyzny wejściowej, która ma być używana jako pierwsza płaszczyzna wyjściowa.
map1
Indeks płaszczyzny wejściowej, która ma być używana jako druga płaszczyzna wyjściowa.
map2
Indeks płaszczyzny wejściowej, która ma być używana jako trzecia płaszczyzna wyjściowa.
map3
Indeks płaszczyzny wejściowej, która ma być używana jako czwarta płaszczyzna wyjściowa.
Pierwsza płaszczyzna ma indeks 0. Domyślnie dane wejściowe pozostają niezmienione.
11.227.1 Examples
- Zamień drugą i trzecią płaszczyznę wejścia:
ffmpeg -i INPUT -vf shuffleplanes=0:2:1:3 OUTPUT
11.228 signalstats
Oceń różne wskaźniki wizualne, które pomagają w określeniu problemów związanych z cyfryzacją analogowych nośników wideo.
Domyślnie filtr rejestruje te wartości metadanych:
YMIN
Wyświetla minimalną wartość Y zawartą w ramce wejściowej. Wyrażony w zakresie [0-255].
YLOW
Wyświetl wartość Y na 10% percentylu w ramce wejściowej. Wyrażony w zakresie [0-255].
YAVG
Wyświetl średnią wartość Y w ramce wejściowej. Wyrażony w zakresie [0-255].
YHIGH
Wyświetl wartość Y na poziomie 90% w ramce wejściowej. Wyrażony w zakresie [0-255].
YMAX
Wyświetla maksymalną wartość Y zawartą w ramce wejściowej. Wyrażony w zakresie [0-255].
UMIN
Wyświetla minimalną wartość U zawartą w ramce wejściowej. Wyrażony w zakresie [0-255].
ULOW
Wyświetl wartość U na 10% percentylu w ramce wejściowej. Wyrażony w zakresie [0-255].
UAVG
Wyświetl średnią wartość U w ramce wejściowej. Wyrażony w zakresie [0-255].
UHIGH
Wyświetl wartość U na poziomie 90% w ramce wejściowej. Wyrażony w zakresie [0-255].
UMAX
Wyświetla maksymalną wartość U zawartą w ramce wejściowej. Wyrażony w zakresie [0-255].
VMIN
Wyświetla minimalną wartość V zawartą w ramce wejściowej. Wyrażony w zakresie [0-255].
VLOW
Wyświetl wartość V na 10% percentylu w ramce wejściowej. Wyrażony w zakresie [0-255].
VAVG
Wyświetl średnią wartość V w ramce wejściowej. Wyrażony w zakresie [0-255].
VHIGH
Wyświetl wartość V na poziomie 90% w ramce wejściowej. Wyrażony w zakresie [0-255].
VMAX
Wyświetla maksymalną wartość V zawartą w ramce wejściowej. Wyrażony w zakresie [0-255].
SATMIN
Wyświetla minimalną wartość nasycenia zawartą w ramce wejściowej. Wyrażony w zakresie [0-~181,02].
SATLOW
Wyświetl wartość nasycenia na poziomie 10% w ramce wejściowej. Wyrażony w zakresie [0-~181,02].
SATAVG
Wyświetla średnią wartość nasycenia w ramce wejściowej. Wyrażony w zakresie [0-~181,02].
SATHIGH
Wyświetl wartość nasycenia na poziomie 90% w ramce wejściowej. Wyrażony w zakresie [0-~181,02].
SATMAX
Wyświetla maksymalną wartość nasycenia zawartą w ramce wejściowej. Wyrażony w zakresie [0-~181,02].
HUEMED
Wyświetl medianę barwy w ramce wejściowej. Wyrażony w zakresie [0-360].
HUEAVG
Wyświetl średnią wartość odcienia w ramce wejściowej. Wyrażony w zakresie [0-360].
YDIF
Wyświetla średnią różnicę wartości próbki między wszystkimi wartościami płaszczyzny Y w bieżącej ramce i odpowiadającymi wartościami poprzedniej ramki wejściowej. Wyrażony w zakresie [0-255].
UDIF
Wyświetla średnią różnicę wartości próbki między wszystkimi wartościami płaszczyzny U w bieżącej ramce i odpowiadającymi wartościami poprzedniej ramki wejściowej. Wyrażony w zakresie [0-255].
VDIF
Wyświetla średnią różnicę wartości próbki między wszystkimi wartościami płaszczyzny V w bieżącej ramce i odpowiadającymi wartościami poprzedniej ramki wejściowej. Wyrażony w zakresie [0-255].
YBITDEPTH
Wyświetla głębię bitową płaszczyzny Y w bieżącej ramce. Wyrażony w przedziale [0-16].
UBITDEPTH
Wyświetla głębię bitową płaszczyzny U w bieżącej ramce. Wyrażony w przedziale [0-16].
VBITDEPTH
Wyświetla głębię bitową płaszczyzny V w bieżącej ramce. Wyrażony w przedziale [0-16].
Filtr akceptuje następujące opcje:
stat
out
-
stat
określić dodatkową formę analizy obrazu.out
wyjście wideo z podświetlonym określonym typem piksela.Obie opcje akceptują następujące wartości:
- '
tout
' Zidentyfikuj
temporal outliers
piksele. Atemporal outlier
to piksel w przeciwieństwie do sąsiednich pikseli tego samego pola. Przykłady chwilowych wartości odstających obejmują wyniki przerw w odtwarzaniu wideo, zatkania głowy lub problemów ze śledzeniem taśmy.- '
vrep
' Zidentyfikuj
vertical line repetition
. Pionowe powtórzenie linii obejmuje podobne rzędy pikseli w ramce. W urodzonym cyfrowym wideo powtarzanie linii pionowej jest powszechne, ale ten wzór jest rzadki w wideo cyfrowym ze źródła analogowego. Gdy występuje w wideo, które wynika z cyfryzacji źródła analogowego, może wskazywać na ukrycie przed kompensatorem zaniku.- '
brng
' Identyfikuj piksele, które wykraczają poza legalny zasięg transmisji.
- '
color, c
Ustaw kolor podświetlenia dla
out
opcja. Domyślny kolor to żółty.
11.228.1 Examples
- Dane wyjściowe różnych metryk wideo:
ffprobe -f lavfi movie=example.mov,signalstats="stat=tout+vrep+brng" -show_frames
- Wyprowadź określone dane dotyczące minimalnych i maksymalnych wartości płaszczyzny Y na klatkę:
ffprobe -f lavfi movie=example.mov,signalstats -show_entries frame_tags=lavfi.signalstats.YMAX,lavfi.signalstats.YMIN
- Odtwarzaj wideo, podświetlając na czerwono piksele znajdujące się poza zasięgiem transmisji.
ffplay example.mov -vf signalstats="out=brng:color=red"
- Odtwórz wideo z metadanymi statystyk sygnału narysowanymi na ramce.
ffplay example.mov -vf signalstats=stat=brng+vrep+tout,drawtext=fontfile=FreeSerif.ttf:textfile=signalstat_drawtext.txt
Zawartość pliku signalstat_drawtext.txt użytego w poleceniu to:
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.229 signature
Oblicza sygnaturę wideo MPEG-7. Filtr może obsłużyć więcej niż jedno wejście. W takim przypadku dopasowanie między wejściami można dodatkowo obliczyć. Filtr zawsze przechodzi przez pierwsze wejście. Sygnatura każdego strumienia może zostać zapisana w pliku.
Akceptuje następujące opcje:
detectmode
Włącz lub wyłącz proces dopasowywania.
Dostępne wartości to:
- '
off
' Wyłącz obliczanie dopasowania (domyślnie).
- '
full
' Oblicz dopasowanie dla całego filmu i wyślij, czy pasuje cały film, czy tylko części.
- '
fast
' Obliczaj tylko do momentu znalezienia dopasowania lub zakończenia filmu. W niektórych przypadkach powinno być szybsze.
- '
nb_inputs
Ustaw liczbę wejść. Wartość opcji musi być nieujemną liczbą całkowitą. Wartość domyślna to 1.
filename
Ustaw ścieżkę, do której zapisywane są dane wyjściowe. Jeśli istnieje więcej niż jedno wejście, ścieżka musi być prototypem, tj. musi zawierać %d lub %0nd (gdzie n jest dodatnią liczbą całkowitą), które zostaną zastąpione numerem wejścia. Jeśli nie podano nazwy pliku, żadne dane wyjściowe nie zostaną zapisane. To jest ustawienie domyślne.
format
Wybierz format wyjściowy.
Dostępne wartości to:
- '
binary
' Użyj określonej reprezentacji binarnej (domyślnie).
- '
xml
' Użyj określonej reprezentacji XML.
- '
th_d
Ustaw próg, aby wykryć jedno słowo jako podobne. Wartość opcji musi być liczbą całkowitą większą od zera. Wartość domyślna to 9000.
th_dc
Ustaw próg, aby wszystkie słowa były podobne. Wartość opcji musi być liczbą całkowitą większą od zera. Wartość domyślna to 60000.
th_xh
Ustaw próg, aby wykrywać klatki jako podobne. Wartość opcji musi być liczbą całkowitą większą od zera. Wartość domyślna to 116.
th_di
Ustaw minimalną długość sekwencji w ramkach, aby rozpoznać ją jako pasującą sekwencję. Wartość opcji musi być nieujemną liczbą całkowitą. Wartość domyślna to 0.
th_it
Ustaw minimalną relację, jaką muszą mieć pasujące ramki do wszystkich ramek. Wartość opcji musi być podwójną wartością z zakresu od 0 do 1. Wartość domyślna to 0,5.
11.229.1 Examples
- Aby obliczyć podpis wideo wejściowego i zapisać go w signature.bin:
ffmpeg -i input.mkv -vf signature=filename=signature.bin -map 0:v -f null -
- Aby wykryć, czy dwa filmy wideo pasują do siebie i zapisać podpisy w formacie XML w plikach signature0.xml i 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.230 siti
Oblicz wyniki informacji przestrzennej (SI) i informacji czasowych (TI) dla wideo, zgodnie z definicją w ITU-T P.910: Subiektywne metody oceny jakości wideo dla aplikacji multimedialnych. Dostępny w formacie PDF pod adresem https://www.itu.int/rec/T-REC-P.910-199909-S/en .
Akceptuje następującą opcję:
print_summary
Jeśli ustawiono na 1, statystyki podsumowujące zostaną wydrukowane na konsoli. Domyślnie 0.
11.230.1 Examples
- Aby obliczyć metryki SI/TI i wydrukować podsumowanie:
ffmpeg -i input.mp4 -vf siti=print_summary=1 -f null -
11.231 smartblur
Rozmyj wideo wejściowe bez wpływu na kontury.
Akceptuje następujące opcje:
luma_radius, lr
Ustaw promień światła. Wartość opcji musi być liczbą zmiennoprzecinkową z zakresu [0.1,5.0], który określa wariancję filtra Gaussa używanego do rozmycia obrazu (wolniej, jeśli jest większy). Wartość domyślna to 1.0.
luma_strength, ls
Ustaw siłę lumy. Wartość opcji musi być liczbą zmiennoprzecinkową z zakresu [-1.0,1.0], która konfiguruje rozmycie. Wartość zawarta w [0.0,1.0] spowoduje rozmycie obrazu, podczas gdy wartość zawarta w [-1.0,0.0] wyostrzy obraz. Wartość domyślna to 1.0.
luma_threshold, lt
Ustaw próg jasności używany jako współczynnik, aby określić, czy piksel powinien być rozmyty, czy nie. Wartość opcji musi być liczbą całkowitą z zakresu [-30,30]. Wartość 0 przefiltruje cały obraz, wartość zawarta w [0,30] przefiltruje płaskie obszary, a wartość zawarta w [-30,0] przefiltruje krawędzie. Wartość domyślna to 0.
chroma_radius, cr
Ustaw promień chrominancji. Wartość opcji musi być liczbą zmiennoprzecinkową z zakresu [0.1,5.0], który określa wariancję filtra Gaussa używanego do rozmycia obrazu (wolniej, jeśli jest większy). Wartość domyślna to
luma_radius
.chroma_strength, cs
Ustaw siłę chromatyczną. Wartość opcji musi być liczbą zmiennoprzecinkową z zakresu [-1.0,1.0], która konfiguruje rozmycie. Wartość zawarta w [0.0,1.0] spowoduje rozmycie obrazu, podczas gdy wartość zawarta w [-1.0,0.0] wyostrzy obraz. Wartość domyślna to
luma_strength
.chroma_threshold, ct
Ustaw próg chrominancji używany jako współczynnik, aby określić, czy piksel powinien być rozmyty, czy nie. Wartość opcji musi być liczbą całkowitą z zakresu [-30,30]. Wartość 0 przefiltruje cały obraz, wartość zawarta w [0,30] przefiltruje płaskie obszary, a wartość zawarta w [-30,0] przefiltruje krawędzie. Wartość domyślna to
luma_threshold
.
Jeśli opcja chroma nie jest jawnie ustawiona, ustawiana jest odpowiadająca jej wartość luma.
11.232 sobel
Zastosuj operator Sobela do wejścia strumienia wideo.
Filtr akceptuje następującą opcję:
planes
Ustaw, które płaszczyzny będą przetwarzane, nieprzetworzone płaszczyzny zostaną skopiowane. Domyślna wartość 0xf, wszystkie płaszczyzny będą przetwarzane.
scale
Ustaw wartość, która zostanie pomnożona przez przefiltrowany wynik.
delta
Ustaw wartość, która zostanie dodana do przefiltrowanego wyniku.
11.232.1 Commands
Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .
11.233 spp
Zastosuj prosty filtr postprocessingu, który kompresuje i dekompresuje obraz na kilka (lub - w przypadkuquality
poziom 6
- wszystkie) przesunięć i uśrednienia wyników.
Filtr akceptuje następujące opcje:
quality
Ustaw jakość. Ta opcja określa liczbę poziomów do uśredniania. Przyjmuje liczbę całkowitą z zakresu 0-6. Jeśli jest ustawiony na
0
, filtr nie będzie działał. Wartość6
oznacza wyższą jakość. Dla każdego przyrostu tej wartości prędkość spada o współczynnik około 2. Wartość domyślna to3
.qp
Wymuś stały parametr kwantyzacji. Jeśli nie jest ustawiony, filtr użyje QP ze strumienia wideo (jeśli jest dostępny).
mode
Ustaw tryb progowania. Dostępne tryby to:
- '
hard
' Ustaw twardy próg (domyślnie).
- '
soft
' Ustaw miękkie progi (lepszy efekt wygładzania, ale prawdopodobnie bardziej rozmyty).
- '
use_bframe_qp
Włącz korzystanie z QP z ramek B, jeśli jest ustawione na
1
. Użycie tej opcji może powodować migotanie, ponieważ ramki B mają często większe QP. Wartość domyślna to0
(nie włączone).
11.233.1 Commands
Ten filtr obsługuje następujące polecenia:
quality, level
Ustaw poziom jakości. Wartość
max
może być użyta do ustawienia maksymalnego poziomu, aktualnie6
.
11.234 sr
Skaluj dane wejściowe, stosując jedną z metod superrozdzielczości opartych na splotowych sieciach neuronowych. Obsługiwane modele:
- Model superrozdzielczej sieci neuronowej splotowej (SRCNN). Zobacz https://arxiv.org/abs/1501.00092 .
- Wydajny model subpikselowej konwolucyjnej sieci neuronowej (ESPCN). Zobacz https://arxiv.org/abs/1609.05158 .
Skrypty szkoleniowe oraz skrypty do zapisywania pliku modelu (.pb) można znaleźć na stronie https://github.com/XueweiMeng/sr/tree/sr_dnn_native . Oryginalne repozytorium znajduje się pod adresem https://github.com/HighVoltageRocknRoll/sr.git .
Pliki modeli natywnych (.model) można generować z plików modeli TensorFlow (.pb) za pomocą tools/python/convert.py
Filtr akceptuje następujące opcje:
dnn_backend
Określ backend DNN, który ma być używany do ładowania i wykonywania modelu. Ta opcja akceptuje następujące wartości:
- '
native
' Natywna implementacja ładowania i wykonywania DNN.
- '
tensorflow
' Zaplecze TensorFlow. Aby włączyć ten backend, musisz zainstalować bibliotekę TensorFlow for C (zobacz https://www.tensorflow.org/install/lang_c ) i skonfigurować FFmpeg za pomocą
--enable-libtensorflow
Wartość domyślna to '
native
„.- '
model
Ustaw ścieżkę do pliku modelu określając architekturę sieci i jej parametry. Pamiętaj, że różne backendy używają różnych formatów plików. Backend TensorFlow może ładować pliki dla obu formatów, podczas gdy natywny backend może ładować pliki tylko dla swojego formatu.
scale_factor
Ustaw współczynnik skali dla modelu SRCNN. Dozwolone wartości to
2
,3
i4
. Wartość domyślna to2
. Współczynnik skali jest niezbędny dla modelu SRCNN, ponieważ akceptuje dane wejściowe przeskalowane za pomocą skalowania dwusześciennego z odpowiednim współczynnikiem skali.
Aby uzyskać pełną funkcjonalność (np. wykonywanie asynchroniczne), użyj filtra dnn_processing .
11.235 ssim
Uzyskaj SSIM (Metryka podobieństwa strukturalnego) między dwoma wejściowymi filmami wideo.
Ten filtr pobiera dwa wejściowe filmy wideo, pierwsze wejście jest uważane za „główne” źródło i jest przekazywane bez zmian do wyjścia. Drugie wejście jest używane jako wideo „odniesienia” do obliczania SSIM.
Aby filtr działał poprawnie, oba wejścia wideo muszą mieć tę samą rozdzielczość i format pikseli. Zakłada również, że oba wejścia mają taką samą liczbę klatek, które są porównywane jedna po drugiej.
Filtr przechowuje obliczony SSIM każdej ramki.
Poniżej znajduje się opis akceptowanych parametrów.
stats_file, f
Jeśli zostanie określony, filtr użyje nazwanego pliku do zapisania SSIM każdej pojedynczej ramki. Gdy nazwa pliku jest równa "-" dane są wysyłane na standardowe wyjście.
Plik drukowany, jeśli stats_file
jest zaznaczony, zawiera sekwencję par klucz/wartość postaci key
: value
dla każdej porównywanej pary ramek.
Poniżej znajduje się opis każdego pokazanego parametru:
n
kolejny numer ramki wejściowej, zaczynając od 1
Y, U, V, R, G, B
SSIM porównywanych ramek dla składnika określonego przez sufiks.
All
SSIM porównywanych klatek dla całej klatki.
dB
Tak samo jak powyżej, ale w reprezentacji dB.
Ten filtr obsługuje również opcje framesync .
11.235.1 Examples
- Na przykład:
movie=ref_movie.mpg, setpts=PTS-STARTPTS [main]; [main][ref] ssim="stats_file=stats.log" [out]
W tym przykładzie przetwarzany plik wejściowy jest porównywany z plikiem referencyjnym
ref_movie.mpg
. SSIM każdej pojedynczej ramki jest przechowywany wstats.log
. - Kolejny przykład z psnr i ssim w tym samym czasie:
ffmpeg -i main.mpg -i ref.mpg -lavfi "ssim;[0:v][1:v]psnr" -f null -
- Kolejny przykład z różnymi pojemnikami:
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.236 stereo3d
Konwersja między różnymi formatami obrazów stereoskopowych.
Filtry akceptują następujące opcje:
in
Ustaw stereoskopowy format obrazu wejściowego.
Dostępne wartości dla wejściowych formatów obrazu to:
- '
sbsl
' obok siebie równolegle (lewe oko lewe, prawe oko)
- '
sbsr
' obok siebie crosseye (prawe oko lewe, lewe oko prawe)
- '
sbs2l
' obok siebie równolegle z rozdzielczością połowy szerokości (lewe oko lewe, prawe oko)
- '
sbs2r
' obok siebie crosseye z rozdzielczością połowy szerokości (prawe oko lewe, lewe oko prawe)
- '
abl
' - '
tbl
' powyżej-poniżej (lewe oko powyżej, prawe oko poniżej)
- '
abr
' - '
tbr
' powyżej-poniżej (prawe oko powyżej, lewe oko poniżej)
- '
ab2l
' - '
tb2l
' powyżej i poniżej z rozdzielczością połowy wysokości (lewe oko powyżej, prawe oko poniżej)
- '
ab2r
' - '
tb2r
' powyżej i poniżej z rozdzielczością połowy wysokości (prawe oko powyżej, lewe oko poniżej)
- '
al
' naprzemienne ramki (lewe oko jako pierwsze, prawe oko jako drugie)
- '
ar
' naprzemienne ramki (prawe oko jako pierwsze, lewe oko jako drugie)
- '
irl
' przeplatane rzędy (lewe oko ma górny rząd, prawe oko zaczyna się od następnego)
- '
irr
' przeplatane rzędy (prawe oko ma górny rząd, lewe zaczyna się od następnego)
- '
icl
' kolumny z przeplotem, najpierw lewe oko
- '
icr
' kolumny z przeplotem, najpierw prawe oko
Wartość domyślna to '
sbsl
„.
- '
out
Ustaw stereoskopowy format obrazu wyjściowego.
- '
sbsl
' obok siebie równolegle (lewe oko lewe, prawe oko)
- '
sbsr
' obok siebie crosseye (prawe oko lewe, lewe oko prawe)
- '
sbs2l
' obok siebie równolegle z rozdzielczością połowy szerokości (lewe oko lewe, prawe oko)
- '
sbs2r
' obok siebie crosseye z rozdzielczością połowy szerokości (prawe oko lewe, lewe oko prawe)
- '
abl
' - '
tbl
' powyżej-poniżej (lewe oko powyżej, prawe oko poniżej)
- '
abr
' - '
tbr
' powyżej-poniżej (prawe oko powyżej, lewe oko poniżej)
- '
ab2l
' - '
tb2l
' powyżej i poniżej z rozdzielczością połowy wysokości (lewe oko powyżej, prawe oko poniżej)
- '
ab2r
' - '
tb2r
' powyżej i poniżej z rozdzielczością połowy wysokości (prawe oko powyżej, lewe oko poniżej)
- '
al
' naprzemienne ramki (lewe oko jako pierwsze, prawe oko jako drugie)
- '
ar
' naprzemienne ramki (prawe oko jako pierwsze, lewe oko jako drugie)
- '
irl
' przeplatane rzędy (lewe oko ma górny rząd, prawe oko zaczyna się od następnego)
- '
irr
' przeplatane rzędy (prawe oko ma górny rząd, lewe zaczyna się od następnego)
- '
arbg
' anaglif czerwony/niebieski szary (czerwony filtr na lewym oku, niebieski filtr na prawym oku)
- '
argg
' anaglif czerwony/zielony szary (czerwony filtr na lewym oku, zielony filtr na prawym oku)
- '
arcg
' anaglif czerwony/cyjan szary (czerwony filtr na lewym oku, cyjan filtr na prawym oku)
- '
arch
' anaglif czerwony/cyjan w połowie kolorowy (czerwony filtr na lewym oku, cyjan filtr na prawym oku)
- '
arcc
' kolor anaglifowy czerwony/cyjan (czerwony filtr na lewym oku, cyjan filtr na prawym oku)
- '
arcd
' anaglifowy kolor czerwony/cyjan zoptymalizowany z odwzorowaniem najmniejszych kwadratów dubois (filtr czerwony na lewym oku, filtr cyjan na prawym oku)
- '
agmg
' anaglif zielony/magenta szary (zielony filtr na lewym oku, magenta na prawym oku)
- '
agmh
' anaglif zielony/magenta w połowie kolorowy (zielony filtr na lewym oku, magenta na prawym oku)
- '
agmc
' anaglif zielony/magenta (zielony filtr na lewym oku, magenta na prawym oku)
- '
agmd
' anaglifowy kolor zielony/magenta zoptymalizowany z projekcją najmniejszych kwadratów dubois (zielony filtr na lewym oku, filtr magenta na prawym oku)
- '
aybg
' anaglif żółty/niebieski szary (żółty filtr na lewym oku, niebieski filtr na prawym oku)
- '
aybh
' anaglif żółty/niebieski półkolorowy (żółty filtr na lewym oku, niebieski filtr na prawym oku)
- '
aybc
' anaglif żółto/niebieski kolor (żółty filtr na lewym oku, niebieski filtr na prawym oku)
- '
aybd
' anaglif żółty/niebieski kolor zoptymalizowany z odwzorowaniem najmniejszych kwadratów dubois (żółty filtr na lewym oku, niebieski filtr na prawym oku)
- '
ml
' wyjście mono (tylko lewe oko)
- '
mr
' wyjście mono (tylko prawe oko)
- '
chl
' szachownica, najpierw lewe oko
- '
chr
' szachownica, najpierw prawe oko
- '
icl
' kolumny z przeplotem, najpierw lewe oko
- '
icr
' kolumny z przeplotem, najpierw prawe oko
- '
hdmi
' Pakiet ramek HDMI
Wartość domyślna to '
arcd
„.- '
11.236.1 Examples
- Konwertuj wideo wejściowe obok siebie równolegle do anaglifowego żółtego / niebieskiego dubois:
stereo3d=sbsl:aybd
- Konwertuj wideo wejściowe z góry poniżej (lewe oko powyżej, prawe oko poniżej) na obok siebie crosseye.
stereo3d=abl:sbsr
11.237 streamselect, astreamselect
Wybierz strumienie wideo lub audio.
Filtr akceptuje następujące opcje:
inputs
Ustaw liczbę wejść. Wartość domyślna to 2.
map
Ustaw indeksy wejściowe, aby zmienić mapowanie na wyjścia.
11.237.1 Commands
Filtr streamselect
i astreamselect
obsługuje następujące polecenia:
map
Ustaw indeksy wejściowe, aby zmienić mapowanie na wyjścia.
11.237.2 Examples
- Wybierz pierwsze 5 sekund 1. strumień i resztę czasu 2. strumień:
sendcmd='5.0 streamselect map 1',streamselect=inputs=2:map=0
- Tak samo jak powyżej, ale w przypadku dźwięku:
asendcmd='5.0 astreamselect map 1',astreamselect=inputs=2:map=0
11.238 subtitles
Narysuj napisy na wejściu wideo, korzystając z biblioteki libass.
Aby umożliwić kompilację tego filtra musisz skonfigurować FFmpeg z
--enable-libass
. Ten filtr wymaga również kompilacji z libavcodec i libavformat, aby przekonwertować przekazany plik napisów do formatu napisów ASS (Advanced Substation Alpha).
Filtr akceptuje następujące opcje:
filename, f
Ustaw nazwę pliku napisów do odczytu. Musi być określony.
original_size
Określ rozmiar oryginalnego wideo, wideo, dla którego skomponowano plik ASS. Aby poznać składnię tej opcji, sprawdź sekcję (ffmpeg-utils)"Rozmiar wideo" w podręczniku ffmpeg-utils . Ze względu na błąd w arytmetyce proporcji ASS, konieczne jest prawidłowe skalowanie czcionek, jeśli proporcje zostały zmienione.
fontsdir
Ustaw ścieżkę katalogu zawierającą czcionki, których może używać filtr. Te czcionki będą używane niezależnie od tego, czego używa dostawca czcionek.
alpha
Przetwarzaj kanał alfa, domyślnie kanał alfa jest nietknięty.
charenc
Ustaw kodowanie znaków wejściowych napisów.
subtitles
tylko filtr. Przydatne tylko, jeśli nie UTF-8.stream_index, si
Ustaw indeks strumienia napisów.
subtitles
tylko filtr.force_style
Zastąp domyślny styl lub parametry informacji o skrypcie napisów. Akceptuje ciąg zawierający pary formatu ASS
KEY=VALUE
rozdzielone znakiem ",".
Jeśli pierwszy klucz nie jest określony, zakłada się, że pierwsza wartość określafilename
.
Na przykład, aby wyrenderować pliksub.srt
na wierzchu wejściowego wideo użyj polecenia:
subtitles=sub.srt
co jest równoznaczne z:
subtitles=filename=sub.srt
Aby renderować domyślny strumień napisów z plikuvideo.mkv
, posługiwać się:
subtitles=video.mkv
Aby wyrenderować drugi strumień napisów z tego pliku, użyj:
subtitles=video.mkv:si=1
Aby napisy były przesyłane strumieniowo zsub.srt
pojawiają się w 80% przezroczysty niebieski
DejaVu Serif
, użyj:
subtitles=sub.srt:force_style='Fontname=DejaVu Serif,PrimaryColour=&HCCFF0000'
11.239 super2xsai
Skaluj wejście 2x i wygładzaj przy użyciu algorytmu skalowania grafiki pikselowej Super2xSaI (Scale and Interpolate).
Przydatne do powiększania obrazów pixel art bez zmniejszania ostrości.
11.240 swaprect
Zamień dwa prostokątne obiekty w filmie.
Ten filtr akceptuje następujące opcje:
w
Ustaw szerokość obiektu.
h
Ustaw wysokość obiektu.
x1
Ustaw pierwszy prostokąt x współrzędną.
y1
Ustaw współrzędną y pierwszego prostokąta.
x2
Ustaw drugi prostokąt x współrzędną.
y2
Ustaw drugą współrzędną y prostokąta.
Wszystkie wyrażenia są oceniane raz dla każdej klatki.
Wszystkie opcje to wyrażenia zawierające następujące stałe:
w
h
Wejściowa szerokość i wysokość.
a
tak samo jak
w
/h
sar
wejściowy współczynnik proporcji próbki
dar
format obrazu wejściowego, taki sam jak (
w
/h
) *sar
n
Numer ramki wejściowej, zaczynając od 0.
t
Znacznik czasu wyrażony w sekundach. Jest to NAN, jeśli wejściowy znacznik czasu jest nieznany.
pos
pozycja w pliku ramki wejściowej, NAN jeśli nieznana
11.240.1 Commands
Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .
11.241 swapuv
Zamień płaszczyznę U i V.
11.242 tblend
Łącz kolejne klatki wideo.
Zobacz mieszankę
11.243 telecine
Zastosuj proces telecine do wideo.
Ten filtr akceptuje następujące opcje:
first_field
- '
top, t
' najpierw górne pole
- '
bottom, b
' najpierw dolne pole Wartość domyślna to
top
.
- '
pattern
Ciąg liczb reprezentujący wzór rozwijany, który chcesz zastosować. Wartość domyślna to
23
.
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.244 thistogram
Oblicz i narysuj histogram rozkładu kolorów dla wejściowego wideo w czasie.
W przeciwieństwie do filtru histogramu wideo, który pokazuje tylko histogram pojedynczej klatki wejściowej w określonym czasie, ten filtr pokazuje również histogramy z przeszłości liczby klatek zdefiniowanej przez width
opcję.
Obliczony histogram jest reprezentacją rozkładu składowej koloru na obrazie.
Filtr akceptuje następujące opcje:
width, w
Ustaw szerokość wyjścia składowego pojedynczego koloru. Wartość domyślna to
0
. Wartość0
szerokości oznacza zostanie pobrana z wejściowego wideo. To również ustawiło liczbę przekazanych histogramów do zachowania. Dozwolony zakres to [0, 8192].display_mode, d
Ustaw tryb wyświetlania. Przyjmuje następujące wartości:
- '
stack
' Wykresy składowe dla poszczególnych kolorów są umieszczane pod sobą.
- '
parade
' Wykresy składowe kolorów są umieszczane obok siebie.
- '
overlay
' Przedstawia informacje identyczne jak w
parade
, z tą różnicą, że wykresy przedstawiające składowe kolorów nakładają się bezpośrednio na siebie.
Wartość domyślna to
stack
.- '
levels_mode, m
Ustaw tryb. Może być
linear
, lublogarithmic
. Wartość domyślna tolinear
.components, c
Ustaw komponenty kolorów do wyświetlenia. Wartość domyślna to
7
.bgopacity, b
Ustaw krycie tła. Wartość domyślna to
0.9
.envelope, e
Pokaż kopertę. Domyślnie jest wyłączone.
ecolor, ec
Ustaw kolor koperty. Wartość domyślna to
gold
.slide
Ustaw tryb slajdów.
Dostępne wartości dla slajdu to:
- '
frame
' Narysuj nową ramkę po osiągnięciu prawej granicy.
- '
replace
' Wymień stare kolumny na nowe.
- '
scroll
' Przewiń od prawej do lewej.
- '
rscroll
' Przewiń od lewej do prawej.
- '
picture
' Narysuj pojedynczy obrazek.
Wartość domyślna to
replace
.- '
11.245 threshold
Zastosuj efekt progowy do strumienia wideo.
Ten filtr wymaga czterech strumieni wideo do wykonania progu. Pierwszy strumień to strumień, który filtrujemy. Drugi strumień przechowuje wartości progowe, trzeci strumień przechowuje wartości minimalne, a ostatni, czwarty strumień przechowuje wartości maksymalne.
Filtr akceptuje następującą opcję:
planes
Ustaw, które płaszczyzny będą przetwarzane, nieprzetworzone płaszczyzny zostaną skopiowane. Domyślna wartość 0xf, wszystkie płaszczyzny będą przetwarzane.
Na przykład, jeśli wartość składnika piksela pierwszego strumienia jest mniejsza niż wartość progowa składnika piksela z drugiego strumienia progowego, wybrana zostanie wartość trzeciego strumienia, w przeciwnym razie zostanie wybrana wartość składnika pikselowego czwartego strumienia.
Za pomocą filtra źródła koloru można wykonać różne rodzaje progowania:
11.245.1 Commands
Ten filtr obsługuje wszystkie opcje jako polecenia .
11.245.2 Examples
- Próg binarny, jako próg stosuje się kolor szary:
ffmpeg -i 320x240.avi -f lavfi -i color=gray -f lavfi -i color=black -f lavfi -i color=white -lavfi threshold output.avi
- Odwrócony próg binarny, jako próg stosuje się kolor szary:
ffmpeg -i 320x240.avi -f lavfi -i color=gray -f lavfi -i color=white -f lavfi -i color=black -lavfi threshold output.avi
- Obetnij próg binarny, używając szarego koloru jako progu:
ffmpeg -i 320x240.avi -f lavfi -i color=gray -i 320x240.avi -f lavfi -i color=gray -lavfi threshold output.avi
- Próg do zera, używając szarego koloru jako progu:
ffmpeg -i 320x240.avi -f lavfi -i color=gray -f lavfi -i color=white -i 320x240.avi -lavfi threshold output.avi
- Odwrócony próg do zera, używając szarego koloru jako progu:
ffmpeg -i 320x240.avi -f lavfi -i color=gray -i 320x240.avi -f lavfi -i color=white -lavfi threshold output.avi
11.246 thumbnail
Wybierz najbardziej reprezentatywną klatkę w danej sekwencji kolejnych klatek.
Filtr akceptuje następujące opcje:
n
Ustaw wielkość partii ramek do analizy; w zestawie
n
ramek filtr wybierze jedną z nich, a następnie obsłuży kolejną partięn
ramek do końca. Wartość domyślna to100
.
Ponieważ filtr śledzi całą sekwencję klatek, wyższa n
wartość spowoduje większe zużycie pamięci, więc wysoka wartość nie jest zalecana.
11.246.1 Examples
- Wyodrębnij jedno zdjęcie na każde 50 klatek:
thumbnail=50
- Kompletny przykład tworzenia miniatury za pomocą
ffmpeg
:ffmpeg -i in.avi -vf thumbnail,scale=300:200 -frames:v 1 out.png
11.247 tile
Ułóż kilka kolejnych ramek razem.
Filtr do włosów może zrobić coś odwrotnego.
Filtr akceptuje następujące opcje:
layout
Ustaw rozmiar siatki w formularzu
COLUMNSxROWS
. Zakres wynosi do UINT_MAX komórek. Wartość domyślna to6x5
.nb_frames
Ustaw maksymalną liczbę klatek do renderowania w danym obszarze. Musi być mniejsza lub równa
w
xh
. Wartość domyślna to0
, co oznacza, że ​​zostanie wykorzystany cały obszar.margin
Ustaw zewnętrzny margines obramowania w pikselach. Zakres wynosi od 0 do 1024. Wartość domyślna to
0
.padding
Ustaw wewnętrzną grubość obramowania (tzn. liczbę pikseli między ramkami). Aby uzyskać bardziej zaawansowane opcje dopełnienia (takie jak różne wartości dla krawędzi), zapoznaj się z filtrem wideo padów. Zakres wynosi od 0 do 1024. Wartość domyślna to
0
.color
Określ kolor nieużywanego obszaru. Aby poznać składnię tej opcji, sprawdź sekcję (ffmpeg-utils)"Color" w podręczniku ffmpeg-utils . Domyślna wartość
color
to „czarny”.overlap
Ustaw liczbę klatek, które mają się nakładać, gdy kilka kolejnych klatek będzie się układać razem. Wartość musi znajdować się między
0
inb_frames - 1
. Wartość domyślna to0
.init_padding
Ustaw liczbę klatek, które będą początkowo puste przed wyświetleniem pierwszej klatki wyjściowej. Kontroluje to, jak szybko otrzymamy pierwszą klatkę wyjściową. Wartość musi znajdować się między
0
inb_frames - 1
. Wartość domyślna to0
.
11.247.1 Examples
- Twórz kafelki 8x8 PNG wszystkich klatek kluczowych (
-skip_frame nokey
) w filmie:ffmpeg -skip_frame nokey -i file.avi -vf 'scale=128:72,tile=8x8' -an -vsync 0 keyframes%03d.png
The
-vsync 0
jest konieczne, aby zapobiecffmpeg
duplikowaniu każdej ramki wyjściowej w celu dostosowania pierwotnie wykrytej liczby klatek na sekundę. - Wyświetlaj
5
obrazy w obszarze3x2
ramek, z7
pikselami między nimi i2
pikselami początkowego marginesu, używając mieszanych opcji płaskich i nazwanych:tile=3x2:nb_frames=5:padding=7:margin=2
11.248 tinterlace
Wykonuj różne rodzaje czasowego przeplotu pól.
Klatki są liczone począwszy od 1, więc pierwsza ramka wejściowa jest uważana za nieparzystą.
Filtr akceptuje następujące opcje:
mode
Określ tryb przeplotu. Tę opcję można również określić jako samą wartość. Zobacz poniżej listę wartości dla tej opcji.
Dostępne wartości to:
- '
merge, 0
' Przenieś nieparzyste klatki do górnego pola, a nawet do dolnego, generując klatkę o podwójnej wysokości z połową szybkości klatek.
------> 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
' Wyprowadzaj tylko nieparzyste klatki, parzyste klatki są odrzucane, generując klatkę o niezmienionej wysokości z połową szybkości klatek.
------> 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
' Wyprowadza tylko parzyste klatki, nieparzyste klatki są odrzucane, generując klatkę o niezmienionej wysokości z połową szybkości klatek.
------> 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
' Rozszerz każdą klatkę do pełnej wysokości, ale dopełnij naprzemienne linie kolorem czarnym, generując klatkę o podwójnej wysokości przy tej samej wejściowej liczbie klatek na sekundę.
------> 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
' Przeplataj górne pole z klatek nieparzystych z dolnym polem z klatek parzystych, generując klatkę o niezmienionej wysokości z połową szybkości klatek.
------> 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
' Przeplataj dolne pole z klatek nieparzystych z górnym polem z klatek parzystych, generując klatkę o niezmienionej wysokości z połową szybkości klatek.
------> 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
' Podwójna liczba klatek na sekundę przy niezmienionej wysokości. Wstawiane są ramki, z których każda zawiera drugie pole czasowe z poprzedniej ramki wejściowej i pierwsze pole czasowe z następnej ramki wejściowej. Ten tryb opiera się na fladze top_field_first. Przydatne w przypadku wyświetlaczy wideo z przeplotem bez synchronizacji pola.
------> 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
' Przenieś nieparzyste klatki do górnego pola, a nawet do dolnego pola, generując klatkę o podwójnej wysokości przy tej samej liczbie klatek na sekundę.
------> 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
Wartości liczbowe są przestarzałe, ale są akceptowane ze względu na zgodność z poprzednimi wersjami.
Tryb domyślny to
merge
.- '
flags
Określ flagi wpływające na proces filtrowania.
Dostępna wartość dla
flags
to:low_pass_filter, vlpf
Włącz w filtrze liniowe pionowe filtrowanie dolnoprzepustowe. Pionowe filtrowanie dolnoprzepustowe jest wymagane podczas tworzenia miejsca docelowego z przeplotem ze źródła progresywnego, które zawiera pionowe szczegóły o wysokiej częstotliwości. Filtrowanie zredukuje „twitter” z przeplotem i wzór mory.
complex_filter, cvlpf
Włącz złożone pionowe filtrowanie dolnoprzepustowe. Zmniejszy to nieco mniej przeplotu „twittera” i wzorów mory, ale lepiej zachowa szczegóły i subiektywne wrażenie ostrości.
bypass_il
Pomiń już klatki z przeplotem, dostosuj tylko szybkość klatek.
Pionowe filtrowanie dolnoprzepustowe i pomijanie już przeplatanych ramek można włączyć tylko dla
mode
interleave_top
iinterleave_bottom
.
11.249 tmedian
Wybierz medianę pikseli z kilku kolejnych wejściowych klatek wideo.
Filtr akceptuje następujące opcje:
radius
Ustaw promień filtra mediany. Wartość domyślna to 1. Dozwolony zakres to od 1 do 127.
planes
Ustaw samoloty do filtrowania. Wartość domyślna to
15
, według której przetwarzane są wszystkie płaszczyzny.percentile
Ustaw medianę percentyla. Wartość domyślna to
0.5
. Domyślna wartość0.5
wybierze zawsze wartości mediany, podczas gdy0
wybierze wartości minimalne i1
maksymalne.
11.249.1 Commands
Ten filtr obsługuje wszystkie powyższe opcje jako komendy , wyłączając opcję radius
.
11.250 tmidequalizer
Zastosuj efekt Temporal Midway Video Equalization.
Wyrównanie obrazu w połowie drogi dostosowuje sekwencję klatek wideo tak, aby miały te same histogramy, zachowując jednocześnie ich dynamikę w jak największym stopniu. Jest to przydatne np. do dopasowywania ekspozycji z sekwencji klatek wideo.
Ten filtr akceptuje następującą opcję:
radius
Ustaw promień filtrowania. Wartość domyślna to
5
. Dozwolony zakres to od 1 do 127.sigma
Ustaw sigma filtrowania. Wartość domyślna to
0.5
. To kontroluje siłę filtrowania. Ustawienie tej opcji na 0 skutecznie nic nie robi.planes
Ustaw samoloty do przetworzenia. Domyślnie jest to
15
, co oznacza wszystkie dostępne płaszczyzny.
11.251 tmix
Miksuj kolejne klatki wideo.
Poniżej znajduje się opis akceptowanych opcji.
frames
Liczba kolejnych klatek do zmiksowania. Jeśli nie jest określony, domyślnie wynosi 3.
weights
Określ wagę każdej wejściowej klatki wideo. Każda waga jest oddzielona spacją. Jeśli liczba odważników jest mniejsza niż liczba
frames
ostatnio określonych odważników, zostanie użyta dla wszystkich pozostałych nieustawionych odważników.scale
Określ skalę, jeśli jest ustawiona, zostanie pomnożona przez sumę każdej wagi pomnożoną przez wartości pikseli, aby uzyskać ostateczną docelową wartość piksela. Domyślnie
scale
jest skalowane automatycznie do sumy wag.planes
Ustaw samoloty do filtrowania. Domyślność to wszystko. Dozwolony zakres to od 0 do 15.
11.251.1 Examples
- Średnio 7 kolejnych klatek:
tmix=frames=7:weights="1 1 1 1 1 1 1"
- Zastosuj prosty splot czasowy:
tmix=frames=3:weights="-1 3 -1"
- Podobnie jak powyżej, ale pokazujące tylko różnice czasowe:
tmix=frames=3:weights="-1 2 -1":scale=1
11.251.2 Commands
Ten filtr obsługuje następujące polecenia:
weights
scale
planes
Składnia jest taka sama jak opcja o tej samej nazwie.
11.252 tonemap
Kolory mapy tonalnej z różnych zakresów dynamicznych.
Ten filtr oczekuje danych w postaci zmiennoprzecinkowej pojedynczej precyzji, ponieważ musi operować (i może wyprowadzać) wartości spoza zakresu. Potrzebny jest inny filtr, taki jak zscale , aby przekonwertować wynikową ramkę na użyteczny format.
Zaimplementowane algorytmy mapowania tonalnego działają tylko w świetle liniowym, dlatego dane wejściowe powinny być wcześniej linearyzowane (i możliwie poprawnie otagowane).
ffmpeg -i INPUT -vf zscale=transfer=linear,tonemap=clip,zscale=transfer=bt709,format=yuv420p OUTPUT
11.252.1 Options
Filtr akceptuje następujące opcje.
tonemap
Ustaw algorytm mapy tonalnej do użycia.
Możliwe wartości to:
none
Nie stosuj żadnej mapy tonalnej, tylko zmniejsz nasycenie jasnych pikseli.
clip
Przytnij wszystkie wartości spoza zakresu. Użyj go, aby uzyskać idealną dokładność kolorów dla wartości z zakresu, jednocześnie zniekształcając wartości spoza zakresu.
linear
Rozciągnij całą gamę odniesienia do liniowej wielokrotności wyświetlacza.
gamma
Dopasuj logarytmiczny transfer między krzywymi tonów.
reinhard
Zachowaj ogólną jasność obrazu za pomocą prostej krzywej, używając kontrastu nieliniowego, co skutkuje spłaszczeniem szczegółów i pogorszeniem dokładności kolorów.
hable
Zachowaj zarówno ciemne, jak i jasne detale lepiej niż
reinhard
, kosztem lekkiego przyciemnienia wszystkiego. Użyj go, gdy zachowanie szczegółów jest ważniejsze niż dokładność kolorów i jasności.mobius
Płynnie mapuj wartości spoza zakresu, zachowując w jak największym stopniu kontrast i kolory dla materiału z zakresu. Użyj go, gdy dokładność kolorów jest ważniejsza niż zachowanie szczegółów.
Wartość domyślna to brak.
param
Dostrój algorytm mapowania tonów.
Ma to wpływ na następujące algorytmy:
none
Zignorowano.
linear
Określa współczynnik skali używany podczas rozciągania. Domyślnie 1,0.
gamma
Określa wykładnik funkcji. Domyślnie 1.8.
clip
Określ dodatkowy współczynnik liniowy do pomnożenia przez sygnał przed obcięciem. Domyślnie 1,0.
reinhard
Określ lokalny współczynnik kontrastu w piku wyświetlacza. Domyślnie 0,5, co oznacza, że ​​wartości w gamie będą o połowę jaśniejsze niż podczas przycinania.
hable
Zignorowano.
mobius
Określ punkt przejścia od transformacji liniowej do transformacji Mobiusa. Każda wartość poniżej tego punktu gwarantuje odwzorowanie 1:1. Im wyższa wartość, tym dokładniejszy będzie wynik, kosztem utraty jasnych szczegółów. Domyślnie 0,3, co ze względu na strome początkowe nachylenie nadal dość dokładnie zachowuje kolory z zakresu.
desat
Zastosuj desaturację dla świateł, które przekraczają ten poziom jasności. Im wyższy parametr, tym więcej informacji o kolorze zostanie zachowanych. To ustawienie pomaga zapobiegać nienaturalnemu wyblaknięciu kolorów w przypadku super jasnych obszarów poprzez (płynnie) zamianę w biel. Dzięki temu obrazy wydają się bardziej naturalne, kosztem zmniejszenia informacji o kolorach spoza zakresu.
Domyślna wartość 2.0 jest nieco konserwatywna i dotyczy głównie nieba lub powierzchni nasłonecznionych. Ustawienie 0.0 wyłącza tę opcję.
Ta opcja działa tylko wtedy, gdy ramka wejściowa ma obsługiwany znacznik koloru.
peak
Zastąp sygnał/nominalny/szczyt odniesienia tą wartością. Przydatne, gdy osadzone informacje o pikach w wyświetlanych metadanych nie są wiarygodne lub gdy mapowanie tonów z niższego zakresu do wyższego zakresu.
11.253 tpad
Tymczasowo nagraj klatki wideo.
Filtr akceptuje następujące opcje:
start
Określ liczbę klatek opóźnionych przed wejściowym strumieniem wideo. Wartość domyślna to 0.
stop
Określ liczbę klatek dopełnienia po wejściowym strumieniu wideo. Ustaw na -1, aby padać w nieskończoność. Wartość domyślna to 0.
start_mode
Ustaw rodzaj ramek dodawanych na początku strumienia. Może być albo
add
lubclone
. Zadd
ramkami w jednolitym kolorze są dodawane. Zclone
ramkami są klony pierwszej ramki. Wartość domyślna toadd
.stop_mode
Ustaw rodzaj ramek dodawanych na końcu strumienia. Może być albo
add
lubclone
. Zadd
ramkami w jednolitym kolorze są dodawane. Zclone
ramkami są klony ostatniej ramki. Wartość domyślna toadd
.start_duration, stop_duration
Określ czas trwania opóźnienia startu/stopu. Zobacz (ffmpeg-utils) sekcję Czas trwania w podręczniku ffmpeg-utils(1), aby poznać akceptowaną składnię. Te opcje zastępują
start
istop
. Wartość domyślna to 0.color
Określ kolor wyściełanego obszaru. Aby poznać składnię tej opcji, sprawdź sekcję (ffmpeg-utils)"Color" w podręczniku ffmpeg-utils .
Domyślna wartość
color
to „czarny”.
11.254 transpose
Transponuj wiersze z kolumnami w wejściowym wideo i opcjonalnie je odwróć.
Przyjmuje następujące parametry:
dir
Określ kierunek transpozycji.
Może przyjąć następujące wartości:
- '
0, 4, cclock_flip
' Obróć o 90 stopni w kierunku przeciwnym do ruchu wskazówek zegara i odwróć w pionie (domyślnie), czyli:
L.R L.l . . -> . . l.r R.r
- '
1, 5, clock
' Obróć o 90 stopni zgodnie z ruchem wskazówek zegara, czyli:
L.R l.L . . -> . . l.r r.R
- '
2, 6, cclock
' Obróć o 90 stopni w lewo, czyli:
L.R R.r . . -> . . l.r L.l
- '
3, 7, clock_flip
' Obróć o 90 stopni zgodnie z ruchem wskazówek zegara i odwróć w pionie, czyli:
L.R r.R . . -> . . l.r l.L
W przypadku wartości pomiędzy 4-7 transpozycja jest wykonywana tylko wtedy, gdy geometria wejściowego wideo jest pionowa, a nie pozioma. Te wartości są przestarzałe,
passthrough
zamiast tego należy użyć opcji.Wartości liczbowe są przestarzałe i należy je pominąć na rzecz stałych symbolicznych.
- '
passthrough
Nie stosuj transpozycji, jeśli geometria wejściowa jest zgodna z geometrią określoną przez określoną wartość. Przyjmuje następujące wartości:
- '
none
' Zawsze stosuj transpozycję.
- '
portrait
' Zachowaj geometrię pionową (gdy
height
>=width
).- '
landscape
' Zachowaj geometrię krajobrazu (gdy
width
>=height
).
Wartość domyślna to
none
.- '
Na przykład, aby obrócić o 90 stopni zgodnie z ruchem wskazówek zegara i zachować układ pionowy:
transpose=dir=1:passthrough=portrait
Powyższe polecenie można również określić jako:
transpose=1:portrait
11.255 transpose_npp
Transponuj wiersze z kolumnami w wejściowym wideo i opcjonalnie je odwróć. Aby uzyskać więcej szczegółowych przykładów, zobacz filtr wideo transponowania , który ma w większości te same opcje.
Przyjmuje następujące parametry:
dir
Określ kierunek transpozycji.
Może przyjąć następujące wartości:
- '
cclock_flip
' Obróć o 90 stopni w kierunku przeciwnym do ruchu wskazówek zegara i odwróć w pionie. (domyślna)
- '
clock
' Obróć o 90 stopni zgodnie z ruchem wskazówek zegara.
- '
cclock
' Obróć o 90 stopni w lewo.
- '
clock_flip
' Obróć o 90 stopni zgodnie z ruchem wskazówek zegara i odwróć w pionie.
- '
passthrough
Nie stosuj transpozycji, jeśli geometria wejściowa jest zgodna z geometrią określoną przez określoną wartość. Przyjmuje następujące wartości:
- '
none
' Zawsze stosuj transpozycję. (domyślna)
- '
portrait
' Zachowaj geometrię pionową (gdy
height
>=width
).- '
landscape
' Zachowaj geometrię krajobrazu (gdy
width
>=height
).
- '
11.256 trim
Przytnij dane wejściowe tak, aby dane wyjściowe zawierały jedną ciągłą podczęść danych wejściowych.
Przyjmuje następujące parametry:
start
Określ czas rozpoczęcia zachowanej sekcji, tzn. ramka ze znacznikiem czasu
start
będzie pierwszą ramką w wyjściu.end
Określ czas pierwszej klatki, która zostanie pominięta, tzn. klatka bezpośrednio poprzedzająca tę ze znacznikiem czasu
end
będzie ostatnią klatką w wyjściu.start_pts
Jest to to samo co
start
, z tą różnicą, że ta opcja ustawia początkowy znacznik czasu w jednostkach podstawy czasu zamiast sekundach.end_pts
Jest to to samo co
end
, z tą różnicą, że ta opcja ustawia znacznik czasu zakończenia w jednostkach podstawy czasu zamiast w sekundach.duration
Maksymalny czas trwania wyjścia w sekundach.
start_frame
Numer pierwszej klatki, która powinna zostać przekazana do wyjścia.
end_frame
Numer pierwszej klatki, która powinna zostać usunięta.
start
,end
, orazduration
są wyrażone jako specyfikacje czasu trwania; zobacz
(ffmpeg-utils) sekcję Czas trwania w podręczniku ffmpeg-utils(1),
aby poznać akceptowaną składnię.
Zwróć uwagę, że pierwsze dwa zestawy opcji początku/końca orazduration
spójrz na znacznik czasu klatki, podczas gdy warianty _frame po prostu zliczają klatki, które przechodzą przez filtr. Pamiętaj też, że ten filtr nie modyfikuje znaczników czasu. Jeśli chcesz, aby wyjściowe znaczniki czasu zaczynały się od zera, wstaw filtr setpts po filtrze przycinania.
Jeśli ustawionych jest wiele opcji początku lub końca, ten filtr stara się być zachłanny i zachować wszystkie klatki, które pasują do co najmniej jednego z określonych ograniczeń. Aby jednocześnie zachować tylko tę część, która pasuje do wszystkich wiązań, połącz wiele filtrów przycinania.
Wartości domyślne są takie, że wszystkie dane wejściowe są zachowywane. Można więc ustawić np. tylko wartości końcowe, aby zachować wszystko przed określonym czasem.
Przykłady:
- Upuść wszystko z wyjątkiem drugiej minuty wprowadzania danych:
ffmpeg -i INPUT -vf trim=60:120
- Zachowaj tylko pierwszą sekundę:
ffmpeg -i INPUT -vf trim=duration=1
11.257 unpremultiply
Zastosuj efekt alpha unpremultiply do wejściowego strumienia wideo, używając pierwszej płaszczyzny drugiego strumienia jako alfa.
Oba strumienie muszą mieć te same wymiary i ten sam format pikseli.
Filtr akceptuje następującą opcję:
planes
Ustaw, które płaszczyzny będą przetwarzane, nieprzetworzone płaszczyzny zostaną skopiowane. Domyślna wartość 0xf, wszystkie płaszczyzny będą przetwarzane.
Jeśli format ma 1 lub 2 składowe, to luma wynosi bit 0. Jeżeli format ma 3 lub 4 składowe: dla formatów RGB bit 0 jest zielony, bit 1 jest niebieski, a bit 2 jest czerwony; dla formatów YUV bit 0 to luma, bit 1 to chroma-U, a bit 2 to chroma-V. Jeśli jest obecny, kanał alfa jest zawsze ostatnim bitem.
inplace
Nie wymagaj drugiego wejścia do przetwarzania, zamiast tego użyj płaszczyzny alfa ze strumienia wejściowego.
11.258 unsharp
Wyostrz lub rozmyj wideo wejściowe.
Przyjmuje następujące parametry:
luma_msize_x, lx
Ustaw poziomą wielkość luma matrix. Musi to być nieparzysta liczba całkowita z przedziału od 3 do 23. Wartość domyślna to 5.
luma_msize_y, ly
Ustaw pionowy rozmiar matrycy luma. Musi to być nieparzysta liczba całkowita z przedziału od 3 do 23. Wartość domyślna to 5.
luma_amount, la
Ustaw siłę efektu luma. Musi to być liczba zmiennoprzecinkowa, rozsądne wartości mieszczą się w przedziale od -1,5 do 1,5.
Wartości ujemne spowodują rozmycie obrazu wejściowego, wartości dodatnie go wyostrzą, wartość zero wyłączy efekt.
Wartość domyślna to 1.0.
chroma_msize_x, cx
Ustaw rozmiar poziomy matrycy chromatycznej. Musi to być nieparzysta liczba całkowita z przedziału od 3 do 23. Wartość domyślna to 5.
chroma_msize_y, cy
Ustaw pionowy rozmiar matrycy chromatycznej. Musi to być nieparzysta liczba całkowita z przedziału od 3 do 23. Wartość domyślna to 5.
chroma_amount, ca
Ustaw siłę efektu chromatycznego. Musi to być liczba zmiennoprzecinkowa, rozsądne wartości mieszczą się w przedziale od -1,5 do 1,5.
Wartości ujemne spowodują rozmycie obrazu wejściowego, wartości dodatnie go wyostrzą, wartość zero wyłączy efekt.
Wartość domyślna to 0,0.
alpha_msize_x, ax
Ustaw rozmiar poziomy macierzy alfa. Musi to być nieparzysta liczba całkowita z przedziału od 3 do 23. Wartość domyślna to 5.
alpha_msize_y, ay
Ustaw rozmiar pionowy macierzy alfa. Musi to być nieparzysta liczba całkowita z przedziału od 3 do 23. Wartość domyślna to 5.
alpha_amount, aa
Ustaw siłę efektu alfa. Musi to być liczba zmiennoprzecinkowa, rozsądne wartości mieszczą się w przedziale od -1,5 do 1,5.
Wartości ujemne spowodują rozmycie obrazu wejściowego, wartości dodatnie go wyostrzą, wartość zero wyłączy efekt.
Wartość domyślna to 0,0.
Wszystkie parametry są opcjonalne i domyślnie odpowiadają ciągowi „5:5:1.0:5:5:0.0”.
11.258.1 Examples
- Zastosuj mocny efekt wyostrzenia lumy:
unsharp=luma_msize_x=7:luma_msize_y=7:luma_amount=2.5
- Zastosuj mocne rozmycie zarówno parametrów luma, jak i chroma:
unsharp=7:7:-2:7:7:-2
11.259 untile
Rozłóż wideo złożone z obrazów sąsiadujących na poszczególne obrazy.
Szybkość klatek wyjściowego wideo to szybkość klatek wejściowego wideo pomnożona przez liczbę płytek.
Ten filtr działa odwrotnie niż kafelek .
Filtr akceptuje następujące opcje:
layout
Ustaw rozmiar siatki (tzn. liczbę wierszy i kolumn). Aby poznać składnię tej opcji, sprawdź sekcję (ffmpeg-utils)"Rozmiar wideo" w podręczniku ffmpeg-utils .
11.259.1 Examples
- Utwórz jednosekundowy film z pliku obrazu składającego się z 25 klatek ułożonych pionowo, jak na analogowej taśmie filmowej:
ffmpeg -r 1 -i image.jpg -vf untile=1x25 movie.mkv
11.260 uspp
Zastosuj ultra wolny/prosty filtr postprocessingu, który kompresuje i dekompresuje obraz na kilka (lub - w przypadkuquality
poziom 8
- wszystkie) przesunięć i uśrednienia wyników.
Sposób, w jaki różni się to od zachowania spp, polega na tym, że uspp faktycznie koduje i dekoduje każdy przypadek za pomocą libavcodec Snow, podczas gdy spp używa uproszczonego intra tylko 8x8 DCT, podobnego do MJPEG.
Ten filtr jest dostępny tylko w ffmpeg w wersji 4.4 lub wcześniejszej.
Filtr akceptuje następujące opcje:
quality
Ustaw jakość. Ta opcja określa liczbę poziomów do uśredniania. Przyjmuje liczbę całkowitą z zakresu 0-8. Jeśli jest ustawiony na
0
, filtr nie będzie działał. Wartość8
oznacza wyższą jakość. Dla każdego przyrostu tej wartości prędkość spada o współczynnik około 2. Wartość domyślna to3
.qp
Wymuś stały parametr kwantyzacji. Jeśli nie jest ustawiony, filtr użyje QP ze strumienia wideo (jeśli jest dostępny).
11.261 v360
Konwertuj filmy 360 między różnymi formatami.
Filtr akceptuje następujące opcje:
input
output
Ustaw format wejścia/wyjścia wideo.
Dostępne formaty:
- '
e
' - '
equirect
' Rzut równokątny.
- '
c3x2
' - '
c6x1
' - '
c1x6
' Cubemapa z układem 3x2/6x1/1x6.
Opcje specyficzne dla formatu:
in_pad
out_pad
Ustaw proporcję wypełnienia dla cubemapy wejścia/wyjścia. Wartości w ułamkach dziesiętnych.
Przykładowe wartości:
- '
0
' Bez wyściółki.
- '
0.01
' 1% twarzy to wyściółka. Na przykład przy rozdzielczości 1920x1280 rozmiar twarzy będzie wynosił 640x640, a dopełnienie będzie miało 3 piksele z każdej strony. (640 * 0,01 = 6 pikseli)
Wartość domyślna to '
0
' . Maksymalna wartość to '0.1
' .- '
fin_pad
fout_pad
Ustaw stałe dopełnienie dla cubemapy wejścia/wyjścia. Wartości w pikselach.
Wartość domyślna to '
0
' . Jeśli jest większa niż zero, zastępuje inne opcje dopełnienia.in_forder
out_forder
Ustaw kolejność ścian dla cubemapy wejścia/wyjścia. Wybierz jeden kierunek dla każdej pozycji.
Oznaczenie kierunków:
- '
r
' prawo
- '
l
' lewy
- '
u
' w górę
- '
d
' na dół
- '
f
' Naprzód
- '
b
' plecy
Wartość domyślna to '
rludfb
' .- '
in_frot
out_frot
Ustaw rotację ścian dla wejścia/wyjścia cubemapy. Wybierz jeden kąt dla każdej pozycji.
Oznaczenie kątów:
- '
0
' 0 stopni zgodnie z ruchem wskazówek zegara
- '
1
' 90 stopni zgodnie z ruchem wskazówek zegara
- '
2
' 180 stopni zgodnie z ruchem wskazówek zegara
- '
3
' 270 stopni zgodnie z ruchem wskazówek zegara
Wartość domyślna to '
000000
' .- '
- '
eac
' Równokątowa mapa sześcienna.
- '
flat
' - '
gnomonic
' - '
rectilinear
' Zwykłe wideo.
Opcje specyficzne dla formatu:
h_fov
v_fov
d_fov
Ustaw wyjściowe pole widzenia poziome/pionowe/ukośne. Wartości w stopniach.
Jeśli ustawione jest ukośne pole widzenia, zastępuje ono poziome i pionowe pole widzenia.
ih_fov
iv_fov
id_fov
Ustaw wejściowe poziome/pionowe/ukośne pole widzenia. Wartości w stopniach.
Jeśli ustawione jest ukośne pole widzenia, zastępuje ono poziome i pionowe pole widzenia.
- '
dfisheye
' Podwójne „rybie oko”.
Opcje specyficzne dla formatu:
h_fov
v_fov
d_fov
Ustaw wyjściowe pole widzenia poziome/pionowe/ukośne. Wartości w stopniach.
Jeśli ustawione jest ukośne pole widzenia, zastępuje ono poziome i pionowe pole widzenia.
ih_fov
iv_fov
id_fov
Ustaw wejściowe poziome/pionowe/ukośne pole widzenia. Wartości w stopniach.
Jeśli ustawione jest ukośne pole widzenia, zastępuje ono poziome i pionowe pole widzenia.
- '
barrel
' - '
fb
' - '
barrelsplit
' Formaty 360 Facebooka.
- '
sg
' Format stereograficzny.
Opcje specyficzne dla formatu:
h_fov
v_fov
d_fov
Ustaw wyjściowe pole widzenia poziome/pionowe/ukośne. Wartości w stopniach.
Jeśli ustawione jest ukośne pole widzenia, zastępuje ono poziome i pionowe pole widzenia.
ih_fov
iv_fov
id_fov
Ustaw wejściowe poziome/pionowe/ukośne pole widzenia. Wartości w stopniach.
Jeśli ustawione jest ukośne pole widzenia, zastępuje ono poziome i pionowe pole widzenia.
- '
mercator
' Format Mercatora.
- '
ball
' Forma kulkowa, dająca znaczne zniekształcenie ku tyłowi.
- '
hammer
' Format odwzorowania mapy Hammer-Aitoff.
- '
sinusoidal
' Format odwzorowania mapy sinusoidalnej.
- '
fisheye
' Projekcja rybiego oka.
Opcje specyficzne dla formatu:
h_fov
v_fov
d_fov
Ustaw wyjściowe pole widzenia poziome/pionowe/ukośne. Wartości w stopniach.
Jeśli ustawione jest ukośne pole widzenia, zastępuje ono poziome i pionowe pole widzenia.
ih_fov
iv_fov
id_fov
Ustaw wejściowe poziome/pionowe/ukośne pole widzenia. Wartości w stopniach.
Jeśli ustawione jest ukośne pole widzenia, zastępuje ono poziome i pionowe pole widzenia.
- '
pannini
' Projekcja Panniniego.
Opcje specyficzne dla formatu:
h_fov
Ustaw wyjściowy parametr pannini.
ih_fov
Ustaw wejściowy parametr pannini.
- '
cylindrical
' Rzut cylindryczny.
Opcje specyficzne dla formatu:
h_fov
v_fov
d_fov
Ustaw wyjściowe pole widzenia poziome/pionowe/ukośne. Wartości w stopniach.
Jeśli ustawione jest ukośne pole widzenia, zastępuje ono poziome i pionowe pole widzenia.
ih_fov
iv_fov
id_fov
Ustaw wejściowe poziome/pionowe/ukośne pole widzenia. Wartości w stopniach.
Jeśli ustawione jest ukośne pole widzenia, zastępuje ono poziome i pionowe pole widzenia.
- '
perspective
' Projekcja perspektywiczna. (tylko wyjście)
Opcje specyficzne dla formatu:
v_fov
Ustaw parametr perspektywy.
- '
tetrahedron
' Projekcja czworościanu.
- '
tsp
' Ścięty rzut ostrosłupa kwadratowego.
- '
he
' - '
hequirect
' Rzut półprostokątny.
- '
equisolid
' Format równosolidny.
Opcje specyficzne dla formatu:
h_fov
v_fov
d_fov
Ustaw wyjściowe pole widzenia poziome/pionowe/ukośne. Wartości w stopniach.
Jeśli ustawione jest ukośne pole widzenia, zastępuje ono poziome i pionowe pole widzenia.
ih_fov
iv_fov
id_fov
Ustaw wejściowe poziome/pionowe/ukośne pole widzenia. Wartości w stopniach.
Jeśli ustawione jest ukośne pole widzenia, zastępuje ono poziome i pionowe pole widzenia.
- '
og
' Format ortogonalny.
Opcje specyficzne dla formatu:
h_fov
v_fov
d_fov
Ustaw wyjściowe pole widzenia poziome/pionowe/ukośne. Wartości w stopniach.
Jeśli ustawione jest ukośne pole widzenia, zastępuje ono poziome i pionowe pole widzenia.
ih_fov
iv_fov
id_fov
Ustaw wejściowe poziome/pionowe/ukośne pole widzenia. Wartości w stopniach.
Jeśli ustawione jest ukośne pole widzenia, zastępuje ono poziome i pionowe pole widzenia.
- '
octahedron
' Rzut ośmiościanu.
- '
cylindricalea
' Cylindryczna projekcja równopowierzchniowa.
- '
interp
Ustaw metodę interpolacji.
Uwaga: bardziej złożone metody interpolacji wymagają znacznie więcej pamięci do uruchomienia.Dostępne metody:
- '
near
' - '
nearest
' Najbliższy sąsiad.
- '
line
' - '
linear
' Interpolacja dwuliniowa.
- '
lagrange9
' Interpolacja Lagrange9.
- '
cube
' - '
cubic
' Interpolacja dwusześcienna.
- '
lanc
' - '
lanczos
' Interpolacja Lanczosa.
- '
sp16
' - '
spline16
' Interpolacja Spline16.
- '
gauss
' - '
gaussian
' Interpolacja Gaussa.
- '
mitchell
' Interpolacja Mitchella.
Wartość domyślna to '
line
' .- '
w
h
Ustaw wyjściową rozdzielczość wideo.
Domyślna rozdzielczość zależy od formatów.
in_stereo
out_stereo
Ustaw format wejścia/wyjścia stereo.
- '
2d
' monochromatyczny 2D
- '
sbs
' Obok siebie
- '
tb
' Góra dół
Wartość domyślna to '
2d
' dla formatu wejściowego i wyjściowego.- '
yaw
pitch
roll
Ustaw obrót wyjściowego wideo. Wartości w stopniach.
rorder
Ustaw kolejność rotacji dla wyjściowego wideo. Wybierz jeden przedmiot dla każdej pozycji.
- '
y, Y
' myszkować
- '
p, P
' poziom
- '
r, R
' rolka
Wartość domyślna to '
ypr
' .- '
h_flip
v_flip
d_flip
Odwróć wyjściowe wideo poziomo (zamienia lewo-prawo)/pionowo (zamienia górę-dół)/dogłębnie (zamienia wstecz-do przodu). Wartości logiczne.
ih_flip
iv_flip
Ustaw, czy wejście wideo ma być odwrócone poziomo/pionowo. Wartości logiczne.
in_trans
Ustaw, czy wejściowy sygnał wideo jest transponowany. Wartość logiczna, domyślnie wyłączona.
out_trans
Ustaw, czy wyjściowy sygnał wideo ma być transponowany. Wartość logiczna, domyślnie wyłączona.
h_offset
v_offset
Ustaw wyjściowe przesunięcie w poziomie/pionie poza osią. Wartość domyślna to 0. Dozwolony zakres to od -1 do 1.
alpha_mask
Zbuduj maskę w płaszczyźnie alfa dla wszystkich niezmapowanych pikseli, oznaczając je w pełni przezroczystymi. Wartość logiczna, domyślnie wyłączona.
reset_rot
Zresetuj obrót wyjściowego wideo. Wartość logiczna, domyślnie wyłączona.
11.261.1 Examples
- Konwertuj wideo w formacie equirectangular na cubemapę z układem 3x2 i wypełnieniem 1% za pomocą interpolacji dwusześciennej:
ffmpeg -i input.mkv -vf v360=e:c3x2:cubic:out_pad=0.01 output.mkv
- Wyodrębnij widok z tyłu mapy sześciennej równokątowej:
ffmpeg -i input.mkv -vf v360=eac:flat:yaw=180 output.mkv
- Konwertuj transponowaną i odwróconą w poziomie Equi-Angular Cubemap w formacie stereo side-by-side na format stereo równoprostokątny góra-dół:
v360=eac:equirect:in_stereo=sbs:in_trans=1:ih_flip=1:out_stereo=tb
11.261.2 Commands
Ten filtr obsługuje podzbiór powyższych opcji jako komendy .
11.262 vaguedenoiser
Zastosuj denoiser na bazie falek.
Przekształca każdą klatkę z wejścia wideo na domenę falkową, używając Cohen-Daubechies-Feauveau 9/7. Następnie stosuje pewne filtrowanie do uzyskanych współczynników. Następnie wykonuje odwrotną transformację falkową. Ze względu na właściwości falki powinien dawać ładny, wygładzony efekt i zmniejszony szum, bez rozmycia cech obrazu.
Ten filtr akceptuje następujące opcje:
threshold
Siła filtrowania. Im wyższy, tym bardziej filtrowany będzie film. Twarde progowanie może wykorzystywać wyższy próg niż progowanie miękkie, zanim wideo będzie wyglądało na przefiltrowane. Wartość domyślna to 2.
method
Metoda filtrowania, której użyje filtr.
Przyjmuje następujące wartości:
- '
hard
' Wszystkie wartości poniżej progu zostaną wyzerowane.
- '
soft
' Wszystkie wartości poniżej progu zostaną wyzerowane. Wszystkie powyższe wartości zostaną zmniejszone o próg.
- '
garrote
' Skaluje lub unieważnia współczynniki - pośrednie między (bardziej) miękkim i (mniej) twardym progiem.
Domyślnie jest garota.
- '
nsteps
Ile razy falka rozłoży obraz. Obraz nie może zostać rozłożony poza określony punkt (zazwyczaj 8 dla klatki 640x480 - jako 2^9 = 512 > 480). Prawidłowe wartości to liczby całkowite od 1 do 32. Wartość domyślna to 6.
percent
Częściowe pełne odszumianie (ograniczone zmniejszanie się współczynników), od 0 do 100. Wartość domyślna to 85.
planes
Lista samolotów do przetworzenia. Domyślnie przetwarzane są wszystkie płaszczyzny.
type
Typ progu, który będzie używany przez filtr.
Przyjmuje następujące wartości:
- '
universal
' Zastosowany próg jest taki sam dla wszystkich dekompozycji.
- '
bayes
' Stosowany próg zależy również od poszczególnych współczynników dekompozycji.
Domyślnie jest uniwersalny.
- '
11.263 varblur
Zastosuj zmienny filtr rozmycia, używając drugiego strumienia wideo, aby ustawić promień rozmycia. Drugi strumień musi mieć te same wymiary.
Ten filtr akceptuje następujące opcje:
min_r
Ustaw minimalny dozwolony promień. Dozwolony zakres to od 0 do 254. Wartość domyślna to 0.
max_r
Ustaw maksymalny dozwolony promień. Dozwolony zakres to od 1 do 255. Wartość domyślna to 8.
planes
Ustaw samoloty do przetworzenia. Domyślnie używane są wszystkie.
Filtr varblur
obsługuje również opcje framesync .
11.263.1 Commands
Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .
11.264 vectorscope
Wyświetl 2 wartości składowych kolorów na wykresie dwuwymiarowym (nazywanym wektoroskopem).
Ten filtr akceptuje następujące opcje:
mode, m
Ustaw tryb wektoroskopu.
Przyjmuje następujące wartości:
- '
gray
' - '
tint
' Wartości szarości są wyświetlane na wykresie, wyższa jasność oznacza, że ​​więcej pikseli ma tę samą wartość koloru składnika w lokalizacji na wykresie. To jest tryb domyślny.
- '
color
' Wartości szarości są wyświetlane na wykresie. Wartości otaczających pikseli, które nie występują w klatce wideo są rysowane w gradiencie 2 składowych kolorów, które są ustawione przez opcję
x
iy
. Trzeci składnik koloru jest statyczny.- '
color2
' Rzeczywiste wartości składowych kolorów obecnych w ramce wideo są wyświetlane na wykresie.
- '
color3
' Podobnie jak color2 ale wyższa częstotliwość tych samych wartości
x
iy
na wykresie zwiększa wartość innego składnika koloru jakim jest luminancja domyślnie wartościx
iy
.- '
color4
' Aktualne kolory obecne w kadrze wideo są wyświetlane na wykresie. Jeżeli dwa różne kolory mapują się do tej samej pozycji na wykresie, to wybierany jest kolor o wyższej wartości składnika nieobecnego na wykresie.
- '
color5
' Wartości szarości są wyświetlane na wykresie. Podobny,
color
ale z trzecim składnikiem koloru pobranym z gradientu promieniowego.
- '
x
Ustaw, który składnik koloru będzie reprezentowany na osi X. Wartość domyślna to
1
.y
Ustaw, który składnik koloru będzie reprezentowany na osi Y. Wartość domyślna to
2
.intensity, i
Ustaw intensywność, używaną przez tryby: grey, color, color3 i color5 do zwiększania jasności składowej koloru, która reprezentuje częstotliwość lokalizacji (X, Y) na wykresie.
envelope, e
- '
none
' Brak koperty, to jest ustawienie domyślne.
- '
instant
' Natychmiastowa koperta, nawet najciemniejszy pojedynczy piksel będzie wyraźnie podświetlony.
- '
peak
' Utrzymuj maksymalne i minimalne wartości przedstawione na wykresie w czasie. W ten sposób nadal możesz wykryć wartości spoza zakresu bez ciągłego patrzenia na wektoroskop.
- '
peak+instant
' Obwiednia szczytowa i natychmiastowa połączone razem.
- '
graticule, g
Ustaw rodzaj siatki do rysowania.
- '
none
' - '
green
' - '
color
' - '
invert
'
- '
opacity, o
Ustaw przezroczystość siatki.
flags, f
Ustaw flagi siatki.
- '
white
' Narysuj siatkę dla białego punktu.
- '
black
' Narysuj siatkę dla czarnego punktu.
- '
name
' Narysuj krótkie nazwy punktów koloru.
- '
bgopacity, b
Ustaw krycie tła.
lthreshold, l
Ustaw dolny próg dla składnika koloru, który nie jest reprezentowany na osi X lub Y. Wartości niższe od tej wartości będą ignorowane. Wartość domyślna to 0. Zauważ, że ta wartość jest mnożona przez rzeczywistą maksymalną możliwą wartość, jaką może mieć jeden składnik piksela. Tak więc dla wejścia 8-bitowego i dolnego progu wartość 0,1 rzeczywistego progu wynosi 0,1 * 255 = 25.
hthreshold, h
Ustaw górny próg dla składnika koloru, który nie jest reprezentowany na osi X lub Y. Wartości wyższe od tej wartości będą ignorowane. Wartość domyślna to 1. Zauważ, że ta wartość jest mnożona przez rzeczywistą maksymalną możliwą wartość, jaką może mieć jeden składnik piksela. Tak więc dla wejścia 8-bitowego i górnego progu wartość 0,9 rzeczywistego progu wynosi 0,9 * 255 = 230.
colorspace, c
Ustaw rodzaj przestrzeni kolorów, która ma być używana podczas rysowania siatki.
- '
auto
' - '
601
' - '
709
'
Domyślnie jest to auto.
- '
tint0, t0
tint1, t1
Ustaw odcień koloru dla trybu wektoroskopu szary/odcień. Domyślnie obie opcje mają wartość zero. Oznacza to brak odcienia, a wydruk pozostanie szary.
11.265 vidstabdetect
Przeanalizuj stabilizację wideo/otrząsanie się. Wykonaj krok 1 z 2, zobacz vidstabtransform dla kroku 2.
Ten filtr generuje plik z informacjami o względnym przesunięciu i przekształceniu rotacji o kolejnych klatkach, który jest następnie używany przez filtr vidstabtransform .
Aby umożliwić kompilację tego filtra musisz skonfigurować FFmpeg z
--enable-libvidstab
.
Ten filtr akceptuje następujące opcje:
result
Ustaw ścieżkę do pliku używanego do zapisywania informacji o przekształceniach. Wartość domyślna to
transforms.trf
.shakiness
Ustaw, jak chwiejny jest film i jak szybki jest aparat. Przyjmuje liczbę całkowitą z zakresu 1-10, wartość 1 oznacza małą drżenie, wartość 10 oznacza silne drżenie. Wartość domyślna to 5.
accuracy
Ustaw dokładność procesu wykrywania. Musi to być wartość z zakresu 1-15. Wartość 1 oznacza niską dokładność, wartość 15 oznacza wysoką dokładność. Wartość domyślna to 15.
stepsize
Ustaw wielkość kroku procesu wyszukiwania. Obszar wokół minimum jest skanowany z rozdzielczością 1 piksela. Wartość domyślna to 6.
mincontrast
Ustaw minimalny kontrast. Poniżej tej wartości lokalne pole pomiaru jest odrzucane. Musi być wartością zmiennoprzecinkową z zakresu 0-1. Wartość domyślna to 0,3.
tripod
Ustaw numer klatki odniesienia dla trybu statywu.
Jeśli ta opcja jest włączona, ruch ramek jest porównywany z ramką odniesienia w filtrowanym strumieniu, identyfikowaną przez określony numer. Chodzi o to, aby skompensować wszystkie ruchy w mniej lub bardziej statycznej scenie i zachować absolutnie nieruchomy widok z kamery.
Jeśli jest ustawiony na 0, jest wyłączony. Klatki liczone są od 1.
show
Pokaż pola i przekształcenia w wynikowych ramkach. Przyjmuje liczbę całkowitą z zakresu 0-2. Wartość domyślna to 0, co wyłącza dowolną wizualizację.
11.265.1 Examples
- Użyj wartości domyślnych:
vidstabdetect
- Przeanalizuj mocno chwiejny film i umieść wyniki w pliku
mytransforms.trf
:vidstabdetect=shakiness=10:accuracy=15:result="mytransforms.trf"
- Wizualizuj wynik wewnętrznych przekształceń w powstałym filmie:
vidstabdetect=show=1
- Przeanalizuj film o średnim stopniu drżenia, używając
ffmpeg
:ffmpeg -i input -vf vidstabdetect=shakiness=5:show=1 dummy.avi
11.266 vidstabtransform
Stabilizacja wideo/deshaking: przejście 2 z 2, patrz vidstabdetect dla przejścia 1.
Przeczytaj plik z informacjami o transformacji dla każdej klatki i zastosuj/skompensuj je. Razem z filtrem vidstabdetect może być używany do rozbijania filmów. Zobacz także http://public.hronopik.de/vid.stab . Ważne jest, aby używać również filtra nieostrego , patrz poniżej.
Aby umożliwić kompilację tego filtra musisz skonfigurować FFmpeg z
--enable-libvidstab
.
11.266.1 Options
input
Ustaw ścieżkę do pliku używanego do odczytu przekształceń. Wartość domyślna to
transforms.trf
.smoothing
Ustaw liczbę klatek (wartość*2 + 1) używanych do dolnoprzepustowego filtrowania ruchów kamery. Wartość domyślna to 10.
Na przykład liczba 10 oznacza, że ​​wykorzystano 21 klatek (10 w przeszłości i 10 w przyszłości), aby wygładzić ruch w filmie. Większa wartość prowadzi do płynniejszego wideo, ale ogranicza przyspieszenie kamery (ruchy pan/tilt). 0 to szczególny przypadek, w którym symulowana jest kamera statyczna.
optalgo
Ustaw algorytm optymalizacji ścieżki kamery.
Akceptowane wartości to:
- '
gauss
' filtr dolnoprzepustowy jądra Gaussa przy ruchu kamery (domyślnie)
- '
avg
' uśrednianie na przekształceniach
- '
maxshift
Ustaw maksymalną liczbę pikseli do przetłumaczenia klatek. Wartość domyślna to -1, co oznacza brak limitu.
maxangle
Ustaw maksymalny kąt w radianach (stopnie*PI/180), aby obrócić klatki. Wartość domyślna to -1, co oznacza brak limitu.
crop
Określ, jak radzić sobie z granicami, które mogą być widoczne z powodu kompensacji ruchu.
Dostępne wartości to:
- '
keep
' zachowaj informacje o obrazie z poprzedniej klatki (domyślnie)
- '
black
' wypełnij czarne obramowanie
- '
invert
Odwróć transformacje, jeśli ustawiono na 1. Wartość domyślna to 0.
relative
Rozważ transformacje jako względne w stosunku do poprzedniej klatki, jeśli jest ustawione na 1, bezwzględne, jeśli ustawione na 0. Wartość domyślna to 0.
zoom
Ustaw procent do powiększenia. Wartość dodatnia spowoduje efekt powiększenia, a wartość ujemna efekt oddalenia. Wartość domyślna to 0 (bez powiększenia).
optzoom
Ustaw optymalne powiększenie, aby uniknąć obramowań.
Akceptowane wartości to:
- '
0
' wyłączone
- '
1
' określana jest optymalna wartość powiększenia statycznego (tylko bardzo silne ruchy prowadzą do widocznych granic) (domyślnie)
- '
2
' określana jest optymalna wartość powiększenia adaptacyjnego (brak będzie widocznych granic), patrz
zoomspeed
Zauważ, że wartość podana przy powiększeniu jest dodawana do obliczonej tutaj.
- '
zoomspeed
Ustaw procent, aby maksymalnie powiększyć każdą klatkę (włączone, gdy
optzoom
jest ustawiony na 2). Zakres wynosi od 0 do 5, domyślna wartość to 0,25.interpol
Określ typ interpolacji.
Dostępne wartości to:
- '
no
' bez interpolacji
- '
linear
' liniowa tylko pozioma
- '
bilinear
' liniowy w obu kierunkach (domyślnie)
- '
bicubic
' sześcienny w obu kierunkach (wolno)
- '
tripod
Włącz tryb wirtualnego statywu, jeśli jest ustawiony na 1, co odpowiada
relative=0:smoothing=0
. Wartość domyślna to 0.Użyj również
tripod
opcji vidstabdetect .debug
Zwiększ szczegółowość dziennika, jeśli jest ustawiona na 1. Również wykryte ruchy globalne są zapisywane w pliku tymczasowym
global_motions.trf
. Wartość domyślna to 0.
11.266.2 Examples
- Użyj
ffmpeg
dla typowej stabilizacji z wartościami domyślnymi:ffmpeg -i inp.mpeg -vf vidstabtransform,unsharp=5:5:0.8:3:3:0.4 inp_stabilized.mpeg
Zwróć uwagę na użycie nieostrego , który jest zawsze zalecany.
- Powiększ trochę i wczytaj dane transformacji z danego pliku:
vidstabtransform=zoom=5:input="mytransforms.trf"
- Wygładź wideo jeszcze bardziej:
vidstabtransform=smoothing=30
11.267 vflip
Odwróć wejściowy obraz wideo w pionie.
Na przykład, aby obrócić wideo w pionie za pomocą ffmpeg
:
ffmpeg -i in.avi -vf "vflip" out.avi
11.268 vfrdet
Wykryj wideo ze zmienną liczbą klatek na sekundę.
Ten filtr próbuje wykryć, czy dane wejściowe są zmienne, czy stałe.
Na koniec wypisze liczbę ramek wykrytych jako posiadające zmienną delta pts i te ze stałą delta pts. Jeśli były klatki ze zmienną deltą, to pokaże również napotkaną minimalną, maksymalną i średnią deltę.
11.269 vibrance
Zwiększ lub zmień nasycenie.
Filtr akceptuje następujące opcje:
intensity
Ustaw siłę wzmocnienia, jeśli wartość dodatnią lub siłę zmiany, jeśli wartość ujemną. Wartość domyślna to 0. Dozwolony zakres to od -2 do 2.
rbal
Ustaw balans czerwieni. Wartość domyślna to 1. Dozwolony zakres to od -10 do 10.
gbal
Ustaw zielony balans. Wartość domyślna to 1. Dozwolony zakres to od -10 do 10.
bbal
Ustaw balans koloru niebieskiego. Wartość domyślna to 1. Dozwolony zakres to od -10 do 10.
rlum
Ustaw czerwony współczynnik luma.
glum
Ustaw zielony współczynnik luma.
blum
Ustaw niebieski współczynnik luma.
alternate
Jeśli
intensity
jest ujemny i jest ustawiony na 1, kolory się zmienią, w przeciwnym razie kolory będą mniej nasycone, bardziej w kierunku szarości.
11.269.1 Commands
Ten filtr obsługuje wszystkie powyższe opcje jako polecenia .
11.270 vif
Uzyskaj średnią wartość VIF (Visual Information Fidelity) między dwoma wejściowymi filmami wideo.
Ten filtr pobiera dwa wideo wejściowe.
Aby ten filtr działał poprawnie, oba wideo wejściowe muszą mieć tę samą rozdzielczość i format pikseli. Zakłada również, że oba wejścia mają taką samą liczbę klatek, które są porównywane jedna po drugiej.
Uzyskany średni wynik VIF jest drukowany przez system rejestrowania.
Filtr przechowuje obliczony wynik VIF każdej klatki.
W poniższym przykładzie plik wejściowymain.mpg
przetwarzany jest porównywany z plikiem referencyjnymref.mpg
.
ffmpeg -i main.mpg -i ref.mpg -lavfi vif -f null -
11.271 vignette
Stwórz lub odwróć naturalny efekt winietowania.
Filtr akceptuje następujące opcje:
angle, a
Ustaw wyrażenie kąta obiektywu jako liczbę radianów.
Wartość jest obcinana w
[0,PI/2]
zakresie.Domyślna wartość:
"PI/5"
x0
y0
Ustaw wyrażenia współrzędnych środka. Odpowiednio
"w/2"
i"h/2"
domyślnie.mode
Ustaw tryb do przodu/do tyłu.
Dostępne tryby to:
- '
forward
' Im większa odległość od centralnego punktu, tym ciemniejszy staje się obraz.
- '
backward
' Im większa odległość od centralnego punktu, tym jaśniejszy obraz. Można to wykorzystać do odwrócenia efektu winietowania, chociaż nie ma automatycznego wykrywania w celu wyciągnięcia soczewki
angle
i inne ustawienia (jeszcze). Może być również używany do tworzenia efektu spalania.
Wartość domyślna to '
forward
„.- '
eval
Ustaw tryb oceny dla wyrażeń (
angle
,x0
,y0
).Przyjmuje następujące wartości:
- '
init
' Oceniaj wyrażenia tylko raz podczas inicjowania filtru.
- '
frame
' Oceń wyrażenia dla każdej przychodzącej ramki. To jest o wiele wolniejsze niż „
init
', ponieważ wymaga ponownego obliczenia wszystkich skalerów, ale umożliwia zaawansowane wyrażenia dynamiczne.
Wartość domyślna to '
init
„.- '
dither
Ustaw dithering, aby zredukować efekty kołowych pasm. Wartość domyślna to
1
(włączone).aspect
Ustaw aspekt winiety. To ustawienie pozwala dostosować kształt winiety. Ustawienie tej wartości na SAR wejścia spowoduje prostokątne winietowanie zgodne z wymiarami wideo.
Wartość domyślna to
1/1
.
11.271.1 Expressions
Thealpha
,x0
orazy0
wyrażenia mogą zawierać następujące parametry.
w
h
szerokość i wysokość wejściowa
n
liczba klatek wejściowych, zaczynając od 0
pts
czas PTS (Presentation TimeStamp) przefiltrowanej klatki wideo, wyrażony w
TB
jednostkach, NAN, jeśli niezdefiniowanyr
liczba klatek na sekundę wejściowego wideo, NAN, jeśli liczba klatek na sekundę wejściowa jest nieznana
t
PTS (Presentation TimeStamp) przefiltrowanej klatki wideo, wyrażony w sekundach, NAN, jeśli niezdefiniowany
tb
podstawa czasu wejściowego wideo
11.271.2 Examples
- Zastosuj prosty, mocny efekt winietowania:
vignette=PI/4
- Zrób migoczące winietowanie:
vignette='PI/4+random(1)*PI/50':eval=frame
11.272 vmafmotion
Uzyskaj średni wynik ruchu VMAF filmu. Jest to jedna z metryk składowych VMAF.
Uzyskany średni wynik ruchu jest drukowany przez system rejestrowania.
Filtr akceptuje następujące opcje:
stats_file
Jeśli zostanie określony, filtr użyje nazwanego pliku do zapisania wyniku ruchu każdej klatki w odniesieniu do poprzedniej klatki. Gdy nazwa pliku jest równa "-" dane są wysyłane na standardowe wyjście.
Przykład:
ffmpeg -i ref.mpg -vf vmafmotion -f null -
11.273 vstack
Ułóż wideo wejściowe w pionie.
Wszystkie strumienie muszą mieć ten sam format pikseli i tę samą szerokość.
Pamiętaj, że ten filtr jest szybszy niż użycie nakładki i podkładki do stworzenia tego samego wyjścia.
Filtr akceptuje następujące opcje:
inputs
Ustaw liczbę strumieni wejściowych. Wartość domyślna to 2.
shortest
Jeśli jest ustawiony na 1, wymusza zakończenie wyjścia po zakończeniu najkrótszego wejścia. Wartość domyślna to 0.
11.274 w3fdif
Usuń przeplot wideo wejściowego („w3fdif” oznacza „Weston 3 Field Deinterlacing Filter”).
W oparciu o proces opisany przez Martina Westona dla BBC R&D i zaimplementowany w oparciu o algorytm usuwania przeplotu napisany przez Jima Easterbrooka dla BBC R&D, filtr usuwania przeplotu z pól Weston 3 wykorzystuje współczynniki filtru obliczone przez BBC R&D.
Ten filtr wykorzystuje informacje o dominacji pól w ramce, aby zdecydować, które z każdej pary pól umieścić jako pierwsze w danych wyjściowych. Jeśli się nie powiedzie, użyj filtra setfield przed w3fdif
filtrem.
Istnieją dwa zestawy współczynników filtra, tzw. „prosty” i „złożony”. Który zestaw współczynników filtra jest używany, można ustawić, przekazując opcjonalny parametr:
filter
Ustaw współczynniki filtra przeplotu. Akceptuje jedną z następujących wartości:
- '
simple
' Prosty zestaw współczynników filtra.
- '
complex
' Bardziej złożony zestaw współczynników filtra.
Wartość domyślna to '
complex
„.- '
mode
Tryb przeplotu do przyjęcia. Przyjmuje jedną z następujących wartości:
frame
Wyprowadza jedną klatkę na każdą klatkę.
field
Wyprowadza jedną ramkę dla każdego pola.
Wartość domyślna to
field
.parity
Parzystość pola obrazu przyjęta dla wejściowego wideo z przeplotem. Przyjmuje jedną z następujących wartości:
tff
Załóżmy, że górne pole jest pierwsze.
bff
Załóżmy, że dolne pole jest pierwsze.
auto
Włącz automatyczne wykrywanie parzystości pola.
Wartość domyślna to
auto
. Jeśli przeplot jest nieznany lub dekoder nie eksportuje tych informacji, jako pierwsze zostanie przyjęte górne pole.deint
Określ, które klatki usunąć z przeplotu. Akceptuje jedną z następujących wartości:
- '
all
' Usuń przeplot ze wszystkich klatek,
- '
interlaced
' Usuwaj tylko klatki oznaczone jako z przeplotem.
Wartość domyślna to '
all
„.- '
11.274.1 Commands
Ten filtr obsługuje te same polecenia, co opcje.
11.275 waveform
Monitor przebiegu wideo.
Monitor przebiegu kreśli intensywność składowej koloru. Domyślnie tylko luminancja. Każda kolumna przebiegu odpowiada kolumnie pikseli w źródłowym wideo.
Akceptuje następujące opcje:
mode, m
Może być
row
, lubcolumn
. Wartość domyślna tocolumn
. W trybie wierszowym wykres po lewej stronie przedstawia wartość składowej koloru 0, a po prawej wartość składową koloru 255. W trybie kolumnowym górna strona przedstawia wartość składowej koloru 0, a dolna wartość składową 255.intensity, i
Ustaw intensywność. Mniejsze wartości są przydatne do sprawdzenia, ile wartości tej samej luminancji jest rozłożonych na wejściowe wiersze/kolumny. Wartość domyślna to
0.04
. Dozwolony zakres to [0, 1].mirror, r
Ustaw tryb dublowania.
0
oznacza bez lustra,1
oznacza lustrzane. W trybie lustrzanym wyższe wartości będą reprezentowane po lewej stronie dlarow
trybu i na górze dlacolumn
trybu. Wartość domyślna to1
(dublowane).display, d
Ustaw tryb wyświetlania. Przyjmuje następujące wartości:
- '
overlay
' Przedstawia informacje identyczne jak w
parade
, z tą różnicą, że wykresy przedstawiające składowe kolorów nakładają się bezpośrednio na siebie.Ten tryb wyświetlania ułatwia dostrzeżenie względnych różnic lub podobieństw w nakładających się obszarach składników kolorów, które powinny być identyczne, takich jak neutralna biel, szarość lub czerń.
- '
stack
' Wyświetl osobny wykres dla składników koloru obok siebie w
row
trybie lub jeden pod drugim wcolumn
trybie.- '
parade
' Wyświetl osobny wykres dla składników koloru obok siebie w
column
trybie lub jeden pod drugim wrow
trybie.Korzystanie z tego trybu wyświetlania ułatwia dostrzeżenie przebarwień w światłach i cieniach obrazu, porównując kontury górnego i dolnego wykresu każdego przebiegu. Ponieważ biel, szarość i czerń charakteryzują się dokładnie równymi ilościami czerwieni, zieleni i niebieskiego, neutralne obszary obrazu powinny wyświetlać trzy przebiegi o mniej więcej równej szerokości/wysokości. Jeśli nie, korekta jest łatwa do wykonania, dostosowując poziom trzech przebiegów.
Wartość domyślna to
stack
.- '
components, c
Ustaw, które składniki kolorów mają być wyświetlane. Wartość domyślna to 1, co oznacza tylko luminancję lub składową koloru czerwonego, jeśli wejście jest w przestrzeni kolorów RGB. Jeśli jest ustawiony na przykład na 7, wyświetli wszystkie 3 (jeśli) dostępne składniki kolorów.
envelope, e
- '
none
' Brak koperty, to jest ustawienie domyślne.
- '
instant
' Natychmiastowa koperta, wartości minimalne i maksymalne prezentowane na wykresie będą dobrze widoczne nawet przy małej
step
wartości.- '
peak
' Utrzymuj minimalne i maksymalne wartości przedstawione na wykresie w czasie. W ten sposób możesz nadal wykrywać wartości spoza zakresu bez ciągłego patrzenia na przebiegi.
- '
peak+instant
' Obwiednia szczytowa i natychmiastowa połączone razem.
- '
filter, f
- '
lowpass
' Brak filtrowania, jest to ustawienie domyślne.
- '
flat
' Luma i chroma połączone razem.
- '
aflat
' Podobnie jak powyżej, ale pokazuje różnicę między niebieskim i czerwonym nasyceniem.
- '
xflat
' Podobnie jak powyżej, ale użyj innych kolorów.
- '
yflat
' Podobnie jak powyżej, ale znowu w innych kolorach.
- '
chroma
' Wyświetla tylko kolor.
- '
color
' Wyświetla aktualną wartość koloru na przebiegu.
- '
acolor
' Podobnie jak powyżej, ale z lumą pokazującą częstotliwość wartości chrominancji.
- '
graticule, g
Ustaw siatkę do wyświetlenia.
- '
none
' Nie wyświetlaj siatki.
- '
green
' Wyświetl zieloną siatkę pokazującą legalne zasięgi transmisji.
- '
orange
' Wyświetl pomarańczową siatkę pokazującą legalne zasięgi transmisji.
- '
invert
' Wyświetl siatkę odwróconą pokazującą legalne zasięgi transmisji.
- '
opacity, o
Ustaw przezroczystość siatki.
flags, fl
Ustaw flagi siatki.
- '
numbers
' Narysuj liczby nad liniami. Domyślnie włączone.
- '
dots
' Narysuj kropki zamiast linii.
- '
scale, s
Ustaw skalę używaną do wyświetlania siatki.
- '
digital
' - '
millivolts
' - '
ire
'
Domyślnie jest to cyfrowe.
- '
bgopacity, b
Ustaw krycie tła.
tint0, t0
tint1, t1
Ustaw odcień wydruku. Używany tylko z filtrem dolnoprzepustowym i gdy wyświetlacz nie jest nałożony, a formaty pikseli wejściowych nie są RGB.
fitmode, fm
Ustaw przykładowe proporcje klatek wyjściowych wideo. Może służyć do konfiguracji przebiegu tak, aby nie był zbytnio rozciągnięty w jednym z kierunków.
- '
none
' Ustaw proporcje próbki na 1/1.
- '
size
' Ustaw przykładowe proporcje, aby dopasować rozmiar wejściowy wideo
Wartość domyślna to '
none
„.- '
11.276 weave, doubleweave
Theweave
polach i łączy każde dwa kolejne pola w pojedynczą klatkę, tworząc nowy klip o podwójnej wysokości z połową szybkości klatek i połową liczby klatek.
doubleweave
Działa tak samo, ale bez zmniejszania o weave
połowę liczby klatek na sekundę i liczby klatek.
Akceptuje następującą opcję:
first_field
Ustaw pierwsze pole. Dostępne wartości to:
- '
top, t
' Ustaw ramkę jako pierwszą w górnym polu.
- '
bottom, b
' Ustaw ramkę jako najpierw dolne pole.
- '
11.276.1 Examples
- Wideo z przeplotem przy użyciu filtru
wyboru i rozdzielania pól:
separatefields,select=eq(mod(n,4),0)+eq(mod(n,4),3),weave
11.277 xbr
Zastosuj wysokiej jakości filtr powiększenia xBR, który jest przeznaczony do sztuki pikselowej. Jest zgodny z zestawem reguł wykrywania krawędzi, zobacz https://forums.libretro.com/t/xbr-algorithm-tutorial/123 .
Akceptuje następującą opcję:
n
Ustaw wymiar skalowania:
2
for2xBR
,3
for3xBR
i4
for4xBR
. Wartość domyślna to3
.
11.278 xcorrelate
Zastosuj znormalizowaną korelację krzyżową między pierwszym i drugim wejściowym strumieniem wideo.
Wymiary drugiego wejściowego strumienia wideo muszą być mniejsze niż pierwszego wejściowego strumienia wideo.
Filtr akceptuje następujące opcje:
planes
Ustaw samoloty do przetworzenia.
secondary
Ustaw, które drugorzędne klatki wideo będą przetwarzane z drugiego wejściowego strumienia wideo, może to być
first
luball
. Wartość domyślna toall
.
Filtr xcorrelate
obsługuje również opcje framesync .
11.279 xfade
Zastosuj przenikanie z jednego wejściowego strumienia wideo do innego wejściowego strumienia wideo. Przenikanie jest stosowane przez określony czas.
Oba wejścia muszą mieć stałą liczbę klatek na sekundę i mieć tę samą rozdzielczość, format pikseli, liczbę klatek na sekundę i podstawę czasu.
Filtr akceptuje następujące opcje:
transition
Ustaw jeden z dostępnych efektów przejścia:
- '
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
'
Domyślny efekt przejścia to zanikanie.
- '
duration
Ustaw czas przenikania w sekundach. Zakres wynosi od 0 do 60 sekund. Domyślny czas trwania to 1 sekunda.
offset
Ustaw początek przenikania w stosunku do pierwszego strumienia wejściowego w sekundach. Domyślne przesunięcie to 0.
expr
Ustaw wyrażenie dla niestandardowego efektu przejścia.
Wyrażenia mogą wykorzystywać następujące zmienne i funkcje:
X
Y
Współrzędne bieżącej próbki.
W
H
Szerokość i wysokość obrazu.
P
Postęp efektu przejścia.
PLANE
Obecnie przetworzony samolot.
A
Zwraca wartość pierwszego wejścia w bieżącej lokalizacji i płaszczyźnie.
B
Zwraca wartość drugiego wejścia w bieżącej lokalizacji i płaszczyźnie.
a0(x, y)
a1(x, y)
a2(x, y)
a3(x, y)
Zwraca wartość piksela w lokalizacji (
x
,y
) pierwszego/drugiego/trzeciego/czwartego składnika pierwszego wejścia.b0(x, y)
b1(x, y)
b2(x, y)
b3(x, y)
Zwraca wartość piksela w lokalizacji (
x
,y
) pierwszego/drugiego/trzeciego/czwartego składnika drugiego wejścia.
11.279.1 Examples
- Przenikanie z jednego wejściowego wideo do drugiego wejściowego wideo, z przejściem zanikania i czasem trwania przejścia 2 sekundy, począwszy od przesunięcia 5 sekund:
ffmpeg -i first.mp4 -i second.mp4 -filter_complex xfade=transition=fade:duration=2:offset=5 output.mp4
11.280 xmedian
Wybierz medianę pikseli z kilku wejściowych filmów wideo.
Filtr akceptuje następujące opcje:
inputs
Ustaw liczbę wejść. Domyślnie 3. Dozwolony zakres to od 3 do 255. Jeżeli liczba wejść jest parzysta, to wynik będzie wartością średnią pomiędzy dwiema medianami.
planes
Ustaw samoloty do filtrowania. Wartość domyślna to
15
, według której przetwarzane są wszystkie płaszczyzny.percentile
Ustaw medianę percentyla. Wartość domyślna to
0.5
. Domyślna wartość0.5
wybierze zawsze wartości mediany, podczas gdy0
wybierze wartości minimalne i1
maksymalne.
11.280.1 Commands
Ten filtr obsługuje wszystkie powyższe opcje jako komendy , wyłączając opcję inputs
.
11.281 xstack
Układaj wejścia wideo w niestandardowy układ.
Wszystkie strumienie muszą mieć ten sam format pikseli.
Filtr akceptuje następujące opcje:
inputs
Ustaw liczbę strumieni wejściowych. Wartość domyślna to 2.
layout
Określ układ wejść. Ta opcja wymaga, aby żądana konfiguracja układu została jawnie ustawiona przez użytkownika. Ustawia to pozycję każdego wejścia wideo na wyjściu. Każde wejście jest oddzielone znakiem „|”. Pierwsza liczba reprezentuje kolumnę, a druga liczba reprezentuje wiersz. Liczby zaczynają się od 0 i są oddzielone '_'. Opcjonalnie można użyć wX i hX, gdzie X to wejście wideo, z którego pobierana jest szerokość lub wysokość. Można użyć wielu wartości rozdzielonych znakiem „+”. W takim przypadku wartości są sumowane.
Zwróć uwagę, że jeśli wejścia mają różne rozmiary, mogą pojawić się przerwy, ponieważ nie cała wyjściowa klatka wideo zostanie wypełniona. Podobnie filmy mogą się na siebie nakładać, jeśli ich pozycja nie pozostawia wystarczająco dużo miejsca na całą klatkę sąsiednich filmów.
Dla 2 wejść ustawiony jest domyślny układ
0_0|w0_0
(odpowiednikgrid=2x1
). We wszystkich innych przypadkach układ lub siatka musi być ustawiona przez użytkownika. Albogrid
lublayout
można określić na raz. Określenie obu spowoduje błąd.grid
Określ siatkę danych wejściowych o stałym rozmiarze. Ta opcja służy do tworzenia siatki o stałym rozmiarze strumieni wejściowych. Ustaw rozmiar siatki w formularzu
COLUMNSxROWS
. Muszą istniećROWS * COLUMNS
strumienie wejściowe i zostaną one ułożone jako siatka zROWS
rzędami iCOLUMNS
kolumnami. W przypadku korzystania z tej opcji każdy strumień wejściowy w wierszu musi mieć tę samą wysokość, a wszystkie wiersze muszą mieć tę samą szerokość.Jeśli
grid
jest ustawiona, toinputs
opcja jest ignorowana i jest domyślnie ustawiona naROWS * COLUMNS
.Dla 2 wejść ustawiona jest domyślna siatka
2x1
(odpowiedniklayout=0_0|w0_0
). We wszystkich innych przypadkach układ lub siatka musi być ustawiona przez użytkownika. Albogrid
lublayout
można określić na raz. Określenie obu spowoduje błąd.shortest
Jeśli jest ustawiony na 1, wymusza zakończenie wyjścia po zakończeniu najkrótszego wejścia. Wartość domyślna to 0.
fill
Jeśli ustawiony na prawidłowy kolor, wszystkie nieużywane piksele zostaną wypełnione tym kolorem. Domyślnie wypełnienie jest ustawione na brak, więc jest wyłączone.
11.281.1 Examples
- Wyświetl 4 wejścia w siatce 2x2.
Układ:
input1(0, 0) | input3(w0, 0) input2(0, h0) | input4(w0, h0)
xstack=inputs=4:layout=0_0|0_h0|w0_0|w0_h0
Należy pamiętać, że jeśli dane wejściowe mają różne rozmiary, mogą wystąpić luki lub nakładanie się.
- Wyświetl 4 wejścia w siatce 1x4.
Układ:
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
Zwróć uwagę, że jeśli dane wejściowe mają różne szerokości, pojawi się niewykorzystana przestrzeń.
- Wyświetl 9 wejść w siatce 3x3.
Układ:
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
Należy pamiętać, że jeśli dane wejściowe mają różne rozmiary, mogą wystąpić luki lub nakładanie się.
- Wyświetl 16 wejść w siatce 4x4.
Układ:
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
Należy pamiętać, że jeśli dane wejściowe mają różne rozmiary, mogą wystąpić luki lub nakładanie się.
11.282 yadif
Usuń przeplot z wejściowego wideo ("yadif" oznacza "jeszcze inny filtr usuwający przeplot").
Przyjmuje następujące parametry:
mode
Tryb przeplotu do przyjęcia. Przyjmuje jedną z następujących wartości:
0, send_frame
Wyprowadza jedną klatkę na każdą klatkę.
1, send_field
Wyprowadza jedną ramkę dla każdego pola.
2, send_frame_nospatial
Podobnie jak
send_frame
, ale pomija sprawdzanie przeplotu przestrzennego.3, send_field_nospatial
Podobnie jak
send_field
, ale pomija sprawdzanie przeplotu przestrzennego.
Wartość domyślna to
send_frame
.parity
Parzystość pola obrazu przyjęta dla wejściowego wideo z przeplotem. Przyjmuje jedną z następujących wartości:
0, tff
Załóżmy, że górne pole jest pierwsze.
1, bff
Załóżmy, że dolne pole jest pierwsze.
-1, auto
Włącz automatyczne wykrywanie parzystości pola.
Wartość domyślna to
auto
. Jeśli przeplot jest nieznany lub dekoder nie eksportuje tych informacji, jako pierwsze zostanie przyjęte górne pole.deint
Określ, które klatki usunąć z przeplotu. Akceptuje jedną z następujących wartości:
0, all
Usuń przeplot ze wszystkich klatek.
1, interlaced
Usuwaj tylko klatki oznaczone jako z przeplotem.
Wartość domyślna to
all
.
11.283 yadif_cuda
Usuń przeplot z wejściowego wideo za pomocą algorytmu yadif , ale zaimplementowanego w CUDA, aby mogło działać jako część potoku przyspieszanego przez GPU z nvdec i/lub nvenc.
Przyjmuje następujące parametry:
mode
Tryb przeplotu do przyjęcia. Przyjmuje jedną z następujących wartości:
0, send_frame
Wyprowadza jedną klatkę na każdą klatkę.
1, send_field
Wyprowadza jedną ramkę dla każdego pola.
2, send_frame_nospatial
Podobnie jak
send_frame
, ale pomija sprawdzanie przeplotu przestrzennego.3, send_field_nospatial
Podobnie jak
send_field
, ale pomija sprawdzanie przeplotu przestrzennego.
Wartość domyślna to
send_frame
.parity
Parzystość pola obrazu przyjęta dla wejściowego wideo z przeplotem. Przyjmuje jedną z następujących wartości:
0, tff
Załóżmy, że górne pole jest pierwsze.
1, bff
Załóżmy, że dolne pole jest pierwsze.
-1, auto
Włącz automatyczne wykrywanie parzystości pola.
Wartość domyślna to
auto
. Jeśli przeplot jest nieznany lub dekoder nie eksportuje tych informacji, jako pierwsze zostanie przyjęte górne pole.deint
Określ, które klatki usunąć z przeplotu. Akceptuje jedną z następujących wartości:
0, all
Usuń przeplot ze wszystkich klatek.
1, interlaced
Usuwaj tylko klatki oznaczone jako z przeplotem.
Wartość domyślna to
all
.
11.284 yaepblur
Zastosuj filtr rozmycia, zachowując krawędzie („yaepblur” oznacza „jeszcze inny filtr zachowujący krawędzie”). Algorytm jest opisany w „JS Lee, Digital image selection and noise filtering przy użyciu lokalnych statystyk, IEEE Trans. Pattern Anal. Mach. Intell. PAMI-2, 1980”.
Przyjmuje następujące parametry:
radius, r
Ustaw promień okna. Wartość domyślna to 3.
planes, p
Ustaw samoloty do filtrowania. Domyślnie jest tylko pierwsza płaszczyzna.
sigma, s
Ustaw siłę rozmycia. Wartość domyślna to 128.
11.284.1 Commands
Ten filtr obsługuje te same polecenia, co opcje.
11.285 zoompan
Zastosuj efekt powiększania i panoramowania.
Ten filtr akceptuje następujące opcje:
zoom, z
Ustaw wyrażenie powiększenia. Zakres to 1-10. Wartość domyślna to 1.
x
y
Ustaw wyrażenie x i y. Wartość domyślna to 0.
d
Ustaw wyrażenie czasu trwania w liczbie klatek. Ustawia to, ile klatek efekt będzie trwał dla pojedynczego obrazu wejściowego. Wartość domyślna to 90.
s
Ustaw rozmiar obrazu wyjściowego, domyślnie jest to „hd720”.
fps
Ustaw wyjściową liczbę klatek na sekundę, domyślnie '25'.
Każde wyrażenie może zawierać następujące stałe:
in_w, iw
Szerokość wejściowa.
in_h, ih
Wysokość wejściowa.
out_w, ow
Szerokość wyjściowa.
out_h, oh
Wysokość wyjściowa.
in
Liczba klatek wejściowych.
on
Liczba klatek wyjściowych.
in_time, it
Wejściowy znacznik czasu wyrażony w sekundach. Jest to NAN, jeśli wejściowy znacznik czasu jest nieznany.
out_time, time, ot
Wyjściowy znacznik czasu wyrażony w sekundach.
x
y
Ostatnia obliczona pozycja 'x' i 'y' na podstawie wyrażenia 'x' i 'y' dla bieżącej ramki wejściowej.
px
py
'x' i 'y' ostatniej ramki wyjściowej poprzedniej ramki wejściowej lub 0, gdy takiej ramki jeszcze nie było (pierwsza ramka wejściowa).
zoom
Ostatnio obliczone powiększenie z wyrażenia „z” dla bieżącej klatki wejściowej.
pzoom
Ostatnie obliczone powiększenie ostatniej klatki wyjściowej poprzedniej klatki wejściowej.
duration
Liczba ramek wyjściowych dla bieżącej ramki wejściowej. Obliczane na podstawie wyrażenia „d” dla każdej ramki wejściowej.
pduration
liczba ramek wyjściowych utworzonych dla poprzedniej ramki wejściowej
a
Liczba wymierna: szerokość wejściowa / wysokość wejściowa
sar
przykładowe proporcje
dar
proporcje wyświetlacza
11.285.1 Examples
- Powiększ do 1,5x i jednocześnie przesuń do jakiegoś miejsca w pobliżu środka obrazu:
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
- Powiększ do 1,5x i panoramuj zawsze na środku obrazu:
zoompan=z='min(zoom+0.0015,1.5)':d=700:x='iw/2-(iw/zoom/2)':y='ih/2-(ih/zoom/2)'
- Tak samo jak powyżej, ale bez wstrzymywania:
zoompan=z='min(max(zoom,pzoom)+0.0015,1.5)':d=1:x='iw/2-(iw/zoom/2)':y='ih/2-(ih/zoom/2)'
- Powiększ 2x do środka obrazu tylko przez pierwszą sekundę wejściowego wideo:
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.286 zscale
Skaluj (zmień rozmiar) wejściowego wideo, korzystając z biblioteki z.lib:
https://github.com/sekrit-twc/zimg . Aby umożliwić kompilację tego filtra, musisz skonfigurować FFmpeg za pomocą --enable-libzimg
.
Filtr zscale wymusza, aby wyjściowy współczynnik proporcji wyświetlania był taki sam jak wejściowy, poprzez zmianę wyjściowego współczynnika proporcji próbki.
Jeśli format obrazu wejściowego jest inny niż format żądany przez następny filtr, filtr zscale przekonwertuje dane wejściowe na żądany format.
11.286.1 Options
Filtr akceptuje następujące opcje.
width, w
height, h
Ustaw wyrażenie wyjściowego wymiaru wideo. Wartość domyślna to wymiar wejściowy.
Jeśli wartość
width
lubw
wynosi 0, dla danych wyjściowych jest używana szerokość wejściowa. Jeśli wartośćheight
lubh
wynosi 0, wysokość wejściowa jest używana dla danych wyjściowych.Jeśli jedna i tylko jedna z wartości to -n przy n >= 1, filtr zscale użyje wartości, która zachowuje proporcje obrazu wejściowego, obliczone na podstawie innego określonego wymiaru. Po tym jednak upewni się, że obliczony wymiar jest podzielny przez n iw razie potrzeby dostosuje wartość.
Jeśli obie wartości to -n przy n >= 1, zachowanie będzie identyczne z obiema wartościami ustawionymi na 0, jak opisano wcześniej.
Zobacz poniżej listę stałych akceptowanych do użycia w wyrażeniu wymiaru.
size, s
Ustaw rozmiar wideo. Aby poznać składnię tej opcji, sprawdź sekcję (ffmpeg-utils)"Rozmiar wideo" w podręczniku ffmpeg-utils .
dither, d
Ustaw typ roztrząsania.
Możliwe wartości to:
none
ordered
random
error_diffusion
Wartość domyślna to brak.
filter, f
Ustaw typ filtra zmiany rozmiaru.
Możliwe wartości to:
point
bilinear
bicubic
spline16
spline36
lanczos
Domyślnie jest dwuliniowy.
range, r
Ustaw zakres kolorów.
Możliwe wartości to:
input
limited
full
Wartość domyślna jest taka sama jak wejście.
primaries, p
Ustaw kolory podstawowe.
Możliwe wartości to:
input
709
unspecified
170m
240m
2020
Wartość domyślna jest taka sama jak wejście.
transfer, t
Ustaw charakterystykę transferu.
Możliwe wartości to:
input
709
unspecified
601
linear
2020_10
2020_12
smpte2084
iec61966-2-1
arib-std-b67
Wartość domyślna jest taka sama jak wejście.
matrix, m
Ustaw macierz przestrzeni kolorów.
Możliwe wartości to:
input
709
unspecified
470bg
170m
2020_ncl
2020_cl
Wartość domyślna jest taka sama jak wejście.
rangein, rin
Ustaw wejściowy zakres kolorów.
Możliwe wartości to:
input
limited
full
Wartość domyślna jest taka sama jak wejście.
primariesin, pin
Ustaw podstawowe kolory wejściowe.
Możliwe wartości to:
input
709
unspecified
170m
240m
2020
Wartość domyślna jest taka sama jak wejście.
transferin, tin
Ustaw wejściowe charakterystyki transferu.
Możliwe wartości to:
input
709
unspecified
601
linear
2020_10
2020_12
Wartość domyślna jest taka sama jak wejście.
matrixin, min
Ustaw macierz wejściowej przestrzeni kolorów.
Możliwe wartości to:
input
709
unspecified
470bg
170m
2020_ncl
2020_cl
chromal, c
Ustaw lokalizację wyjściowej barwy.
Możliwe wartości to:
input
left
center
topleft
top
bottomleft
bottom
chromalin, cin
Ustaw lokalizację wejścia chrominancji.
Możliwe wartości to:
input
left
center
topleft
top
bottomleft
bottom
npl
Ustaw nominalną szczytową luminancję.
param_a
Parametr A dla filtrów skalujących. Parametr „b” dla dwusześciennych, a liczba zaczepów filtracyjnych dla lanczosa.
param_b
Parametr B dla filtrów skalujących. Parametr „c” dla dwusześciennych.
Wartościw
orazh
opcje to wyrażenia zawierające następujące stałe:
in_w
in_h
Szerokość i wysokość wejściowa
iw
ih
Są takie same jak
in_w
iin_h
.out_w
out_h
Wyjściowa (skalowana) szerokość i wysokość
ow
oh
Są takie same jak
out_w
iout_h
a
Tak samo jak
iw
/ih
sar
wejściowy współczynnik proporcji próbki
dar
Format obrazu wejściowego. Obliczono od
(iw / ih) * sar
.hsub
vsub
wartości podpróbek wejścia poziomego i pionowego. Na przykład dla formatu piksela „yuv422p”
hsub
to 2 ivsub
1.ohsub
ovsub
wartości podpróbki poziomej i pionowej barwy wyjściowej. Na przykład dla formatu piksela „yuv422p”
hsub
to 2 ivsub
1.
11.286.2 Commands
Ten filtr obsługuje następujące polecenia:
width, w
height, h
Ustaw wyrażenie wyjściowego wymiaru wideo. Polecenie akceptuje tę samą składnię odpowiedniej opcji.
Jeśli podane wyrażenie jest niepoprawne, jest zachowywane z bieżącą wartością.
12 OpenCL Video Filters
Poniżej znajduje się opis aktualnie dostępnych filtrów wideo OpenCL.
Aby umożliwić kompilację tych filtrów, musisz skonfigurować FFmpeg za pomocą
--enable-opencl
.
Uruchomienie filtrów OpenCL wymaga zainicjowania urządzenia sprzętowego i przekazania tego urządzenia do wszystkich filtrów na dowolnym wykresie filtra.
-init_hw_device opencl[=
name
][:device
[,key=value
...]]Zainicjuj nowe urządzenie sprzętowe typu
opencl
o nazwiename
, używając podanych parametrów urządzenia.-filter_hw_device
name
Przekaż wywoływane urządzenie sprzętowe
name
do wszystkich filtrów na dowolnym wykresie filtra.
Więcej szczegółowych informacji można znaleźć na stronie https://www.ffmpeg.org/ffmpeg.html#Advanced-Video-options
- Przykład wyboru pierwszego urządzenia na drugiej platformie i uruchomienia na nim filtru avgblur_opencl z domyślnymi parametrami.
-init_hw_device opencl=gpu:1.0 -filter_hw_device gpu -i INPUT -vf "hwupload, avgblur_opencl, hwdownload" OUTPUT
Ponieważ filtry OpenCL nie są w stanie uzyskać dostępu do danych ramek w normalnej pamięci, wszystkie dane ramek muszą zostać przesłane ( hwupload ) na powierzchnie sprzętowe podłączone do odpowiedniego urządzenia przed użyciem, a następnie pobrane ( hwdownload ) z powrotem do normalnej pamięci. Zwróć uwagę, że hwupload zostanie załadowany na powierzchnię z tym samym układem, co ramka oprogramowania, więc może być konieczne dodanie filtra formatu bezpośrednio przed uzyskaniem właściwego formatu danych wejściowych, a hwdownload nie obsługuje wszystkich formatów na wyjściu - może konieczne jest wstawienie dodatkowego filtra formatu bezpośrednio po wykresie, aby uzyskać dane wyjściowe w obsługiwanym formacie.
12.1 avgblur_opencl
Zastosuj filtr średniego rozmycia.
Filtr akceptuje następujące opcje:
sizeX
Ustaw rozmiar promienia poziomego. Zakres to
[1, 1024]
i wartość domyślna to1
.planes
Ustaw samoloty do filtrowania. Wartość domyślna to
0xf
, według której przetwarzane są wszystkie płaszczyzny.sizeY
Ustaw rozmiar promienia pionowego. Zakres to
[1, 1024]
i wartość domyślna to0
. Jeśli zero,sizeX
zostanie użyta wartość.
12.1.1 Example
- Zastosuj filtr średniego rozmycia o rozmiarze 3 w poziomie iw pionie, ustawiając każdy piksel na wyjściu na średnią wartość regionu 7x7 wyśrodkowanego na nim na wejściu. W przypadku pikseli na krawędziach obrazu region nie wykracza poza granice obrazu, dlatego w obliczeniach nie są używane współrzędne spoza zakresu.
-i INPUT -vf "hwupload, avgblur_opencl=3, hwdownload" OUTPUT
12.2 boxblur_opencl
Zastosuj algorytm boxblur do wejściowego wideo.
Przyjmuje następujące parametry:
luma_radius, lr
luma_power, lp
chroma_radius, cr
chroma_power, cp
alpha_radius, ar
alpha_power, ap
Poniżej znajduje się opis akceptowanych opcji.
luma_radius, lr
chroma_radius, cr
alpha_radius, ar
Ustaw wyrażenie dla promienia prostokąta w pikselach używanego do rozmycia odpowiedniej płaszczyzny wejściowej.
Wartość promienia musi być liczbą nieujemną i nie może być większa niż wartość wyrażenia
min(w,h)/2
dla płaszczyzn luma i alfa orazmin(cw,ch)/2
dla płaszczyzn chroma.Wartość domyślna dla
luma_radius
to „2”. Jeśli nie określono,chroma_radius
orazalpha_radius
domyślnie na odpowiednią wartość ustawioną dlaluma_radius
.Wyrażenia mogą zawierać następujące stałe:
w
h
Wejściowa szerokość i wysokość w pikselach.
cw
ch
Wejściowa szerokość i wysokość obrazu chrominancji w pikselach.
hsub
vsub
Wartości podpróbki chrominancji poziomej i pionowej. Na przykład dla formatu pikseli „yuv422p”
hsub
wynosi 2, avsub
1.
luma_power, lp
chroma_power, cp
alpha_power, ap
Określ, ile razy filtr boxblur zostanie zastosowany do odpowiedniej płaszczyzny.
Wartość domyślna dla
luma_power
wynosi 2. Jeśli nie określono,chroma_power
orazalpha_power
domyślnie na odpowiednią wartość ustawioną dlaluma_power
.Wartość 0 wyłączy efekt.
12.2.1 Examples
Zastosuj filtr boxblur, ustawiając każdy piksel wyniku na średnią wartość box-radiuses luma_radius
, chroma_radius
, alpha_radius
odpowiednio dla każdej płaszczyzny. Filtr zastosuje luma_power
, chroma_power
, alpha_power
razy do odpowiedniej płaszczyzny. W przypadku pikseli na krawędziach obrazu promień nie wykracza poza granice obrazu, dlatego w obliczeniach nie są używane współrzędne spoza zakresu.
- Zastosuj filtr boxblur z luma, chroma i alpha promieniem ustawionym na 2 i luma, chroma i alpha power ustawionym na 3. Filtr uruchomi się 3 razy z box-radius ustawionym na 2 dla każdej płaszczyzny obrazu.
-i INPUT -vf "hwupload, boxblur_opencl=luma_radius=2:luma_power=3, hwdownload" OUTPUT -i INPUT -vf "hwupload, boxblur_opencl=2:3, hwdownload" OUTPUT
- Zastosuj filtr boxblur z promieniem lumy ustawionym na 2, luma_power na 1, chroma_radius na 4, chroma_power na 5, alpha_radius na 3 i alpha_power na 7.
W przypadku płaszczyzny luma promień prostokąta 2x2 zostanie wykonany raz.
W przypadku płaszczyzny chroma promień prostokąta 4x4 zostanie wykonany 5 razy.
W przypadku płaszczyzny alfa promień prostokąta 3x3 zostanie wykonany 7 razy.
-i INPUT -vf "hwupload, boxblur_opencl=2:1:4:5:3:7, hwdownload" OUTPUT
12.3 colorkey_opencl
Kluczowanie kolorów w przestrzeni kolorów RGB.
Filtr akceptuje następujące opcje:
color
Kolor, który zostanie zastąpiony przezroczystością.
similarity
Procent podobieństwa z kolorem klucza.
0.01 pasuje tylko do dokładnego koloru klucza, a 1.0 pasuje do wszystkiego.
blend
Procent mieszanki.
0.0 sprawia, że ​​piksele są w pełni przezroczyste lub w ogóle nie są przezroczyste.
Wyższe wartości skutkują półprzezroczystymi pikselami, przy większej przezroczystości kolor pikseli jest bardziej zbliżony do koloru kluczowego.
12.3.1 Examples
- Spraw, aby każdy półzielony piksel w wejściu był przezroczysty, z niewielkim mieszaniem:
-i INPUT -vf "hwupload, colorkey_opencl=green:0.3:0.1, hwdownload" OUTPUT
12.4 convolution_opencl
Zastosuj splot macierzy 3x3,5x5,7x7.
Filtr akceptuje następujące opcje:
0m
1m
2m
3m
Ustaw matrycę dla każdej płaszczyzny. Macierz to ciąg 9, 25 lub 49 podpisanych liczb. Domyślna wartość dla każdej płaszczyzny to
0 0 0 0 1 0 0 0 0
.0rdiv
1rdiv
2rdiv
3rdiv
Ustaw mnożnik dla obliczonej wartości dla każdej płaszczyzny. Jeśli nie jest ustawiona lub 0, będzie to suma wszystkich elementów macierzy. Wartość opcji musi być liczbą zmiennoprzecinkową większą lub równą
0.0
. Wartość domyślna to1.0
.0bias
1bias
2bias
3bias
Ustaw bias dla każdego samolotu. Ta wartość jest dodawana do wyniku mnożenia. Przydatne do rozjaśniania lub przyciemniania całego obrazu. Wartość opcji musi być liczbą zmiennoprzecinkową większą lub równą
0.0
. Wartość domyślna to0.0
.
12.4.1 Examples
- Zastosuj wyostrzenie:
-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
- Zastosuj rozmycie:
-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
- Zastosuj wzmocnienie krawędzi:
-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
- Zastosuj wykrywanie krawędzi:
-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
- Zastosuj wykrywacz krawędzi Laplacian, który obejmuje przekątne:
-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
- Zastosuj wytłoczenie:
-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
Zastosuj efekt erozji do filmu.
Filtr ten zastępuje piksel przez minimum lokalne (3x3).
Akceptuje następujące opcje:
threshold0
threshold1
threshold2
threshold3
Ogranicz maksymalną zmianę dla każdego samolotu. Zakres to
[0, 65535]
i wartość domyślna to65535
. Jeśli0
, samolot pozostanie niezmieniony.coordinates
Flaga określająca piksel, do którego ma się odnosić. Zakres to
[0, 255]
, a domyślna wartość to255
, tzn. używane jest wszystkie osiem pikseli.Flagi lokalnego regionu o współrzędnych 3x3 wyśrodkowane na
x
:1 2 3
4x5
6 7 8
12.5.1 Example
- Zastosuj filtr erozji z progiem 0 ustawionym na 30, próg1 ustawiony na 40, próg2 ustawiony na 50 i współrzędne ustawione na 231, ustawiając każdy piksel wyjścia na lokalne minimum między pikselami: 1, 2, 3, 6, 7, 8 z 3x3 region wyśrodkowany na nim w wejściu. Jeżeli różnica między pikselem wejściowym a minimum lokalnym jest większa niż próg odpowiedniej płaszczyzny, piksel wyjściowy zostanie ustawiony na piksel wejściowy - próg odpowiedniej płaszczyzny.
-i INPUT -vf "hwupload, erosion_opencl=30:40:50:coordinates=231, hwdownload" OUTPUT
12.6 deshake_opencl
Filtr stabilizacji wideo oparty na punktach funkcji.
Filtr akceptuje następujące opcje:
tripod
Symuluje statyw, zapobiegając wszelkim ruchom kamery z oryginalnej ramki. Domyślnie
0
.debug
Czy powinny być wyświetlane dodatkowe informacje debugowania, zarówno w przetworzonych danych wyjściowych, jak i w konsoli.
Zauważ, że aby zobaczyć wyjście debugowania konsoli, musisz również przejść
-v verbose
do ffmpeg.Oglądanie dopasowań punktów w wyjściowym wideo jest obsługiwane tylko dla wejścia RGB.
Domyślnie
0
.adaptive_crop
Czy zrobić trochę przycinania na granicach, aby zmniejszyć ilość lustrzanych pikseli.
Domyślnie
1
.refine_features
Czy punkty charakterystyczne powinny być poprawiane na poziomie subpikseli.
Można to wyłączyć, aby uzyskać niewielki wzrost wydajności kosztem precyzji.
Domyślnie
1
.smooth_strength
Siła wygładzania zastosowanego do ścieżki kamery od
0.0
do1.0
.1.0
to maksymalna siła wygładzania, podczas gdy wartości mniejsze niż ta powodują mniejsze wygładzenie.0.0
powoduje, że filtr adaptacyjnie wybiera siłę wygładzania dla każdej klatki.Domyślnie
0.0
.smooth_window_multiplier
Steruje rozmiarem okna wygładzania (liczba klatek buforowanych w celu określenia informacji o ruchu).
Rozmiar okna wygładzania jest określany przez pomnożenie szybkości klatek wideo przez tę liczbę.
Dopuszczalne wartości to od
0.1
do10.0
.Większe wartości zwiększają ilość danych ruchu dostępnych do określenia sposobu wygładzenia ścieżki kamery, potencjalnie poprawiając płynność, ale także zwiększając opóźnienie i zużycie pamięci.
Domyślnie
2.0
.
12.6.1 Examples
- Ustabilizuj wideo ze stałą, średnią siłą wygładzania:
-i INPUT -vf "hwupload, deshake_opencl=smooth_strength=0.5, hwdownload" OUTPUT
- Ustabilizuj wideo za pomocą debugowania (zarówno w konsoli, jak i w renderowanym wideo):
-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
Zastosuj efekt dylatacji do wideo.
Ten filtr zastępuje piksel przez maksimum lokalne (3x3).
Akceptuje następujące opcje:
threshold0
threshold1
threshold2
threshold3
Ogranicz maksymalną zmianę dla każdego samolotu. Zakres to
[0, 65535]
i wartość domyślna to65535
. Jeśli0
, samolot pozostanie niezmieniony.coordinates
Flaga określająca piksel, do którego ma się odnosić. Zakres to
[0, 255]
, a domyślna wartość to255
, tzn. używane jest wszystkie osiem pikseli.Flagi lokalnego regionu o współrzędnych 3x3 wyśrodkowane na
x
:1 2 3
4x5
6 7 8
12.7.1 Example
- Zastosuj filtr dylatacyjny z progiem 0 ustawionym na 30, próg1 ustawiony na 40, próg2 ustawiony na 50 i współrzędne ustawione na 231, ustawiając każdy piksel wyjścia na lokalne maksimum między pikselami: 1, 2, 3, 6, 7, 8 z 3x3 region wyśrodkowany na nim w wejściu. Jeśli różnica między pikselem wejściowym a lokalnym maksimum jest większa niż próg odpowiedniej płaszczyzny, piksel wyjściowy zostanie ustawiony na piksel wejściowy + próg odpowiedniej płaszczyzny.
-i INPUT -vf "hwupload, dilation_opencl=30:40:50:coordinates=231, hwdownload" OUTPUT
12.8 nlmeans_opencl
Non-local Oznacza filtr odszumiania przez OpenCL, ten filtr akceptuje te same opcje co nlmeans .
12.9 overlay_opencl
Nakładaj jeden film na drugi.
Zajmuje dwa wejścia i ma jedno wyjście. Pierwsze wejście to „główne” wideo, na które nakładane jest drugie wejście. Ten filtr wymaga tego samego układu pamięci dla wszystkich wejść. Może więc być potrzebna konwersja formatu.
Filtr akceptuje następujące opcje:
x
Ustaw współrzędną x nałożonego wideo na głównym wideo. Wartość domyślna to
0
.y
Ustaw współrzędną y nałożonego wideo na głównym wideo. Wartość domyślna to
0
.
12.9.1 Examples
- Nałóż LOGO obrazu w lewym górnym rogu wejściowego wideo. Oba wejścia mają format yuv420p.
-i INPUT -i LOGO -filter_complex "[0:v]hwupload[a], [1:v]format=yuv420p, hwupload[b], [a][b]overlay_opencl, hwdownload" OUTPUT
- Wejścia mają taki sam układ pamięci dla kanałów kolorów, nakładka ma dodatkową płaszczyznę alfa, np. INPUT to yuv420p, a LOGO to 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
Dodaj dopełnienia do obrazu wejściowego i umieść oryginalne dane wejściowe w podanych x
współrzędnych y
.
Akceptuje następujące opcje:
width, w
height, h
Określ wyrażenie określające rozmiar obrazu wyjściowego z dodanymi dopełnieniami. Jeśli wartość
width
lubheight
wynosi 0, odpowiedni rozmiar wejściowy jest używany dla danych wyjściowych.Wyrażenie
width
może odwoływać się do wartości ustawionej przezheight
wyrażenie i na odwrót.Domyślna wartość
width
iheight
wynosi 0.x
y
Określ przesunięcia, w których ma zostać umieszczony obraz wejściowy w obszarze dopełnienia, w odniesieniu do górnej/lewej krawędzi obrazu wyjściowego.
Wyrażenie
x
może odwoływać się do wartości ustawionej przezy
wyrażenie i na odwrót.Domyślna wartość
x
iy
wynosi 0.Jeśli
x
luby
ocenisz na liczbę ujemną, zostaną one zmienione tak, aby obraz wejściowy był wyśrodkowany na obszarze z wypełnieniem.color
Określ kolor wyściełanego obszaru. Aby poznać składnię tej opcji, sprawdź sekcję (ffmpeg-utils)"Color" w podręczniku ffmpeg-utils .
aspect
Dopasuj do aspektu zamiast do rozdzielczości.
Wartością opcji width
, height
, x
i y
są wyrażenia zawierające następujące stałe:
in_w
in_h
Wejściowa szerokość i wysokość wideo.
iw
ih
Są takie same jak
in_w
iin_h
.out_w
out_h
Wyjściowa szerokość i wysokość (rozmiar obszaru dopełnionego), określona przez wyrażenia
width
i .height
ow
oh
Są takie same jak
out_w
iout_h
.x
y
Przesunięcia x i y określone przez wyrażenia i lub NAN, jeśli jeszcze nie zostały określone
x
.y
a
tak samo jak
iw
/ih
sar
wejściowy współczynnik proporcji próbki
dar
format obrazu wejściowego, taki sam jak (
iw
/ih
) *sar
12.11 prewitt_opencl
Zastosuj operator Prewitt ( https://en.wikipedia.org/wiki/Prewitt_operator ) do wejścia strumienia wideo.
Filtr akceptuje następującą opcję:
planes
Ustaw samoloty do filtrowania. Wartość domyślna to
0xf
, według której przetwarzane są wszystkie płaszczyzny.scale
Ustaw wartość, która zostanie pomnożona przez przefiltrowany wynik. Zakres to
[0.0, 65535]
i wartość domyślna to1.0
.delta
Ustaw wartość, która zostanie dodana do przefiltrowanego wyniku. Zakres to
[-65535, 65535]
i wartość domyślna to0.0
.
12.11.1 Example
- Zastosuj operator Prewitt ze skalą ustawioną na 2 i deltą ustawioną na 10.
-i INPUT -vf "hwupload, prewitt_opencl=scale=2:delta=10, hwdownload" OUTPUT
12.12 program_opencl
Filtruj wideo za pomocą programu OpenCL.
source
Plik źródłowy programu OpenCL.
kernel
Nazwa jądra w programie.
inputs
Liczba wejść do filtra. Domyślnie 1.
size, s
Rozmiar klatek wyjściowych. Domyślnie to samo, co pierwsze wejście.
Filtr program_opencl
obsługuje również opcje framesync .
Plik źródłowy programu musi zawierać funkcję jądra o podanej nazwie, która zostanie uruchomiona raz dla każdej płaszczyzny wyjściowej. Każdy przebieg na płaszczyźnie jest umieszczany w kolejce jako oddzielny globalny NDRange 2D z jednym elementem roboczym dla każdego generowanego piksela. Globalne przesunięcie ID dla każdego elementu roboczego jest zatem współrzędnymi piksela w obrazie docelowym.
Funkcja jądra musi przyjmować następujące argumenty:
- Obraz docelowy,
__write_only image2d_t
.Ten obraz stanie się wyjściem; jądro powinno to wszystko zapisać.
- Indeks ramki,
unsigned int
.Jest to licznik zaczynający się od zera i zwiększający się o jeden dla każdej klatki.
- Obrazy źródłowe,
__read_only image2d_t
.Są to najnowsze obrazy na każdym wejściu. Jądro może z nich czytać, aby wygenerować dane wyjściowe, ale nie można do nich zapisywać.
Przykładowe programy:
- Skopiuj dane wejściowe do danych wyjściowych (wyjście musi mieć taki sam rozmiar jak dane wejściowe).
__kernel void copy(__write_only image2d_t miejsce docelowe, indeks int bez znaku, __read_only image2d_t źródło) { const sampler_t sampler = CLK_NORMALIZED_COORDS_FALSE; int2 lokalizacja = (int2)(get_global_id(0), get_global_id(1)); wartość float4 = read_imagef(źródło, próbnik, lokalizacja); write_imagef(cel, lokalizacja, wartość); }
- Zastosuj prostą transformację, obracając dane wejściowe o wartość rosnącą wraz z licznikiem indeksu. Wartości pikseli są interpolowane liniowo przez próbnik, a dane wyjściowe nie muszą mieć takich samych wymiarów jak dane wejściowe.
__kernel void rotate_image(__write_only image2d_t dst, indeks int bez znaku, __read_only image2d_t src) { const sampler_t sampler = (CLK_NORMALIZED_COORDS_FALSE | CLK_FILTER_LINEAR); kąt pływania = (float)indeks / 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(kąt) * dst_pos.x - sin(kąt) * dst_pos.y, sin(kąt) * dst_pos.x + cos(kąt) * 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); w przeciwnym razie write_imagef(dst, dst_loc, read_imagef(src, sampler, src_loc)); }
- Połącz ze sobą dwa wejścia, przy czym ilość każdego użytego wejścia zmienia się wraz z licznikiem indeksu.
__kernel void blend_images(__write_only image2d_t dst, indeks int bez znaku, __tylko do odczytu image2d_t src1, __tylko do odczytu image2d_t src2) { const sampler_t sampler = (CLK_NORMALIZED_COORDS_FALSE | CLK_FILTER_LINEAR); mieszanka zmiennoprzecinkowa = (cos((zmiennoprzecinkowa)indeks / 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
Ponownie mapuj piksele za pomocą wejściowego strumienia wideo 2: Xmap i 3: Ymap.
Piksel docelowy na pozycji (X, Y) zostanie pobrany z pozycji źródłowej (x, y), gdzie x = Xmap(X, Y) i y = Ymap(X, Y). Jeśli wartości mapowania są poza zakresem, dla piksela docelowego zostanie użyta wartość zerowa dla piksela.
Wejściowe strumienie wideo Xmap i Ymap muszą mieć te same wymiary. Wyjściowy strumień wideo będzie miał wymiary strumienia wideo Xmap/Ymap. Wejściowe strumienie wideo Xmap i Ymap mają 32-bitowy format float pixel, pojedynczy kanał.
interp
Określ interpolację używaną do ponownego mapowania pikseli. Dozwolone wartości to
near
ilinear
. Wartość domyślna tolinear
.fill
Określ kolor niezmapowanych pikseli. Aby poznać składnię tej opcji, sprawdź sekcję (ffmpeg-utils)"Color" w podręczniku ffmpeg-utils . Kolor domyślny to
black
.
12.14 roberts_opencl
Zastosuj operator krzyżowy Robertsa ( https://en.wikipedia.org/wiki/Roberts_cross ) do wejściowego strumienia wideo.
Filtr akceptuje następującą opcję:
planes
Ustaw samoloty do filtrowania. Wartość domyślna to
0xf
, według której przetwarzane są wszystkie płaszczyzny.scale
Ustaw wartość, która zostanie pomnożona przez przefiltrowany wynik. Zakres to
[0.0, 65535]
i wartość domyślna to1.0
.delta
Ustaw wartość, która zostanie dodana do przefiltrowanego wyniku. Zakres to
[-65535, 65535]
i wartość domyślna to0.0
.
12.14.1 Example
- Zastosuj operator krzyżowy Robertsa ze skalą ustawioną na 2 i deltą ustawioną na 10
-i INPUT -vf "hwupload, roberts_opencl=scale=2:delta=10, hwdownload" OUTPUT
12.15 sobel_opencl
Zastosuj operator Sobela ( https://en.wikipedia.org/wiki/Sobel_operator ) do wejścia strumienia wideo.
Filtr akceptuje następującą opcję:
planes
Ustaw samoloty do filtrowania. Wartość domyślna to
0xf
, według której przetwarzane są wszystkie płaszczyzny.scale
Ustaw wartość, która zostanie pomnożona przez przefiltrowany wynik. Zakres to
[0.0, 65535]
i wartość domyślna to1.0
.delta
Ustaw wartość, która zostanie dodana do przefiltrowanego wyniku. Zakres to
[-65535, 65535]
i wartość domyślna to0.0
.
12.15.1 Example
- Zastosuj operator sobela ze skalą ustawioną na 2 i deltą ustawioną na 10
-i INPUT -vf "hwupload, sobel_opencl=scale=2:delta=10, hwdownload" OUTPUT
12.16 tonemap_opencl
Wykonaj konwersję HDR(PQ/HLG) na SDR z mapowaniem tonów.
Przyjmuje następujące parametry:
tonemap
Określ operatora mapowania tonów, który ma zostać użyty. Taka sama jak opcja tonemap w tonemap .
param
Dostrój algorytm mapowania tonów. tak samo jak opcja param w tonemap .
desat
Zastosuj desaturację dla świateł, które przekraczają ten poziom jasności. Im wyższy parametr, tym więcej informacji o kolorze zostanie zachowanych. To ustawienie pomaga zapobiegać nienaturalnemu wyblaknięciu kolorów w przypadku super jasnych obszarów poprzez (płynnie) zamianę w biel. Dzięki temu obrazy wydają się bardziej naturalne, kosztem zmniejszenia informacji o kolorach spoza zakresu.
Domyślna wartość to 0.5, a algorytm tutaj różni się nieco od aktualnej mapy dźwiękowej wersji procesora. Ustawienie 0.0 wyłącza tę opcję.
threshold
Parametry algorytmu mapowania tonalnego są dostrajane dla każdej sceny. A próg służy do wykrycia, czy scena się zmieniła, czy nie. Jeśli odległość między bieżącą średnią jasnością klatki a bieżącą średnią jasnością przekracza wartość progową, ponownie obliczymy średnią i szczytową jasność sceny. Wartość domyślna to 0,2.
format
Określ wyjściowy format pikseli.
Obecnie obsługiwane formaty to:
p010
nv12
range, r
Ustaw wyjściowy zakres kolorów.
Możliwe wartości to:
tv/mpeg
pc/jpeg
Wartość domyślna jest taka sama jak wejście.
primaries, p
Ustaw podstawowe kolory wyjściowe.
Możliwe wartości to:
bt709
bt2020
Wartość domyślna jest taka sama jak wejście.
transfer, t
Ustaw wyjściowe charakterystyki transferu.
Możliwe wartości to:
bt709
bt2020
Domyślnie jest to bt709.
matrix, m
Ustaw wyjściową macierz przestrzeni kolorów.
Możliwe wartości to:
bt709
bt2020
Wartość domyślna jest taka sama jak wejście.
12.16.1 Example
- Konwertuj wideo HDR(PQ/HLG) na format p010 z charakterystyką transferu bt2020 za pomocą operatora liniowego.
-i INPUT -vf "format=p010,hwupload,tonemap_opencl=t=bt2020:tonemap=linear:format=p010,hwdownload,format=p010" OUTPUT
12.17 unsharp_opencl
Wyostrz lub rozmyj wideo wejściowe.
Przyjmuje następujące parametry:
luma_msize_x, lx
Ustaw poziomą wielkość luma matrix. Zakres to
[1, 23]
i wartość domyślna to5
.luma_msize_y, ly
Ustaw pionowy rozmiar matrycy luma. Zakres to
[1, 23]
i wartość domyślna to5
.luma_amount, la
Ustaw siłę efektu luma. Zakres to
[-10, 10]
i wartość domyślna to1.0
.Wartości ujemne spowodują rozmycie obrazu wejściowego, wartości dodatnie go wyostrzą, wartość zero wyłączy efekt.
chroma_msize_x, cx
Ustaw rozmiar poziomy matrycy chromatycznej. Zakres to
[1, 23]
i wartość domyślna to5
.chroma_msize_y, cy
Ustaw pionowy rozmiar matrycy chromatycznej. Zakres to
[1, 23]
i wartość domyślna to5
.chroma_amount, ca
Ustaw siłę efektu chromatycznego. Zakres to
[-10, 10]
i wartość domyślna to0.0
.Wartości ujemne spowodują rozmycie obrazu wejściowego, wartości dodatnie go wyostrzą, wartość zero wyłączy efekt.
Wszystkie parametry są opcjonalne i domyślnie odpowiadają ciągowi „5:5:1.0:5:5:0.0”.
12.17.1 Examples
- Zastosuj mocny efekt wyostrzenia lumy:
-i INPUT -vf "hwupload, unsharp_opencl=luma_msize_x=7:luma_msize_y=7:luma_amount=2.5, hwdownload" OUTPUT
- Zastosuj mocne rozmycie zarówno parametrów luma, jak i chroma:
-i INPUT -vf "hwupload, unsharp_opencl=7:7:-2:7:7:-2, hwdownload" OUTPUT
12.18 xfade_opencl
Przenikaj dwa filmy z niestandardowym efektem przejścia za pomocą OpenCL.
Akceptuje następujące opcje:
transition
Ustaw jeden z możliwych efektów przejścia.
custom
Wybierz niestandardowy efekt przejścia, rzeczywisty opis przejścia zostanie wybrany z opcji źródła i jądra.
fade
wipeleft
wiperight
wipeup
wipedown
slideleft
slideright
slideup
slidedown
-
Domyślne przejście to zanikanie.
source
Plik źródłowy programu OpenCL do niestandardowego przejścia.
kernel
Ustaw nazwę jądra używanego do niestandardowego przejścia z pliku źródłowego programu.
duration
Ustaw czas trwania przejścia wideo.
offset
Ustaw czas rozpoczęcia przejścia w stosunku do pierwszego wideo.
Plik źródłowy programu musi zawierać funkcję jądra o podanej nazwie, która zostanie uruchomiona raz dla każdej płaszczyzny wyjściowej. Każdy przebieg na płaszczyźnie jest umieszczany w kolejce jako oddzielny globalny NDRange 2D z jednym elementem roboczym dla każdego generowanego piksela. Globalne przesunięcie ID dla każdego elementu roboczego jest zatem współrzędnymi piksela w obrazie docelowym.
Funkcja jądra musi przyjmować następujące argumenty:
- Obraz docelowy,
__write_only image2d_t
.Ten obraz stanie się wyjściem; jądro powinno to wszystko zapisać.
- Pierwszy obraz źródłowy,
__read_only image2d_t
. Drugi obraz źródłowy,__read_only image2d_t
.Są to najnowsze obrazy na każdym wejściu. Jądro może z nich czytać, aby wygenerować dane wyjściowe, ale nie można do nich zapisywać.
- Postęp przejścia,
float
. Ta wartość jest zawsze z zakresu od 0 do 1 włącznie.
Przykładowe programy:
- Zastosuj efekt przejścia kurtyny w kropki:
__kernel void blend_images(__write_only image2d_t dst, __tylko do odczytu image2d_t src1, __tylko do odczytu image2d_t src2, postęp pływania) { 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 / przyciemnienie; float2 kropki = (float2)(20,0, 20,0); środek float2 = (float2)(0,0); float2 nieużywany; float4 wart1 = read_imagef(src1, próbnik, p); float4 val2 = read_imagef(src2, sampler, p); bool next = odległość(frakt(rp * kropki, &nieużywane), (float2)(0.5, 0.5)) < (postęp / odległość(rp, środek)); write_imagef(dst, p, next ? wart1 : wart2); }
13 VAAPI Video Filters
Filtry wideo VAAPI są zwykle używane z dekoderem VAAPI i koderem VAAPI. Poniżej znajduje się opis filtrów wideo VAAPI.
Aby umożliwić kompilację tych filtrów, musisz skonfigurować FFmpeg za pomocą
--enable-vaapi
.
Aby korzystać z filtrów vaapi, musisz poprawnie skonfigurować urządzenie vaapi. Aby uzyskać więcej informacji, przeczytaj https://trac.ffmpeg.org/wiki/Hardware/VAAPI
13.1 overlay_vaapi
Nakładaj jeden film na drugi.
Zajmuje dwa wejścia i ma jedno wyjście. Pierwsze wejście to „główne” wideo, na które nakładane jest drugie wejście. Ten filtr wymaga tego samego układu pamięci dla wszystkich wejść. Może więc być potrzebna konwersja formatu.
Filtr akceptuje następujące opcje:
x
Ustaw współrzędną x nałożonego wideo na głównym wideo. Wartość domyślna to
0
.y
Ustaw współrzędną y nałożonego wideo na głównym wideo. Wartość domyślna to
0
.w
Ustaw szerokość nałożonego wideo na głównym wideo. Wartość domyślna to szerokość wejściowego wideo nakładki.
h
Ustaw wysokość nałożonego wideo na głównym wideo. Wartość domyślna to wysokość wejściowego wideo nakładki.
alpha
Ustaw progi wykrywania blokowania. Dozwolony zakres to 0,0 do 1,0, wymaga wejścia wideo z kanałem alfa. Wartość domyślna to
0.0
.
13.1.1 Examples
- Nałóż LOGO obrazu w lewym górnym rogu wejściowego wideo. Oba wejścia dla tego filtra mają format yuv420p.
-i INPUT -i LOGO -filter_complex "[0:v]hwupload[a], [1:v]format=yuv420p, hwupload[b], [a][b]overlay_vaapi" OUTPUT
- Nałóż LOGO obrazu w przesunięciu (200, 100) od lewego górnego rogu wideo WEJŚCIOWEGO. Wejścia mają taki sam układ pamięci dla kanałów kolorów, nakładka ma dodatkową płaszczyznę alfa, np. INPUT to yuv420p, a LOGO to 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
Wykonaj konwersję HDR (High Dynamic Range) na SDR (Standard Dynamic Range) z mapowaniem tonów. Mapuje zakres dynamiczny treści HDR10 do treści SDR. Obecnie jako wejście akceptuje tylko HDR10.
Przyjmuje następujące parametry:
format
Określ wyjściowy format pikseli.
Obecnie obsługiwane formaty to:
p010
nv12
Domyślnie jest to nv12.
primaries, p
Ustaw podstawowe kolory wyjściowe.
Wartość domyślna jest taka sama jak wejście.
transfer, t
Ustaw wyjściowe charakterystyki transferu.
Domyślnie jest to bt709.
matrix, m
Ustaw wyjściową macierz przestrzeni kolorów.
Wartość domyślna jest taka sama jak wejście.
13.2.1 Example
- Konwertuj wideo HDR (HDR10) na format p010 z charakterystycznym transferem bt2020
tonemap_vaapi=format=p010:t=bt2020-10
14 Video Sources
Poniżej znajduje się opis aktualnie dostępnych źródeł wideo.
14.1 buffer
Buforuj klatki wideo i udostępniaj je w łańcuchu filtrów.
To źródło jest przeznaczone głównie do użytku programistycznego, w szczególności za pośrednictwem interfejsu zdefiniowanego wlibavfilter/buffersrc.h
.
Przyjmuje następujące parametry:
video_size
Określ rozmiar (szerokość i wysokość) buforowanych klatek wideo. Aby poznać składnię tej opcji, sprawdź sekcję (ffmpeg-utils)"Rozmiar wideo" w podręczniku ffmpeg-utils .
width
Wejściowa szerokość wideo.
height
Wejściowa wysokość wideo.
pix_fmt
Ciąg reprezentujący format pikseli buforowanych klatek wideo. Może to być liczba odpowiadająca formatowi piksela lub nazwa formatu piksela.
time_base
Określ podstawę czasu przyjmowaną przez sygnatury czasowe buforowanych ramek.
frame_rate
Określ oczekiwaną liczbę klatek na sekundę dla strumienia wideo.
pixel_aspect, sar
Współczynnik proporcji próbki (pikseli) wejściowego wideo.
sws_param
Ta opcja jest przestarzała i ignorowana. Dołącz do opisu wykresu filtra, aby określić flagi swscale dla automatycznie wstawianych skalerów. Zobacz Składnia Filtergraph .
sws_flags=
flags
;hw_frames_ctx
W przypadku korzystania ze sprzętowego formatu pikseli, powinno to być odniesienie do AVHWFramesContext opisującego ramki wejściowe.
Na przykład:
buffer=width=320:height=240:pix_fmt=yuv410p:time_base=1/24:sar=1
poinstruuje źródło, aby akceptowało klatki wideo o rozmiarze 320x240 i formacie „yuv410p”, przyjmując 1/24 jako podstawę czasową i kwadratowe piksele (proporcje próbki 1:1). Ponieważ format piksela o nazwie "yuv410p" odpowiada liczbie 6 (sprawdź definicję enum AVPixelFormat wlibavutil/pixfmt.h
), ten przykład odpowiada:
buffer=size=320x240:pixfmt=6:time_base=1/24:pixel_aspect=1/1
Alternatywnie opcje można określić jako płaski ciąg, ale ta składnia jest przestarzała:
width
: height
: pix_fmt
: time_base.num
: time_base.den
: pixel_aspect.num
:pixel_aspect.den
14.2 cellauto
Utwórz wzór wygenerowany przez elementarny automat komórkowy.
Stan początkowy automatu komórkowego można zdefiniować za pomocą
filename
orazpattern
opcje. Jeśli takie opcje nie są określone, stan początkowy jest tworzony losowo.
W każdej nowej klatce nowy wiersz w filmie jest wypełniany wynikiem działania automatu komórkowego następnej generacji. Zachowanie, gdy cała ramka jest wypełniona, jest określone przezscroll
opcja.
To źródło akceptuje następujące opcje:
filename, f
Odczytaj początkowy stan automatu komórkowego, czyli początkowy wiersz, z podanego pliku. W pliku każdy znak inny niż biały jest uważany za żywą komórkę, znak nowej linii kończy wiersz, a dalsze znaki w pliku będą ignorowane.
pattern, p
Odczytaj początkowy stan automatu komórkowego, czyli początkowy wiersz, z podanego ciągu.
Każdy znak inny niż biały w ciągu jest uważany za żywą komórkę, znak nowej linii kończy wiersz, a kolejne znaki w ciągu są ignorowane.
rate, r
Ustaw szybkość wideo, czyli liczbę klatek generowanych na sekundę. Wartość domyślna to 25.
random_fill_ratio, ratio
Ustaw losowy współczynnik wypełnienia dla początkowego wiersza automatu komórkowego. Jest to liczba zmiennoprzecinkowa z zakresu od 0 do 1, domyślnie 1/PHI.
Ta opcja jest ignorowana, gdy określony jest plik lub wzorzec.
random_seed, seed
Ustaw ziarno do losowego wypełnienia początkowego wiersza, musi być liczbą całkowitą zawartą między 0 a UINT32_MAX. Jeśli nie zostanie określony lub jeśli zostanie jawnie ustawiony na -1, filtr spróbuje użyć dobrego losowego inicjatora na zasadzie najlepszego wysiłku.
rule
Ustaw regułę automatu komórkowego, jest to liczba z zakresu od 0 do 255. Wartość domyślna to 110.
size, s
Ustaw rozmiar wyjściowego wideo. Aby zapoznać się ze składnią tej opcji, sprawdź sekcję (ffmpeg-utils) „Rozmiar wideo” w podręczniku ffmpeg-utils .
Jeśli
filename
lubpattern
jest określony, rozmiar jest domyślnie ustawiany na szerokość określonego wiersza stanu początkowego, a wysokość jest ustawiana nawidth
* PHI.Jeśli
size
jest ustawiony, musi zawierać szerokość określonego ciągu wzorcowego, a określony wzorzec zostanie wyśrodkowany w większym wierszu.Jeśli nie określono nazwy pliku lub ciągu wzorca, domyślną wartością rozmiaru jest „320x518” (używana do losowo generowanego stanu początkowego).
scroll
Jeśli jest ustawiona na 1, przewiń dane wyjściowe w górę, gdy wszystkie wiersze w danych wyjściowych zostaną już wypełnione. Jeśli ustawione na 0, nowy wygenerowany wiersz zostanie nadpisany nad wierszem górnym zaraz po wypełnieniu wiersza dolnego. Domyślnie 1.
start_full, full
Jeśli jest ustawiona na 1, całkowicie wypełnij dane wyjściowe wygenerowanymi wierszami przed wysłaniem pierwszej ramki. Jest to domyślne zachowanie, aby wyłączyć, należy ustawić wartość na 0.
stitch
Jeśli ustawiono na 1, zszyj razem lewy i prawy brzeg rzędu. Jest to domyślne zachowanie, aby wyłączyć, należy ustawić wartość na 0.
14.2.1 Examples
- Odczytaj stan początkowy z
pattern
i określ dane wyjściowe o rozmiarze 200x400.cellauto=f=pattern:s=200x400
- Wygeneruj losowy początkowy wiersz o szerokości 200 komórek ze współczynnikiem wypełnienia 2/3:
cellauto=ratio=2/3:s=200x200
- Utwórz wzór wygenerowany przez regułę 18, zaczynając od pojedynczej żywej komórki wyśrodkowanej na początkowym rzędzie o szerokości 100:
cellauto=p=@:s=100x400:full=0:rule=18
- Określ bardziej rozbudowany wzorzec początkowy:
cellauto=p='@@ @ @@':s=100x400:full=0:rule=18
14.3 coreimagesrc
Źródło wideo wygenerowane na GPU przy użyciu interfejsu Apple CoreImage API na OSX.
To źródło wideo jest specjalistyczną wersją obrazu rdzenia filtra wideoUżyj generatora obrazu rdzenia na początku zastosowanego łańcucha filtrów, aby wygenerować zawartość.
Źródło wideo coreimagesrc akceptuje następujące opcje:
list_generators
Wymień wszystkie dostępne generatory wraz ze wszystkimi ich opcjami, a także możliwymi wartościami minimalnymi i maksymalnymi wraz z wartościami domyślnymi.
list_generators=true
size, s
Określ rozmiar źródłowego wideo. Aby poznać składnię tej opcji, sprawdź sekcję (ffmpeg-utils)"Rozmiar wideo" w podręczniku ffmpeg-utils . Wartość domyślna to
320x240
.rate, r
Określ szybkość klatek źródła wideo jako liczbę klatek generowanych na sekundę. Musi to być ciąg w formacie
frame_rate_num
/frame_rate_den
, liczba całkowita, liczba zmiennoprzecinkowa lub poprawny skrót szybkości klatek wideo. Wartość domyślna to „25”.sar
Ustaw przykładowe proporcje źródła wideo.
duration, d
Ustaw czas trwania źródłowego wideo. Zobacz (ffmpeg-utils) sekcję Czas trwania w podręczniku ffmpeg-utils(1), aby poznać akceptowaną składnię.
Jeśli nie zostanie określony lub podany czas trwania jest ujemny, wideo powinno zostać wygenerowane na zawsze.
Dodatkowo akceptowane są wszystkie opcje filtra wideo coreimage . Kompletny łańcuch filtrów może być użyty do dalszego przetwarzania wygenerowanych danych wejściowych bez transferu CPU-HOST. Zobacz dokumentację coreimage i przykłady, aby uzyskać szczegółowe informacje.
14.3.1 Examples
- Użyj CIQRCodeGenerator, aby utworzyć kod QR dla strony głównej FFmpeg, podany jako kompletny i zmieniony wiersz poleceń dla standardowej powłoki bash firmy Apple:
ffmpeg -f lavfi -i coreimagesrc=s=100x100:filter=CIQRCodeGenerator@inputMessage=https\\\\\://FFmpeg.org/@inputCorrectionLevel=H -frames:v 1 QRCode.png
Ten przykład jest odpowiednikiem przykładu QRCode z coreimage bez potrzeby źródła wideo nullsrc.
14.4 gradients
Wygeneruj kilka gradientów.
size, s
Ustaw rozmiar ramki. Aby poznać składnię tej opcji, sprawdź sekcję (ffmpeg-utils)"Rozmiar wideo" w podręczniku ffmpeg-utils . Wartość domyślna to „640x480”.
rate, r
Ustaw liczbę klatek wyrażoną jako liczba klatek na sekundę. Wartość domyślna to „25”.
c0, c1, c2, c3, c4, c5, c6, c7
Zestaw 8 kolorów. Domyślne wartości kolorów to wybór losowy.
x0, y0, y0, y1
Ustaw źródło i punkty docelowe linii gradientu. Jeśli są ujemne lub poza zakresem, wybierane są losowe.
nb_colors, n
Ustaw liczbę kolorów do użycia naraz. Dozwolony zakres to od 2 do 8. Wartość domyślna to 2.
seed
Ustaw ziarno do zbierania punktów linii gradientu.
duration, d
Ustaw czas trwania źródłowego wideo. Zobacz (ffmpeg-utils) sekcję Czas trwania w podręczniku ffmpeg-utils(1), aby poznać akceptowaną składnię.
Jeśli nie zostanie określony lub podany czas trwania jest ujemny, wideo powinno zostać wygenerowane na zawsze.
speed
Ustaw prędkość obrotu gradientów.
type, t
Ustaw typ gradientów, może być
linear
lubradial
lubcircular
lubspiral
.
14.5 mandelbrot
Wygeneruj fraktal zbioru Mandelbrota i stopniowo zbliżaj się do punktu określonego za pomocą start_x
i start_y
.
To źródło akceptuje następujące opcje:
end_pts
Ustaw wartość terminala pts. Wartość domyślna to 400.
end_scale
Ustaw wartość skali terminala. Musi być wartością zmiennoprzecinkową. Wartość domyślna to 0,3.
inner
Ustaw tryb kolorowania wewnętrznego, czyli algorytm używany do rysowania wewnętrznego obszaru fraktalnego Mandelbrota.
Przyjmuje jedną z następujących wartości:
black
Ustaw tryb czarny.
convergence
Pokaż czas do zbieżności.
mincol
Ustaw kolor na podstawie punktu znajdującego się najbliżej początku iteracji.
period
Ustaw tryb okresu.
Wartość domyślna to
mincol
.bailout
Ustaw wartość ratowania. Wartość domyślna to 10,0.
maxiter
Ustaw maksymalną liczbę iteracji wykonywanych przez algorytm renderowania. Wartość domyślna to 7189.
outer
Ustaw tryb kolorowania zewnętrznego. Przyjmie jedną z następujących wartości:
iteration_count
Ustaw tryb liczenia iteracji.
normalized_iteration_count
ustaw znormalizowany tryb liczenia iteracji.
Wartość domyślna to
normalized_iteration_count
.rate, r
Ustaw liczbę klatek wyrażoną jako liczba klatek na sekundę. Wartość domyślna to „25”.
size, s
Ustaw rozmiar ramki. Aby poznać składnię tej opcji, sprawdź sekcję (ffmpeg-utils)"Rozmiar wideo" w podręczniku ffmpeg-utils . Wartość domyślna to „640x480”.
start_scale
Ustaw początkową wartość skali. Wartość domyślna to 3.0.
start_x
Ustaw początkową pozycję x. Musi być wartością zmiennoprzecinkową z zakresu od -100 do 100. Wartość domyślna to -0,743643887037158704752191506114774.
start_y
Ustaw początkową pozycję y. Musi być wartością zmiennoprzecinkową z zakresu od -100 do 100. Wartość domyślna to -0,131825904205311970493132056385139.
14.6 mptestsrc
Generuj różne wzorce testowe, generowane przez filtr testowy MPlayera.
Rozmiar wygenerowanego wideo jest stały i wynosi 256x256. To źródło jest przydatne w szczególności do testowania funkcji kodowania.
To źródło akceptuje następujące opcje:
rate, r
Określ szybkość klatek źródła wideo jako liczbę klatek generowanych na sekundę. Musi to być ciąg w formacie
frame_rate_num
/frame_rate_den
, liczba całkowita, liczba zmiennoprzecinkowa lub poprawny skrót szybkości klatek wideo. Wartość domyślna to „25”.duration, d
Ustaw czas trwania źródłowego wideo. Zobacz (ffmpeg-utils) sekcję Czas trwania w podręczniku ffmpeg-utils(1), aby poznać akceptowaną składnię.
Jeśli nie zostanie określony lub podany czas trwania jest ujemny, wideo powinno zostać wygenerowane na zawsze.
test, t
-
Ustaw numer lub nazwę testu do wykonania. Obsługiwane testy to:
dc_luma
dc_chroma
freq_luma
freq_chroma
amp_luma
amp_chroma
cbp
mv
ring1
ring2
all
max_frames, m
Ustaw maksymalną liczbę klatek generowanych dla każdego testu, domyślna wartość to 30.
Wartość domyślna to „all”, co spowoduje przechodzenie przez listę wszystkich testów.
Kilka przykładów:
mptestsrc=t=dc_luma
wygeneruje wzorzec testowy „dc_luma”.
14.7 frei0r_src
Podaj darmowe źródło.
Aby umożliwić kompilację tego filtra musisz zainstalować nagłówek frei0r i skonfigurować FFmpeg z --enable-frei0r
.
To źródło akceptuje następujące parametry:
size
Rozmiar filmu do wygenerowania. Aby poznać składnię tej opcji, sprawdź sekcję (ffmpeg-utils)"Rozmiar wideo" w podręczniku ffmpeg-utils .
framerate
Liczba klatek na sekundę wygenerowanego wideo. Może to być ciąg znaków w postaci
num
/den
lub skrót liczby klatek na sekundę.filter_name
Nazwa frei0r źródła do załadowania. Aby uzyskać więcej informacji na temat frei0r i jak ustawić parametry, przeczytaj sekcję frei0r w dokumentacji filtrów wideo.
filter_params
Oddzielona '|' lista parametrów do przekazania do źródła frei0r.
Na przykład, aby wygenerować źródło frei0r partik0l o rozmiarze 200x200 i liczbie klatek na sekundę 10, które jest nakładane na główne wejście filtra nakładki:
frei0r_src=size=200x200:framerate=10:filter_name=partik0l:filter_params=1234 [overlay]; [in][overlay] overlay
14.8 life
Wygeneruj wzór życia.
To źródło jest oparte na uogólnieniu gry życiowej Johna Conwaya.
Dane wejściowe reprezentują siatkę życia, każdy piksel reprezentuje komórkę, która może znajdować się w jednym z dwóch możliwych stanów, żywym lub martwym. Każda komórka oddziałuje ze swoimi ośmioma sąsiadami, czyli komórkami sąsiadującymi ze sobą poziomo, pionowo lub po przekątnej.
Przy każdej interakcji siatka ewoluuje zgodnie z przyjętą regułą, która określa liczbę sąsiednich żywych komórek, które sprawią, że komórka pozostanie przy życiu lub narodzi się. Therule
opcja pozwala określić regułę do przyjęcia.
To źródło akceptuje następujące opcje:
filename, f
Ustaw plik, z którego ma zostać odczytany początkowy stan siatki. W pliku każdy znak inny niż biały jest uważany za żywą komórkę, a znak nowej linii jest używany do odgraniczenia końca każdego wiersza.
Jeśli ta opcja nie zostanie określona, ​​początkowa siatka jest generowana losowo.
rate, r
Ustaw szybkość wideo, czyli liczbę klatek generowanych na sekundę. Wartość domyślna to 25.
random_fill_ratio, ratio
Ustaw losowy współczynnik wypełnienia dla początkowej losowej siatki. Jest to liczba zmiennoprzecinkowa z zakresu od 0 do 1, domyślnie 1/PHI. Jest ignorowany, gdy określony jest plik.
random_seed, seed
Ustaw ziarno do wypełnienia początkowej losowej siatki, musi być liczbą całkowitą zawartą między 0 a UINT32_MAX. Jeśli nie zostanie określony lub jeśli zostanie jawnie ustawiony na -1, filtr spróbuje użyć dobrego losowego inicjatora na zasadzie najlepszego wysiłku.
rule
Ustaw zasadę życia.
Regułę można określić za pomocą kodu typu "S
NS
/BNB
", gdzieNS
iNB
są ciągami liczb z zakresu 0-8,NS
określa liczbę żywych sąsiednich komórek, które sprawiają, że żywa komórka pozostaje żywa, orazNB
liczbę żywych komórek sąsiednie komórki, które sprawiają, że martwa komórka staje się żywa (tj. „rodzi się”). „s” i „b” mogą być użyte w miejsce odpowiednio „S” i „B”.Alternatywnie regułę można określić za pomocą 18-bitowej liczby całkowitej. 9 bitów wyższego rzędu jest używanych do kodowania następnego stanu komórki, jeśli jest ona żywa, dla każdej liczby sąsiednich żywych komórek, bity niższego rzędu określają regułę „rodzenia się” nowych komórek. Bity wyższego rzędu kodują większą liczbę sąsiednich komórek. Na przykład liczba 6153 =
(12<<9)+9
określa zasadę pozostania przy życiu o wartości 12 i urodzoną zasadę 9, co odpowiada „S23/B03”.Wartość domyślna to „S23/B3”, która jest oryginalną regułą gry życia Conwaya i utrzyma komórkę przy życiu, jeśli ma 2 lub 3 sąsiednie żywe komórki, i urodzi nową komórkę, jeśli są trzy żywe komórki wokół martwej komórka.
size, s
Ustaw rozmiar wyjściowego wideo. Aby poznać składnię tej opcji, sprawdź sekcję (ffmpeg-utils)"Rozmiar wideo" w podręczniku ffmpeg-utils .
Jeśli
filename
jest określony, rozmiar jest domyślnie ustawiony na taki sam rozmiar pliku wejściowego. Jeślisize
jest ustawiona, musi zawierać rozmiar określony w pliku wejściowym, a początkowa siatka zdefiniowana w tym pliku jest wyśrodkowana w większym obszarze wynikowym.Jeśli nie określono nazwy pliku, domyślną wartością rozmiaru jest „320x240” (używana do losowo generowanej siatki początkowej).
stitch
Jeśli ustawiono na 1, zszyj razem lewą i prawą krawędź siatki, a także górną i dolną krawędź. Domyślnie 1.
mold
Ustaw prędkość formy komórkowej. Jeśli ustawione, martwa komórka wyjdzie
death_color
domold_color
z krokiemmold
.mold
może mieć wartość od 0 do 255.life_color
Ustaw kolor żywych (lub nowo narodzonych) komórek.
death_color
Ustaw kolor martwych komórek. Jeśli
mold
jest ustawiony, jest to pierwszy kolor używany do reprezentowania martwej komórki.mold_color
Ustaw kolor pleśni, dla zdecydowanie martwych i spleśniałych komórek.
Aby zapoznać się ze składnią tych 3 opcji kolorów, sprawdź sekcję (ffmpeg-utils)"Color" w podręczniku ffmpeg-utils .
14.8.1 Examples
- Przeczytaj siatkę z
pattern
i wyśrodkuj go na siatce o rozmiarze 300x300 pikseli:life=f=pattern:s=300x300
- Wygeneruj losową siatkę o wymiarach 200x200 ze współczynnikiem wypełnienia 2/3:
life=ratio=2/3:s=200x200
- Określ niestandardową regułę rozwoju losowo generowanej siatki:
life=rule=S14/B34
- Pełny przykład z efektem powolnej śmierci (pleśń) przy użyciu
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
14.9 allrgb, allyuv, color, colorchart, colorspectrum, haldclutsrc, nullsrc, pal75bars, pal100bars, rgbtestsrc, smptebars, smptehdbars, testsrc, testsrc2, yuvtestsrc
Źródło allrgb
zwraca klatki o rozmiarze 4096x4096 wszystkich kolorów rgb.
Źródło allyuv
zwraca klatki o rozmiarze 4096x4096 wszystkich kolorów yuv.
Źródło color
zapewnia jednolicie zabarwiony sygnał wejściowy.
Źródło colorchart
zawiera tabelę sprawdzania kolorów.
Źródło colorspectrum
zapewnia wejście widma kolorów.
Źródło haldclutsrc
zapewnia tożsamość Hald CLUT. Zobacz także
filtr haldclut .
Źródło nullsrc
zwraca nieprzetworzone klatki wideo. Przydaje się głównie do wykorzystania w narzędziach do analizy / debugowania lub jako źródło filtrów, które ignorują dane wejściowe.
Źródło pal75bars
generuje wzór pasków kolorów w oparciu o zalecenia EBU PAL z 75% poziomami kolorów.
Źródło pal100bars
generuje wzór pasków kolorów w oparciu o zalecenia EBU PAL ze 100% poziomami kolorów.
Źródło rgbtestsrc
generuje wzór testowy RGB przydatny do wykrywania problemów RGB z BGR. Powinieneś zobaczyć czerwony, zielony i niebieski pasek od góry do dołu.
Źródło smptebars
generuje wzór pasków kolorów, w oparciu o wytyczne SMPTE Engineering Guideline EG 1-1990.
Źródło smptehdbars
generuje wzór pasków kolorów, oparty na SMPTE RP 219-2002.
Źródło testsrc
generuje testowy wzór wideo, pokazując wzór koloru, gradient przewijania i znacznik czasu. Jest to przeznaczone głównie do celów testowych.
Źródło testsrc2
jest podobne do testingrc, ale obsługuje więcej formatów pikseli, a nie tylko rgb24
. Pozwala to na użycie go jako danych wejściowych do innych testów bez konieczności konwersji formatu.
Źródło yuvtestsrc
generuje wzór testowy YUV. Powinieneś zobaczyć paski ay, cb i cr od góry do dołu.
Źródła przyjmują następujące parametry:
level
Określ poziom Hald CLUT, dostępny tylko w
haldclutsrc
źródle. PoziomN
generuje obraz wN*N*N
pikselachN*N*N
, który ma być używany jako macierz tożsamości dla tabel przeglądowych 3D. Każdy komponent jest kodowany na1/(N*N)
skali.color, c
Określ kolor źródła, dostępny tylko w
color
źródle. Aby poznać składnię tej opcji, sprawdź sekcję (ffmpeg-utils)"Color" w podręczniku ffmpeg-utils .size, s
Określ rozmiar źródłowego wideo. Aby poznać składnię tej opcji, sprawdź sekcję (ffmpeg-utils)"Rozmiar wideo" w podręczniku ffmpeg-utils . Wartość domyślna to
320x240
.Ta opcja nie jest dostępna w przypadku filtrów
allrgb
,allyuv
i .haldclutsrc
rate, r
Określ szybkość klatek źródła wideo jako liczbę klatek generowanych na sekundę. Musi to być ciąg w formacie
frame_rate_num
/frame_rate_den
, liczba całkowita, liczba zmiennoprzecinkowa lub poprawny skrót szybkości klatek wideo. Wartość domyślna to „25”.duration, d
Ustaw czas trwania źródłowego wideo. Zobacz (ffmpeg-utils) sekcję Czas trwania w podręczniku ffmpeg-utils(1), aby poznać akceptowaną składnię.
Jeśli nie zostanie określony lub podany czas trwania jest ujemny, wideo powinno zostać wygenerowane na zawsze.
Ponieważ liczba klatek na sekundę jest używana jako podstawa czasu, wszystkie klatki, w tym ostatnia, będą miały pełny czas trwania. Jeśli określony czas trwania nie jest wielokrotnością czasu trwania klatki, zostanie zaokrąglony w górę.
sar
Ustaw przykładowe proporcje źródła wideo.
alpha
Określ alfa (krycie) tła, dostępne tylko w
testsrc2
źródle. Wartość musi mieścić się w zakresie od 0 (w pełni przezroczysta) do 255 (w pełni nieprzezroczysta, domyślna).decimals, n
Ustaw liczbę miejsc dziesiętnych, które mają być wyświetlane w sygnaturze czasowej, dostępne tylko w
testsrc
źródle.Wyświetlana wartość znacznika czasu będzie odpowiadać oryginalnej wartości znacznika czasu pomnożonej przez potęgę 10 określonej wartości. Wartość domyślna to 0.
type
Ustaw typ widma kolorów, dostępny tylko w
colorspectrum
źródle. Może być jednym z następujących:- '
black
' - '
white
' - '
all
'
- '
patch_size
Ustaw rozmiar wstawki pojedynczego koloru, dostępnej tylko w
colorchart
źródle. Wartość domyślna to64x64
.preset
Ustaw wstępnie ustawione kolory sprawdzania kolorów, dostępne tylko w
colorchart
źródle.Dostępne wartości to:
- '
reference
' - '
skintones
'
Wartość domyślna to
reference
.- '
14.9.1 Examples
- Wygeneruj wideo o czasie trwania 5,3 sekundy, o rozmiarze 176x144 i liczbie klatek na sekundę 10 klatek na sekundę:
testsrc=duration=5.3:size=qcif:rate=10
- Poniższy opis wykresu wygeneruje czerwone źródło z nieprzezroczystością 0,2, rozmiarem „qcif” i szybkością klatek 10 klatek na sekundę:
color=c=red@0.2:s=qcif:r=10
- Jeśli treść wejściowa ma zostać zignorowana,
nullsrc
można użyć. Następujące polecenie generuje szum w płaszczyźnie luminancji przy użyciugeq
filtra:nullsrc=s=256x256, geq=random(1)*255:128:128
14.9.2 Commands
Źródło color
obsługuje następujące polecenia:
c, color
Ustaw kolor tworzonego obrazu. Akceptuje tę samą składnię odpowiedniego
color
opcja.
14.10 openclsrc
Wygeneruj wideo za pomocą programu OpenCL.
source
Plik źródłowy programu OpenCL.
kernel
Nazwa jądra w programie.
size, s
Rozmiar ramek do wygenerowania. To musi być ustawione.
format
Format pikseli do użycia w wygenerowanych ramkach. To musi być ustawione.
rate, r
Liczba klatek generowanych na sekundę. Wartość domyślna to „25”.
Aby uzyskać szczegółowe informacje o tym, jak działa ładowanie programu, zobacz filtr program_opencl .
Przykładowe programy:
- Generuj rampę kolorów, ustawiając wartości pikseli na podstawie pozycji piksela na obrazie wyjściowym. (Zauważ, że będzie to działać ze wszystkimi formatami pikseli, ale wygenerowane wyjście nie będzie takie samo.)
__kernel void ramp(__write_only image2d_t dst, niepodpisany indeks int) { int2 loc = (int2)(get_global_id(0), get_global_id(1)); pływak4 wart; val.xy = val.zw = convert_float2(loc) / convert_float2(get_image_dim(dst)); write_imagef(dst, loc, val); }
- Wygeneruj wzór dywanu Sierpińskiego, przesuwając o jeden piksel w każdej klatce.
__kernel void sierpinski_carpet(__write_only image2d_t dst, niepodpisany indeks int) { int2 loc = (int2)(get_global_id(0), get_global_id(1)); wartość float4 = 0.0f; int x = loc.x + indeks; int y = loc.y + indeks; podczas gdy (x > 0 || y > 0) { if (x % 3 == 1 && y % 3 == 1) { wartość = 1,0f; przerwanie; } x /= 3; y /= 3; } write_imagef(dst, loc, wartość); }
14.11 sierpinski
Wygeneruj fraktal dywan/trójkąt Sierpińskiego i losowo przesuwaj.
To źródło akceptuje następujące opcje:
size, s
Ustaw rozmiar ramki. Aby poznać składnię tej opcji, sprawdź sekcję (ffmpeg-utils)"Rozmiar wideo" w podręczniku ffmpeg-utils . Wartość domyślna to „640x480”.
rate, r
Ustaw liczbę klatek wyrażoną jako liczba klatek na sekundę. Wartość domyślna to „25”.
seed
Ustaw ziarno, które jest używane do losowego panoramowania.
jump
Ustaw maksymalny skok dla pojedynczego miejsca docelowego panoramy. Dozwolony zakres to od 1 do 10000.
type
Ustaw typ fraktalny, może być domyślny
carpet
lubtriangle
.
15 Video Sinks
Poniżej znajduje się opis aktualnie dostępnych umywalek wideo.
15.1 buffersink
Buforuj klatki wideo i udostępniaj je na końcu wykresu filtra.
To ujście jest przeznaczone głównie do użytku programistycznego, w szczególności za pośrednictwem interfejsu zdefiniowanego wlibavfilter/buffersink.h
lub system opcji.
Akceptuje wskaźnik do struktury AVBufferSinkContext, która definiuje formaty buforów przychodzących, które mają być przekazywane jako parametr nieprzezroczysty do avfilter_init_filter
inicjalizacji.
15.2 nullsink
Null video sink: nie rób absolutnie nic z wejściowym wideo. Przydaje się głównie jako szablon oraz do wykorzystania w narzędziach do analizy/debugowania.
16 Multimedia Filters
Poniżej znajduje się opis aktualnie dostępnych filtrów multimedialnych.
16.1 abitscope
Konwertuj wejściowy dźwięk na wyjście wideo, wyświetlając zakres bitów audio.
Filtr akceptuje następujące opcje:
rate, r
Ustaw liczbę klatek wyrażoną jako liczba klatek na sekundę. Wartość domyślna to „25”.
size, s
Określ rozmiar wideo dla wyjścia. Aby poznać składnię tej opcji, sprawdź sekcję (ffmpeg-utils)"Rozmiar wideo" w podręczniku ffmpeg-utils . Wartość domyślna to
1024x256
.colors
Określ listę kolorów oddzielonych spacją lub znakiem „|” który będzie używany do rysowania kanałów. Nierozpoznane lub brakujące kolory zostaną zastąpione kolorem białym.
mode, m
Ustaw tryb wyjścia. Może być
bars
lubtrace
. Wartość domyślna tobars
.
16.2 adrawgraph
Narysuj wykres, używając wejściowych metadanych audio.
Zobacz rysunek
16.3 agraphmonitor
Zobacz graphmonitor .
16.4 ahistogram
Konwertuj wejściowy dźwięk na wyjście wideo, wyświetlając histogram głośności.
Filtr akceptuje następujące opcje:
dmode
Określ sposób obliczania histogramu.
Przyjmuje następujące wartości:
- '
single
' Użyj jednego histogramu dla wszystkich kanałów.
- '
separate
' Użyj oddzielnego histogramu dla każdego kanału.
Wartość domyślna to
single
.- '
rate, r
Ustaw liczbę klatek wyrażoną jako liczba klatek na sekundę. Wartość domyślna to „25”.
size, s
Określ rozmiar wideo dla wyjścia. Aby poznać składnię tej opcji, sprawdź sekcję (ffmpeg-utils)"Rozmiar wideo" w podręczniku ffmpeg-utils . Wartość domyślna to
hd720
.scale
Ustaw skalę wyświetlacza.
Przyjmuje następujące wartości:
- '
log
' logarytmiczny
- '
sqrt
' pierwiastek kwadratowy
- '
cbrt
' korzeń sześcienny
- '
lin
' liniowy
- '
rlog
' odwrotna logarytmiczna
Wartość domyślna to
log
.- '
ascale
Ustaw skalę amplitudy.
Przyjmuje następujące wartości:
- '
log
' logarytmiczny
- '
lin
' liniowy
Wartość domyślna to
log
.- '
acount
Ustaw liczbę klatek do akumulacji w histogramie. Wartość domyślna to 1. Ustawienie -1 powoduje akumulację wszystkich ramek.
rheight
Ustaw współczynnik histogramu wysokości okna.
slide
Ustaw przesuwanie sonogramu.
Przyjmuje następujące wartości:
- '
replace
' zastąpić stare wiersze nowymi.
- '
scroll
' przewiń od góry do dołu.
Wartość domyślna to
replace
.- '
hmode
Ustaw tryb histogramu.
Przyjmuje następujące wartości:
- '
abs
' Użyj wartości bezwzględnych próbek.
- '
sign
' Użyj nietkniętych wartości próbek.
Wartość domyślna to
abs
.- '
16.5 aphasemeter
Mierzy fazę wejściowego dźwięku, która jest eksportowana jako metadane lavfi.aphasemeter.phase
, reprezentująca średnią fazę bieżącej klatki dźwięku. Można również wyprodukować wyjście wideo i jest ono domyślnie włączone. Dźwięk jest przekazywany jako pierwsze wyjście.
Dźwięk zostanie zrematryfikowany do stereo, jeśli ma inny układ kanałów. Wartość fazy mieści się w zakresie , w [-1, 1]
którym -1
oznacza, że ​​lewy i prawy kanał są całkowicie przesunięte w fazie, a 1
kanały są w fazie.
Filtr akceptuje następujące opcje, wszystkie związane z wyjściem wideo:
rate, r
Ustaw wyjściową liczbę klatek na sekundę. Wartość domyślna to
25
.size, s
Ustaw rozmiar wideo dla wyjścia. Aby poznać składnię tej opcji, sprawdź sekcję (ffmpeg-utils)"Rozmiar wideo" w podręczniku ffmpeg-utils . Wartość domyślna to
800x400
.rc
gc
bc
Określ kontrast czerwony, zielony, niebieski. Wartości domyślne to
2
,7
i1
. Dozwolony zakres to[0, 255]
.mpc
Ustaw kolor, który będzie używany do rysowania fazy mediany. Jeśli kolor jest
none
ustawiony domyślnie, nie zostanie narysowana żadna mediana wartości fazy.video
Włącz wyjście wideo. Domyślnie jest włączone.
16.5.1 phasing detection
Filtr wykrywa również sekwencje przesunięte w fazie i mono w strumieniach stereo. Rejestruje początek, koniec i czas trwania sekwencji, gdy trwa ona dłużej lub tak długo, jak zestaw minimalny.
Filtr akceptuje następujące opcje tego wykrywania:
phasing
Włącz wykrywanie mono i poza fazą. Domyślnie jest wyłączone.
tolerance, t
Ustaw tolerancję fazy dla detekcji mono, w stosunku amplitudy. Wartość domyślna to
0
. Dozwolony zakres to[0, 1]
.angle, a
Ustaw próg kąta dla wykrywania braku fazy, w stopniach. Wartość domyślna to
170
. Dozwolony zakres to[90, 180]
.duration, d
Ustaw czas trwania mono lub poza fazą do powiadomienia, wyrażony w sekundach. Wartość domyślna to
2
.
16.5.2 Examples
- Kompletny przykład z
ffmpeg
wykrywaniem 1 sekundy mono z tolerancją 0,001 fazy:ffmpeg -i stereo.wav -af aphasemeter=video=0:phasing=1:duration=1:tolerance=0.001 -f null -
16.6 avectorscope
Konwertuj wejście audio na wyjście wideo, reprezentujące zakres wektora audio.
Filtr służy do pomiaru różnicy między kanałami strumienia dźwięku stereo. Sygnał monofoniczny, składający się z identycznego sygnału lewego i prawego, daje w wyniku prostą linię pionową. Każda separacja stereo jest widoczna jako odchylenie od tej linii, tworzące figurę Lissajous. Jeśli pojawi się linia prosta (lub odchylenie od niej), ale pozioma, oznacza to, że lewy i prawy kanał są przesunięte w fazie.
Filtr akceptuje następujące opcje:
mode, m
Ustaw tryb wektoroskopu.
Dostępne wartości to:
- '
lissajous
' Lissajous obrócony o 45 stopni.
- '
lissajous_xy
' Tak samo jak powyżej, ale nie obrócony.
- '
polar
' Kształt przypominający pół koła.
Wartość domyślna to '
lissajous
„.- '
size, s
Ustaw rozmiar wideo dla wyjścia. Aby poznać składnię tej opcji, sprawdź sekcję (ffmpeg-utils)"Rozmiar wideo" w podręczniku ffmpeg-utils . Wartość domyślna to
400x400
.rate, r
Ustaw wyjściową liczbę klatek na sekundę. Wartość domyślna to
25
.rc
gc
bc
ac
Określ kontrast czerwony, zielony, niebieski i alfa. Wartości domyślne to
40
,160
i80
.255
Dozwolony zakres to[0, 255]
.rf
gf
bf
af
Określ zanikanie koloru czerwonego, zielonego, niebieskiego i alfa. Wartości domyślne to
15
,10
i5
.5
Dozwolony zakres to[0, 255]
.zoom
Ustaw współczynnik powiększenia. Wartość domyślna to
1
. Dozwolony zakres to[0, 10]
. Wartości niższe niż1
automatycznie dostosują współczynnik powiększenia do maksymalnej możliwej wartości.draw
Ustaw tryb rysowania wektoroskopu.
Dostępne wartości to:
- '
dot
' Narysuj kropkę dla każdej próbki.
- '
line
' Narysuj linię między poprzednią a bieżącą próbką.
Wartość domyślna to '
dot
„.- '
scale
Określ skalę amplitudy próbek audio.
Dostępne wartości to:
- '
lin
' Liniowy.
- '
sqrt
' Pierwiastek kwadratowy.
- '
cbrt
' Korzeń sześcienny.
- '
log
' Logarytmiczny.
- '
swap
Zamień oś lewego kanału na oś prawego kanału.
mirror
Oś lustra.
- '
none
' Bez lustra.
- '
x
' Odbij tylko oś x.
- '
y
' Odbij tylko oś y.
- '
xy
' Odbij obie osie.
- '
16.6.1 Examples
- Kompletny przykład za pomocą
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]'
16.6.2 Commands
Ten filtr obsługuje wszystkie powyższe opcje jako polecenia z wyjątkiem opcji size
i rate
.
16.7 bench, abench
Część wzorcowa wykresu filtracyjnego.
Filtr akceptuje następujące opcje:
action
Uruchom lub zatrzymaj minutnik.
Dostępne wartości to:
- '
start
' Pobierz aktualny czas, ustaw go jako metadane klatki (używając klawisza
lavfi.bench.start_time
) i prześlij klatkę do następnego filtra.- '
stop
' Pobierz aktualny czas i pobierz
lavfi.bench.start_time
metadane z metadanych ramki wejściowej, aby uzyskać różnicę czasu. Następnie drukowana jest różnica czasu, czas średni, maksymalny i minimalny (odpowiedniot
,avg
,max
i ).min
Sygnatury czasowe są wyrażone w sekundach.
- '
16.7.1 Examples
- Benchmarkowy filtr
koloru selektywnego :
bench=start,selectivecolor=reds=-.2 .12 -.49,bench=stop
16.8 concat
Łącz strumienie audio i wideo, łącząc je jeden po drugim.
Filtr działa na segmentach zsynchronizowanych strumieni wideo i audio. Wszystkie segmenty muszą mieć taką samą liczbę strumieni każdego typu i taka będzie również liczba strumieni na wyjściu.
Filtr akceptuje następujące opcje:
n
Ustaw liczbę segmentów. Wartość domyślna to 2.
v
Ustaw liczbę wyjściowych strumieni wideo, czyli również liczbę strumieni wideo w każdym segmencie. Wartość domyślna to 1.
a
Ustaw liczbę wyjściowych strumieni audio, czyli również liczbę strumieni audio w każdym segmencie. Wartość domyślna to 0.
unsafe
Aktywuj tryb niebezpieczny: nie zawiedź, jeśli segmenty mają inny format.
Filtr ma wyjścia v
+ a
: najpierw v
wyjścia wideo, potem
a
wyjścia audio.
Jest n
x( v
+ a
) wejść: najpierw wejścia dla pierwszego segmentu, w tej samej kolejności co wyjścia, potem wejścia dla drugiego segmentu itd.
Powiązane strumienie nie zawsze mają dokładnie taki sam czas trwania, z różnych powodów, takich jak rozmiar ramki kodeka lub niechlujny proces tworzenia. Z tego powodu powiązane zsynchronizowane strumienie (np. wideo i jego ścieżka audio) powinny być połączone jednocześnie. Filtr concat użyje czasu trwania najdłuższego strumienia w każdym segmencie (poza ostatnim) i, jeśli to konieczne, dopełni krótsze strumienie audio ciszą.
Aby ten filtr działał poprawnie, wszystkie segmenty muszą zaczynać się od sygnatury czasowej 0.
Wszystkie odpowiadające strumienie muszą mieć te same parametry we wszystkich segmentach; system filtrowania automatycznie wybierze typowy format pikseli dla strumieni wideo oraz typowy format próbkowania, częstotliwość próbkowania i układ kanałów dla strumieni audio, ale inne ustawienia, takie jak rozdzielczość, muszą być wyraźnie przekonwertowane przez użytkownika.
Dopuszczalne są różne szybkości klatek, ale skutkują one zmienną szybkością klatek na wyjściu; pamiętaj, aby skonfigurować plik wyjściowy, aby go obsłużyć.
16.8.1 Examples
- Połącz początek, odcinek i zakończenie, wszystko w wersji dwujęzycznej (wideo w strumieniu 0, audio w strumieniach 1 i 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
- Połącz dwie części, obsługując osobno dźwięk i wideo, korzystając ze źródeł (a)filmów i dostosowując rozdzielczość:
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]
Zauważ, że desynchronizacja nastąpi w ściegu, jeśli strumienie audio i wideo nie mają dokładnie takiego samego czasu trwania w pierwszym pliku.
16.8.2 Commands
Ten filtr obsługuje następujące polecenia:
next
Zamknij bieżący segment i przejdź do następnego
16.9 ebur128
Filtr skanera EBU R128. Filtr ten pobiera strumień audio i analizuje jego poziom głośności. Domyślnie rejestruje wiadomość o częstotliwości 10 Hz z chwilową głośnością (oznaczoną M
), krótkotrwałą głośnością ( S
), zintegrowaną głośnością ( I
) i zakresem głośności ( LRA
).
Filtr może analizować tylko strumienie, których format próbki jest zmiennoprzecinkowy podwójnej precyzji. W razie potrzeby strumień wejściowy zostanie przekonwertowany do tej specyfikacji. Użytkownicy mogą potrzebować wstawić aformat i/lub aresample filtry po tym filtrze, aby uzyskać oryginalne parametry.
Filtr posiada również wyjście wideo (patrz video
opcja) z wykresem w czasie rzeczywistym do obserwacji ewolucji głośności. Grafika zawiera zarejestrowaną wiadomość wspomnianą powyżej, więc nie jest już drukowana, gdy ta opcja jest ustawiona, chyba że ustawiono szczegółowe rejestrowanie. Główny obszar wykresu zawiera krótkotrwałą głośność (3 sekundy analizy), a wskaźnik po prawej stronie służy do chwilowej głośności (400 milisekund), ale można go opcjonalnie skonfigurować tak, aby zamiast tego wyświetlał krótkotrwałą głośność (patrz gauge
).
Zielony obszar oznacza docelowy zakres +/- 1LU wokół docelowej głośności (domyślnie -23LUFS, chyba że zmodyfikowano przez target
).
Więcej informacji na temat Rekomendacji Głośności EBU R128 na http://tech.ebu.ch/loudness .
Filtr akceptuje następujące opcje:
video
Aktywuj wyjście wideo. Strumień audio jest przekazywany bez zmian, niezależnie od tego, czy ta opcja jest ustawiona, czy nie. Strumień wideo będzie pierwszym strumieniem wyjściowym, jeśli zostanie aktywowany. Wartość domyślna to
0
.size
Ustaw rozmiar wideo. Ta opcja dotyczy tylko wideo. Aby poznać składnię tej opcji, sprawdź sekcję (ffmpeg-utils)"Rozmiar wideo" w podręczniku ffmpeg-utils . Domyślna i minimalna rozdzielczość to
640x480
.meter
Ustaw miernik skali EBU. Wartość domyślna to
9
. Wspólne wartości to9
i18
odpowiednio dla miernika skali EBU +9 i miernika skali EBU +18. Dozwolona jest każda inna wartość całkowita z tego zakresu.metadata
Ustaw wstrzykiwanie metadanych. Jeśli ustawione na
1
, wejście audio zostanie podzielone na 100ms ramki wyjściowe, z których każda zawiera różne informacje o głośności w metadanych. Wszystkie klucze metadanych są poprzedzonelavfi.r128.
.Wartość domyślna to
0
.framelog
Wymuś poziom rejestrowania ramki.
Dostępne wartości to:
- '
info
' poziom logowania informacji
- '
verbose
' szczegółowy poziom rejestrowania
Domyślnie poziom rejestrowania jest ustawiony na
info
. Jeślivideo
albometadata
opcje są ustawione, przełącza się naverbose
.- '
peak
Ustaw tryby szczytowe.
Dostępne tryby można kumulować (opcja jest
flag
typem). Możliwe wartości to:- '
none
' Wyłącz dowolny tryb szczytowy (domyślnie).
- '
sample
' Włącz tryb szczytowy próbki.
Prosty tryb pików poszukujący wyższej wartości próbki. Rejestruje komunikat dla sample-peak (identyfikowany przez
SPK
).- '
true
' Włącz tryb prawdziwej wartości szczytowej.
Jeśli ta opcja jest włączona, wyszukiwanie szczytów odbywa się na nadmiernie próbkowanej wersji strumienia wejściowego w celu uzyskania lepszej dokładności pików. Rejestruje wiadomość dla true-peak. (oznaczone przez
TPK
) i true-peak na klatkę (oznaczone przezFTPK
). Ten tryb wymaga kompilacji zlibswresample
.
- '
dualmono
Traktuj pliki wejściowe mono jako „dual mono”. Jeśli plik mono jest przeznaczony do odtwarzania w systemie stereo, jego pomiar EBU R128 będzie percepcyjnie nieprawidłowy. Jeśli jest ustawiona na
true
, ta opcja zrekompensuje ten efekt. Ta opcja nie ma wpływu na wielokanałowe pliki wejściowe.panlaw
Ustaw konkretne prawo panoramy, które będzie używane do pomiaru plików dual mono. Ten parametr jest opcjonalny i ma domyślną wartość -3,01 dB.
target
Ustaw określony poziom docelowy (w LUFS) używany jako względne zero w wizualizacji. Ten parametr jest opcjonalny i ma domyślną wartość -23LUFS, jak określono w EBU R128. Jednak materiały publikowane online mogą preferować poziom -16LUFS (np. do użytku z podcastami lub platformami wideo).
gauge
Ustaw wartość wyświetlaną przez miernik. Prawidłowe wartości to
momentary
i sshortterm
. Domyślnie zostanie użyta wartość chwilowa, ale w niektórych scenariuszach bardziej przydatne może być obserwowanie wartości krótkoterminowej (np. miksowanie na żywo).scale
Ustawia skalę wyświetlania głośności. Prawidłowe parametry to
absolute
(w LUFS) lubrelative
(LU) względem celu. Ma to wpływ tylko na wyjście wideo, a nie na podsumowanie lub ciągłe wyjście dziennika.
16.9.1 Examples
- Wykres w czasie rzeczywistym z wykorzystaniem
ffplay
miernika skali EBU +18:ffplay -f lavfi -i "amovie=input.mp3,ebur128=video=1:meter=18 [out0][out1]"
- Przeprowadź analizę za pomocą
ffmpeg
:ffmpeg -nostats -i input.mp3 -filter_complex ebur128 -f null -
16.10 interleave, ainterleave
Czasowo przeplataj ramki z kilku wejść.
interleave
współpracuje z wejściami wideo, ainterleave
z dźwiękiem.
Filtry te odczytują ramki z kilku wejść i wysyłają najstarszą ramkę w kolejce do wyjścia.
Strumienie wejściowe muszą mieć dobrze zdefiniowane, monotonicznie rosnące wartości znaczników czasu klatek.
Aby przesłać jedną ramkę na wyjście, filtry te muszą umieścić w kolejce co najmniej jedną ramkę dla każdego wejścia, więc nie mogą działać w przypadku, gdy jedno wejście nie jest jeszcze zakończone i nie odbiera ramek przychodzących.
Rozważmy na przykład przypadek, gdy jedno wejście jest select
filtrem, który zawsze odrzuca ramki wejściowe. Filtr interleave
będzie kontynuował odczytywanie z tego wejścia, ale nigdy nie będzie w stanie wysłać nowych ramek na wyjście, dopóki wejście nie wyśle ​​sygnału końca strumienia.
Ponadto, w zależności od synchronizacji wejść, filtry porzucają ramki w przypadku, gdy jedno wejście otrzyma więcej ramek niż inne, a kolejka jest już wypełniona.
Te filtry akceptują następujące opcje:
nb_inputs, n
Ustaw liczbę różnych wejść, domyślnie jest to 2.
duration
Jak określić koniec strumienia.
longest
Czas trwania najdłuższego wejścia. (domyślna)
shortest
Czas trwania najkrótszego wejścia.
first
Czas trwania pierwszego wejścia.
16.10.1 Examples
- Przeplataj ramki należące do różnych strumieni za pomocą
ffmpeg
:ffmpeg -i bambi.avi -i pr0n.mkv -filter_complex "[0:v][1:v] interleave" out.avi
- Dodaj efekt migotania rozmycia:
select='if(gt(random(0), 0.2), 1, 2)':n=2 [tmp], boxblur=2:2, [tmp] interleave
16.11 latency, alatency
Zmierz opóźnienie filtrowania.
Zgłoś poprzednie opóźnienie filtrowania, opóźnienie liczby próbek audio dla filtrów audio lub liczbę klatek wideo dla filtrów wideo.
Na końcu strumienia wejściowego filtr zgłosi min. i maks. zmierzone opóźnienie dla poprzedniego uruchomionego filtru na wykresie filtra.
16.12 metadata, ametadata
Manipuluj metadanymi ramki.
Ten filtr akceptuje następujące opcje:
mode
Ustaw tryb pracy filtra.
Może być jednym z następujących:
- '
select
' Jeśli oba
value
ikey
są ustawione, wybierz klatki, które mają takie metadane. Jeśli tylkokey
jest ustawione, zaznacz każdą klatkę, która ma taki klucz w metadanych.- '
add
' Dodaj nowe metadane
key
ivalue
. Jeśli klucz jest już dostępny, nie rób nic.- '
modify
' Zmodyfikuj wartość już istniejącego klucza.
- '
delete
' Jeśli
value
jest ustawiona, usuń tylko klucze, które mają taką wartość. W przeciwnym razie usuń klucz. Jeślikey
nie jest ustawiona, usuń wszystkie wartości metadanych w ramce.- '
print
' Klucz wydruku i jego wartość, jeśli znaleziono metadane. Jeśli
key
nie jest ustawione, drukuj wszystkie wartości metadanych dostępne w ramce.
- '
key
Ustaw klucz używany we wszystkich trybach. Musi być ustawiony dla wszystkich trybów z wyjątkiem
print
idelete
.value
Ustaw wartość metadanych, która będzie używana. Ta opcja jest obowiązkowa dla trybu
modify
i .add
function
Którą funkcję użyć podczas porównywania wartości metadanych i
value
.Może być jednym z następujących:
- '
same_str
' Wartości są interpretowane jako ciągi, zwraca prawdę, jeśli wartość metadanych jest taka sama jak
value
.- '
starts_with
' Wartości są interpretowane jako ciągi, zwraca prawdę, jeśli wartość metadanych zaczyna się od
value
ciągu opcji.- '
less
' Wartości są interpretowane jako zmiennoprzecinkowe, zwraca prawdę, jeśli wartość metadanych jest mniejsza niż
value
.- '
equal
' Wartości są interpretowane jako zmiennoprzecinkowe, zwraca prawdę, jeśli
value
jest równa wartości metadanych.- '
greater
' Wartości są interpretowane jako zmiennoprzecinkowe, zwraca prawdę, jeśli wartość metadanych jest większa niż
value
.- '
expr
' Wartości są interpretowane jako zmiennoprzecinkowe, zwraca prawdę, jeśli wyrażenie z opcji
expr
ma wartość prawda.- '
ends_with
' Wartości są interpretowane jako ciągi, zwraca prawdę, jeśli wartość metadanych kończy się
value
ciągiem opcji.
- '
expr
Ustaw wyrażenie, które jest używane, gdy
function
jest ustawione naexpr
. Wyrażenie jest oceniane przez eval API i może zawierać następujące stałe:VALUE1, FRAMEVAL
Reprezentacja zmiennoprzecinkowa
value
z klucza metadanych.VALUE2, USERVAL
Reprezentacja zmiennoprzecinkowa
value
dostarczona przez użytkownika wvalue
opcji.
file
Jeśli określono w
print
trybie, dane wyjściowe są zapisywane do nazwanego pliku. Zamiast zwykłej nazwy pliku można podać dowolny zapisywalny adres URL. Nazwa pliku „-” jest skrótem dla standardowego wyjścia. Jeślifile
opcja nie jest ustawiona, dane wyjściowe są zapisywane do logu z AV_LOG_INFO loglevel.direct
Zmniejsza buforowanie w trybie drukowania, gdy dane wyjściowe są zapisywane pod adresem URL ustawionym za pomocą
file
.
16.12.1 Examples
- Wydrukuj wszystkie wartości metadanych dla ramek z kluczem
lavfi.signalstats.YDIF
o wartościach od 0 do 1.signalstats,metadata=print:key=lavfi.signalstats.YDIF:value=0:function=expr:expr='between(VALUE1,0,1)'
- Wydrukuj dane wyjściowe dotyczące wykrywania ciszy do pliku
metadata.txt
.silencedetect,ametadata=mode=print:file=metadata.txt
- Skieruj wszystkie metadane do potoku z deskryptorem pliku 4.
metadata=mode=print:file='pipe\:4'
16.13 perms, aperms
Ustaw uprawnienia do odczytu/zapisu dla ramek wyjściowych.
Filtry te są przeznaczone głównie dla programistów do testowania bezpośredniej ścieżki w następującym filtrze na wykresie filtra.
Filtry akceptują następujące opcje:
mode
Wybierz tryb uprawnień.
Przyjmuje następujące wartości:
- '
none
' Nic nie robić. To jest ustawienie domyślne.
- '
ro
' Ustaw wszystkie ramki wyjściowe tylko do odczytu.
- '
rw
' Ustaw wszystkie ramki wyjściowe bezpośrednio do zapisu.
- '
toggle
' Ustaw ramkę tylko do odczytu, jeśli jest zapisywalna, i zapisywalną, jeśli jest tylko do odczytu.
- '
random
' Ustaw losowo każdą ramkę wyjściową tylko do odczytu lub do zapisu.
- '
seed
Ustaw ziarno dla
random
trybu, musi być liczbą całkowitą zawartą między0
iUINT32_MAX
. Jeśli nie zostanie określony lub zostanie jawnie ustawiony na-1
, filtr spróbuje użyć dobrego losowego inicjatora na zasadzie najlepszego wysiłku.
Uwaga: w przypadku automatycznego wstawienia filtra między filtrem uprawnień a następnym, uprawnienie może nie zostać odebrane zgodnie z oczekiwaniami w tym kolejnym filtrze. Wstawienie filtru format lub aformat przed filtrem perms/aperms pozwala uniknąć tego problemu.
16.14 realtime, arealtime
Zwolnij filtrowanie, aby dopasować mniej więcej w czasie rzeczywistym.
Filtry te wstrzymają filtrowanie na zmienny czas, aby dopasować szybkość wyjściową do wejściowych znaczników czasu. Są podobne dore
opcja ffmpeg
.
Akceptują następujące opcje:
limit
Termin przerw. Każda przerwa dłuższa niż ta będzie uważana za nieciągłość znacznika czasu i zresetuje timer. Wartość domyślna to 2 sekundy.
speed
Współczynnik szybkości przetwarzania. Wartość musi być liczbą zmiennoprzecinkową większą od zera. Wartości większe niż 1.0 spowodują szybsze przetwarzanie niż w czasie rzeczywistym, mniejsze spowalniają przetwarzanie. Jest
limit
automatycznie odpowiednio dostosowywany. Wartość domyślna to 1.0.Nie można osiągnąć szybkości przetwarzania większej niż jest to możliwe bez tych filtrów.
16.14.1 Commands
Oba filtry obsługują wszystkie powyższe opcje jako polecenia .
16.15 segment, asegment
Podziel pojedynczy strumień wejściowy na wiele strumieni.
Ten filtr działa odwrotnie niż filtry concat.
segment
pracuje na klatkach wideo, asegment
na samplach audio.
Ten filtr akceptuje następujące opcje:
timestamps
Sygnatury czasowe segmentów wyjściowych oddzielone znakiem „|”. Pierwszy segment będzie uruchamiany od początku strumienia wejściowego. Ostatni segment będzie działał do końca strumienia wejściowego
frames, samples
Dokładna liczba klatek/próbek, aby podzielić segmenty.
We wszystkich przypadkach poprzedzenie każdego segmentu znakiem „+” sprawi, że będzie on powiązany z poprzednim segmentem.
16.15.1 Examples
- Podziel wejściowy strumień audio na trzy wyjściowe strumienie audio, zaczynając od początku wejściowego strumienia audio i zapisując go w pierwszym wyjściowym strumieniu audio, następnie po 60. sekundzie i zapisując niż w drugim wyjściowym strumieniu audio, a ostatni po 150. sekundzie wejściowego strumienia audio w trzecim wyjściowym strumieniu audio:
asegment=timestamps="60|150"
16.16 select, aselect
Wybierz klatki do przekazania na wyjściu.
Ten filtr akceptuje następujące opcje:
expr, e
Ustaw wyrażenie, które jest oceniane dla każdej ramki wejściowej.
Jeśli wyrażenie ma wartość zero, ramka jest odrzucana.
Jeśli wynik oceny jest ujemny lub NaN, ramka jest wysyłana na pierwsze wyjście; w przeciwnym razie jest wysyłany na wyjście z index
ceil(val)-1
, zakładając, że indeks wejściowy zaczyna się od 0.Np. wartość
1.2
odpowiada wyjściu o indeksieceil(1.2)-1 = 2-1 = 1
, czyli drugiemu wyjściu.outputs, n
Ustaw liczbę wyjść. Dane wyjściowe, do których należy wysłać wybraną ramkę, są oparte na wyniku oceny. Wartość domyślna to 1.
Wyrażenie może zawierać następujące stałe:
n
Numer (sekwencyjny) przefiltrowanej ramki, zaczynając od 0.
selected_n
Numer (sekwencyjny) wybranej ramki, zaczynając od 0.
prev_selected_n
Numer sekwencyjny ostatniej wybranej klatki. Jest to NAN, jeśli nie jest zdefiniowany.
TB
Podstawa czasowa wejściowych sygnatur czasowych.
pts
PTS (Presentation TimeStamp) filtrowanej ramki, wyrażony w
TB
jednostkach. Jest to NAN, jeśli nie jest zdefiniowany.t
PTS przefiltrowanej klatki wyrażony w sekundach. Jest to NAN, jeśli nie jest zdefiniowany.
prev_pts
PTS poprzednio filtrowanej klatki. Jest to NAN, jeśli nie jest zdefiniowany.
prev_selected_pts
PTS ostatniej wcześniej filtrowanej klatki. Jest to NAN, jeśli nie jest zdefiniowany.
prev_selected_t
PTS ostatnio wybranej klatki wyrażony w sekundach. Jest to NAN, jeśli nie jest zdefiniowany.
start_pts
Pierwszy PTS w strumieniu, który nie jest NAN. Pozostaje NAN, jeśli nie zostanie znaleziony.
start_t
Pierwszy PTS w ciągu kilku sekund w strumieniu, który nie jest NAN. Pozostaje NAN, jeśli nie zostanie znaleziony.
pict_type (video only)
Typ przefiltrowanej ramki. Może przyjąć jedną z następujących wartości:
I
P
B
S
SI
SP
BI
interlace_type (video only)
Typ z przeplotem ramek. Może przyjąć jedną z następujących wartości:
PROGRESSIVE
Ramka jest progresywna (bez przeplotu).
TOPFIRST
Rama jest na pierwszym miejscu.
BOTTOMFIRST
Ramka jest najpierw dolna.
consumed_sample_n (audio only)
liczba wybranych próbek przed bieżącą klatką
samples_n (audio only)
liczba próbek w bieżącej ramce
sample_rate (audio only)
częstotliwość próbkowania wejściowego
key
Jest to 1, jeśli filtrowana klatka jest klatką kluczową, 0 w przeciwnym razie.
pos
pozycja w pliku przefiltrowanej klatki, -1 jeśli informacja nie jest dostępna (np. dla wideo syntetycznego)
scene (video only)
wartość od 0 do 1, aby wskazać nową scenę; niska wartość odzwierciedla małe prawdopodobieństwo, że bieżąca klatka wprowadzi nową scenę, podczas gdy wyższa wartość oznacza, że ​​bieżąca klatka jest bardziej prawdopodobna (patrz przykład poniżej)
concatdec_select
Demuxer concat może wybrać tylko część pliku wejściowego concat przez ustawienie punktu wejściowego i wyjściowego, ale pakiety wyjściowe mogą nie być całkowicie zawarte w wybranym przedziale. Używając tej zmiennej możliwe jest pominięcie ramek generowanych przez demukser concat, które nie są dokładnie zawarte w wybranym przedziale.
Działa to poprzez porównanie pts ramki z
lavf.concat.start_time
wartościamilavf.concat.duration
metadanych pakietów, które są również obecne w dekodowanych ramkach.Zmienna
concatdec_select
ma wartość -1, jeśli ramka pts wynosi co najmniej start_time i albo brakuje metadanych czasu trwania, albo ramka pts jest krótsza niż start_time + czas trwania, 0 w przeciwnym razie i NaN, jeśli brakuje metadanych start_time.Zasadniczo oznacza to, że ramka wejściowa jest wybierana, jeśli jej punkty mieszczą się w przedziale ustawionym przez demukser concat.
Domyślna wartość wyrażenia select to „1”.
16.16.1 Examples
- Wybierz wszystkie klatki w wejściu:
select
Powyższy przykład jest taki sam jak:
select=1
- Pomiń wszystkie klatki:
select=0
- Wybierz tylko I-ramki:
select='eq(pict_type\,I)'
- Wybierz jedną klatkę co 100:
select='not(mod(n\,100))'
- Wybierz tylko klatki zawarte w przedziale czasowym 10-20:
select=between(t\,10\,20)
- Wybierz tylko I-ramki zawarte w przedziale czasowym 10-20:
select=between(t\,10\,20)*eq(pict_type\,I)
- Wybierz klatki o minimalnej odległości 10 sekund:
select='isnan(prev_selected_t)+gte(t-prev_selected_t\,10)'
- Użyj aselect, aby wybrać tylko klatki audio z liczbą próbek > 100:
aselect='gt(samples_n\,100)'
- Stwórz mozaikę pierwszych scen:
ffmpeg -i video.avi -vf select='gt(scene\,0.4)',scale=160:120,tile -frames:v 1 preview.png
Porównanie
scene
z wartością od 0,3 do 0,5 jest na ogół rozsądnym wyborem. - Wyślij parzyste i nieparzyste ramki do oddzielnych wyjść i skomponuj je:
select=n=2:e='mod(n, 2)+1' [odd][even]; [odd] pad=h=2*ih [tmp]; [tmp][even] overlay=y=h
- Wybierz przydatne klatki z pliku ffconcat, który używa punktów wejściowych i wyjściowych, ale gdzie pliki źródłowe nie są tylko intraframe.
ffmpeg -copyts -vsync 0 -segment_time_metadata 1 -i input.ffconcat -vf select=concatdec_select -af aselect=concatdec_select output.avi
16.17 sendcmd, asendcmd
Wysyłaj polecenia do filtrów na wykresie filtrów.
Filtry te odczytują polecenia, które mają być wysłane do innych filtrów na wykresie filtrów.
sendcmd
muszą być wstawione pomiędzy dwa filtry wideo,
asendcmd
muszą być wstawione pomiędzy dwa filtry audio, ale poza tym działają w ten sam sposób.
Specyfikacja poleceń może być podana w argumentach filtru z commands
opcją lub w pliku określonym przez
filename
opcję.
Te filtry akceptują następujące opcje:
commands, c
Ustaw polecenia, które mają być odczytywane i wysyłane do innych filtrów.
filename, f
Ustaw nazwę pliku poleceń, które mają być odczytywane i wysyłane do innych filtrów.
16.17.1 Commands syntax
Opis poleceń składa się z sekwencji specyfikacji interwałów, zawierającej listę poleceń do wykonania, gdy wystąpi określone zdarzenie związane z tym interwałem. Występujące zdarzenie to zazwyczaj czas, w którym bieżąca klatka wchodzi lub wychodzi z danego przedziału czasu.
Interwał określa następująca składnia:
START
[-END
] COMMANDS
;
Przedział czasu jest określony przez START
i END
razy.
END
jest opcjonalny i domyślnie ustawiony jest na maksymalny czas.
Bieżący czas klatki jest uważany za mieszczący się w określonym przedziale, jeśli jest zawarty w przedziale [ START
, END
), to znaczy, gdy czas jest większy lub równy START
i mniejszy niż
END
.
COMMANDS
składa się z sekwencji jednej lub więcej specyfikacji poleceń, oddzielonych znakiem ",", odnoszących się do tego przedziału. Składnia specyfikacji polecenia jest podana przez:
[FLAGS
] TARGET
COMMAND
ARG
FLAGS
jest opcjonalna i określa typ zdarzeń dotyczących przedziału czasowego, który umożliwia wysłanie określonego polecenia i musi być niezerową sekwencją flag identyfikatorów oddzielonych znakami „+” lub „|” i ujęte między "[" i "]".
Rozpoznawane są następujące flagi:
enter
Polecenie jest wysyłane, gdy znacznik czasu bieżącej ramki wejdzie w określony interwał. Innymi słowy, polecenie jest wysyłane, gdy znacznik czasu poprzedniej ramki nie znajdował się w podanym przedziale, a obecny jest.
leave
Polecenie jest wysyłane, gdy znacznik czasu bieżącej ramki opuszcza określony interwał. Innymi słowy, polecenie jest wysyłane, gdy znacznik czasu poprzedniej ramki znajdował się w podanym przedziale, a obecny nie.
expr
Polecenie
ARG
jest interpretowane jako wyrażenie, a wynik wyrażenia jest przekazywany jakoARG
.Wyrażenie jest oceniane przez eval API i może zawierać następujące stałe:
POS
Oryginalna pozycja w pliku ramki lub niezdefiniowana, jeśli nie została zdefiniowana dla bieżącej ramki.
PTS
Sygnatura czasowa prezentacji na wejściu.
N
Liczba klatek wejściowych dla wideo lub audio, zaczynając od 0.
T
Czas bieżącej klatki w sekundach.
TS
Czas rozpoczęcia w sekundach bieżącego interwału polecenia.
TE
Czas zakończenia w sekundach bieżącego interwału polecenia.
TI
Interpolowany czas bieżącego przedziału poleceń, TI = (T - TS) / (TE - TS).
W
Szerokość klatki wideo.
H
Wysokość klatki wideo.
Jeśli nie jest określony, przyjmowana jest
FLAGS
wartość domyślna .[enter]
TARGET
określa cel polecenia, zwykle nazwę klasy filtra lub konkretną nazwę instancji filtra.
COMMAND
określa nazwę polecenia dla filtru docelowego.
ARG
jest opcjonalny i określa opcjonalną listę argumentów dla danego COMMAND
.
Pomiędzy jedną specyfikacją interwału a drugą spacje lub sekwencje znaków zaczynające się od #
aż do końca linii są ignorowane i mogą być używane do opisywania komentarzy.
Uproszczony opis składni specyfikacji poleceń BNF jest następujący:
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
]
16.17.2 Examples
- Określ zmianę tempa dźwięku w drugim 4:
asendcmd=c='4.0 atempo tempo 1.5',atempo
- Kieruj na konkretną instancję filtra:
asendcmd=c='4.0 atempo@my tempo 1.5',atempo@my
- Określ listę poleceń tekstu rysunkowego i odcienia w pliku.
# 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)
Wykres filtra pozwalający na odczytanie i przetworzenie powyższej listy poleceń zapisanej w pliku
test.cmd
, można określić za pomocą:sendcmd=f=test.cmd,drawtext=fontfile=FreeSerif.ttf:text='',hue
16.18 setpts, asetpts
Zmień PTS (sygnatura czasowa prezentacji) ramek wejściowych.
setpts
działa na ramkach wideo, asetpts
na ramkach audio.
Ten filtr akceptuje następujące opcje:
expr
Wyrażenie, które jest oceniane dla każdej klatki w celu skonstruowania jej znacznika czasu.
Wyrażenie jest oceniane przez eval API i może zawierać następujące stałe:
FRAME_RATE, FR
liczba klatek na sekundę, zdefiniowana tylko dla filmów ze stałą liczbą klatek na sekundę
PTS
Sygnatura czasowa prezentacji na wejściu
N
Liczba klatek wejściowych dla wideo lub liczba wykorzystanych próbek, nie wliczając bieżącej klatki dla dźwięku, zaczynając od 0.
NB_CONSUMED_SAMPLES
Liczba zużytych próbek, nie wliczając bieżącej klatki (tylko audio)
NB_SAMPLES, S
Liczba próbek w bieżącej ramce (tylko audio)
SAMPLE_RATE, SR
Częstotliwość próbkowania dźwięku.
STARTPTS
PTS pierwszej klatki.
STARTT
czas w sekundach pierwszej klatki
INTERLACED
Określ, czy bieżąca ramka jest z przeplotem.
T
czas w sekundach bieżącej klatki
POS
oryginalna pozycja w pliku ramki lub niezdefiniowana, jeśli nie została zdefiniowana dla bieżącej ramki
PREV_INPTS
Poprzednie wejście PTS.
PREV_INT
poprzedni czas wprowadzania w sekundach
PREV_OUTPTS
Poprzednie wyjście PTS.
PREV_OUTT
poprzedni czas wyjścia w sekundach
RTCTIME
Czas zegara ściennego (RTC) w mikrosekundach. To jest przestarzałe, zamiast tego użyj time(0).
RTCSTART
Zegar ścienny (RTC) na początku filmu w mikrosekundach.
TB
Podstawa czasowa wejściowych sygnatur czasowych.
16.18.1 Examples
- Zacznij liczyć PTS od zera
setpts=PTS-STARTPTS
- Zastosuj efekt szybkiego ruchu:
setpts=0.5*PTS
- Zastosuj efekt zwolnionego tempa:
setpts=2.0*PTS
- Ustaw stałą szybkość 25 klatek na sekundę:
setpts=N/(25*TB)
- Ustaw stałą szybkość 25 fps z pewnym jitterem:
setpts='1/(25*TB) * (N + 0.05 * sin(N*2*PI/25))'
- Zastosuj 10-sekundowe przesunięcie do wejściowego PTS:
setpts=PTS+10/TB
- Generuj sygnatury czasowe z „źródła na żywo” i przestawiaj bazę na bieżącą podstawę czasową:
setpts='(RTCTIME - RTCSTART) / (TB * 1000000)'
- Generuj znaczniki czasu, licząc próbki:
asetpts=N/SR/TB
16.19 setrange
Wymuś zakres kolorów dla wyjściowej klatki wideo.
Filtr setrange
oznacza właściwość zakresu kolorów dla klatek wyjściowych. Nie zmienia ramki wejściowej, a jedynie ustawia odpowiednią właściwość, która wpływa na sposób traktowania ramki przez następujące filtry.
Filtr akceptuje następujące opcje:
range
Dostępne wartości to:
- '
auto
' Zachowaj tę samą właściwość zakresu kolorów.
- '
unspecified, unknown
' Ustaw zakres kolorów jako nieokreślony.
- '
limited, tv, mpeg
' Ustaw zakres kolorów jako ograniczony.
- '
full, pc, jpeg
' Ustaw pełny zakres kolorów.
- '
16.20 settb, asettb
Ustaw podstawę czasową używaną dla znaczników czasu ramek wyjściowych. Przydaje się głównie do testowania konfiguracji podstawy czasu.
Przyjmuje następujące parametry:
expr, tb
Wyrażenie, które jest oceniane w wyjściowej podstawie czasu.
Wartość dlatb
jest wyrażeniem arytmetycznym reprezentującym wymierność. Wyrażenie może zawierać stałe „AVTB” (domyślna podstawa czasu), „intb” (wejściowa podstawa czasu) i „sr” (częstotliwość próbkowania, tylko audio). Wartość domyślna to "intb".
16.20.1 Examples
- Ustaw podstawę czasu na 1/25:
settb=expr=1/25
- Ustaw podstawę czasu na 1/10:
settb=expr=0.1
- Ustaw podstawę czasu na 1001/1000:
settb=1+0.001
- Ustaw podstawę czasu na 2*intb:
settb=2*intb
- Ustaw domyślną wartość podstawy czasu:
settb=AVTB
16.21 showcqt
Konwertuj wejściowy dźwięk na wyjście wideo reprezentujące widmo częstotliwości logarytmicznie za pomocą algorytmu transformacji stałej Q Browna-Puckette z bezpośrednim obliczeniem współczynnika domeny częstotliwości (ale sama transformacja nie jest tak naprawdę stała Q, zamiast tego współczynnik Q jest w rzeczywistości zmienny/zaciśnięty), z tonem muzycznym skala od E0 do D#10.
Filtr akceptuje następujące opcje:
size, s
Określ rozmiar wideo dla wyjścia. Musi być równo. Aby poznać składnię tej opcji, sprawdź sekcję (ffmpeg-utils)"Rozmiar wideo" w podręczniku ffmpeg-utils . Wartość domyślna to
1920x1080
.fps, rate, r
Ustaw wyjściową liczbę klatek na sekundę. Wartość domyślna to
25
.bar_h
Ustaw wysokość bargrafu. Musi być równo. Domyślną wartością jest
-1
automatyczne obliczanie wysokości bargrafu.axis_h
Ustaw wysokość osi. Musi być równo. Wartość domyślna to
-1
automatyczne obliczanie wysokości osi.sono_h
Ustaw wysokość sonogramu. Musi być równo. Domyślną wartością jest
-1
automatyczne obliczanie wysokości sonogramu.fullhd
Ustaw rozdzielczość FullHD. Ta opcja jest przestarzała, użyj
size
zamiasts
niej. Wartość domyślna to1
.sono_v, volume
Określ wyrażenie głośności sonogramu. Może zawierać zmienne:
bar_v
bar_v
oceniane wyrażeniefrequency, freq, f
częstotliwość, w której jest oceniany
timeclamp, tc
wartość
timeclamp
opcji
i funkcje:
a_weighting(f)
Ważenie A równej głośności
b_weighting(f)
Ważenie B równej głośności
c_weighting(f)
Ważenie C równej głośności.
Wartość domyślna to
16
.bar_v, volume2
Określ wyrażenie objętości wykresu słupkowego. Może zawierać zmienne:
sono_v
sono_v
oceniane wyrażeniefrequency, freq, f
częstotliwość, w której jest oceniany
timeclamp, tc
wartość
timeclamp
opcji
i funkcje:
a_weighting(f)
Ważenie A równej głośności
b_weighting(f)
Ważenie B równej głośności
c_weighting(f)
Ważenie C równej głośności.
Wartość domyślna to
sono_v
.sono_g, gamma
Określ gamma sonogramu. Niższa gamma sprawia, że ​​widmo jest bardziej kontrastowe, wyższa gamma sprawia, że ​​widmo ma większy zasięg. Wartość domyślna to
3
. Dopuszczalny zakres to[1, 7]
.bar_g, gamma2
Określ gamma bargrafu. Wartość domyślna to
1
. Dopuszczalny zakres to[1, 7]
.bar_t
Określ poziom przezroczystości bargrafu. Niższa wartość sprawia, że ​​bargraf jest ostrzejszy. Wartość domyślna to
1
. Dopuszczalny zakres to[0, 1]
.timeclamp, tc
Określ znacznik czasu transformacji. Przy niskiej częstotliwości występuje kompromis między dokładnością w dziedzinie czasu a domeną częstotliwości. Jeśli timeclamp jest niższy, zdarzenie w domenie czasu jest reprezentowane dokładniej (np. szybki bęben basowy), w przeciwnym razie zdarzenie w domenie częstotliwości jest reprezentowane dokładniej (np. gitara basowa). Dopuszczalny zakres to
[0.002, 1]
. Wartość domyślna to0.17
.attack
Ustaw czas ataku w sekundach. Wartość domyślna to
0
(wyłączone). W przeciwnym razie ogranicza przyszłe próbki, stosując asymetryczne okienkowanie w dziedzinie czasu, przydatne, gdy wymagana jest niska latencja. Akceptowany zakres to[0, 1]
.basefreq
Określ częstotliwość podstawową transformacji. Wartość domyślna to
20.01523126408007475
, czyli częstotliwość 50 centów poniżej E0. Dopuszczalny zakres to[10, 100000]
.endfreq
Określ częstotliwość końcową transformacji. Wartość domyślna to
20495.59681441799654
, czyli częstotliwość 50 centów powyżej D#10. Dopuszczalny zakres to[10, 100000]
.coeffclamp
Ta opcja jest przestarzała i ignorowana.
tlength
Określ długość transformacji w dziedzinie czasu. Użyj tej opcji, aby kontrolować kompromis między domeną czasu a domeną częstotliwości w każdej próbce częstotliwości. Może zawierać zmienne:
frequency, freq, f
częstotliwość, w której jest oceniany
timeclamp, tc
wartość
timeclamp
opcji.
Wartość domyślna to
384*tc/(384+tc*f)
.count
Określ liczbę przekształceń dla każdej klatki wideo. Wartość domyślna to
6
. Dopuszczalny zakres to[1, 30]
.fcount
Określ liczbę przekształceń dla każdego piksela. Wartość domyślna to
0
, co sprawia, że ​​jest obliczana automatycznie. Dopuszczalny zakres to[0, 10]
.fontfile
Określ plik czcionki do użycia z dowolnym typem, aby narysować oś. Jeśli nie określono, użyj osadzonej czcionki. Zwróć uwagę, że rysowanie z plikiem czcionki lub czcionką osadzoną nie jest zaimplementowane za pomocą opcji niestandardowej
basefreq
iendfreq
użyjaxisfile
zamiast niej.font
Określ wzorzec fontconfig. Ma to niższy priorytet niż
fontfile
. We:
wzorze można zastąpić,|
aby uniknąć niepotrzebnych ucieczek.fontcolor
Określ wyrażenie koloru czcionki. Jest to wyrażenie arytmetyczne, które powinno zwrócić wartość całkowitą 0xRRGGBB. Może zawierać zmienne:
frequency, freq, f
częstotliwość, w której jest oceniany
timeclamp, tc
wartość
timeclamp
opcji
i funkcje:
midi(f)
liczba midi częstotliwości f, niektóre liczby midi: E0(16), C1(24), C2(36), A4(69)
r(x), g(x), b(x)
czerwona, zielona i niebieska wartość intensywności x.
Wartość domyślna to
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))
.axisfile
Określ plik obrazu, aby narysować oś. Ta opcja zastępuje
fontfile
ifontcolor
opcję.axis, text
Włącz/wyłącz rysowanie tekstu na osi. Jeśli jest ustawiony na
0
, rysowanie do osi jest wyłączone, ignorowanefontfile
iaxisfile
opcja. Wartość domyślna to1
.csp
Ustaw przestrzeń kolorów. Akceptowane wartości to:
- '
unspecified
' Nieokreślony (domyślny)
- '
bt709
' BT.709
- '
fcc
' FCC
- '
bt470bg
' BT.470BG lub BT.601-6 625
- '
smpte170m
' SMPTE-170M lub BT.601-6 525
- '
smpte240m
' SMPTE-240M
- '
bt2020ncl
' BT.2020 z niestałą luminancją
- '
cscheme
Ustaw schemat kolorów spektrogramu. To jest lista wartości zmiennoprzecinkowych z formatem
left_r|left_g|left_b|right_r|right_g|right_b
. Wartość domyślna to1|0.5|0|0|0.5|1
.
16.21.1 Examples
- Odtwarzanie dźwięku podczas wyświetlania widma:
ffplay -f lavfi 'amovie=a.mp3, asplit [a][out1]; [a] showcqt [out0]'
- Tak samo jak powyżej, ale z szybkością 30 kl./s:
ffplay -f lavfi 'amovie=a.mp3, asplit [a][out1]; [a] showcqt=fps=30:count=5 [out0]'
- Gra w rozdzielczości 1280x720:
ffplay -f lavfi 'amovie=a.mp3, asplit [a][out1]; [a] showcqt=s=1280x720:count=4 [out0]'
- Wyłącz wyświetlanie sonogramu:
sono_h=0
- A1 i jego harmoniczne: A1, A2, (blisko)E3, A3:
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]'
- Tak samo jak powyżej, ale z większą dokładnością w dziedzinie częstotliwości:
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]'
- Głośność niestandardowa:
bar_v=10:sono_v=bar_v*a_weighting(f)
- Niestandardowa gamma, teraz widmo jest liniowe do amplitudy.
bar_g=2:sono_g=2
- Niestandardowe równanie długości:
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)))'
- Niestandardowy kolor czcionki i plik czcionki, C-note jest w kolorze zielonym, inne w kolorze niebieskim:
fontcolor='if(mod(floor(midi(f)+0.5),12), 0x0000FF, g(1))':fontfile=myfont.ttf
- Niestandardowa czcionka przy użyciu fontconfig:
font='Courier New,Monospace,mono|bold'
- Niestandardowy zakres częstotliwości z niestandardową osią przy użyciu pliku obrazu:
axisfile=myaxis.png:basefreq=40:endfreq=10000
16.22 showfreqs
Konwertuj wejście audio na wyjście wideo reprezentujące widmo mocy dźwięku. Amplituda dźwięku jest na osi Y, a częstotliwość na osi X.
Filtr akceptuje następujące opcje:
size, s
Określ rozmiar wideo. Aby poznać składnię tej opcji, sprawdź sekcję (ffmpeg-utils)"Rozmiar wideo" w podręczniku ffmpeg-utils . Wartość domyślna to
1024x512
.rate, r
Ustaw szybkość wideo. Wartość domyślna to
25
.mode
Ustaw tryb wyświetlania. Ustawia to, w jaki sposób będzie reprezentowany każdy przedział częstotliwości.
Przyjmuje następujące wartości:
- '
line
' - '
bar
' - '
dot
'
Wartość domyślna to
bar
.- '
ascale
Ustaw skalę amplitudy.
Przyjmuje następujące wartości:
- '
lin
' Skala liniowa.
- '
sqrt
' Skala pierwiastka kwadratowego.
- '
cbrt
' Skala pierwiastka sześciennego.
- '
log
' Skala logarytmiczna.
Wartość domyślna to
log
.- '
fscale
Ustaw skalę częstotliwości.
Przyjmuje następujące wartości:
- '
lin
' Skala liniowa.
- '
log
' Skala logarytmiczna.
- '
rlog
' Odwrócona skala logarytmiczna.
Wartość domyślna to
lin
.- '
win_size
Ustaw rozmiar okna. Dozwolony zakres to od 16 do 65536.
Wartość domyślna to
2048
win_func
Ustaw funkcję okienkowania.
Przyjmuje następujące wartości:
- '
rect
' - '
bartlett
' - '
hanning
' - '
hamming
' - '
blackman
' - '
welch
' - '
flattop
' - '
bharris
' - '
bnuttall
' - '
bhann
' - '
sine
' - '
nuttall
' - '
lanczos
' - '
gauss
' - '
tukey
' - '
dolph
' - '
cauchy
' - '
parzen
' - '
poisson
' - '
bohman
'
Wartość domyślna to
hanning
.- '
overlap
Ustaw nakładanie się okien. W zasięgu
[0, 1]
. Domyślnie jest to1
, co oznacza, że ​​zostanie wybrane optymalne nakładanie się dla wybranej funkcji okna.averaging
Ustaw uśrednianie czasu. Ustawienie tego na 0 spowoduje wyświetlenie bieżących maksymalnych szczytów. Wartość domyślna to
1
, co oznacza, że ​​uśrednianie czasu jest wyłączone.colors
Określ listę kolorów oddzielonych spacją lub znakiem „|” który będzie używany do rysowania częstotliwości kanałów. Nierozpoznane lub brakujące kolory zostaną zastąpione kolorem białym.
cmode
Ustaw tryb wyświetlania kanału.
Przyjmuje następujące wartości:
- '
combined
' - '
separate
'
Wartość domyślna to
combined
.- '
minamp
Ustaw minimalną amplitudę używaną w
log
skalerze amplitudy.data
Ustaw tryb wyświetlania danych.
Przyjmuje następujące wartości:
- '
magnitude
' - '
phase
' - '
delay
'
Wartość domyślna to
magnitude
.- '
channels
Ustaw kanały, które będą używane podczas przetwarzania dźwięku. Domyślnie wszystkie są przetwarzane.
16.23 showspatial
Konwertuj dźwięk stereo z wejścia na wyjście wideo, reprezentując przestrzenną relację między dwoma kanałami.
Filtr akceptuje następujące opcje:
size, s
Określ rozmiar wideo dla wyjścia. Aby poznać składnię tej opcji, sprawdź sekcję (ffmpeg-utils)"Rozmiar wideo" w podręczniku ffmpeg-utils . Wartość domyślna to
512x512
.win_size
Ustaw rozmiar okna. Dozwolony zakres to od
1024
do65536
. Rozmiar domyślny to4096
.win_func
Ustaw funkcję okna.
Przyjmuje następujące wartości:
- '
rect
' - '
bartlett
' - '
hann
' - '
hanning
' - '
hamming
' - '
blackman
' - '
welch
' - '
flattop
' - '
bharris
' - '
bnuttall
' - '
bhann
' - '
sine
' - '
nuttall
' - '
lanczos
' - '
gauss
' - '
tukey
' - '
dolph
' - '
cauchy
' - '
parzen
' - '
poisson
' - '
bohman
'
Wartość domyślna to
hann
.- '
overlap
Ustaw stosunek okna nakładania. Wartość domyślna to
0.5
. Gdy wartość jest1
ustawiona na nakładanie się, jest ustawiony na zalecany rozmiar dla określonej aktualnie używanej funkcji okna.
16.24 showspectrum
Konwertuj wejściowy dźwięk na wyjście wideo, reprezentujące widmo częstotliwości dźwięku.
Filtr akceptuje następujące opcje:
size, s
Określ rozmiar wideo dla wyjścia. Aby poznać składnię tej opcji, sprawdź sekcję (ffmpeg-utils)"Rozmiar wideo" w podręczniku ffmpeg-utils . Wartość domyślna to
640x512
.slide
Określ, jak widmo powinno przesuwać się w oknie.
Przyjmuje następujące wartości:
- '
replace
' próbki zaczynają się ponownie po lewej stronie, gdy dotrą do prawej
- '
scroll
' próbki przewijają się od prawej do lewej
- '
fullframe
' ramki są produkowane tylko wtedy, gdy próbki docierają do prawej
- '
rscroll
' próbki przewijają się od lewej do prawej
- '
lreplace
' próbki zaczynają się ponownie po prawej stronie, gdy dotrą do lewej
Wartość domyślna to
replace
.- '
mode
Określ tryb wyświetlania.
Przyjmuje następujące wartości:
- '
combined
' wszystkie kanały są wyświetlane w tym samym wierszu
- '
separate
' wszystkie kanały są wyświetlane w osobnych wierszach
Wartość domyślna to '
combined
„.- '
color
Określ tryb wyświetlania kolorów.
Przyjmuje następujące wartości:
- '
channel
' każdy kanał jest wyświetlany w osobnym kolorze
- '
intensity
' każdy kanał jest wyświetlany w tym samym schemacie kolorów
- '
rainbow
' każdy kanał jest wyświetlany w schemacie kolorów tęczy
- '
moreland
' każdy kanał jest wyświetlany w kolorystyce moreland
- '
nebulae
' każdy kanał jest wyświetlany przy użyciu schematu kolorów mgławic
- '
fire
' każdy kanał jest wyświetlany przy użyciu schematu kolorów ognia
- '
fiery
' każdy kanał jest wyświetlany w ognistej kolorystyce
- '
fruit
' każdy kanał jest wyświetlany przy użyciu schematu kolorów owoców
- '
cool
' każdy kanał jest wyświetlany w chłodnej kolorystyce
- '
magma
' każdy kanał jest wyświetlany w schemacie kolorów magmy
- '
green
' każdy kanał jest wyświetlany w zielonej kolorystyce
- '
viridis
' każdy kanał jest wyświetlany w schemacie kolorów viridis
- '
plasma
' każdy kanał jest wyświetlany w schemacie kolorów plazmy
- '
cividis
' każdy kanał jest wyświetlany w schemacie kolorów cividis
- '
terrain
' każdy kanał jest wyświetlany przy użyciu schematu kolorów terenu
Wartość domyślna to '
channel
„.- '
scale
Określ skalę używaną do obliczania wartości intensywności kolorów.
Przyjmuje następujące wartości:
- '
lin
' liniowy
- '
sqrt
' pierwiastek kwadratowy, domyślny
- '
cbrt
' korzeń sześcienny
- '
log
' logarytmiczny
- '
4thrt
' Czwarty korzeń
- '
5thrt
' 5-ty korzeń
Wartość domyślna to '
sqrt
„.- '
fscale
Określ skalę częstotliwości.
Przyjmuje następujące wartości:
- '
lin
' liniowy
- '
log
' logarytmiczny
Wartość domyślna to '
lin
„.- '
saturation
Ustaw modyfikator nasycenia dla wyświetlanych kolorów. Wartości ujemne zapewniają alternatywny schemat kolorów.
0
w ogóle nie ma nasycenia. Nasycenie musi mieścić się w zakresie [-10,0, 10,0]. Wartość domyślna to1
.win_func
Ustaw funkcję okna.
Przyjmuje następujące wartości:
- '
rect
' - '
bartlett
' - '
hann
' - '
hanning
' - '
hamming
' - '
blackman
' - '
welch
' - '
flattop
' - '
bharris
' - '
bnuttall
' - '
bhann
' - '
sine
' - '
nuttall
' - '
lanczos
' - '
gauss
' - '
tukey
' - '
dolph
' - '
cauchy
' - '
parzen
' - '
poisson
' - '
bohman
'
Wartość domyślna to
hann
.- '
orientation
Ustaw orientację osi czasu i częstotliwości. Może być
vertical
lubhorizontal
. Wartość domyślna tovertical
.overlap
Ustaw stosunek okna nakładania. Wartość domyślna to
0
. Gdy wartość jest1
ustawiona na nakładanie się, jest ustawiony na zalecany rozmiar dla określonej aktualnie używanej funkcji okna.gain
Ustaw wzmocnienie skali do obliczania wartości intensywności kolorów. Wartość domyślna to
1
.data
Ustaw dane do wyświetlenia. Może być fazą
magnitude
, default lubphase
, lub rozpakowaną:uphase
.rotation
Ustaw rotację kolorów, musi mieścić się w zakresie [-1,0, 1,0]. Wartość domyślna to
0
.start
Ustaw częstotliwość początkową, od której ma być wyświetlany spektrogram. Wartość domyślna to
0
.stop
Ustaw częstotliwość zatrzymania, do której ma być wyświetlany spektrogram. Wartość domyślna to
0
.fps
Ustaw górny limit szybkości klatek. Wartość domyślna to
auto
, nieograniczona.legend
Rysuj osie czasu i częstotliwości oraz legendy. Domyślnie jest wyłączone.
drange
Ustaw zakres dynamiczny używany do obliczania wartości intensywności kolorów. Wartość domyślna to 120 dBFS. Dozwolony zakres to od 10 do 200.
limit
Ustaw górny limit głośności wejściowych próbek audio w dBFS. Wartość domyślna to 0 dBFS. Dozwolony zakres to od -100 do 100.
opacity
Ustaw siłę nieprzezroczystości podczas korzystania z formatu pikselowego z komponentem alfa.
Użycie jest bardzo podobne do filtra showwaves; zobacz przykłady w tej sekcji.
16.24.1 Examples
- Duże okno z logarytmicznym skalowaniem kolorów:
showspectrum=s=1280x480:scale=log
- Kompletny przykład dla kolorowego i przesuwającego się widma na kanał przy użyciu
ffplay
:ffplay -f lavfi 'amovie=input.mp3, asplit [a][out1]; [a] showspectrum=mode=separate:color=intensity:slide=1:scale=cbrt [out0]'
16.25 showspectrumpic
Konwertuj dźwięk wejściowy na pojedynczą ramkę wideo, reprezentującą widmo częstotliwości dźwięku.
Filtr akceptuje następujące opcje:
size, s
Określ rozmiar wideo dla wyjścia. Aby poznać składnię tej opcji, sprawdź sekcję (ffmpeg-utils)"Rozmiar wideo" w podręczniku ffmpeg-utils . Wartość domyślna to
4096x2048
.mode
Określ tryb wyświetlania.
Przyjmuje następujące wartości:
- '
combined
' wszystkie kanały są wyświetlane w tym samym wierszu
- '
separate
' wszystkie kanały są wyświetlane w osobnych wierszach
Wartość domyślna to '
combined
„.- '
color
Określ tryb wyświetlania kolorów.
Przyjmuje następujące wartości:
- '
channel
' każdy kanał jest wyświetlany w osobnym kolorze
- '
intensity
' każdy kanał jest wyświetlany w tym samym schemacie kolorów
- '
rainbow
' każdy kanał jest wyświetlany w schemacie kolorów tęczy
- '
moreland
' każdy kanał jest wyświetlany w kolorystyce moreland
- '
nebulae
' każdy kanał jest wyświetlany przy użyciu schematu kolorów mgławic
- '
fire
' każdy kanał jest wyświetlany przy użyciu schematu kolorów ognia
- '
fiery
' każdy kanał jest wyświetlany w ognistej kolorystyce
- '
fruit
' każdy kanał jest wyświetlany przy użyciu schematu kolorów owoców
- '
cool
' każdy kanał jest wyświetlany w chłodnej kolorystyce
- '
magma
' każdy kanał jest wyświetlany w schemacie kolorów magmy
- '
green
' każdy kanał jest wyświetlany w zielonej kolorystyce
- '
viridis
' każdy kanał jest wyświetlany w schemacie kolorów viridis
- '
plasma
' każdy kanał jest wyświetlany w schemacie kolorów plazmy
- '
cividis
' każdy kanał jest wyświetlany w schemacie kolorów cividis
- '
terrain
' każdy kanał jest wyświetlany przy użyciu schematu kolorów terenu
Wartość domyślna to '
intensity
„.- '
scale
Określ skalę używaną do obliczania wartości intensywności kolorów.
Przyjmuje następujące wartości:
- '
lin
' liniowy
- '
sqrt
' pierwiastek kwadratowy, domyślny
- '
cbrt
' korzeń sześcienny
- '
log
' logarytmiczny
- '
4thrt
' Czwarty korzeń
- '
5thrt
' 5-ty korzeń
Wartość domyślna to '
log
„.- '
fscale
Określ skalę częstotliwości.
Przyjmuje następujące wartości:
- '
lin
' liniowy
- '
log
' logarytmiczny
Wartość domyślna to '
lin
„.- '
saturation
Ustaw modyfikator nasycenia dla wyświetlanych kolorów. Wartości ujemne zapewniają alternatywny schemat kolorów.
0
w ogóle nie ma nasycenia. Nasycenie musi mieścić się w zakresie [-10,0, 10,0]. Wartość domyślna to1
.win_func
Ustaw funkcję okna.
Przyjmuje następujące wartości:
- '
rect
' - '
bartlett
' - '
hann
' - '
hanning
' - '
hamming
' - '
blackman
' - '
welch
' - '
flattop
' - '
bharris
' - '
bnuttall
' - '
bhann
' - '
sine
' - '
nuttall
' - '
lanczos
' - '
gauss
' - '
tukey
' - '
dolph
' - '
cauchy
' - '
parzen
' - '
poisson
' - '
bohman
'
Wartość domyślna to
hann
.- '
orientation
Ustaw orientację osi czasu i częstotliwości. Może być
vertical
lubhorizontal
. Wartość domyślna tovertical
.gain
Ustaw wzmocnienie skali do obliczania wartości intensywności kolorów. Wartość domyślna to
1
.legend
Rysuj osie czasu i częstotliwości oraz legendy. Domyślnie jest włączone.
rotation
Ustaw rotację kolorów, musi mieścić się w zakresie [-1,0, 1,0]. Wartość domyślna to
0
.start
Ustaw częstotliwość początkową, od której ma być wyświetlany spektrogram. Wartość domyślna to
0
.stop
Ustaw częstotliwość zatrzymania, do której ma być wyświetlany spektrogram. Wartość domyślna to
0
.drange
Ustaw zakres dynamiczny używany do obliczania wartości intensywności kolorów. Wartość domyślna to 120 dBFS. Dozwolony zakres to od 10 do 200.
limit
Ustaw górny limit głośności wejściowych próbek audio w dBFS. Wartość domyślna to 0 dBFS. Dozwolony zakres to od -100 do 100.
opacity
Ustaw siłę nieprzezroczystości podczas korzystania z formatu pikselowego z komponentem alfa.
16.25.1 Examples
- Wyodrębnij spektrogram dźwiękowy całej ścieżki dźwiękowej na obrazie 1024x1024 za pomocą
ffmpeg
:ffmpeg -i audio.flac -lavfi showspectrumpic=s=1024x1024 spectrogram.png
16.26 showvolume
Konwertuj wejściową głośność audio na wyjście wideo.
Filtr akceptuje następujące opcje:
rate, r
Ustaw szybkość wideo.
b
Ustaw szerokość obramowania, dozwolony zakres to [0, 5]. Wartość domyślna to 1.
w
Ustaw szerokość kanału, dozwolony zakres to [80, 8192]. Wartość domyślna to 400.
h
Ustaw wysokość kanału, dozwolony zakres to [1, 900]. Wartość domyślna to 20.
f
Ustaw zanikanie, dozwolony zakres to [0, 1]. Wartość domyślna to 0,95.
c
Ustaw ekspresję koloru głośności.
Wyrażenie może używać następujących zmiennych:
VOLUME
Aktualna maksymalna głośność kanału w dB.
PEAK
Aktualny szczyt.
CHANNEL
Aktualny numer kanału, zaczynając od 0.
t
Jeśli ustawione, wyświetla nazwy kanałów. Domyślnie jest włączone.
v
Jeśli ustawione, wyświetla wartości głośności. Domyślnie jest włączone.
o
Ustaw orientację, może być pozioma:
h
lub pionowa:v
, domyślnieh
.s
Ustaw wielkość kroku, dozwolony zakres to [0, 5]. Wartość domyślna to 0, co oznacza, że ​​krok jest wyłączony.
p
Ustaw krycie tła, dozwolony zakres to [0, 1]. Wartość domyślna to 0.
m
Ustaw tryb pomiaru, może to być peak:
p
lub rms:r
, domyślniep
.ds
Ustaw skalę wyświetlania, może być liniowa:
lin
lub log:log
, domyślnielin
.dm
W sekundę. Jeśli ustawione na > 0., wyświetl linię dla maksymalnego poziomu w poprzednich sekundach. domyślnie jest wyłączone:
0.
dmc
Kolor linii max. Użyj, gdy
dm
opcja jest ustawiona na > 0. domyślnie:orange
16.27 showwaves
Konwertuj wejściowy dźwięk na wyjście wideo, reprezentujące fale próbek.
Filtr akceptuje następujące opcje:
size, s
Określ rozmiar wideo dla wyjścia. Aby poznać składnię tej opcji, sprawdź sekcję (ffmpeg-utils)"Rozmiar wideo" w podręczniku ffmpeg-utils . Wartość domyślna to
600x240
.mode
Ustaw tryb wyświetlania.
Dostępne wartości to:
- '
point
' Narysuj punkt dla każdej próbki.
- '
line
' Narysuj pionową linię dla każdej próbki.
- '
p2p
' Narysuj punkt dla każdej próbki i linię między nimi.
- '
cline
' Narysuj wyśrodkowaną linię pionową dla każdej próbki.
Wartość domyślna to
point
.- '
n
Ustaw liczbę próbek, które są drukowane w tej samej kolumnie. Większa wartość zmniejszy liczbę klatek na sekundę. Musi być dodatnią liczbą całkowitą. Tę opcję można ustawić tylko wtedy, gdy wartość for
rate
nie jest wyraźnie określona.rate, r
Ustaw (przybliżoną) wyjściową liczbę klatek na sekundę. Odbywa się to poprzez ustawienie opcji
n
. Wartość domyślna to „25”.split_channels
Ustaw, czy kanały mają być rysowane osobno, czy nakładają się. Wartość domyślna to 0.
colors
Ustaw kolory oddzielone znakiem „|” które posłużą do rysowania każdego kanału.
scale
Ustaw skalę amplitudy.
Dostępne wartości to:
- '
lin
' Liniowy.
- '
log
' Logarytmiczny.
- '
sqrt
' Pierwiastek kwadratowy.
- '
cbrt
' Korzeń sześcienny.
Wartość domyślna jest liniowa.
- '
draw
Ustaw tryb rysowania. Przydaje się to głównie do ustawienia na wysoki
n
.Dostępne wartości to:
- '
scale
' Skaluj wartości pikseli dla każdej narysowanej próbki.
- '
full
' Narysuj każdą próbkę bezpośrednio.
Wartość domyślna to
scale
.- '
16.27.1 Examples
- Wyprowadzaj jednocześnie dźwięk pliku wejściowego i odpowiednią reprezentację wideo:
amovie=a.mp3,asplit[out0],showwaves[out1]
- Utwórz syntetyczny sygnał i pokaż go za pomocą fal pokazowych, wymuszając szybkość 30 klatek na sekundę:
aevalsrc=sin(1*2*PI*t)*sin(880*2*PI*t):cos(2*PI*200*t),asplit[out0],showwaves=r=30[out1]
16.28 showwavespic
Konwertuj dźwięk wejściowy na pojedynczą klatkę wideo, reprezentującą fale próbek.
Filtr akceptuje następujące opcje:
size, s
Określ rozmiar wideo dla wyjścia. Aby poznać składnię tej opcji, sprawdź sekcję (ffmpeg-utils)"Rozmiar wideo" w podręczniku ffmpeg-utils . Wartość domyślna to
600x240
.split_channels
Ustaw, czy kanały mają być rysowane osobno, czy nakładają się. Wartość domyślna to 0.
colors
Ustaw kolory oddzielone znakiem „|” które posłużą do rysowania każdego kanału.
scale
Ustaw skalę amplitudy.
Dostępne wartości to:
- '
lin
' Liniowy.
- '
log
' Logarytmiczny.
- '
sqrt
' Pierwiastek kwadratowy.
- '
cbrt
' Korzeń sześcienny.
Wartość domyślna jest liniowa.
- '
draw
Ustaw tryb rysowania.
Dostępne wartości to:
- '
scale
' Skaluj wartości pikseli dla każdej narysowanej próbki.
- '
full
' Narysuj każdą próbkę bezpośrednio.
Wartość domyślna to
scale
.- '
filter
Ustaw tryb filtra.
Dostępne wartości to:
- '
average
' Użyj średnich wartości próbek dla każdej wylosowanej próbki.
- '
peak
' Użyj wartości szczytowych próbek dla każdej pobranej próbki.
Wartość domyślna to
average
.- '
16.28.1 Examples
- Wyodrębnij reprezentację podziału kanału z kształtu fali całej ścieżki dźwiękowej w obrazie 1024x800 za pomocą
ffmpeg
:ffmpeg -i audio.flac -lavfi showwavespic=split_channels=1:s=1024x800 waveform.png
16.29 sidedata, asidedata
Usuń dane po stronie klatki lub wybierz klatki na ich podstawie.
Ten filtr akceptuje następujące opcje:
mode
Ustaw tryb pracy filtra.
Może być jednym z następujących:
- '
select
' Wybierz każdą klatkę z danymi bocznymi
type
.- '
delete
' Usuń dane poboczne
type
. Jeślitype
nie jest ustawione, usuń wszystkie dane boczne w ramce.
- '
type
Ustaw poboczny typ danych używany we wszystkich trybach. Musi być ustawiony na
select
tryb. Listę typów danych po stronie ramki można znaleźć wAVFrameSideDataType
wyliczeniu wlibavutil/frame.h
. Na przykład, aby wybraćAV_FRAME_DATA_PANSCAN
dane boczne, musisz określićPANSCAN
.
16.30 spectrumsynth
Syntetyzuj dźwięk z 2 wejściowych widm wideo, pierwszy strumień wejściowy reprezentuje wielkość w czasie, a drugi fazę w czasie. Filtr przekształci się z domeny częstotliwości wyświetlanej w filmach z powrotem do domeny czasu, jak pokazano na wyjściu audio.
Ten filtr jest przede wszystkim stworzony do odwracania przetworzonych wyjść filtra showspectrum
, ale może również syntetyzować dźwięk z innych spektrogramów. Ale w takim przypadku wyniki będą słabe, jeśli dane fazy nie są dostępne, ponieważ w takich przypadkach dane fazy muszą zostać odtworzone, zwykle są one odtwarzane z losowego szumu. Aby uzyskać najlepsze wyniki, użyj wyjścia tylko w kolorze szarym ( channel
tryb kolorów w
filtrze showspectrum ) i log
skali dla wideo magnitudo i
lin
skali dla wideo fazy. Aby wyprodukować fazę, dla drugiego wideo użyj
data
opcji. Wejścia wideo powinny zasadniczo używać fullframe
trybu slajdów, ponieważ oszczędza to zasoby potrzebne do dekodowania wideo.
Filtr akceptuje następujące opcje:
sample_rate
Określ częstotliwość próbkowania dźwięku wyjściowego, częstotliwość próbkowania dźwięku, z którego zostało wygenerowane widmo, może się różnić.
channels
Ustaw liczbę kanałów reprezentowanych w widmach wejściowych wideo.
scale
Ustaw skalę, która była używana podczas generowania widma wejściowego amplitudy. Może być
lin
lublog
. Wartość domyślna tolog
.slide
Ustaw slajd, który był używany podczas generowania widm wejściowych. Może być
replace
,scroll
lub . Wartość domyślna to .fullframe
rscroll
fullframe
win_func
Ustaw funkcję okna używaną do resyntezy.
overlap
Ustaw nakładanie się okien. W zasięgu
[0, 1]
. Domyślnie jest to1
, co oznacza, że ​​zostanie wybrane optymalne nakładanie się dla wybranej funkcji okna.orientation
Ustaw orientację wejściowych filmów wideo. Może być
vertical
lubhorizontal
. Wartość domyślna tovertical
.
16.30.1 Examples
- Najpierw utwórz wideo wielkości i fazy z dźwięku, zakładając, że dźwięk jest stereofoniczny z częstotliwością próbkowania 44100, a następnie ponownie zsyntetuj wideo z powrotem do dźwięku za pomocą widma:
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
16.31 split, asplit
Podziel wejście na kilka identycznych wyjść.
asplit
współpracuje z wejściem audio, split
z wideo.
Filtr akceptuje pojedynczy parametr określający liczbę wyjść. Jeśli nie jest określony, domyślnie wynosi 2.
16.31.1 Examples
- Utwórz dwa oddzielne wyjścia z tego samego wejścia:
[in] split [out0][out1]
- Aby utworzyć 3 lub więcej wyjść, należy określić liczbę wyjść, jak w:
[in] asplit=3 [out0][out1][out2]
- Utwórz dwa oddzielne dane wyjściowe z tego samego wejścia, jeden przycięty i jeden dopełniony:
[in] split [splitout1][splitout2]; [splitout1] crop=100:100:0:0 [cropout]; [splitout2] pad=200:200:100:100 [padout];
- Utwórz 5 kopii wejściowego dźwięku za pomocą
ffmpeg
:ffmpeg -i INPUT -filter_complex asplit=5 OUTPUT
16.32 zmq, azmq
Odbieraj polecenia wysyłane przez klienta libzmq i przesyłaj je do filtrów na wykresie filtrów.
zmq
i azmq
działają jako filtry przelotowe. zmq
należy umieścić między dwoma filtrami wideo, azmq
między dwoma filtrami audio. Oba są w stanie wysyłać wiadomości do dowolnego typu filtra.
Aby włączyć te filtry, musisz zainstalować bibliotekę libzmq i nagłówki oraz skonfigurować FFmpeg za pomocą --enable-libzmq
.
Więcej informacji o libzmq znajdziesz na: http://www.zeromq.org/
Filtry zmq
i azmq
działają jako serwer libzmq, który odbiera wiadomości wysyłane przez interfejs sieciowy zdefiniowany przez
bind_address
(lub skrót „b
"). Domyślna wartość tej opcji totcp://localhost:5555
. Możesz chcieć zmienić tę wartość do swoich potrzeb, ale nie zapomnij uciec przed znakami ':' (zobacz: filtergraph escaping ).
Otrzymana wiadomość musi mieć postać:
TARGET
COMMAND
[ARG
]
TARGET
określa cel polecenia, zwykle nazwę klasy filtra lub konkretną nazwę instancji filtra. Domyślna nazwa instancji filtra używa wzorca „Parsed_<filter_name>_<index>
', ale możesz to zmienić, używając 'filter_name@id
składnia ' (zobacz Składnia Filtergraph ).
COMMAND
określa nazwę polecenia dla filtru docelowego.
ARG
jest opcjonalny i określa opcjonalną listę argumentów dla danego COMMAND
.
Po odebraniu wiadomość jest przetwarzana, a odpowiednie polecenie jest wstrzykiwane do wykresu filtra. W zależności od wyniku filtr wyśle ​​odpowiedź do klienta, przyjmując format:
ERROR_CODE
ERROR_REASON
MESSAGE
MESSAGE
jest opcjonalne.
16.32.1 Examples
Patrzeć natools/zmqsend
na przykład klienta zmq, który może być używany do wysyłania poleceń przetwarzanych przez te filtry.
Rozważmy poniższy wykres filtra wygenerowany przez ffplay
. W tym przykładzie ostatni filtr nakładki ma nazwę instancji. Wszystkie inne filtry będą miały domyślne nazwy instancji.
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 "
Aby zmienić kolor lewej strony wideo, można użyć następującego polecenia:
echo Parsed_color_0 c yellow | tools/zmqsend
Aby zmienić prawą stronę:
echo Parsed_color_1 c pink | tools/zmqsend
Aby zmienić położenie prawej strony:
echo overlay@my x 150 | tools/zmqsend
17 Multimedia Sources
Poniżej znajduje się opis aktualnie dostępnych źródeł multimediów.
17.1 amovie
Jest to to samo, co źródło filmu , z wyjątkiem tego, że domyślnie wybiera strumień audio.
17.2 avsynctest
Wygeneruj test synchronizacji audio/wideo.
Generowany strumień okresowo pokazuje klatkę wideo flash i emituje sygnał dźwiękowy. Przydatne do sprawdzania problemów z synchronizacją A/V.
Akceptuje następujące opcje:
size, s
Ustaw wyjściowy rozmiar wideo. Wartość domyślna to
hd720
.framerate, fr
Ustaw szybkość klatek wyjściowego wideo. Wartość domyślna to
30
.samplerate, sr
Ustaw wyjściową częstotliwość próbkowania dźwięku. Wartość domyślna to
44100
.amplitude, a
Ustaw amplitudę wyjściowego sygnału dźwiękowego. Wartość domyślna to
0.7
.period, p
Ustaw wyjściowy sygnał dźwiękowy w sekundach. Wartość domyślna to
3
.delay, dl
Ustaw opóźnienie błysku wyjściowego wideo w liczbie klatek. Wartość domyślna to
0
.cycle, c
Włącz cykliczne opóźnienia wideo, domyślnie jest wyłączone.
duration, d
Ustaw czas trwania strumienia wyjściowego. Domyślnie czas trwania jest nieograniczony.
fg, bg, ag
Ustaw pierwszy plan/tło/dodatkowy kolor.
17.3 movie
Odczytuj strumienie audio i/lub wideo z kontenera filmów.
Przyjmuje następujące parametry:
filename
Nazwa zasobu do odczytu (niekoniecznie plik; może to być również urządzenie lub strumień, do którego dostęp uzyskuje się przez jakiś protokół).
format_name, f
Określa format przyjęty dla filmu do odczytu i może być nazwą kontenera lub urządzenia wejściowego. Jeśli nie jest określony, format jest odgadywany na podstawie
movie_name
lub przez sondowanie.seek_point, sp
Określa punkt wyszukiwania w sekundach. Ramki będą wyprowadzane począwszy od tego punktu wyszukiwania. Parametr jest oceniany za pomocą
av_strtod
, więc wartość liczbowa może być poprzedzona przyrostkiem IS. Wartość domyślna to „0”.streams, s
Określa strumienie do odczytu. Można określić kilka strumieni, oddzielonych znakiem „+”. Źródło będzie wtedy miało tyle samo wyjść w tej samej kolejności. Składnia jest wyjaśniona w sekcji (ffmpeg)"Specyfikatory strumienia" w podręczniku ffmpeg . Dwie specjalne nazwy, „dv” i „da”, określają odpowiednio domyślny (najlepiej dopasowany) strumień wideo i audio. Domyślnie jest to „dv” lub „da”, jeśli filtr nazywa się „amovie”.
stream_index, si
Określa indeks strumienia wideo do odczytania. Jeśli wartość wynosi -1, najbardziej odpowiedni strumień wideo zostanie wybrany automatycznie. Wartość domyślna to „-1”. Przestarzałe. Jeśli filtr nazywa się „amovie”, wybierze dźwięk zamiast wideo.
loop
Określa, ile razy należy odczytać strumień w sekwencji. Jeśli wartość wynosi 0, strumień będzie zapętlony w nieskończoność. Wartość domyślna to „1”.
Zwróć uwagę, że gdy film jest zapętlony, znaczniki czasu źródła nie są zmieniane, więc wygeneruje on niemonotonicznie rosnące znaczniki czasu.
discontinuity
Określa różnicę czasu między klatkami, powyżej której punkt jest uważany za nieciągłość znacznika czasu, która jest usuwana przez dostosowanie późniejszych znaczników czasu.
dec_threads
Określa liczbę wątków do dekodowania
format_opts
Określ opcje formatu dla otwartego pliku. Opcje formatu można określić jako listę par
key
=value
oddzielonych znakiem ':'. Poniższy przykład pokazuje, jak dodać opcje protocol_whitelist i protocol_blacklist:ffplay -f lavfi "movie=filename='1.sdp':format_opts='protocol_whitelist=file,rtp,udp\:protocol_blacklist=http'"
Pozwala na nałożenie drugiego wideo na główne wejście wykresu filtra, jak pokazano na tym wykresie:
input -----------> deltapts0 --> overlay --> output
^
|
movie --> scale--> deltapts1 -------+
17.3.1 Examples
- Pomiń 3,2 sekundy od początku pliku AVI in.avi i nałóż go na wejście oznaczone jako „in”:
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]
- Odczytaj z urządzenia video4linux2 i nałóż go na wejście oznaczone "in":
movie=/dev/video0:f=video4linux2, scale=180:-1, setpts=PTS-STARTPTS [over]; [in] setpts=PTS-STARTPTS [main]; [main][over] overlay=16:16 [out]
- Przeczytaj pierwszy strumień wideo i strumień audio o identyfikatorze 0x81 z dvd.vob; wideo jest podłączone do pada o nazwie „wideo”, a dźwięk jest podłączony do pada o nazwie „audio”:
movie=dvd.vob:s=v:0+#0x81 [video] [audio]
17.3.2 Commands
Zarówno movie, jak i amovie obsługują następujące polecenia:
seek
Wykonaj wyszukiwanie za pomocą "av_seek_frame". Składnia to: search
stream_index
|timestamp
|flags
-
stream_index
: Jeśli stream_index wynosi -1, wybierany jest domyślny strumień, którytimestamp
jest automatycznie konwertowany z jednostek AV_TIME_BASE na określoną dla strumienia podstawę czasu. -
timestamp
: sygnatura czasowa w jednostkach AVStream.time_base lub, jeśli nie określono strumienia, w jednostkach AV_TIME_BASE. -
flags
: Flagi, które wybierają kierunek i tryb wyszukiwania.
-
get_duration
Uzyskaj czas trwania filmu w jednostkach AV_TIME_BASE.
18 See Also
ffmpeg , ffplay , ffprobe , libavfilter
19 Authors
Twórcy FFmpeg.
Aby uzyskać szczegółowe informacje na temat autorstwa, zobacz historię projektu Git (git://source.ffmpeg.org/ffmpeg), np. wpisując polecenie
git log
w katalogu źródłowym FFmpeg lub przeglądając repozytorium online pod adresem http://source. ffmpeg.org .
W pliku wymieniono opiekunów poszczególnych komponentów
MAINTAINERS
w drzewie kodu źródłowego.
Ten dokument został wygenerowany 11 lipca 2022 roku przy użyciu makeinfo .
Hosting dostarczany przez telepoint.bg