# Audio/video filters

Recommended stack version: `ffmpeg_stack: "v7"`

Available versions: v5, v6, and v7

Robots using this stack:

* [/audio/artwork](/docs/robots/audio-artwork.md)
* [/audio/concat](/docs/robots/audio-concat.md)
* [/audio/split](/docs/robots/audio-split.md)
* [/audio/encode](/docs/robots/audio-encode.md)
* [/audio/loop](/docs/robots/audio-loop.md)
* [/audio/merge](/docs/robots/audio-merge.md)
* [/audio/waveform](/docs/robots/audio-waveform.md)
* [/meta/write](/docs/robots/meta-write.md)
* [/video/adaptive](/docs/robots/video-adaptive.md)
* [/video/artwork](/docs/robots/video-artwork.md)
* [/video/concat](/docs/robots/video-concat.md)
* [/video/encode](/docs/robots/video-encode.md)
* [/video/merge](/docs/robots/video-merge.md)
* [/video/split](/docs/robots/video-split.md)
* [/video/subtitle](/docs/robots/video-subtitle.md)
* [/video/thumbs](/docs/robots/video-thumbs.md)

## Formats

|Name|Description|Read|Write|
|-|-|-|-|
|a3dscope|Convert input audio to 3d scope video output.|No|Yes|
|aap|Apply Affine Projection algorithm to first audio stream.|Yes|Yes|
|abench|Benchmark part of a filtergraph.|Yes|Yes|
|abitscope|Convert input audio to audio bit scope video output.|No|Yes|
|abuffer|Buffer audio frames, and make them accessible to the filterchain.|Yes|Yes|
|abuffersink|Buffer audio frames, and make them available to the end of the filter graph.|No|Yes|
|acompressor|Audio compressor.|Yes|Yes|
|acontrast|Simple audio dynamic range compression/expansion filter.|Yes|Yes|
|acopy|Copy the input audio unchanged to the output.|Yes|Yes|
|acrossfade|Cross fade two input audio streams.|Yes|Yes|
|acrossover|Split audio into per-bands streams.|No|No|
|acrusher|Reduce audio bit resolution.|Yes|Yes|
|acue|Delay filtering to match a cue.|Yes|Yes|
|addroi|Add region of interest to frame.|Yes|Yes|
|adeclick|Remove impulsive noise from input audio.|Yes|Yes|
|adeclip|Remove clipping from input audio.|Yes|Yes|
|adecorrelate|Apply decorrelation to input audio.|Yes|Yes|
|adelay|Delay one or more audio channels.|Yes|Yes|
|adenorm|Remedy denormals by adding extremely low-level noise.|Yes|Yes|
|aderivative|Compute derivative of input audio.|Yes|Yes|
|adrawgraph|Draw a graph using input audio metadata.|No|Yes|
|adrc|Audio Spectral Dynamic Range Controller.|Yes|Yes|
|adynamicequalizer|Apply Dynamic Equalization of input audio.|Yes|Yes|
|adynamicsmooth|Apply Dynamic Smoothing of input audio.|Yes|Yes|
|aecho|Add echoing to the audio.|Yes|Yes|
|aemphasis|Audio emphasis.|Yes|Yes|
|aeval|Filter audio signal according to a specified expression.|Yes|Yes|
|aevalsrc|Generate an audio signal generated by an expression.|Yes|Yes|
|aexciter|Enhance high frequency part of audio.|Yes|Yes|
|afade|Fade in/out input audio.|Yes|Yes|
|afdelaysrc|Generate a Fractional delay FIR coefficients.|Yes|Yes|
|afftdn|Denoise audio samples using FFT.|Yes|Yes|
|afftfilt|Apply arbitrary expressions to samples in frequency domain.|Yes|Yes|
|afifo|Buffer input frames and send them when they are requested.|No|No|
|afir|Apply Finite Impulse Response filter with supplied coefficients in additional stream(s).|Yes|Yes|
|afireqsrc|Generate a FIR equalizer coefficients audio stream.|Yes|Yes|
|afirsrc|Generate a FIR coefficients audio stream.|Yes|Yes|
|aformat|Convert the input audio to one of the specified formats.|Yes|Yes|
|afreqshift|Apply frequency shifting to input audio.|Yes|Yes|
|afwtdn|Denoise audio stream using Wavelets.|Yes|Yes|
|agate|Audio gate.|Yes|Yes|
|agraphmonitor|Show various filtergraph stats.|No|Yes|
|ahistogram|Convert input audio to histogram video output.|No|Yes|
|aiir|Apply Infinite Impulse Response filter with supplied coefficients.|No|No|
|aintegral|Compute integral of input audio.|Yes|Yes|
|ainterleave|Temporally interleave audio inputs.|Yes|Yes|
|alatency|Report audio filtering latency.|Yes|Yes|
|alimiter|Audio lookahead limiter.|Yes|Yes|
|allpass|Apply a two-pole all-pass filter.|Yes|Yes|
|allrgb|Generate all RGB colors.|Yes|Yes|
|allyuv|Generate all yuv colors.|Yes|Yes|
|aloop|Loop audio samples.|Yes|Yes|
|alphaextract|Extract an alpha channel as a grayscale image component.|Yes|Yes|
|alphamerge|Copy the luma value of the second input into the alpha channel of the first input.|Yes|Yes|
|amerge|Merge two or more audio streams into a single multi-channel stream.|Yes|Yes|
|ametadata|Manipulate audio frame metadata.|Yes|Yes|
|amix|Audio mixing.|Yes|Yes|
|amovie|Read audio from a movie source.|Yes|No|
|amplify|Amplify changes between successive video frames.|Yes|Yes|
|amultiply|Multiply two audio streams.|Yes|Yes|
|anequalizer|Apply high-order audio parametric multi band equalizer.|No|No|
|anlmdn|Reduce broadband noise from stream using Non-Local Means.|Yes|Yes|
|anlmf|Apply Normalized Least-Mean-Fourth algorithm to first audio stream.|Yes|Yes|
|anlms|Apply Normalized Least-Mean-Squares algorithm to first audio stream.|Yes|Yes|
|anoisesrc|Generate a noise audio signal.|Yes|Yes|
|anull|Pass the source unchanged to the output.|Yes|Yes|
|anullsink|Do absolutely nothing with the input audio.|No|Yes|
|anullsrc|Null audio source, return empty audio frames.|Yes|Yes|
|apad|Pad audio with silence.|Yes|Yes|
|aperms|Set permissions for the output audio frame.|Yes|Yes|
|aphasemeter|Convert input audio to phase meter video output.|No|No|
|aphaser|Add a phasing effect to the audio.|Yes|Yes|
|aphaseshift|Apply phase shifting to input audio.|Yes|Yes|
|apsnr|Measure Audio Peak Signal-to-Noise Ratio.|Yes|Yes|
|apsyclip|Audio Psychoacoustic Clipper.|Yes|Yes|
|apulsator|Audio pulsator.|Yes|Yes|
|arealtime|Slow down filtering to match realtime.|Yes|Yes|
|aresample|Resample audio data.|Yes|Yes|
|areverse|Reverse an audio clip.|Yes|Yes|
|arls|Apply Recursive Least Squares algorithm to first audio stream.|Yes|Yes|
|arnndn|Reduce noise from speech using Recurrent Neural Networks.|Yes|Yes|
|asdr|Measure Audio Signal-to-Distortion Ratio.|Yes|Yes|
|asegment|Segment audio stream.|No|No|
|aselect|Select audio frames to pass in output.|No|No|
|asendcmd|Send commands to filters.|Yes|Yes|
|asetnsamples|Set the number of samples for each output audio frames.|Yes|Yes|
|asetpts|Set PTS for the output audio frame.|Yes|Yes|
|asetrate|Change the sample rate without altering the data.|Yes|Yes|
|asettb|Set timebase for the audio output link.|Yes|Yes|
|ashowinfo|Show textual information for each audio frame.|Yes|Yes|
|asidedata|Manipulate audio frame side data.|Yes|Yes|
|asisdr|Measure Audio Scale-Invariant Signal-to-Distortion Ratio.|Yes|Yes|
|asoftclip|Audio Soft Clipper.|Yes|Yes|
|aspectralstats|Show frequency domain statistics about audio frames.|Yes|Yes|
|asplit|Pass on the audio input to N audio outputs.|No|No|
|ass|Render ASS subtitles onto input video using the libass library.|Yes|Yes|
|astats|Show time domain statistics about audio frames.|Yes|Yes|
|astreamselect|Select audio streams|No|No|
|asubboost|Boost subwoofer frequencies.|Yes|Yes|
|asubcut|Cut subwoofer frequencies.|Yes|Yes|
|asupercut|Cut super frequencies.|Yes|Yes|
|asuperpass|Apply high order Butterworth band-pass filter.|Yes|Yes|
|asuperstop|Apply high order Butterworth band-stop filter.|Yes|Yes|
|atadenoise|Apply an Adaptive Temporal Averaging Denoiser.|Yes|Yes|
|atempo|Adjust audio tempo.|Yes|Yes|
|atilt|Apply spectral tilt to audio.|Yes|Yes|
|atrim|Pick one continuous section from the input, drop the rest.|Yes|Yes|
|avectorscope|Convert input audio to vectorscope video output.|No|Yes|
|avgblur|Apply Average Blur filter.|Yes|Yes|
|avgblur\_opencl|Apply average blur filter|Yes|Yes|
|avgblur\_vulkan|Apply avgblur mask to input video|Yes|Yes|
|avsynctest|Generate an Audio Video Sync Test.|Yes|Yes|
|axcorrelate|Cross-correlate two audio streams.|Yes|Yes|
|azmq|Receive commands through ZMQ and broker them to filters.|Yes|Yes|
|backgroundkey|Turns a static background into transparency.|Yes|Yes|
|bandpass|Apply a two-pole Butterworth band-pass filter.|Yes|Yes|
|bandreject|Apply a two-pole Butterworth band-reject filter.|Yes|Yes|
|bass|Boost or cut lower frequencies.|Yes|Yes|
|bbox|Compute bounding box for each frame.|Yes|Yes|
|bench|Benchmark part of a filtergraph.|Yes|Yes|
|bilateral|Apply Bilateral filter.|Yes|Yes|
|bilateral\_cuda|GPU accelerated bilateral filter|Yes|Yes|
|biquad|Apply a biquad IIR filter with the given coefficients.|Yes|Yes|
|bitplanenoise|Measure bit plane noise.|Yes|Yes|
|blackdetect|Detect video intervals that are (almost) black.|Yes|Yes|
|blackframe|Detect frames that are (almost) black.|Yes|Yes|
|blend|Blend two video frames into each other.|Yes|Yes|
|blend\_vulkan|Blend two video frames in Vulkan|Yes|Yes|
|blockdetect|Blockdetect filter.|Yes|Yes|
|blurdetect|Blurdetect filter.|Yes|Yes|
|bm3d|Block-Matching 3D denoiser.|No|Yes|
|boxblur|Blur the input.|Yes|Yes|
|boxblur\_opencl|Apply boxblur filter to input video|Yes|Yes|
|bs2b|Bauer stereo-to-binaural filter.|Yes|Yes|
|buffer|Buffer video frames, and make them accessible to the filterchain.|Yes|Yes|
|buffersink|Buffer video frames, and make them available to the end of the filter graph.|Yes|Yes|
|bwdif|Deinterlace the input image.|Yes|Yes|
|bwdif\_cuda|Deinterlace CUDA frames|Yes|Yes|
|bwdif\_vulkan|Deinterlace Vulkan frames via bwdif|Yes|Yes|
|cas|Contrast Adaptive Sharpen.|Yes|Yes|
|ccrepack|Repack CEA-708 closed caption metadata|Yes|Yes|
|cellauto|Create pattern generated by an elementary cellular automaton.|Yes|Yes|
|channelmap|Remap audio channels.|Yes|Yes|
|channelsplit|Split audio into per-channel streams.|No|No|
|chorus|Add a chorus effect to the audio.|Yes|Yes|
|chromaber\_vulkan|Offset chroma of input video (chromatic aberration)|Yes|Yes|
|chromahold|Turns a certain color range into gray.|Yes|Yes|
|chromakey|Turns a certain color into transparency. Operates on YUV colors.|Yes|Yes|
|chromakey\_cuda|GPU accelerated chromakey filter|Yes|Yes|
|chromanr|Reduce chrominance noise.|Yes|Yes|
|chromashift|Shift chroma.|Yes|Yes|
|ciescope|Video CIE scope.|Yes|Yes|
|codecview|Visualize information about some codecs.|Yes|Yes|
|color|Provide an uniformly colored input.|Yes|Yes|
|color\_vulkan|Generate a constant color (Vulkan)|Yes|Yes|
|colorbalance|Adjust the color balance.|Yes|Yes|
|colorchannelmixer|Adjust colors by mixing color channels.|Yes|Yes|
|colorchart|Generate color checker chart.|Yes|Yes|
|colorcontrast|Adjust color contrast between RGB components.|Yes|Yes|
|colorcorrect|Adjust color white balance selectively for blacks and whites.|Yes|Yes|
|colorhold|Turns a certain color range into gray. Operates on RGB colors.|Yes|Yes|
|colorize|Overlay a solid color on the video stream.|Yes|Yes|
|colorkey|Turns a certain color into transparency. Operates on RGB colors.|Yes|Yes|
|colorkey\_opencl|Turns a certain color into transparency. Operates on RGB colors.|Yes|Yes|
|colorlevels|Adjust the color levels.|Yes|Yes|
|colormap|VVV->V     Apply custom Color Maps to video stream.|No|No|
|colormatrix|Convert color matrix.|Yes|Yes|
|colorspace|Convert between colorspaces.|Yes|Yes|
|colorspace\_cuda|CUDA accelerated video color converter|Yes|Yes|
|colorspectrum|Generate colors spectrum.|Yes|Yes|
|colortemperature|Adjust color temperature of video.|Yes|Yes|
|compand|Compress or expand audio dynamic range.|Yes|Yes|
|compensationdelay|Audio Compensation Delay Line.|Yes|Yes|
|concat|Concatenate audio and video streams.|No|No|
|convolution|Apply convolution filter.|Yes|Yes|
|convolution\_opencl|Apply convolution mask to input video|Yes|Yes|
|convolve|Convolve first video stream with second video stream.|Yes|Yes|
|copy|Copy the input video unchanged to the output.|Yes|Yes|
|corr|Calculate the correlation between two video streams.|Yes|Yes|
|cover\_rect|Find and cover a user specified object.|Yes|Yes|
|crop|Crop the input video.|Yes|Yes|
|cropdetect|Auto-detect crop size.|Yes|Yes|
|crossfeed|Apply headphone crossfeed filter.|Yes|Yes|
|crystalizer|Simple audio noise sharpening filter.|Yes|Yes|
|cue|Delay filtering to match a cue.|Yes|Yes|
|curves|Adjust components curves.|Yes|Yes|
|datascope|Video data analysis.|Yes|Yes|
|dblur|Apply Directional Blur filter.|Yes|Yes|
|dcshift|Apply a DC shift to the audio.|Yes|Yes|
|dctdnoiz|Denoise frames using 2D DCT.|Yes|Yes|
|deband|Debands video.|Yes|Yes|
|deblock|Deblock video.|Yes|Yes|
|decimate|Decimate frames (post field matching filter).|No|Yes|
|deconvolve|Deconvolve first video stream with second video stream.|Yes|Yes|
|dedot|Reduce cross-luminance and cross-color.|Yes|Yes|
|deesser|Apply de-essing to the audio.|Yes|Yes|
|deflate|Apply deflate effect.|Yes|Yes|
|deflicker|Remove temporal frame luminance variations.|Yes|Yes|
|deinterlace\_qsv|QuickSync video deinterlacing|Yes|Yes|
|deinterlace\_vaapi|Deinterlacing of VAAPI surfaces|Yes|Yes|
|dejudder|Remove judder produced by pullup.|Yes|Yes|
|delogo|Remove logo from input video.|Yes|Yes|
|denoise\_vaapi|VAAPI VPP for de-noise|Yes|Yes|
|derain|Apply derain filter to the input.|Yes|Yes|
|deshake|Stabilize shaky video.|Yes|Yes|
|deshake\_opencl|Feature-point based video stabilization filter|Yes|Yes|
|despill|Despill video.|Yes|Yes|
|detelecine|Apply an inverse telecine pattern.|Yes|Yes|
|dialoguenhance|Audio Dialogue Enhancement.|Yes|Yes|
|dilation|Apply dilation effect.|Yes|Yes|
|dilation\_opencl|Apply dilation effect|Yes|Yes|
|displace|VVV->V     Displace pixels.|No|No|
|dnn\_classify|Apply DNN classify filter to the input.|Yes|Yes|
|dnn\_detect|Apply DNN detect filter to the input.|Yes|Yes|
|dnn\_processing|Apply DNN processing filter to the input.|Yes|Yes|
|doubleweave|Weave input video fields into double number of frames.|Yes|Yes|
|drawbox|Draw a colored box on the input video.|Yes|Yes|
|drawgraph|Draw a graph using input video metadata.|Yes|Yes|
|drawgrid|Draw a colored grid on the input video.|Yes|Yes|
|drawtext|Draw text on top of video frames using libfreetype library.|Yes|Yes|
|drmeter|Measure audio dynamic range.|Yes|Yes|
|dynaudnorm|Dynamic Audio Normalizer.|Yes|Yes|
|earwax|Widen the stereo image.|Yes|Yes|
|ebur128|EBU R128 scanner.|No|No|
|edgedetect|Detect and draw edge.|Yes|Yes|
|elbg|Apply posterize effect, using the ELBG algorithm.|Yes|Yes|
|entropy|Measure video frames entropy.|Yes|Yes|
|epx|Scale the input using EPX algorithm.|Yes|Yes|
|eq|Adjust brightness, contrast, gamma, and saturation.|Yes|Yes|
|equalizer|Apply two-pole peaking equalization (EQ) filter.|Yes|Yes|
|erosion|Apply erosion effect.|Yes|Yes|
|erosion\_opencl|Apply erosion effect|Yes|Yes|
|estdif|Apply Edge Slope Tracing deinterlace.|Yes|Yes|
|exposure|Adjust exposure of the video stream.|Yes|Yes|
|extractplanes|Extract planes as grayscale frames.|Yes|No|
|extrastereo|Increase difference between stereo audio channels.|Yes|Yes|
|fade|Fade in/out input video.|Yes|Yes|
|feedback|Apply feedback video filter.|Yes|Yes|
|fftdnoiz|Denoise frames using 3D FFT.|Yes|Yes|
|fftfilt|Apply arbitrary expressions to pixels in frequency domain.|Yes|Yes|
|field|Extract a field from the input video.|Yes|Yes|
|fieldhint|Field matching using hints.|Yes|Yes|
|fieldmatch|Field matching for inverse telecine.|No|Yes|
|fieldorder|Set the field order.|Yes|Yes|
|fifo|Buffer input images and send them when they are requested.|No|No|
|fillborders|Fill borders of the input video.|Yes|Yes|
|find\_rect|Find a user specified object.|Yes|Yes|
|firequalizer|Finite Impulse Response Equalizer.|Yes|Yes|
|flanger|Apply a flanging effect to the audio.|Yes|Yes|
|flip\_vulkan|Flip both horizontally and vertically|Yes|Yes|
|flite|Synthesize voice from text using libflite.|Yes|Yes|
|floodfill|Fill area with same color with another color.|Yes|Yes|
|format|Convert the input video to one of the specified pixel formats.|Yes|Yes|
|fps|Force constant framerate.|Yes|Yes|
|framepack|Generate a frame packed stereoscopic video.|Yes|Yes|
|framerate|Upsamples or downsamples progressive source between specified frame rates.|Yes|Yes|
|framestep|Select one frame every N frames.|Yes|Yes|
|freezedetect|Detects frozen video input.|Yes|Yes|
|freezeframes|Freeze video frames.|Yes|Yes|
|frei0r|Apply a frei0r effect.|Yes|Yes|
|frei0r\_src|Generate a frei0r source.|Yes|Yes|
|fspp|Apply Fast Simple Post-processing filter.|Yes|Yes|
|fsync|Synchronize video frames from external source.|Yes|Yes|
|gblur|Apply Gaussian Blur filter.|Yes|Yes|
|gblur\_vulkan|Gaussian Blur in Vulkan|Yes|Yes|
|geq|Apply generic equation to each pixel.|Yes|Yes|
|gradfun|Debands video quickly using gradients.|Yes|Yes|
|gradients|Draw a gradients.|Yes|Yes|
|graphmonitor|Show various filtergraph stats.|Yes|Yes|
|grayworld|Adjust white balance using LAB gray world algorithm|Yes|Yes|
|greyedge|Estimates scene illumination by grey edge assumption.|Yes|Yes|
|guided|Apply Guided filter.|No|Yes|
|haas|Apply Haas Stereo Enhancer.|Yes|Yes|
|haldclut|Adjust colors using a Hald CLUT.|Yes|Yes|
|haldclutsrc|Provide an identity Hald CLUT.|Yes|Yes|
|hdcd|Apply High Definition Compatible Digital (HDCD) decoding.|Yes|Yes|
|headphone|Apply headphone binaural spatialization with HRTFs in additional streams.|Yes|Yes|
|hflip|Horizontally flip the input video.|Yes|Yes|
|hflip\_vulkan|Horizontally flip the input video in Vulkan|Yes|Yes|
|highpass|Apply a high-pass filter with 3dB point frequency.|Yes|Yes|
|highshelf|Apply a high shelf filter.|Yes|Yes|
|hilbert|Generate a Hilbert transform FIR coefficients.|Yes|Yes|
|histeq|Apply global color histogram equalization.|Yes|Yes|
|histogram|Compute and draw a histogram.|Yes|Yes|
|hqdn3d|Apply a High Quality 3D Denoiser.|Yes|Yes|
|hqx|Scale the input by 2, 3 or 4 using the hq\*x magnification algorithm.|Yes|Yes|
|hstack|Stack video inputs horizontally.|No|Yes|
|hstack\_qsv|"Quick Sync Video" hstack|No|Yes|
|hstack\_vaapi|"VA-API" hstack|No|Yes|
|hsvhold|Turns a certain HSV range into gray.|Yes|Yes|
|hsvkey|Turns a certain HSV range into transparency. Operates on YUV colors.|Yes|Yes|
|hue|Adjust the hue and saturation of the input video.|Yes|Yes|
|huesaturation|Apply hue-saturation-intensity adjustments.|Yes|Yes|
|hwdownload|Download a hardware frame to a normal frame|Yes|Yes|
|hwmap|Map hardware frames|Yes|Yes|
|hwupload|Upload a normal frame to a hardware frame|Yes|Yes|
|hwupload\_cuda|Upload a system memory frame to a CUDA device.|Yes|Yes|
|hysteresis|Grow first stream into second stream by connecting components.|Yes|Yes|
|identity|Calculate the Identity between two video streams.|Yes|Yes|
|idet|Interlace detect Filter.|Yes|Yes|
|il|Deinterleave or interleave fields.|Yes|Yes|
|inflate|Apply inflate effect.|Yes|Yes|
|interlace|Convert progressive video into interlaced.|Yes|Yes|
|interleave|Temporally interleave video inputs.|No|Yes|
|join|Join multiple audio streams into multi-channel output.|Yes|Yes|
|kerndeint|Apply kernel deinterlacing to the input.|Yes|Yes|
|kirsch|Apply kirsch operator.|Yes|Yes|
|ladspa|Apply LADSPA effect.|Yes|Yes|
|lagfun|Slowly update darker pixels.|Yes|Yes|
|latency|Report video filtering latency.|Yes|Yes|
|lenscorrection|Rectify the image by correcting for lens distortion.|Yes|Yes|
|libplacebo|Apply various GPU filters from libplacebo|No|Yes|
|libvmaf|Calculate the VMAF between two video streams.|Yes|Yes|
|life|Create life.|Yes|Yes|
|limitdiff|Apply filtering with limiting difference.|No|Yes|
|limiter|Limit pixels components to the specified range.|Yes|Yes|
|loop|Loop video frames.|Yes|Yes|
|loudnorm|EBU R128 loudness normalization|Yes|Yes|
|lowpass|Apply a low-pass filter with 3dB point frequency.|Yes|Yes|
|lowshelf|Apply a low shelf filter.|Yes|Yes|
|lumakey|Turns a certain luma into transparency.|Yes|Yes|
|lut|Compute and apply a lookup table to the RGB/YUV input video.|Yes|Yes|
|lut1d|Adjust colors using a 1D LUT.|Yes|Yes|
|lut2|Compute and apply a lookup table from two video inputs.|Yes|Yes|
|lut3d|Adjust colors using a 3D LUT.|Yes|Yes|
|lutrgb|Compute and apply a lookup table to the RGB input video.|Yes|Yes|
|lutyuv|Compute and apply a lookup table to the YUV input video.|Yes|Yes|
|mandelbrot|Render a Mandelbrot fractal.|Yes|Yes|
|maskedclamp|VVV->V     Clamp first stream with second stream and third stream.|No|No|
|maskedmax|VVV->V     Apply filtering with maximum difference of two streams.|No|No|
|maskedmerge|VVV->V     Merge first stream with second stream using third stream as mask.|No|No|
|maskedmin|VVV->V     Apply filtering with minimum difference of two streams.|No|No|
|maskedthreshold|Pick pixels comparing absolute difference of two streams with threshold.|Yes|Yes|
|maskfun|Create Mask.|Yes|Yes|
|mcdeint|Apply motion compensating deinterlacing.|Yes|Yes|
|mcompand|Multiband Compress or expand audio dynamic range.|Yes|Yes|
|median|Apply Median filter.|Yes|Yes|
|mergeplanes|Merge planes.|No|Yes|
|mestimate|Generate motion vectors.|Yes|Yes|
|metadata|Manipulate video frame metadata.|Yes|Yes|
|midequalizer|Apply Midway Equalization.|Yes|Yes|
|minterpolate|Frame rate conversion using Motion Interpolation.|Yes|Yes|
|mix|Mix video inputs.|No|Yes|
|monochrome|Convert video to gray using custom color filter.|Yes|Yes|
|morpho|Apply Morphological filter.|Yes|Yes|
|movie|Read from a movie source.|Yes|No|
|mpdecimate|Remove near-duplicate frames.|Yes|Yes|
|mptestsrc|Generate various test pattern.|Yes|Yes|
|msad|Calculate the MSAD between two video streams.|Yes|Yes|
|multiply|Multiply first video stream with second video stream.|Yes|Yes|
|negate|Negate input video.|Yes|Yes|
|nlmeans|Non-local means denoiser.|Yes|Yes|
|nlmeans\_opencl|Non-local means denoiser through OpenCL|Yes|Yes|
|nlmeans\_vulkan|Non-local means denoiser (Vulkan)|Yes|Yes|
|nnedi|Apply neural network edge directed interpolation intra-only deinterlacer.|Yes|Yes|
|noformat|Force libavfilter not to use any of the specified pixel formats for the input to the next filter.|Yes|Yes|
|noise|Add noise.|Yes|Yes|
|normalize|Normalize RGB video.|Yes|Yes|
|null|Pass the source unchanged to the output.|Yes|Yes|
|nullsink|Do absolutely nothing with the input video.|Yes|Yes|
|nullsrc|Null video source, return unprocessed video frames.|Yes|Yes|
|openclsrc|Generate video using an OpenCL program|Yes|Yes|
|oscilloscope|2D Video Oscilloscope.|Yes|Yes|
|overlay|Overlay a video source on top of the input.|Yes|Yes|
|overlay\_cuda|Overlay one video on top of another using CUDA|Yes|Yes|
|overlay\_opencl|Overlay one video on top of another|Yes|Yes|
|overlay\_qsv|Quick Sync Video overlay.|Yes|Yes|
|overlay\_vaapi|Overlay one video on top of another|Yes|Yes|
|overlay\_vulkan|Overlay a source on top of another|Yes|Yes|
|owdenoise|Denoise using wavelets.|Yes|Yes|
|pad|Pad the input video.|Yes|Yes|
|pad\_opencl|Pad the input video.|Yes|Yes|
|pal100bars|Generate PAL 100% color bars.|Yes|Yes|
|pal75bars|Generate PAL 75% color bars.|Yes|Yes|
|palettegen|Find the optimal palette for a given stream.|Yes|Yes|
|paletteuse|Use a palette to downsample an input video stream.|Yes|Yes|
|pan|Remix channels with coefficients (panning).|Yes|Yes|
|perms|Set permissions for the output video frame.|Yes|Yes|
|perspective|Correct the perspective of video.|Yes|Yes|
|phase|Phase shift fields.|Yes|Yes|
|photosensitivity|Filter out photosensitive epilepsy seizure-inducing flashes.|Yes|Yes|
|pixdesctest|Test pixel format definitions.|Yes|Yes|
|pixelize|Pixelize video.|Yes|Yes|
|pixscope|Pixel data analysis.|Yes|Yes|
|pp|Filter video using libpostproc.|Yes|Yes|
|pp7|Apply Postprocessing 7 filter.|Yes|Yes|
|premultiply|PreMultiply first stream with first plane of second stream.|No|Yes|
|prewitt|Apply prewitt operator.|Yes|Yes|
|prewitt\_opencl|Apply prewitt operator|Yes|Yes|
|procamp\_vaapi|ProcAmp (color balance) adjustments for hue, saturation, brightness, contrast|Yes|Yes|
|program\_opencl|Filter video using an OpenCL program|No|Yes|
|pseudocolor|Make pseudocolored video frames.|Yes|Yes|
|psnr|Calculate the PSNR between two video streams.|Yes|Yes|
|pullup|Pullup from field sequence to frames.|Yes|Yes|
|qp|Change video quantization parameters.|Yes|Yes|
|qrencode|Draw a QR code on top of video frames.|Yes|Yes|
|qrencodesrc|Generate a QR code.|Yes|Yes|
|quirc|Decode and show QR codes content.|Yes|Yes|
|random|Return random frames.|Yes|Yes|
|readeia608|Read EIA-608 Closed Caption codes from input video and write them to frame metadata.|Yes|Yes|
|readvitc|Read vertical interval timecode and write it to frame metadata.|Yes|Yes|
|realtime|Slow down filtering to match realtime.|Yes|Yes|
|remap|VVV->V     Remap pixels.|No|No|
|remap\_opencl|VVV->V     Remap pixels using OpenCL.|No|No|
|removegrain|Remove grain.|Yes|Yes|
|removelogo|Remove a TV logo based on a mask image.|Yes|Yes|
|repeatfields|Hard repeat fields based on MPEG repeat field flag.|Yes|Yes|
|replaygain|ReplayGain scanner.|Yes|Yes|
|reverse|Reverse a clip.|Yes|Yes|
|rgbashift|Shift RGBA.|Yes|Yes|
|rgbtestsrc|Generate RGB test pattern.|Yes|Yes|
|roberts|Apply roberts cross operator.|Yes|Yes|
|roberts\_opencl|Apply roberts operator|Yes|Yes|
|rotate|Rotate the input image.|Yes|Yes|
|sab|Apply shape adaptive blur.|Yes|Yes|
|scale|Scale the input video size and/or convert the image format.|Yes|Yes|
|scale2ref|Scale the input video size and/or convert the image format to the given reference.|Yes|Yes|
|scale\_cuda|GPU accelerated video resizer|Yes|Yes|
|scale\_qsv|QuickSync video scaling and format conversion|Yes|Yes|
|scale\_vaapi|Scale to/from VAAPI surfaces.|Yes|Yes|
|scale\_vulkan|Scale Vulkan frames|Yes|Yes|
|scdet|Detect video scene change|Yes|Yes|
|scharr|Apply scharr operator.|Yes|Yes|
|scroll|Scroll input video.|Yes|Yes|
|segment|Segment video stream.|Yes|No|
|select|Select video frames to pass in output.|Yes|No|
|selectivecolor|Apply CMYK adjustments to specific color ranges.|Yes|Yes|
|sendcmd|Send commands to filters.|Yes|Yes|
|separatefields|Split input video frames into fields.|Yes|Yes|
|setdar|Set the frame display aspect ratio.|Yes|Yes|
|setfield|Force field for the output video frame.|Yes|Yes|
|setparams|Force field, or color property for the output video frame.|Yes|Yes|
|setpts|Set PTS for the output video frame.|Yes|Yes|
|setrange|Force color range for the output video frame.|Yes|Yes|
|setsar|Set the pixel sample aspect ratio.|Yes|Yes|
|settb|Set timebase for the video output link.|Yes|Yes|
|sharpness\_vaapi|VAAPI VPP for sharpness|Yes|Yes|
|shear|Shear transform the input image.|Yes|Yes|
|showcqt|Convert input audio to a CQT (Constant/Clamped Q Transform) spectrum video output.|No|Yes|
|showcwt|Convert input audio to a CWT (Continuous Wavelet Transform) spectrum video output.|No|Yes|
|showfreqs|Convert input audio to a frequencies video output.|No|Yes|
|showinfo|Show textual information for each video frame.|Yes|Yes|
|showpalette|Display frame palette.|Yes|Yes|
|showspatial|Convert input audio to a spatial video output.|No|Yes|
|showspectrum|Convert input audio to a spectrum video output.|No|Yes|
|showspectrumpic|Convert input audio to a spectrum video output single picture.|No|Yes|
|showvolume|Convert input audio volume to video output.|No|Yes|
|showwaves|Convert input audio to a video output.|No|Yes|
|showwavespic|Convert input audio to a video output single picture.|No|Yes|
|shuffleframes|Shuffle video frames.|Yes|Yes|
|shufflepixels|Shuffle video pixels.|Yes|Yes|
|shuffleplanes|Shuffle video planes.|Yes|Yes|
|sidechaincompress|Sidechain compressor.|Yes|Yes|
|sidechaingate|Audio sidechain gate.|Yes|Yes|
|sidedata|Manipulate video frame side data.|Yes|Yes|
|sierpinski|Render a Sierpinski fractal.|Yes|Yes|
|signalstats|Generate statistics from video analysis.|Yes|Yes|
|signature|Calculate the MPEG-7 video signature|No|Yes|
|silencedetect|Detect silence.|Yes|Yes|
|silenceremove|Remove silence.|Yes|Yes|
|sinc|Generate a sinc kaiser-windowed low-pass, high-pass, band-pass, or band-reject FIR coefficients.|Yes|Yes|
|sine|Generate sine wave audio signal.|Yes|Yes|
|siti|Calculate spatial information (SI) and temporal information (TI).|Yes|Yes|
|smartblur|Blur the input video without impacting the outlines.|Yes|Yes|
|smptebars|Generate SMPTE color bars.|Yes|Yes|
|smptehdbars|Generate SMPTE HD color bars.|Yes|Yes|
|sobel|Apply sobel operator.|Yes|Yes|
|sobel\_opencl|Apply sobel operator|Yes|Yes|
|sofalizer|SOFAlizer (Spatially Oriented Format for Acoustics).|Yes|Yes|
|spectrumsynth|Convert input spectrum videos to audio output.|Yes|Yes|
|speechnorm|Speech Normalizer.|Yes|Yes|
|split|Pass on the input to N video outputs.|Yes|No|
|spp|Apply a simple post processing filter.|Yes|Yes|
|sr|Apply DNN-based image super resolution to the input.|Yes|Yes|
|ssim|Calculate the SSIM between two video streams.|Yes|Yes|
|ssim360|Calculate the SSIM between two 360 video streams.|Yes|Yes|
|stereo3d|Convert video stereoscopic 3D view.|Yes|Yes|
|stereotools|Apply various stereo tools.|Yes|Yes|
|stereowiden|Apply stereo widening effect.|Yes|Yes|
|streamselect|Select video streams|No|No|
|subtitles|Render text subtitles onto input video using the libass library.|Yes|Yes|
|super2xsai|Scale the input by 2x using the Super2xSaI pixel art algorithm.|Yes|Yes|
|superequalizer|Apply 18 band equalization filter.|Yes|Yes|
|surround|Apply audio surround upmix filter.|Yes|Yes|
|swaprect|Swap 2 rectangular objects in video.|Yes|Yes|
|swapuv|Swap U and V components.|Yes|Yes|
|tblend|Blend successive frames.|Yes|Yes|
|telecine|Apply a telecine pattern.|Yes|Yes|
|testsrc|Generate test pattern.|Yes|Yes|
|testsrc2|Generate another test pattern.|Yes|Yes|
|thistogram|Compute and draw a temporal histogram.|Yes|Yes|
|threshold|VVVV->V    Threshold first video stream using other video streams.|No|No|
|thumbnail|Select the most representative frame in a given sequence of consecutive frames.|Yes|Yes|
|thumbnail\_cuda|Select the most representative frame in a given sequence of consecutive frames.|Yes|Yes|
|tile|Tile several successive frames together.|Yes|Yes|
|tiltandshift|Generate a tilt-and-shift'd video.|Yes|Yes|
|tiltshelf|Apply a tilt shelf filter.|Yes|Yes|
|tinterlace|Perform temporal field interlacing.|Yes|Yes|
|tlut2|Compute and apply a lookup table from two successive frames.|Yes|Yes|
|tmedian|Pick median pixels from successive frames.|Yes|Yes|
|tmidequalizer|Apply Temporal Midway Equalization.|Yes|Yes|
|tmix|Mix successive video frames.|Yes|Yes|
|tonemap|Conversion to/from different dynamic ranges.|Yes|Yes|
|tonemap\_opencl|Perform HDR to SDR conversion with tonemapping.|Yes|Yes|
|tonemap\_vaapi|VAAPI VPP for tone-mapping|Yes|Yes|
|tpad|Temporarily pad video frames.|Yes|Yes|
|transpose|Transpose input video.|Yes|Yes|
|transpose\_opencl|Transpose input video|Yes|Yes|
|transpose\_vaapi|VAAPI VPP for transpose|Yes|Yes|
|transpose\_vulkan|Transpose Vulkan Filter|Yes|Yes|
|treble|Boost or cut upper frequencies.|Yes|Yes|
|tremolo|Apply tremolo effect.|Yes|Yes|
|trim|Pick one continuous section from the input, drop the rest.|Yes|Yes|
|unpremultiply|UnPreMultiply first stream with first plane of second stream.|No|Yes|
|unsharp|Sharpen or blur the input video.|Yes|Yes|
|unsharp\_opencl|Apply unsharp mask to input video|Yes|Yes|
|untile|Untile a frame into a sequence of frames.|Yes|Yes|
|uspp|Apply Ultra Simple / Slow Post-processing filter.|Yes|Yes|
|v360|Convert 360 projection of video.|Yes|Yes|
|vaguedenoiser|Apply a Wavelet based Denoiser.|Yes|Yes|
|varblur|Apply Variable Blur filter.|Yes|Yes|
|vectorscope|Video vectorscope.|Yes|Yes|
|vflip|Flip the input video vertically.|Yes|Yes|
|vflip\_vulkan|Vertically flip the input video in Vulkan|Yes|Yes|
|vfrdet|Variable frame rate detect filter.|Yes|Yes|
|vibrance|Boost or alter saturation.|Yes|Yes|
|vibrato|Apply vibrato effect.|Yes|Yes|
|vidstabdetect|Extract relative transformations, pass 1 of 2 for stabilization (see vidstabtransform for pass 2).|Yes|Yes|
|vidstabtransform|Transform the frames, pass 2 of 2 for stabilization (see vidstabdetect for pass 1).|Yes|Yes|
|vif|Calculate the VIF between two video streams.|Yes|Yes|
|vignette|Make or reverse a vignette effect.|Yes|Yes|
|virtualbass|Audio Virtual Bass.|Yes|Yes|
|vmafmotion|Calculate the VMAF Motion score.|Yes|Yes|
|volume|Change input volume.|Yes|Yes|
|volumedetect|Detect audio volume.|Yes|Yes|
|vpp\_qsv|Quick Sync Video VPP.|Yes|Yes|
|vstack|Stack video inputs vertically.|No|Yes|
|vstack\_qsv|"Quick Sync Video" vstack|No|Yes|
|vstack\_vaapi|"VA-API" vstack|No|Yes|
|w3fdif|Apply Martin Weston three field deinterlace.|Yes|Yes|
|waveform|Video waveform monitor.|Yes|Yes|
|weave|Weave input video fields into frames.|Yes|Yes|
|xbr|Scale the input using xBR algorithm.|Yes|Yes|
|xcorrelate|Cross-correlate first video stream with second video stream.|Yes|Yes|
|xfade|Cross fade one video with another video.|Yes|Yes|
|xfade\_opencl|Cross fade one video with another video.|Yes|Yes|
|xfade\_vulkan|Cross fade one video with another video.|Yes|Yes|
|xmedian|Pick median pixels from several video inputs.|No|Yes|
|xstack|Stack video inputs into custom layout.|No|Yes|
|xstack\_qsv|"Quick Sync Video" xstack|No|Yes|
|xstack\_vaapi|"VA-API" xstack|No|Yes|
|yadif|Deinterlace the input image.|Yes|Yes|
|yadif\_cuda|Deinterlace CUDA frames|Yes|Yes|
|yaepblur|Yet another edge preserving blur filter.|Yes|Yes|
|yuvtestsrc|Generate YUV test pattern.|Yes|Yes|
|zmq|Receive commands through ZMQ and broker them to filters.|Yes|Yes|
|zoneplate|Generate zone-plate.|Yes|Yes|
|zoompan|Apply Zoom & Pan effect.|Yes|Yes|
|zscale|Apply resizing, colorspace and bit depth conversion.|Yes|Yes|
