X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=doc%2Ffilters.texi;h=16bf2df6c22185665ce9b7592292eb7c96da18f4;hb=d5e3d8e2f7a5a576e27789a50c29717b648bc488;hp=9d387be1f5a20cc7c87ef2b522d2b975dcc8b334;hpb=d4ba2506ce9e05dda598f702fa63c183580927b4;p=ffmpeg diff --git a/doc/filters.texi b/doc/filters.texi index 9d387be1f5a..16bf2df6c22 100644 --- a/doc/filters.texi +++ b/doc/filters.texi @@ -1547,6 +1547,10 @@ Range is between 0 and 1. @item channels, c Specify which channels to filter, by default all available are filtered. + +@item normalize, n +Normalize biquad coefficients, by default is disabled. +Enabling it will normalize magnitude response at DC to 0dB. @end table @subsection Commands @@ -2527,6 +2531,39 @@ ffmpeg -i INPUT -af atrim=end_sample=1000 @end itemize +@section axcorrelate +Calculate normalized cross-correlation between two input audio streams. + +Resulted samples are always between -1 and 1 inclusive. +If result is 1 it means two input samples are highly correlated in that selected segment. +Result 0 means they are not correlated at all. +If result is -1 it means two input samples are out of phase, which means they cancel each +other. + +The filter accepts the following options: + +@table @option +@item size +Set size of segment over which cross-correlation is calculated. +Default is 256. Allowed range is from 2 to 131072. + +@item algo +Set algorithm for cross-correlation. Can be @code{slow} or @code{fast}. +Default is @code{slow}. Fast algorithm assumes mean values over any given segment +are always zero and thus need much less calculations to make. +This is generally not true, but is valid for typical audio streams. +@end table + +@subsection Examples + +@itemize +@item +Calculate correlation between channels in stereo audio stream: +@example +ffmpeg -i stereo.wav -af channelsplit,axcorrelate=size=1024:algo=fast correlation.wav +@end example +@end itemize + @section bandpass Apply a two-pole Butterworth band-pass filter with central @@ -2568,6 +2605,10 @@ Range is between 0 and 1. @item channels, c Specify which channels to filter, by default all available are filtered. + +@item normalize, n +Normalize biquad coefficients, by default is disabled. +Enabling it will normalize magnitude response at DC to 0dB. @end table @subsection Commands @@ -2627,6 +2668,10 @@ Range is between 0 and 1. @item channels, c Specify which channels to filter, by default all available are filtered. + +@item normalize, n +Normalize biquad coefficients, by default is disabled. +Enabling it will normalize magnitude response at DC to 0dB. @end table @subsection Commands @@ -2693,6 +2738,10 @@ Range is between 0 and 1. @item channels, c Specify which channels to filter, by default all available are filtered. + +@item normalize, n +Normalize biquad coefficients, by default is disabled. +Enabling it will normalize magnitude response at DC to 0dB. @end table @subsection Commands @@ -2744,6 +2793,13 @@ Syntax for the command is : "@var{value}" @item mix, m How much to use filtered signal in output. Default is 1. Range is between 0 and 1. + +@item channels, c +Specify which channels to filter, by default all available are filtered. + +@item normalize, n +Normalize biquad coefficients, by default is disabled. +Enabling it will normalize magnitude response at DC to 0dB. @end table @section bs2b @@ -3439,6 +3495,10 @@ Range is between 0 and 1. @item channels, c Specify which channels to filter, by default all available are filtered. + +@item normalize, n +Normalize biquad coefficients, by default is disabled. +Enabling it will normalize magnitude response at DC to 0dB. @end table @subsection Examples @@ -3908,6 +3968,10 @@ Range is between 0 and 1. @item channels, c Specify which channels to filter, by default all available are filtered. + +@item normalize, n +Normalize biquad coefficients, by default is disabled. +Enabling it will normalize magnitude response at DC to 0dB. @end table @subsection Commands @@ -4224,6 +4288,10 @@ Range is between 0 and 1. @item channels, c Specify which channels to filter, by default all available are filtered. + +@item normalize, n +Normalize biquad coefficients, by default is disabled. +Enabling it will normalize magnitude response at DC to 0dB. @end table @subsection Examples @@ -5332,6 +5400,10 @@ Range is between 0 and 1. @item channels, c Specify which channels to filter, by default all available are filtered. + +@item normalize, n +Normalize biquad coefficients, by default is disabled. +Enabling it will normalize magnitude response at DC to 0dB. @end table @subsection Commands @@ -6863,6 +6935,13 @@ Literal colors like "green" or "red" don't make sense with this enabled anymore. This can be used to pass exact YUV values as hexadecimal numbers. @end table +@subsection Commands +This filter supports same @ref{commands} as options. +The command accepts the same syntax of the corresponding option. + +If the specified expression is not valid, it is kept at its current +value. + @section chromakey YUV colorspace color/chroma keying. @@ -6892,6 +6971,13 @@ Literal colors like "green" or "red" don't make sense with this enabled anymore. This can be used to pass exact YUV values as hexadecimal numbers. @end table +@subsection Commands +This filter supports same @ref{commands} as options. +The command accepts the same syntax of the corresponding option. + +If the specified expression is not valid, it is kept at its current +value. + @subsection Examples @itemize @@ -6925,6 +7011,10 @@ Set amount to shift chroma-red vertically. Set edge mode, can be @var{smear}, default, or @var{warp}. @end table +@subsection Commands + +This filter supports the all above options as @ref{commands}. + @section ciescope Display CIE color diagram with pixels overlaid onto it. @@ -7080,6 +7170,9 @@ Adjust red, green and blue midtones (medium pixels). Adjust red, green and blue highlights (brightest pixels). Allowed ranges for options are @code{[-1.0, 1.0]}. Defaults are @code{0}. + +@item pl +Preserve lightness when changing color balance. Default is disabled. @end table @subsection Examples @@ -7092,6 +7185,10 @@ colorbalance=rs=.3 @end example @end itemize +@subsection Commands + +This filter supports the all above options as @ref{commands}. + @section colorchannelmixer Adjust video input frames by re-mixing color channels. @@ -8928,6 +9025,50 @@ ffmpeg -i INPUT -f lavfi -i nullsrc=hd720,geq='r=128+80*(sin(sqrt((X-W/2)*(X-W/2 @end example @end itemize +@section dnn_processing + +Do image processing with deep neural networks. Currently only AVFrame with RGB24 +and BGR24 are supported, more formats will be added later. + +The filter accepts the following options: + +@table @option +@item dnn_backend +Specify which DNN backend to use for model loading and execution. This option accepts +the following values: + +@table @samp +@item native +Native implementation of DNN loading and execution. + +@item tensorflow +TensorFlow backend. To enable this backend you +need to install the TensorFlow for C library (see +@url{https://www.tensorflow.org/install/install_c}) and configure FFmpeg with +@code{--enable-libtensorflow} +@end table + +Default value is @samp{native}. + +@item model +Set path to model file specifying network architecture and its parameters. +Note that different backends use different file formats. TensorFlow and native +backend can load files for only its format. + +Native model file (.model) can be generated from TensorFlow model file (.pb) by using tools/python/convert.py + +@item input +Set the input name of the dnn network. + +@item output +Set the output name of the dnn network. + +@item fmt +Set the pixel format for the Frame. Allowed values are @code{AV_PIX_FMT_RGB24}, and @code{AV_PIX_FMT_BGR24}. +Default value is @code{AV_PIX_FMT_RGB24}. + +@end table + @section drawbox Draw a colored box on the input image. @@ -10694,6 +10835,13 @@ Default is @var{smear}. Set color for pixels in fixed mode. Default is @var{black}. @end table +@subsection Commands +This filter supports same @ref{commands} as options. +The command accepts the same syntax of the corresponding option. + +If the specified expression is not valid, it is kept at its current +value. + @section find_rect Find a rectangular object @@ -12329,7 +12477,7 @@ The filter has following options: @table @option @item model_path Set the model path which is to be used for SVM. -Default value: @code{"vmaf_v0.6.1.pkl"} +Default value: @code{"/usr/local/share/model/vmaf_v0.6.1.pkl"} @item log_path Set the file path to be used to store logs. @@ -12345,27 +12493,35 @@ Default value: @code{false} @item phone_model Invokes the phone model which will generate VMAF scores higher than in the regular model, which is more suitable for laptop, TV, etc. viewing conditions. +Default value: @code{false} @item psnr Enables computing psnr along with vmaf. +Default value: @code{false} @item ssim Enables computing ssim along with vmaf. +Default value: @code{false} @item ms_ssim Enables computing ms_ssim along with vmaf. +Default value: @code{false} @item pool -Set the pool method (mean, min or harmonic mean) to be used for computing vmaf. +Set the pool method to be used for computing vmaf. +Options are @code{min}, @code{harmonic_mean} or @code{mean} (default). @item n_threads Set number of threads to be used when computing vmaf. +Default value: @code{0}, which makes use of all available logical processors. @item n_subsample Set interval for frame subsampling used when computing vmaf. +Default value: @code{1} @item enable_conf_interval Enables confidence interval. +Default value: @code{false} @end table This filter also supports the @ref{framesync} options. @@ -12389,7 +12545,7 @@ ffmpeg -i main.mpg -i ref.mpg -lavfi libvmaf="psnr=1:log_fmt=json" -f null - @item Example with options and different containers: @example -ffmpeg -i main.mpg -i ref.mkv -lavfi "[0:v]settb=1/AVTB,setpts=PTS-STARTPTS[main];[1:v]settb=1/AVTB,setpts=PTS-STARTPTS[ref];[main][ref]libvmaf=psnr=1:log_fmt=json" -f null - +ffmpeg -i main.mpg -i ref.mkv -lavfi "[0:v]settb=AVTB,setpts=PTS-STARTPTS[main];[1:v]settb=AVTB,setpts=PTS-STARTPTS[ref];[main][ref]libvmaf=psnr=1:log_fmt=json" -f null - @end example @end itemize @@ -12539,13 +12695,20 @@ Default value is @code{0}. @item tolerance Set the range of luma values to be keyed out. -Default value is @code{0}. +Default value is @code{0.01}. @item softness Set the range of softness. Default value is @code{0}. Use this to control gradual transition from zero to full transparency. @end table +@subsection Commands +This filter supports same @ref{commands} as options. +The command accepts the same syntax of the corresponding option. + +If the specified expression is not valid, it is kept at its current +value. + @section lut, lutrgb, lutyuv Compute a look-up table for binding each pixel component input value @@ -12919,13 +13082,25 @@ This filter accepts the following options: @table @option @item radius -Set horizontal and vertical radius size. Default value is @code{1}. +Set horizontal radius size. Default value is @code{1}. Allowed range is integer from 1 to 127. @item planes Set which planes to process. Default is @code{15}, which is all available planes. + +@item radiusV +Set vertical radius size. Default value is @code{0}. +Allowed range is integer from 0 to 127. +If it is 0, value will be picked from horizontal @code{radius} option. @end table +@subsection Commands +This filter supports same @ref{commands} as options. +The command accepts the same syntax of the corresponding option. + +If the specified expression is not valid, it is kept at its current +value. + @section mergeplanes Merge color channel components from several video streams. @@ -13494,6 +13669,13 @@ expensive no-op. Defaults to 1.0 (full strength). @end table +@subsection Commands +This filter supports same @ref{commands} as options, excluding @var{smoothing} option. +The command accepts the same syntax of the corresponding option. + +If the specified expression is not valid, it is kept at its current +value. + @subsection Examples Stretch video contrast to use the full dynamic range, with no temporal @@ -13707,6 +13889,13 @@ Draw some statistics. By default is enabled. Draw scope. By default is enabled. @end table +@subsection Commands +This filter supports same @ref{commands} as options. +The command accepts the same syntax of the corresponding option. + +If the specified expression is not valid, it is kept at its current +value. + @subsection Examples @itemize @@ -15005,7 +15194,7 @@ is stored in @file{stats.log}. @item Another example with different containers: @example -ffmpeg -i main.mpg -i ref.mkv -lavfi "[0:v]settb=1/AVTB,setpts=PTS-STARTPTS[main];[1:v]settb=1/AVTB,setpts=PTS-STARTPTS[ref];[main][ref]psnr" -f null - +ffmpeg -i main.mpg -i ref.mkv -lavfi "[0:v]settb=AVTB,setpts=PTS-STARTPTS[main];[1:v]settb=AVTB,setpts=PTS-STARTPTS[ref];[main][ref]psnr" -f null - @end example @end itemize @@ -15433,6 +15622,10 @@ Set amount to shift alpha vertically. Set edge mode, can be @var{smear}, default, or @var{warp}. @end table +@subsection Commands + +This filter supports the all above options as @ref{commands}. + @section roberts Apply roberts cross operator to input video stream. @@ -17072,7 +17265,7 @@ ffmpeg -i main.mpg -i ref.mpg -lavfi "ssim;[0:v][1:v]psnr" -f null - @item Another example with different containers: @example -ffmpeg -i main.mpg -i ref.mkv -lavfi "[0:v]settb=1/AVTB,setpts=PTS-STARTPTS[main];[1:v]settb=1/AVTB,setpts=PTS-STARTPTS[ref];[main][ref]ssim" -f null - +ffmpeg -i main.mpg -i ref.mkv -lavfi "[0:v]settb=AVTB,setpts=PTS-STARTPTS[main];[1:v]settb=AVTB,setpts=PTS-STARTPTS[ref];[main][ref]ssim" -f null - @end example @end itemize @@ -19201,16 +19394,23 @@ vignette='PI/4+random(1)*PI/50':eval=frame @section vmafmotion -Obtain the average vmaf motion score of a video. -It is one of the component filters of VMAF. +Obtain the average VMAF motion score of a video. +It is one of the component metrics of VMAF. The obtained average motion score is printed through the logging system. -In the below example the input file @file{ref.mpg} is being processed and score -is computed. +The filter accepts the following options: + +@table @option +@item stats_file +If specified, the filter will use the named file to save the motion score of +each frame with respect to the previous frame. +When filename equals "-" the data is sent to standard output. +@end table +Example: @example -ffmpeg -i ref.mpg -lavfi vmafmotion -f null - +ffmpeg -i ref.mpg -vf vmafmotion -f null - @end example @section vstack @@ -20503,7 +20703,7 @@ Set the x coordinate of the overlaid video on the main video. Default value is @code{0}. @item y -Set the x coordinate of the overlaid video on the main video. +Set the y coordinate of the overlaid video on the main video. Default value is @code{0}. @end table