FFix.Filter (ffix v0.2.0)

Copy Markdown View Source

Transform pictures and sound with FFmpeg filters.

Filter functions take selected streams followed by options. Chain them with Elixir's pipe operator, then choose an encoder and output.

Resize and adjust frame rate

alias FFix.{Encoder, Filter, Muxer}

output =
  FFix.input("interview.mp4")
  |> FFix.video(0)
  |> Filter.scale(w: 1280, h: -2)
  |> Filter.fps(fps: 30)
  |> Encoder.libx264(crf: 23)
  |> Muxer.mp4("interview-small.mp4")

FFix.command(output)

This selects video only. Add an audio selection to the output when you want to retain sound, as shown in the FFix guide.

Combine streams

Filters with a fixed number of inputs take separate arguments. For example, overlay/3 places one video over another:

source = FFix.input("interview.mp4")
logo = FFix.input("logo.png")
picture = Filter.overlay(FFix.video(source, 0), FFix.video(logo, 0), x: 20, y: 20)

Filters accepting a variable number of streams take a list. This mixes two audio recordings, stopping when the shorter one ends:

voice = FFix.input("voice.wav") |> FFix.audio(0)
music = FFix.input("music.wav") |> FFix.audio(0)
mixed = Filter.amix([voice, music], inputs: 2, duration: :shortest)

Branch a stream

Use split/2 for video and asplit/2 for audio when a filtered stream feeds several branches. Here we compare a picture with its mirrored version:

picture = FFix.input("interview.mp4") |> FFix.video(0) |> Filter.scale(w: 640, h: -2)
[left, right] = Filter.split(picture, outputs: 2)
comparison = Filter.hstack([left, Filter.hflip(right)])
FFix.output(comparison, "comparison.mp4") |> FFix.command()

Each produced filter output must be connected or mapped once in the completed command. Connect unwanted branches to a sink such as nullsink/2 or anullsink/2, and retain it with the command's terminals: option.

Most filters return one stream. Multi-output filters return an ordered list; a sink returns FFix.Graph.Terminal. Options can change the result: split(video, outputs: 1) returns one stream, while outputs: 2 returns two. ebur128(audio, video: true) returns [video, audio] in that order.

Generate media

Source filters create their own media and take options only:

output = Filter.testsrc2(size: "640x360", rate: 30, duration: 2)
FFix.output(output, "test-pattern.mp4") |> FFix.command()

Give generated sources a duration, or limit the output with t: or a frame count, to keep the command finite.

Expressions and filter options

Use strings for FFmpeg expressions. FFix handles the escaping:

Filter.volume(voice, volume: 0.5, enable: "between(t,0,3)")

Timeline-capable filters accept enable:. Filters that synchronize several inputs may also offer eof_action:, shortest:, repeatlast:, and ts_sync_mode:; see their option lists below.

The helper catalog and option reference come from FFmpeg 7.1.5. Check FFix.Discovery for availability in your installation. FFmpeg supplies omitted defaults and performs final value checks when executing. Use filter/4 for another filter name or an explicit output layout.

See the FFmpeg filter reference for expressions and detailed filter behavior. To parse an existing filtergraph or reuse a template, see FFix.Graph.

Summary

Video

Add region of interest to frame.

Extract an alpha channel as a grayscale image component.

Copy the luma value of the second input into the alpha channel of the first input.

Amplify changes between successive video frames.

Render ASS subtitles onto input video using the libass library.

Apply an Adaptive Temporal Averaging Denoiser.

Apply Average Blur filter.

Apply average blur filter

Apply avgblur mask to input video

Turns a static background into transparency.

Compute bounding box for each frame.

Benchmark part of a filtergraph.

Apply Bilateral filter.

Measure bit plane noise.

Detect video intervals that are (almost) black.

Detect frames that are (almost) black.

Blend two video frames into each other.

Blend two video frames in Vulkan

Block-Matching 3D denoiser.

Apply boxblur filter to input video

Deinterlace the input image.

Deinterlace Vulkan frames via bwdif

Contrast Adaptive Sharpen.

Repack CEA-708 closed caption metadata

Offset chroma of input video (chromatic aberration)

Turns a certain color range into gray.

Turns a certain color into transparency. Operates on YUV colors.

Reduce chrominance noise.

Visualize information about some codecs.

Adjust the color balance.

Adjust colors by mixing color channels.

Adjust color contrast between RGB components.

Adjust color white balance selectively for blacks and whites.

Turns a certain color range into gray. Operates on RGB colors.

Overlay a solid color on the video stream.

Turns a certain color into transparency. Operates on RGB colors.

Turns a certain color into transparency. Operates on RGB colors.

Adjust the color levels.

Apply custom Color Maps to video stream.

Convert color matrix.

Convert between colorspaces.

Adjust color temperature of video.

Apply convolution filter.

Apply convolution mask to input video

Convolve first video stream with second video stream.

Copy the input video unchanged to the output.

Calculate the correlation between two video streams.

Find and cover a user specified object.

Crop the input video.

Auto-detect crop size.

Delay filtering to match a cue.

Adjust components curves.

Video data analysis.

Apply Directional Blur filter.

Denoise frames using 2D DCT.

Decimate frames (post field matching filter).

Deconvolve first video stream with second video stream.

Reduce cross-luminance and cross-color.

Apply deflate effect.

Remove temporal frame luminance variations.

Quick Sync Video "deinterlacing"

Deinterlacing of VAAPI surfaces

Remove judder produced by pullup.

Remove logo from input video.

VAAPI VPP for de-noise

Stabilize shaky video.

Feature-point based video stabilization filter

Apply an inverse telecine pattern.

Apply dilation effect.

Weave input video fields into double number of frames.

Draw a colored box on the input video.

Draw a colored box on the input video.

Draw a graph using input video metadata.

Draw a colored grid on the input video.

Draw text on top of video frames using libfreetype library.

Detect and draw edge.

Apply posterize effect, using the ELBG algorithm.

Measure video frames entropy.

Scale the input using EPX algorithm.

Adjust brightness, contrast, gamma, and saturation.

Apply erosion effect.

Apply Edge Slope Tracing deinterlace.

Adjust exposure of the video stream.

Extract planes as grayscale frames.

Fade in/out input video.

Apply feedback video filter.

Denoise frames using 3D FFT.

Apply arbitrary expressions to pixels in frequency domain.

Extract a field from the input video.

Field matching using hints.

Field matching for inverse telecine.

Set the field order.

Fill borders of the input video.

Find a user specified object.

Flip both horizontally and vertically

Fill area with same color with another color.

Convert the input video to one of the specified pixel formats.

Force constant framerate.

Generate a frame packed stereoscopic video.

Upsamples or downsamples progressive source between specified frame rates.

Select one frame every N frames.

Detects frozen video input.

Apply a frei0r effect.

Apply Fast Simple Post-processing filter.

Synchronize video frames from external source.

Apply Gaussian Blur filter.

Gaussian Blur in Vulkan

Apply generic equation to each pixel.

Debands video quickly using gradients.

Show various filtergraph stats.

Adjust white balance using LAB gray world algorithm

Estimates scene illumination by grey edge assumption.

Apply Guided filter.

Adjust colors using a Hald CLUT.

Horizontally flip the input video.

Horizontally flip the input video in Vulkan

Apply global color histogram equalization.

Compute and draw a histogram.

Apply a High Quality 3D Denoiser.

Scale the input by 2, 3 or 4 using the hq*x magnification algorithm.

Stack video inputs horizontally.

"Quick Sync Video" hstack

Turns a certain HSV range into gray.

Turns a certain HSV range into transparency. Operates on YUV colors.

Adjust the hue and saturation of the input video.

Apply hue-saturation-intensity adjustments.

Download a hardware frame to a normal frame

Map hardware frames

Upload a normal frame to a hardware frame

Upload a system memory frame to a CUDA device.

Grow first stream into second stream by connecting components.

Detect and parse ICC profiles.

Generate and attach ICC profiles.

Calculate the Identity between two video streams.

Interlace detect Filter.

Deinterleave or interleave fields.

Apply inflate effect.

Convert progressive video into interlaced.

Temporally interleave video inputs.

Apply kernel deinterlacing to the input.

Apply kirsch operator.

Slowly update darker pixels.

Report video filtering latency.

Rectify the image by correcting for lens distortion.

Apply various GPU filters from libplacebo

Calculate the VMAF between two video streams.

Apply filtering with limiting difference.

Limit pixels components to the specified range.

Loop video frames.

Turns a certain luma into transparency.

Adjust colors using a 1D LUT.

Compute and apply a lookup table from two video inputs.

Adjust colors using a 3D LUT.

Compute and apply a lookup table to the RGB/YUV input video.

Compute and apply a lookup table to the RGB input video.

Compute and apply a lookup table to the YUV input video.

Clamp first stream with second stream and third stream.

Apply filtering with maximum difference of two streams.

Merge first stream with second stream using third stream as mask.

Apply filtering with minimum difference of two streams.

Pick pixels comparing absolute difference of two streams with threshold.

Apply motion compensating deinterlacing.

Apply Median filter.

Generate motion vectors.

Manipulate video frame metadata.

Frame rate conversion using Motion Interpolation.

Mix video inputs.

Convert video to gray using custom color filter.

Apply Morphological filter.

Remove near-duplicate frames.

Calculate the MSAD between two video streams.

Multiply first video stream with second video stream.

Negate input video.

Non-local means denoiser.

Non-local means denoiser through OpenCL

Non-local means denoiser (Vulkan)

Apply neural network edge directed interpolation intra-only deinterlacer.

Force libavfilter not to use any of the specified pixel formats for the input to the next filter.

Normalize RGB video.

Pass the source unchanged to the output.

Optical Character Recognition.

2D Video Oscilloscope.

Overlay a video source on top of the input.

Overlay one video on top of another

Overlay one video on top of another

Overlay a source on top of another

Denoise using wavelets.

Pad the input video.

Pad the input video.

Pad the input video.

Find the optimal palette for a given stream.

Use a palette to downsample an input video stream.

Set permissions for the output video frame.

Correct the perspective of video.

Phase shift fields.

Filter out photosensitive epilepsy seizure-inducing flashes.

Test pixel format definitions.

Pixel data analysis.

Apply Postprocessing 7 filter.

Filter video using libpostproc.

PreMultiply first stream with first plane of second stream.

Apply prewitt operator.

ProcAmp (color balance) adjustments for hue, saturation, brightness, contrast

Filter video using an OpenCL program

Make pseudocolored video frames.

Calculate the PSNR between two video streams.

Pullup from field sequence to frames.

Change video quantization parameters.

Draw a QR code on top of video frames.

Return random frames.

Read EIA-608 Closed Caption codes from input video and write them to frame metadata.

Read vertical interval timecode and write it to frame metadata.

Slow down filtering to match realtime.

Remove a TV logo based on a mask image.

Hard repeat fields based on MPEG repeat field flag.

Apply roberts cross operator.

Rotate the input image.

Apply shape adaptive blur.

Scale the input video size and/or convert the image format to the given reference.

Scale the input video size and/or convert the image format.

Quick Sync Video "scaling and format conversion"

Scale to/from VAAPI surfaces.

Detect video scene change

Apply scharr operator.

Scroll input video.

Segment video stream.

Select video frames to pass in output.

Apply CMYK adjustments to specific color ranges.

Send commands to filters.

Split input video frames into fields.

Set the frame display aspect ratio.

Force field for the output video frame.

Force field, or color property for the output video frame.

Set PTS for the output video frame.

Force color range for the output video frame.

Set the pixel sample aspect ratio.

Set timebase for the video output link.

VAAPI VPP for sharpness

Shear transform the input image.

Show textual information for each video frame.

Display frame palette.

Manipulate video frame side data.

Generate statistics from video analysis.

Calculate the MPEG-7 video signature

Calculate spatial information (SI) and temporal information (TI).

Blur the input video without impacting the outlines.

Apply sobel operator.

Pass on the input to N video outputs.

Apply a simple post processing filter.

Calculate the SSIM between two 360 video streams.

Calculate the SSIM between two video streams.

Convert video stereoscopic 3D view.

Render text subtitles onto input video using the libass library.

Scale the input by 2x using the Super2xSaI pixel art algorithm.

Swap 2 rectangular objects in video.

Swap U and V components.

Blend successive frames.

Apply a telecine pattern.

Compute and draw a temporal histogram.

Threshold first video stream using other video streams.

Select the most representative frame in a given sequence of consecutive frames.

Tile several successive frames together.

Generate a tilt-and-shift'd video.

Perform temporal field interlacing.

Compute and apply a lookup table from two successive frames.

Pick median pixels from successive frames.

Apply Temporal Midway Equalization.

Mix successive video frames.

Conversion to/from different dynamic ranges.

Perform HDR to SDR conversion with tonemapping.

VAAPI VPP for tone-mapping

Temporarily pad video frames.

Transpose input video.

VAAPI VPP for transpose

Pick one continuous section from the input, drop the rest.

UnPreMultiply first stream with first plane of second stream.

Sharpen or blur the input video.

Apply unsharp mask to input video

Untile a frame into a sequence of frames.

Apply Ultra Simple / Slow Post-processing filter.

Convert 360 projection of video.

Apply a Wavelet based Denoiser.

Apply Variable Blur filter.

Flip the input video vertically.

Vertically flip the input video in Vulkan

Variable frame rate detect filter.

Boost or alter saturation.

Extract relative transformations, pass 1 of 2 for stabilization (see vidstabtransform for pass 2).

Transform the frames, pass 2 of 2 for stabilization (see vidstabdetect for pass 1).

Calculate the VIF between two video streams.

Make or reverse a vignette effect.

Calculate the VMAF Motion score.

Quick Sync Video "VPP"

Stack video inputs vertically.

"Quick Sync Video" vstack

Apply Martin Weston three field deinterlace.

Video waveform monitor.

Weave input video fields into frames.

Scale the input using xBR algorithm.

Cross-correlate first video stream with second video stream.

Cross fade one video with another video.

Cross fade one video with another video.

Cross fade one video with another video.

Pick median pixels from several video inputs.

Calculate the extended perceptually weighted peak signal-to-noise ratio (XPSNR) between two video streams.

Stack video inputs into custom layout.

"Quick Sync Video" xstack

Deinterlace the input image.

Yet another edge preserving blur filter.

Receive commands through ZMQ and broker them to filters.

Apply Zoom & Pan effect.

Apply resizing, colorspace and bit depth conversion.

Audio

Apply Affine Projection algorithm to first audio stream.

Benchmark part of a filtergraph.

Simple audio dynamic range compression/expansion filter.

Copy the input audio unchanged to the output.

Cross fade two input audio streams.

Split audio into per-bands streams.

Reduce audio bit resolution.

Delay filtering to match a cue.

Remove impulsive noise from input audio.

Remove clipping from input audio.

Apply decorrelation to input audio.

Delay one or more audio channels.

Remedy denormals by adding extremely low-level noise.

Compute derivative of input audio.

Audio Spectral Dynamic Range Controller.

Apply Dynamic Equalization of input audio.

Apply Dynamic Smoothing of input audio.

Add echoing to the audio.

Filter audio signal according to a specified expression.

Enhance high frequency part of audio.

Fade in/out input audio.

Denoise audio samples using FFT.

Apply arbitrary expressions to samples in frequency domain.

Apply Finite Impulse Response filter with supplied coefficients in additional stream(s).

Convert the input audio to one of the specified formats.

Apply frequency shifting to input audio.

Denoise audio stream using Wavelets.

Apply Infinite Impulse Response filter with supplied coefficients.

Compute integral of input audio.

Temporally interleave audio inputs.

Report audio filtering latency.

Audio lookahead limiter.

Apply a two-pole all-pass filter.

Loop audio samples.

Merge two or more audio streams into a single multi-channel stream.

Manipulate audio frame metadata.

Multiply two audio streams.

Apply high-order audio parametric multi band equalizer.

Reduce broadband noise from stream using Non-Local Means.

Apply Normalized Least-Mean-Fourth algorithm to first audio stream.

Apply Normalized Least-Mean-Squares algorithm to first audio stream.

Pass the source unchanged to the output.

Pad audio with silence.

Set permissions for the output audio frame.

Convert input audio to phase meter video output.

Add a phasing effect to the audio.

Apply phase shifting to input audio.

Measure Audio Peak Signal-to-Noise Ratio.

Audio Psychoacoustic Clipper.

Slow down filtering to match realtime.

Resample audio data.

Reverse an audio clip.

Apply Recursive Least Squares algorithm to first audio stream.

Reduce noise from speech using Recurrent Neural Networks.

Measure Audio Signal-to-Distortion Ratio.

Segment audio stream.

Select audio frames to pass in output.

Send commands to filters.

Set the number of samples for each output audio frames.

Set PTS for the output audio frame.

Change the sample rate without altering the data.

Set timebase for the audio output link.

Show textual information for each audio frame.

Manipulate audio frame side data.

Measure Audio Scale-Invariant Signal-to-Distortion Ratio.

Audio Soft Clipper.

Show frequency domain statistics about audio frames.

Pass on the audio input to N audio outputs.

Show time domain statistics about audio frames.

Boost subwoofer frequencies.

Cut subwoofer frequencies.

Cut super frequencies.

Apply high order Butterworth band-pass filter.

Apply high order Butterworth band-stop filter.

Adjust audio tempo.

Apply spectral tilt to audio.

Pick one continuous section from the input, drop the rest.

Cross-correlate two audio streams.

Receive commands through ZMQ and broker them to filters.

Apply a two-pole Butterworth band-pass filter.

Apply a two-pole Butterworth band-reject filter.

Boost or cut lower frequencies.

Apply a biquad IIR filter with the given coefficients.

Bauer stereo-to-binaural filter.

Remap audio channels.

Split audio into per-channel streams.

Add a chorus effect to the audio.

Compress or expand audio dynamic range.

Audio Compensation Delay Line.

Apply headphone crossfeed filter.

Simple audio noise sharpening filter.

Apply a DC shift to the audio.

Apply de-essing to the audio.

Audio Dialogue Enhancement.

Measure audio dynamic range.

Dynamic Audio Normalizer.

Widen the stereo image.

Apply two-pole peaking equalization (EQ) filter.

Increase difference between stereo audio channels.

Finite Impulse Response Equalizer.

Apply a flanging effect to the audio.

Apply Haas Stereo Enhancer.

Apply High Definition Compatible Digital (HDCD) decoding.

Apply headphone binaural spatialization with HRTFs in additional streams.

Apply a high-pass filter with 3dB point frequency.

Apply a high shelf filter.

Join multiple audio streams into multi-channel output.

Apply LADSPA effect.

EBU R128 loudness normalization

Apply a low-pass filter with 3dB point frequency.

Apply a low shelf filter.

Apply LV2 effect.

Multiband Compress or expand audio dynamic range.

Remix channels with coefficients (panning).

Apply time-stretching and pitch-shifting.

SOFAlizer (Spatially Oriented Format for Acoustics).

Apply various stereo tools.

Apply stereo widening effect.

Apply 18 band equalization filter.

Apply audio surround upmix filter.

Apply a tilt shelf filter.

Boost or cut upper frequencies.

Apply tremolo effect.

Apply vibrato effect.

Change input volume.

Sources and sinks

Buffer audio frames, and make them accessible to the filterchain.

Buffer audio frames, and make them available to the end of the filter graph.

Generate an audio signal generated by an expression.

Generate a Fractional delay FIR coefficients.

Generate a FIR equalizer coefficients audio stream.

Generate a FIR coefficients audio stream.

Generate all RGB colors.

Generate all yuv colors.

Read audio from a movie source.

Generate a noise audio signal.

Do absolutely nothing with the input audio.

Null audio source, return empty audio frames.

Generate an Audio Video Sync Test.

Buffer video frames, and make them accessible to the filterchain.

Buffer video frames, and make them available to the end of the filter graph.

Create pattern generated by an elementary cellular automaton.

Provide an uniformly colored input.

Generate a constant color (Vulkan)

Generate color checker chart.

Generate colors spectrum.

Generate a frei0r source.

Draw a gradients.

Provide an identity Hald CLUT.

Generate a Hilbert transform FIR coefficients.

Create life.

Render a Mandelbrot fractal.

Read from a movie source.

Generate various test pattern.

Do absolutely nothing with the input video.

Null video source, return unprocessed video frames.

Generate video using an OpenCL program

Generate PAL 75% color bars.

Generate PAL 100% color bars.

Generate Perlin noise

Generate a QR code.

Generate RGB test pattern.

Render a Sierpinski fractal.

Generate a sinc kaiser-windowed low-pass, high-pass, band-pass, or band-reject FIR coefficients.

Generate sine wave audio signal.

Generate SMPTE color bars.

Generate SMPTE HD color bars.

Generate another test pattern.

Generate test pattern.

Generate YUV test pattern.

Generate zone-plate.

Other filters

Convert input audio to 3d scope video output.

Convert input audio to audio bit scope video output.

Draw a graph using input audio metadata.

Show various filtergraph stats.

Convert input audio to histogram video output.

Convert input audio to vectorscope video output.

Concatenate audio and video streams.

Builds a filter using its FFmpeg name, explicit output media, and options.

Convert input audio to a CQT (Constant/Clamped Q Transform) spectrum video output.

Convert input audio to a CWT (Continuous Wavelet Transform) spectrum video output.

Convert input audio to a frequencies video output.

Convert input audio to a spatial video output.

Convert input audio to a spectrum video output.

Convert input audio to a spectrum video output single picture.

Convert input audio volume to video output.

Convert input audio to a video output.

Convert input audio to a video output single picture.

Convert input spectrum videos to audio output.

Video

addroi(video_0, options \\ [])

@spec addroi(FFix.Graph.StreamRef.t(),
  clear: String.t() | atom() | number(),
  h: String.t() | atom() | number(),
  qoffset: String.t() | atom() | number(),
  w: String.t() | atom() | number(),
  x: String.t() | atom() | number(),
  y: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Add region of interest to frame.

Options

  • clear (boolean): Remove any existing regions of interest before adding the new one. (default false)
  • h (string): Region height. (default "0")
  • qoffset (rational): Quantisation offset to apply in the region. (from -1 to 1) (default -1/10)
  • w (string): Region width. (default "0")
  • x (string): Region distance from left edge of frame. (default "0")
  • y (string): Region distance from top edge of frame. (default "0")

See FFix.Filter for pipelines, expressions, and output handling.

alphaextract(video_0, options \\ [])

@spec alphaextract(FFix.Graph.StreamRef.t(), keyword()) :: FFix.Graph.StreamRef.t()

Extract an alpha channel as a grayscale image component.

Options

See FFix.Filter for pipelines, expressions, and output handling.

alphamerge(video_0, video_1, options \\ [])

@spec alphamerge(FFix.Graph.StreamRef.t(), FFix.Graph.StreamRef.t(),
  enable: String.t() | atom() | number(),
  eof_action: String.t() | atom() | number(),
  repeatlast: String.t() | atom() | number(),
  shortest: String.t() | atom() | number(),
  ts_sync_mode: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Copy the luma value of the second input into the alpha channel of the first input.

Options

  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • eof_action (int): Action to take when encountering EOF from secondary input (from 0 to 2) (default repeat)
    • repeat (0) — Repeat the previous frame.
    • endall (1) — End both streams.
    • pass (2) — Pass through the main input.
  • repeatlast (boolean): extend last frame of secondary streams beyond EOF (default true)
  • shortest (boolean): force termination when the shortest input terminates (default false)
  • ts_sync_mode (int): How strictly to sync streams based on secondary input timestamps (from 0 to 1) (default default)
    • default (0) — Frame from secondary input with the nearest lower or equal timestamp to the primary input frame
    • nearest (1) — Frame from secondary input with the absolute nearest timestamp to the primary input frame

See FFix.Filter for pipelines, expressions, and output handling.

amplify(video_0, options \\ [])

@spec amplify(FFix.Graph.StreamRef.t(),
  enable: String.t() | atom() | number(),
  factor: String.t() | atom() | number(),
  high: String.t() | atom() | number(),
  low: String.t() | atom() | number(),
  planes: (String.t() | atom() | number()) | [String.t() | atom() | number()],
  radius: String.t() | atom() | number(),
  threshold: String.t() | atom() | number(),
  tolerance: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Amplify changes between successive video frames.

Options

  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • factor (float): set factor (from 0 to 65535) (default 2)
  • high (float): set high limit for amplification (from 0 to 65535) (default 65535)
  • low (float): set low limit for amplification (from 0 to 65535) (default 65535)
  • planes (flags): set what planes to filter (default 7)
  • radius (int): set radius (from 1 to 63) (default 2)
  • threshold (float): set threshold (from 0 to 65535) (default 10)
  • tolerance (float): set tolerance (from 0 to 65535) (default 0)

See FFix.Filter for pipelines, expressions, and output handling.

ass(video_0, options \\ [])

@spec ass(FFix.Graph.StreamRef.t(),
  alpha: String.t() | atom() | number(),
  f: String.t() | atom() | number(),
  filename: String.t() | atom() | number(),
  fontsdir: String.t() | atom() | number(),
  original_size: String.t() | atom() | number(),
  shaping: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Render ASS subtitles onto input video using the libass library.

Options

  • alpha (boolean): enable processing of alpha channel (default false)
  • f (string): set the filename of file to read
  • filename (string): set the filename of file to read
  • fontsdir (string): set the directory containing the fonts to read
  • original_size (image_size): set the size of the original video (used to scale fonts)
  • shaping (int): set shaping engine (from -1 to 1) (default auto)
    • auto (-1)
    • simple (0) — simple shaping
    • complex (1) — complex shaping

See FFix.Filter for pipelines, expressions, and output handling.

atadenoise(video_0, options \\ [])

@spec atadenoise(FFix.Graph.StreamRef.t(),
  "0a": String.t() | atom() | number(),
  "0b": String.t() | atom() | number(),
  "0s": String.t() | atom() | number(),
  "1a": String.t() | atom() | number(),
  "1b": String.t() | atom() | number(),
  "1s": String.t() | atom() | number(),
  "2a": String.t() | atom() | number(),
  "2b": String.t() | atom() | number(),
  "2s": String.t() | atom() | number(),
  a: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  p: (String.t() | atom() | number()) | [String.t() | atom() | number()],
  s: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Apply an Adaptive Temporal Averaging Denoiser.

Options

  • 0a (float): set threshold A for 1st plane (from 0 to 0.3) (default 0.02)
  • 0b (float): set threshold B for 1st plane (from 0 to 5) (default 0.04)
  • 0s (float): set sigma for 1st plane (from 0 to 32767) (default 32767)
  • 1a (float): set threshold A for 2nd plane (from 0 to 0.3) (default 0.02)
  • 1b (float): set threshold B for 2nd plane (from 0 to 5) (default 0.04)
  • 1s (float): set sigma for 2nd plane (from 0 to 32767) (default 32767)
  • 2a (float): set threshold A for 3rd plane (from 0 to 0.3) (default 0.02)
  • 2b (float): set threshold B for 3rd plane (from 0 to 5) (default 0.04)
  • 2s (float): set sigma for 3rd plane (from 0 to 32767) (default 32767)
  • a (int): set variant of algorithm (from 0 to 1) (default p)
    • p (0) — parallel
    • s (1) — serial
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • p (flags): set what planes to filter (default 7)
  • s (int): set how many frames to use (from 5 to 129) (default 9)

See FFix.Filter for pipelines, expressions, and output handling.

avgblur(video_0, options \\ [])

@spec avgblur(FFix.Graph.StreamRef.t(),
  enable: String.t() | atom() | number(),
  planes: String.t() | atom() | number(),
  sizeX: String.t() | atom() | number(),
  sizeY: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Apply Average Blur filter.

Options

  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • planes (int): set planes to filter (from 0 to 15) (default 15)
  • sizeX (int): set horizontal size (from 1 to 1024) (default 1)
  • sizeY (int): set vertical size (from 0 to 1024) (default 0)

See FFix.Filter for pipelines, expressions, and output handling.

avgblur_opencl(video_0, options \\ [])

@spec avgblur_opencl(FFix.Graph.StreamRef.t(),
  planes: String.t() | atom() | number(),
  sizeX: String.t() | atom() | number(),
  sizeY: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Apply average blur filter

Options

  • planes (int): set planes to filter (from 0 to 15) (default 15)
  • sizeX (int): set horizontal size (from 1 to 1024) (default 1)
  • sizeY (int): set vertical size (from 0 to 1024) (default 0)

See FFix.Filter for pipelines, expressions, and output handling.

avgblur_vulkan(video_0, options \\ [])

@spec avgblur_vulkan(FFix.Graph.StreamRef.t(),
  planes: String.t() | atom() | number(),
  sizeX: String.t() | atom() | number(),
  sizeY: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Apply avgblur mask to input video

Options

  • planes (int): Set planes to filter (bitmask) (from 0 to 15) (default 15)
  • sizeX (int): Set horizontal radius (from 1 to 32) (default 3)
  • sizeY (int): Set vertical radius (from 1 to 32) (default 3)

See FFix.Filter for pipelines, expressions, and output handling.

backgroundkey(video_0, options \\ [])

@spec backgroundkey(FFix.Graph.StreamRef.t(),
  blend: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  similarity: String.t() | atom() | number(),
  threshold: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Turns a static background into transparency.

Options

  • blend (float): set the blend value (from 0 to 1) (default 0)
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • similarity (float): set the similarity (from 0 to 1) (default 0.1)
  • threshold (float): set the scene change threshold (from 0 to 1) (default 0.08)

See FFix.Filter for pipelines, expressions, and output handling.

bbox(video_0, options \\ [])

@spec bbox(FFix.Graph.StreamRef.t(),
  enable: String.t() | atom() | number(),
  min_val: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Compute bounding box for each frame.

Options

  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • min_val (int): set minimum luminance value for bounding box (from 0 to 65535) (default 16)

See FFix.Filter for pipelines, expressions, and output handling.

bench(video_0, options \\ [])

@spec bench(FFix.Graph.StreamRef.t(),
  action: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Benchmark part of a filtergraph.

Options

  • action (int): set action (from 0 to 1) (default start)
    • start (0) — start timer
    • stop (1) — stop timer

See FFix.Filter for pipelines, expressions, and output handling.

bilateral(video_0, options \\ [])

@spec bilateral(FFix.Graph.StreamRef.t(),
  enable: String.t() | atom() | number(),
  planes: String.t() | atom() | number(),
  sigmaR: String.t() | atom() | number(),
  sigmaS: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Apply Bilateral filter.

Options

  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • planes (int): set planes to filter (from 0 to 15) (default 1)
  • sigmaR (float): set range sigma (from 0 to 1) (default 0.1)
  • sigmaS (float): set spatial sigma (from 0 to 512) (default 0.1)

See FFix.Filter for pipelines, expressions, and output handling.

bitplanenoise(video_0, options \\ [])

@spec bitplanenoise(FFix.Graph.StreamRef.t(),
  bitplane: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  filter: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Measure bit plane noise.

Options

  • bitplane (int): set bit plane to use for measuring noise (from 1 to 16) (default 1)
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • filter (boolean): show noisy pixels (default false)

See FFix.Filter for pipelines, expressions, and output handling.

blackdetect(video_0, options \\ [])

@spec blackdetect(FFix.Graph.StreamRef.t(),
  black_min_duration: String.t() | atom() | number(),
  d: String.t() | atom() | number(),
  pic_th: String.t() | atom() | number(),
  picture_black_ratio_th: String.t() | atom() | number(),
  pix_th: String.t() | atom() | number(),
  pixel_black_th: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Detect video intervals that are (almost) black.

Options

  • black_min_duration (double): set minimum detected black duration in seconds (from 0 to DBL_MAX) (default 2)
  • d (double): set minimum detected black duration in seconds (from 0 to DBL_MAX) (default 2)
  • pic_th (double): set the picture black ratio threshold (from 0 to 1) (default 0.98)
  • picture_black_ratio_th (double): set the picture black ratio threshold (from 0 to 1) (default 0.98)
  • pix_th (double): set the pixel black threshold (from 0 to 1) (default 0.1)
  • pixel_black_th (double): set the pixel black threshold (from 0 to 1) (default 0.1)

See FFix.Filter for pipelines, expressions, and output handling.

blackframe(video_0, options \\ [])

@spec blackframe(FFix.Graph.StreamRef.t(),
  amount: String.t() | atom() | number(),
  thresh: String.t() | atom() | number(),
  threshold: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Detect frames that are (almost) black.

Options

  • amount (int): percentage of the pixels that have to be below the threshold for the frame to be considered black (from 0 to 100) (default 98)
  • thresh (int): threshold below which a pixel value is considered black (from 0 to 255) (default 32)
  • threshold (int): threshold below which a pixel value is considered black (from 0 to 255) (default 32)

See FFix.Filter for pipelines, expressions, and output handling.

blend(video_0, video_1, options \\ [])

@spec blend(FFix.Graph.StreamRef.t(), FFix.Graph.StreamRef.t(),
  all_expr: String.t() | atom() | number(),
  all_mode: String.t() | atom() | number(),
  all_opacity: String.t() | atom() | number(),
  c0_expr: String.t() | atom() | number(),
  c0_mode: String.t() | atom() | number(),
  c0_opacity: String.t() | atom() | number(),
  c1_expr: String.t() | atom() | number(),
  c1_mode: String.t() | atom() | number(),
  c1_opacity: String.t() | atom() | number(),
  c2_expr: String.t() | atom() | number(),
  c2_mode: String.t() | atom() | number(),
  c2_opacity: String.t() | atom() | number(),
  c3_expr: String.t() | atom() | number(),
  c3_mode: String.t() | atom() | number(),
  c3_opacity: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  eof_action: String.t() | atom() | number(),
  repeatlast: String.t() | atom() | number(),
  shortest: String.t() | atom() | number(),
  ts_sync_mode: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Blend two video frames into each other.

Options

  • all_expr (string): set expression for all color components
  • all_mode (int): set blend mode for all components (from -1 to 39) (default -1)
    • addition (1)
    • addition128 (28)
    • grainmerge (28)
    • and (2)
    • average (3)
    • burn (4)
    • darken (5)
    • difference (6)
    • difference128 (7)
    • grainextract (7)
    • divide (8)
    • dodge (9)
    • exclusion (10)
    • extremity (32)
    • freeze (31)
    • glow (27)
    • hardlight (11)
    • hardmix (25)
    • heat (30)
    • lighten (12)
    • linearlight (26)
    • multiply (13)
    • multiply128 (29)
    • negation (14)
    • normal (0)
    • or (15)
    • overlay (16)
    • phoenix (17)
    • pinlight (18)
    • reflect (19)
    • screen (20)
    • softlight (21)
    • subtract (22)
    • vividlight (23)
    • xor (24)
    • softdifference (33)
    • geometric (34)
    • harmonic (35)
    • bleach (36)
    • stain (37)
    • interpolate (38)
    • hardoverlay (39)
  • all_opacity (double): set opacity for all color components (from 0 to 1) (default 1)
  • c0_expr (string): set color component #0 expression
  • c0_mode (int): set component #0 blend mode (from 0 to 39) (default normal)
    • addition (1)
    • addition128 (28)
    • grainmerge (28)
    • and (2)
    • average (3)
    • burn (4)
    • darken (5)
    • difference (6)
    • difference128 (7)
    • grainextract (7)
    • divide (8)
    • dodge (9)
    • exclusion (10)
    • extremity (32)
    • freeze (31)
    • glow (27)
    • hardlight (11)
    • hardmix (25)
    • heat (30)
    • lighten (12)
    • linearlight (26)
    • multiply (13)
    • multiply128 (29)
    • negation (14)
    • normal (0)
    • or (15)
    • overlay (16)
    • phoenix (17)
    • pinlight (18)
    • reflect (19)
    • screen (20)
    • softlight (21)
    • subtract (22)
    • vividlight (23)
    • xor (24)
    • softdifference (33)
    • geometric (34)
    • harmonic (35)
    • bleach (36)
    • stain (37)
    • interpolate (38)
    • hardoverlay (39)
  • c0_opacity (double): set color component #0 opacity (from 0 to 1) (default 1)
  • c1_expr (string): set color component #1 expression
  • c1_mode (int): set component #1 blend mode (from 0 to 39) (default normal)
    • addition (1)
    • addition128 (28)
    • grainmerge (28)
    • and (2)
    • average (3)
    • burn (4)
    • darken (5)
    • difference (6)
    • difference128 (7)
    • grainextract (7)
    • divide (8)
    • dodge (9)
    • exclusion (10)
    • extremity (32)
    • freeze (31)
    • glow (27)
    • hardlight (11)
    • hardmix (25)
    • heat (30)
    • lighten (12)
    • linearlight (26)
    • multiply (13)
    • multiply128 (29)
    • negation (14)
    • normal (0)
    • or (15)
    • overlay (16)
    • phoenix (17)
    • pinlight (18)
    • reflect (19)
    • screen (20)
    • softlight (21)
    • subtract (22)
    • vividlight (23)
    • xor (24)
    • softdifference (33)
    • geometric (34)
    • harmonic (35)
    • bleach (36)
    • stain (37)
    • interpolate (38)
    • hardoverlay (39)
  • c1_opacity (double): set color component #1 opacity (from 0 to 1) (default 1)
  • c2_expr (string): set color component #2 expression
  • c2_mode (int): set component #2 blend mode (from 0 to 39) (default normal)
    • addition (1)
    • addition128 (28)
    • grainmerge (28)
    • and (2)
    • average (3)
    • burn (4)
    • darken (5)
    • difference (6)
    • difference128 (7)
    • grainextract (7)
    • divide (8)
    • dodge (9)
    • exclusion (10)
    • extremity (32)
    • freeze (31)
    • glow (27)
    • hardlight (11)
    • hardmix (25)
    • heat (30)
    • lighten (12)
    • linearlight (26)
    • multiply (13)
    • multiply128 (29)
    • negation (14)
    • normal (0)
    • or (15)
    • overlay (16)
    • phoenix (17)
    • pinlight (18)
    • reflect (19)
    • screen (20)
    • softlight (21)
    • subtract (22)
    • vividlight (23)
    • xor (24)
    • softdifference (33)
    • geometric (34)
    • harmonic (35)
    • bleach (36)
    • stain (37)
    • interpolate (38)
    • hardoverlay (39)
  • c2_opacity (double): set color component #2 opacity (from 0 to 1) (default 1)
  • c3_expr (string): set color component #3 expression
  • c3_mode (int): set component #3 blend mode (from 0 to 39) (default normal)
    • addition (1)
    • addition128 (28)
    • grainmerge (28)
    • and (2)
    • average (3)
    • burn (4)
    • darken (5)
    • difference (6)
    • difference128 (7)
    • grainextract (7)
    • divide (8)
    • dodge (9)
    • exclusion (10)
    • extremity (32)
    • freeze (31)
    • glow (27)
    • hardlight (11)
    • hardmix (25)
    • heat (30)
    • lighten (12)
    • linearlight (26)
    • multiply (13)
    • multiply128 (29)
    • negation (14)
    • normal (0)
    • or (15)
    • overlay (16)
    • phoenix (17)
    • pinlight (18)
    • reflect (19)
    • screen (20)
    • softlight (21)
    • subtract (22)
    • vividlight (23)
    • xor (24)
    • softdifference (33)
    • geometric (34)
    • harmonic (35)
    • bleach (36)
    • stain (37)
    • interpolate (38)
    • hardoverlay (39)
  • c3_opacity (double): set color component #3 opacity (from 0 to 1) (default 1)
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • eof_action (int): Action to take when encountering EOF from secondary input (from 0 to 2) (default repeat)
    • repeat (0) — Repeat the previous frame.
    • endall (1) — End both streams.
    • pass (2) — Pass through the main input.
  • repeatlast (boolean): extend last frame of secondary streams beyond EOF (default true)
  • shortest (boolean): force termination when the shortest input terminates (default false)
  • ts_sync_mode (int): How strictly to sync streams based on secondary input timestamps (from 0 to 1) (default default)
    • default (0) — Frame from secondary input with the nearest lower or equal timestamp to the primary input frame
    • nearest (1) — Frame from secondary input with the absolute nearest timestamp to the primary input frame

See FFix.Filter for pipelines, expressions, and output handling.

blend_vulkan(video_0, video_1, options \\ [])

@spec blend_vulkan(FFix.Graph.StreamRef.t(), FFix.Graph.StreamRef.t(),
  all_mode: String.t() | atom() | number(),
  all_opacity: String.t() | atom() | number(),
  c0_mode: String.t() | atom() | number(),
  c0_opacity: String.t() | atom() | number(),
  c1_mode: String.t() | atom() | number(),
  c1_opacity: String.t() | atom() | number(),
  c2_mode: String.t() | atom() | number(),
  c2_opacity: String.t() | atom() | number(),
  c3_mode: String.t() | atom() | number(),
  c3_opacity: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Blend two video frames in Vulkan

Options

  • all_mode (int): set blend mode for all components (from -1 to 39) (default -1)
    • normal (0)
    • multiply (13)
  • all_opacity (double): set opacity for all color components (from 0 to 1) (default 1)
  • c0_mode (int): set component #0 blend mode (from 0 to 39) (default normal)
    • normal (0)
    • multiply (13)
  • c0_opacity (double): set color component #0 opacity (from 0 to 1) (default 1)
  • c1_mode (int): set component #1 blend mode (from 0 to 39) (default normal)
    • normal (0)
    • multiply (13)
  • c1_opacity (double): set color component #1 opacity (from 0 to 1) (default 1)
  • c2_mode (int): set component #2 blend mode (from 0 to 39) (default normal)
    • normal (0)
    • multiply (13)
  • c2_opacity (double): set color component #2 opacity (from 0 to 1) (default 1)
  • c3_mode (int): set component #3 blend mode (from 0 to 39) (default normal)
    • normal (0)
    • multiply (13)
  • c3_opacity (double): set color component #3 opacity (from 0 to 1) (default 1)

See FFix.Filter for pipelines, expressions, and output handling.

blockdetect(video_0, options \\ [])

@spec blockdetect(FFix.Graph.StreamRef.t(),
  period_max: String.t() | atom() | number(),
  period_min: String.t() | atom() | number(),
  planes: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Blockdetect filter.

Options

  • period_max (int): Maximum period to search for (from 2 to 64) (default 24)
  • period_min (int): Minimum period to search for (from 2 to 32) (default 3)
  • planes (int): set planes to filter (from 0 to 15) (default 1)

See FFix.Filter for pipelines, expressions, and output handling.

blurdetect(video_0, options \\ [])

@spec blurdetect(FFix.Graph.StreamRef.t(),
  block_height: String.t() | atom() | number(),
  block_pct: String.t() | atom() | number(),
  block_width: String.t() | atom() | number(),
  high: String.t() | atom() | number(),
  low: String.t() | atom() | number(),
  planes: String.t() | atom() | number(),
  radius: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Blurdetect filter.

Options

  • block_height (int): block size for block-based abbreviation of blurriness (from -1 to INT_MAX) (default -1)
  • block_pct (int): block pooling threshold when calculating blurriness (from 1 to 100) (default 80)
  • block_width (int): block size for block-based abbreviation of blurriness (from -1 to INT_MAX) (default -1)
  • high (float): set high threshold (from 0 to 1) (default 0.117647)
  • low (float): set low threshold (from 0 to 1) (default 0.0588235)
  • planes (int): set planes to filter (from 0 to 15) (default 1)
  • radius (int): search radius for maxima detection (from 1 to 100) (default 50)

See FFix.Filter for pipelines, expressions, and output handling.

bm3d(streams, options \\ [])

@spec bm3d([FFix.Graph.StreamRef.t()],
  block: String.t() | atom() | number(),
  bstep: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  estim: String.t() | atom() | number(),
  group: String.t() | atom() | number(),
  hdthr: String.t() | atom() | number(),
  mstep: String.t() | atom() | number(),
  planes: String.t() | atom() | number(),
  range: String.t() | atom() | number(),
  ref: String.t() | atom() | number(),
  sigma: String.t() | atom() | number(),
  thmse: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Block-Matching 3D denoiser.

Options

  • block (int): set size of local patch (from 8 to 64) (default 16)
  • bstep (int): set sliding step for processing blocks (from 1 to 64) (default 4)
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • estim (int): set filtering estimation mode (from 0 to 1) (default basic)
    • basic (0) — basic estimate
    • final (1) — final estimate
  • group (int): set maximal number of similar blocks (from 1 to 256) (default 1)
  • hdthr (float): set hard threshold for 3D transfer domain (from 0 to INT_MAX) (default 2.7)
  • mstep (int): set step for block matching (from 1 to 64) (default 1)
  • planes (int): set planes to filter (from 0 to 15) (default 7)
  • range (int): set block matching range (from 1 to INT_MAX) (default 9)
  • ref (boolean): have reference stream (default false)
  • sigma (float): set denoising strength (from 0 to 99999.9) (default 1)
  • thmse (float): set threshold of mean square error for block matching (from 0 to INT_MAX) (default 0)

See FFix.Filter for pipelines, expressions, and output handling.

boxblur(video_0, options \\ [])

@spec boxblur(FFix.Graph.StreamRef.t(),
  alpha_power: String.t() | atom() | number(),
  alpha_radius: String.t() | atom() | number(),
  ap: String.t() | atom() | number(),
  ar: String.t() | atom() | number(),
  chroma_power: String.t() | atom() | number(),
  chroma_radius: String.t() | atom() | number(),
  cp: String.t() | atom() | number(),
  cr: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  lp: String.t() | atom() | number(),
  lr: String.t() | atom() | number(),
  luma_power: String.t() | atom() | number(),
  luma_radius: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Blur the input.

Options

  • alpha_power (int): How many times should the boxblur be applied to alpha (from -1 to INT_MAX) (default -1)
  • alpha_radius (string): Radius of the alpha blurring box
  • ap (int): How many times should the boxblur be applied to alpha (from -1 to INT_MAX) (default -1)
  • ar (string): Radius of the alpha blurring box
  • chroma_power (int): How many times should the boxblur be applied to chroma (from -1 to INT_MAX) (default -1)
  • chroma_radius (string): Radius of the chroma blurring box
  • cp (int): How many times should the boxblur be applied to chroma (from -1 to INT_MAX) (default -1)
  • cr (string): Radius of the chroma blurring box
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • lp (int): How many times should the boxblur be applied to luma (from 0 to INT_MAX) (default 2)
  • lr (string): Radius of the luma blurring box (default "2")
  • luma_power (int): How many times should the boxblur be applied to luma (from 0 to INT_MAX) (default 2)
  • luma_radius (string): Radius of the luma blurring box (default "2")

See FFix.Filter for pipelines, expressions, and output handling.

boxblur_opencl(video_0, options \\ [])

@spec boxblur_opencl(FFix.Graph.StreamRef.t(),
  alpha_power: String.t() | atom() | number(),
  alpha_radius: String.t() | atom() | number(),
  ap: String.t() | atom() | number(),
  ar: String.t() | atom() | number(),
  chroma_power: String.t() | atom() | number(),
  chroma_radius: String.t() | atom() | number(),
  cp: String.t() | atom() | number(),
  cr: String.t() | atom() | number(),
  lp: String.t() | atom() | number(),
  lr: String.t() | atom() | number(),
  luma_power: String.t() | atom() | number(),
  luma_radius: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Apply boxblur filter to input video

Options

  • alpha_power (int): How many times should the boxblur be applied to alpha (from -1 to INT_MAX) (default -1)
  • alpha_radius (string): Radius of the alpha blurring box
  • ap (int): How many times should the boxblur be applied to alpha (from -1 to INT_MAX) (default -1)
  • ar (string): Radius of the alpha blurring box
  • chroma_power (int): How many times should the boxblur be applied to chroma (from -1 to INT_MAX) (default -1)
  • chroma_radius (string): Radius of the chroma blurring box
  • cp (int): How many times should the boxblur be applied to chroma (from -1 to INT_MAX) (default -1)
  • cr (string): Radius of the chroma blurring box
  • lp (int): How many times should the boxblur be applied to luma (from 0 to INT_MAX) (default 2)
  • lr (string): Radius of the luma blurring box (default "2")
  • luma_power (int): How many times should the boxblur be applied to luma (from 0 to INT_MAX) (default 2)
  • luma_radius (string): Radius of the luma blurring box (default "2")

See FFix.Filter for pipelines, expressions, and output handling.

bwdif(video_0, options \\ [])

@spec bwdif(FFix.Graph.StreamRef.t(),
  deint: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  mode: String.t() | atom() | number(),
  parity: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Deinterlace the input image.

Options

  • deint (int): specify which frames to deinterlace (from 0 to 1) (default all)
    • all (0) — deinterlace all frames
    • interlaced (1) — only deinterlace frames marked as interlaced
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • mode (int): specify the interlacing mode (from 0 to 1) (default send_field)
    • send_frame (0) — send one frame for each frame
    • send_field (1) — send one frame for each field
  • parity (int): specify the assumed picture field parity (from -1 to 1) (default auto)
    • tff (0) — assume top field first
    • bff (1) — assume bottom field first
    • auto (-1) — auto detect parity

See FFix.Filter for pipelines, expressions, and output handling.

bwdif_vulkan(video_0, options \\ [])

@spec bwdif_vulkan(FFix.Graph.StreamRef.t(),
  deint: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  mode: String.t() | atom() | number(),
  parity: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Deinterlace Vulkan frames via bwdif

Options

  • deint (int): specify which frames to deinterlace (from 0 to 1) (default all)
    • all (0) — deinterlace all frames
    • interlaced (1) — only deinterlace frames marked as interlaced
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • mode (int): specify the interlacing mode (from 0 to 3) (default send_frame)
    • send_frame (0) — send one frame for each frame
    • send_field (1) — send one frame for each field
    • send_frame_nospatial (2) — send one frame for each frame, but skip spatial interlacing check
    • send_field_nospatial (3) — send one frame for each field, but skip spatial interlacing check
  • parity (int): specify the assumed picture field parity (from -1 to 1) (default auto)
    • tff (0) — assume top field first
    • bff (1) — assume bottom field first
    • auto (-1) — auto detect parity

See FFix.Filter for pipelines, expressions, and output handling.

cas(video_0, options \\ [])

@spec cas(FFix.Graph.StreamRef.t(),
  enable: String.t() | atom() | number(),
  planes: (String.t() | atom() | number()) | [String.t() | atom() | number()],
  strength: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Contrast Adaptive Sharpen.

Options

  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • planes (flags): set what planes to filter (default 7)
  • strength (float): set the sharpening strength (from 0 to 1) (default 0)

See FFix.Filter for pipelines, expressions, and output handling.

ccrepack(video_0, options \\ [])

Repack CEA-708 closed caption metadata

Options

See FFix.Filter for pipelines, expressions, and output handling.

chromaber_vulkan(video_0, options \\ [])

@spec chromaber_vulkan(FFix.Graph.StreamRef.t(),
  dist_x: String.t() | atom() | number(),
  dist_y: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Offset chroma of input video (chromatic aberration)

Options

  • dist_x (float): Set horizontal distortion amount (from -10 to 10) (default 0)
  • dist_y (float): Set vertical distortion amount (from -10 to 10) (default 0)

See FFix.Filter for pipelines, expressions, and output handling.

chromahold(video_0, options \\ [])

@spec chromahold(FFix.Graph.StreamRef.t(),
  blend: String.t() | atom() | number(),
  color: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  similarity: String.t() | atom() | number(),
  yuv: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Turns a certain color range into gray.

Options

  • blend (float): set the chromahold blend value (from 0 to 1) (default 0)
  • color (color): set the chromahold key color (default "black")
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • similarity (float): set the chromahold similarity value (from 1e-05 to 1) (default 0.01)
  • yuv (boolean): color parameter is in yuv instead of rgb (default false)

See FFix.Filter for pipelines, expressions, and output handling.

chromakey(video_0, options \\ [])

@spec chromakey(FFix.Graph.StreamRef.t(),
  blend: String.t() | atom() | number(),
  color: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  similarity: String.t() | atom() | number(),
  yuv: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Turns a certain color into transparency. Operates on YUV colors.

Options

  • blend (float): set the chromakey key blend value (from 0 to 1) (default 0)
  • color (color): set the chromakey key color (default "black")
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • similarity (float): set the chromakey similarity value (from 1e-05 to 1) (default 0.01)
  • yuv (boolean): color parameter is in yuv instead of rgb (default false)

See FFix.Filter for pipelines, expressions, and output handling.

chromanr(video_0, options \\ [])

@spec chromanr(FFix.Graph.StreamRef.t(),
  distance: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  sizeh: String.t() | atom() | number(),
  sizew: String.t() | atom() | number(),
  steph: String.t() | atom() | number(),
  stepw: String.t() | atom() | number(),
  thres: String.t() | atom() | number(),
  threu: String.t() | atom() | number(),
  threv: String.t() | atom() | number(),
  threy: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Reduce chrominance noise.

Options

  • distance (int): set distance type (from 0 to 1) (default manhattan)
    • manhattan (0)
    • euclidean (1)
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • sizeh (int): set vertical patch size (from 1 to 100) (default 5)
  • sizew (int): set horizontal patch size (from 1 to 100) (default 5)
  • steph (int): set vertical step (from 1 to 50) (default 1)
  • stepw (int): set horizontal step (from 1 to 50) (default 1)
  • thres (float): set y+u+v threshold (from 1 to 200) (default 30)
  • threu (float): set u threshold (from 1 to 200) (default 200)
  • threv (float): set v threshold (from 1 to 200) (default 200)
  • threy (float): set y threshold (from 1 to 200) (default 200)

See FFix.Filter for pipelines, expressions, and output handling.

chromashift(video_0, options \\ [])

@spec chromashift(FFix.Graph.StreamRef.t(),
  cbh: String.t() | atom() | number(),
  cbv: String.t() | atom() | number(),
  crh: String.t() | atom() | number(),
  crv: String.t() | atom() | number(),
  edge: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Shift chroma.

Options

  • cbh (int): shift chroma-blue horizontally (from -255 to 255) (default 0)
  • cbv (int): shift chroma-blue vertically (from -255 to 255) (default 0)
  • crh (int): shift chroma-red horizontally (from -255 to 255) (default 0)
  • crv (int): shift chroma-red vertically (from -255 to 255) (default 0)
  • edge (int): set edge operation (from 0 to 1) (default smear)
    • smear (0)
    • wrap (1)
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero

See FFix.Filter for pipelines, expressions, and output handling.

ciescope(video_0, options \\ [])

@spec ciescope(FFix.Graph.StreamRef.t(),
  cie: String.t() | atom() | number(),
  contrast: String.t() | atom() | number(),
  corrgamma: String.t() | atom() | number(),
  fill: String.t() | atom() | number(),
  gamma: String.t() | atom() | number(),
  gamuts: (String.t() | atom() | number()) | [String.t() | atom() | number()],
  i: String.t() | atom() | number(),
  intensity: String.t() | atom() | number(),
  s: String.t() | atom() | number(),
  showwhite: String.t() | atom() | number(),
  size: String.t() | atom() | number(),
  system: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Video CIE scope.

Options

  • cie (int): set cie system (from 0 to 2) (default xyy)
    • xyy (0) — CIE 1931 xyY
    • ucs (1) — CIE 1960 UCS
    • luv (2) — CIE 1976 Luv
  • contrast (float): (from 0 to 1) (default 0.75)
  • corrgamma (boolean): (default true)
  • fill (boolean): fill with CIE colors (default true)
  • gamma (double): (from 0.1 to 6) (default 2.6)
  • gamuts (flags): set what gamuts to draw (default 0)
    • ntsc
    • 470m
    • ebu
    • 470bg
    • smpte
    • 240m
    • apple
    • widergb
    • cie1931
    • hdtv
    • rec709
    • uhdtv
    • rec2020
    • dcip3
  • i (float): set ciescope intensity (from 0 to 1) (default 0.001)
  • intensity (float): set ciescope intensity (from 0 to 1) (default 0.001)
  • s (int): set ciescope size (from 256 to 8192) (default 512)
  • showwhite (boolean): (default false)
  • size (int): set ciescope size (from 256 to 8192) (default 512)
  • system (int): set color system (from 0 to 9) (default hdtv)
    • ntsc (0) — NTSC 1953 Y'I'O' (ITU-R BT.470 System M)
    • 470m (0) — NTSC 1953 Y'I'O' (ITU-R BT.470 System M)
    • ebu (1) — EBU Y'U'V' (PAL/SECAM) (ITU-R BT.470 System B, G)
    • 470bg (1) — EBU Y'U'V' (PAL/SECAM) (ITU-R BT.470 System B, G)
    • smpte (2) — SMPTE-C RGB
    • 240m (3) — SMPTE-240M Y'PbPr
    • apple (4) — Apple RGB
    • widergb (5) — Adobe Wide Gamut RGB
    • cie1931 (6) — CIE 1931 RGB
    • hdtv (7) — ITU.BT-709 Y'CbCr
    • rec709 (7) — ITU.BT-709 Y'CbCr
    • uhdtv (8) — ITU-R.BT-2020
    • rec2020 (8) — ITU-R.BT-2020
    • dcip3 (9) — DCI-P3

See FFix.Filter for pipelines, expressions, and output handling.

codecview(video_0, options \\ [])

@spec codecview(FFix.Graph.StreamRef.t(),
  block: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  frame_type:
    (String.t() | atom() | number()) | [String.t() | atom() | number()],
  ft: (String.t() | atom() | number()) | [String.t() | atom() | number()],
  mv: (String.t() | atom() | number()) | [String.t() | atom() | number()],
  mv_type: (String.t() | atom() | number()) | [String.t() | atom() | number()],
  mvt: (String.t() | atom() | number()) | [String.t() | atom() | number()],
  qp: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Visualize information about some codecs.

Options

  • block (boolean): set block partitioning structure to visualize (default false)
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • frame_type (flags): set frame types to visualize motion vectors of (default 0)
    • if — I-frames
    • pf — P-frames
    • bf — B-frames
  • ft (flags): set frame types to visualize motion vectors of (default 0)
    • if — I-frames
    • pf — P-frames
    • bf — B-frames
  • mv (flags): set motion vectors to visualize (default 0)
    • pf — forward predicted MVs of P-frames
    • bf — forward predicted MVs of B-frames
    • bb — backward predicted MVs of B-frames
  • mv_type (flags): set motion vectors type (default 0)
    • fp — forward predicted MVs
    • bp — backward predicted MVs
  • mvt (flags): set motion vectors type (default 0)
    • fp — forward predicted MVs
    • bp — backward predicted MVs
  • qp (boolean): (default false)

See FFix.Filter for pipelines, expressions, and output handling.

colorbalance(video_0, options \\ [])

@spec colorbalance(FFix.Graph.StreamRef.t(),
  bh: String.t() | atom() | number(),
  bm: String.t() | atom() | number(),
  bs: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  gh: String.t() | atom() | number(),
  gm: String.t() | atom() | number(),
  gs: String.t() | atom() | number(),
  pl: String.t() | atom() | number(),
  rh: String.t() | atom() | number(),
  rm: String.t() | atom() | number(),
  rs: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Adjust the color balance.

Options

  • bh (float): set blue highlights (from -1 to 1) (default 0)
  • bm (float): set blue midtones (from -1 to 1) (default 0)
  • bs (float): set blue shadows (from -1 to 1) (default 0)
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • gh (float): set green highlights (from -1 to 1) (default 0)
  • gm (float): set green midtones (from -1 to 1) (default 0)
  • gs (float): set green shadows (from -1 to 1) (default 0)
  • pl (boolean): preserve lightness (default false)
  • rh (float): set red highlights (from -1 to 1) (default 0)
  • rm (float): set red midtones (from -1 to 1) (default 0)
  • rs (float): set red shadows (from -1 to 1) (default 0)

See FFix.Filter for pipelines, expressions, and output handling.

colorchannelmixer(video_0, options \\ [])

@spec colorchannelmixer(FFix.Graph.StreamRef.t(),
  aa: String.t() | atom() | number(),
  ab: String.t() | atom() | number(),
  ag: String.t() | atom() | number(),
  ar: String.t() | atom() | number(),
  ba: String.t() | atom() | number(),
  bb: String.t() | atom() | number(),
  bg: String.t() | atom() | number(),
  br: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  ga: String.t() | atom() | number(),
  gb: String.t() | atom() | number(),
  gg: String.t() | atom() | number(),
  gr: String.t() | atom() | number(),
  pa: String.t() | atom() | number(),
  pc: String.t() | atom() | number(),
  ra: String.t() | atom() | number(),
  rb: String.t() | atom() | number(),
  rg: String.t() | atom() | number(),
  rr: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Adjust colors by mixing color channels.

Options

  • aa (double): set the alpha gain for the alpha channel (from -2 to 2) (default 1)
  • ab (double): set the blue gain for the alpha channel (from -2 to 2) (default 0)
  • ag (double): set the green gain for the alpha channel (from -2 to 2) (default 0)
  • ar (double): set the red gain for the alpha channel (from -2 to 2) (default 0)
  • ba (double): set the alpha gain for the blue channel (from -2 to 2) (default 0)
  • bb (double): set the blue gain for the blue channel (from -2 to 2) (default 1)
  • bg (double): set the green gain for the blue channel (from -2 to 2) (default 0)
  • br (double): set the red gain for the blue channel (from -2 to 2) (default 0)
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • ga (double): set the alpha gain for the green channel (from -2 to 2) (default 0)
  • gb (double): set the blue gain for the green channel (from -2 to 2) (default 0)
  • gg (double): set the green gain for the green channel (from -2 to 2) (default 1)
  • gr (double): set the red gain for the green channel (from -2 to 2) (default 0)
  • pa (double): set the preserve color amount (from 0 to 1) (default 0)
  • pc (int): set the preserve color mode (from 0 to 6) (default none)
    • none (0) — disabled
    • lum (1) — luminance
    • max (2) — max
    • avg (3) — average
    • sum (4) — sum
    • nrm (5) — norm
    • pwr (6) — power
  • ra (double): set the alpha gain for the red channel (from -2 to 2) (default 0)
  • rb (double): set the blue gain for the red channel (from -2 to 2) (default 0)
  • rg (double): set the green gain for the red channel (from -2 to 2) (default 0)
  • rr (double): set the red gain for the red channel (from -2 to 2) (default 1)

See FFix.Filter for pipelines, expressions, and output handling.

colorcontrast(video_0, options \\ [])

@spec colorcontrast(FFix.Graph.StreamRef.t(),
  by: String.t() | atom() | number(),
  byw: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  gm: String.t() | atom() | number(),
  gmw: String.t() | atom() | number(),
  pl: String.t() | atom() | number(),
  rc: String.t() | atom() | number(),
  rcw: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Adjust color contrast between RGB components.

Options

  • by (float): set the blue-yellow contrast (from -1 to 1) (default 0)
  • byw (float): set the blue-yellow weight (from 0 to 1) (default 0)
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • gm (float): set the green-magenta contrast (from -1 to 1) (default 0)
  • gmw (float): set the green-magenta weight (from 0 to 1) (default 0)
  • pl (float): set the amount of preserving lightness (from 0 to 1) (default 0)
  • rc (float): set the red-cyan contrast (from -1 to 1) (default 0)
  • rcw (float): set the red-cyan weight (from 0 to 1) (default 0)

See FFix.Filter for pipelines, expressions, and output handling.

colorcorrect(video_0, options \\ [])

@spec colorcorrect(FFix.Graph.StreamRef.t(),
  analyze: String.t() | atom() | number(),
  bh: String.t() | atom() | number(),
  bl: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  rh: String.t() | atom() | number(),
  rl: String.t() | atom() | number(),
  saturation: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Adjust color white balance selectively for blacks and whites.

Options

  • analyze (int): set the analyze mode (from 0 to 3) (default manual)
    • manual (0) — manually set options
    • average (1) — use average pixels
    • minmax (2) — use minmax pixels
    • median (3) — use median pixels
  • bh (float): set the blue highlight spot (from -1 to 1) (default 0)
  • bl (float): set the blue shadow spot (from -1 to 1) (default 0)
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • rh (float): set the red highlight spot (from -1 to 1) (default 0)
  • rl (float): set the red shadow spot (from -1 to 1) (default 0)
  • saturation (float): set the amount of saturation (from -3 to 3) (default 1)

See FFix.Filter for pipelines, expressions, and output handling.

colorhold(video_0, options \\ [])

@spec colorhold(FFix.Graph.StreamRef.t(),
  blend: String.t() | atom() | number(),
  color: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  similarity: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Turns a certain color range into gray. Operates on RGB colors.

Options

  • blend (float): set the colorhold blend value (from 0 to 1) (default 0)
  • color (color): set the colorhold key color (default "black")
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • similarity (float): set the colorhold similarity value (from 1e-05 to 1) (default 0.01)

See FFix.Filter for pipelines, expressions, and output handling.

colorize(video_0, options \\ [])

@spec colorize(FFix.Graph.StreamRef.t(),
  enable: String.t() | atom() | number(),
  hue: String.t() | atom() | number(),
  lightness: String.t() | atom() | number(),
  mix: String.t() | atom() | number(),
  saturation: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Overlay a solid color on the video stream.

Options

  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • hue (float): set the hue (from 0 to 360) (default 0)
  • lightness (float): set the lightness (from 0 to 1) (default 0.5)
  • mix (float): set the mix of source lightness (from 0 to 1) (default 1)
  • saturation (float): set the saturation (from 0 to 1) (default 0.5)

See FFix.Filter for pipelines, expressions, and output handling.

colorkey(video_0, options \\ [])

@spec colorkey(FFix.Graph.StreamRef.t(),
  blend: String.t() | atom() | number(),
  color: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  similarity: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Turns a certain color into transparency. Operates on RGB colors.

Options

  • blend (float): set the colorkey key blend value (from 0 to 1) (default 0)
  • color (color): set the colorkey key color (default "black")
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • similarity (float): set the colorkey similarity value (from 1e-05 to 1) (default 0.01)

See FFix.Filter for pipelines, expressions, and output handling.

colorkey_opencl(video_0, options \\ [])

@spec colorkey_opencl(FFix.Graph.StreamRef.t(),
  blend: String.t() | atom() | number(),
  color: String.t() | atom() | number(),
  similarity: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Turns a certain color into transparency. Operates on RGB colors.

Options

  • blend (float): set the colorkey key blend value (from 0 to 1) (default 0)
  • color (color): set the colorkey key color (default "black")
  • similarity (float): set the colorkey similarity value (from 0.01 to 1) (default 0.01)

See FFix.Filter for pipelines, expressions, and output handling.

colorlevels(video_0, options \\ [])

@spec colorlevels(FFix.Graph.StreamRef.t(),
  aimax: String.t() | atom() | number(),
  aimin: String.t() | atom() | number(),
  aomax: String.t() | atom() | number(),
  aomin: String.t() | atom() | number(),
  bimax: String.t() | atom() | number(),
  bimin: String.t() | atom() | number(),
  bomax: String.t() | atom() | number(),
  bomin: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  gimax: String.t() | atom() | number(),
  gimin: String.t() | atom() | number(),
  gomax: String.t() | atom() | number(),
  gomin: String.t() | atom() | number(),
  preserve: String.t() | atom() | number(),
  rimax: String.t() | atom() | number(),
  rimin: String.t() | atom() | number(),
  romax: String.t() | atom() | number(),
  romin: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Adjust the color levels.

Options

  • aimax (double): set input alpha white point (from -1 to 1) (default 1)
  • aimin (double): set input alpha black point (from -1 to 1) (default 0)
  • aomax (double): set output alpha white point (from 0 to 1) (default 1)
  • aomin (double): set output alpha black point (from 0 to 1) (default 0)
  • bimax (double): set input blue white point (from -1 to 1) (default 1)
  • bimin (double): set input blue black point (from -1 to 1) (default 0)
  • bomax (double): set output blue white point (from 0 to 1) (default 1)
  • bomin (double): set output blue black point (from 0 to 1) (default 0)
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • gimax (double): set input green white point (from -1 to 1) (default 1)
  • gimin (double): set input green black point (from -1 to 1) (default 0)
  • gomax (double): set output green white point (from 0 to 1) (default 1)
  • gomin (double): set output green black point (from 0 to 1) (default 0)
  • preserve (int): set preserve color mode (from 0 to 6) (default none)
    • none (0) — disabled
    • lum (1) — luminance
    • max (2) — max
    • avg (3) — average
    • sum (4) — sum
    • nrm (5) — norm
    • pwr (6) — power
  • rimax (double): set input red white point (from -1 to 1) (default 1)
  • rimin (double): set input red black point (from -1 to 1) (default 0)
  • romax (double): set output red white point (from 0 to 1) (default 1)
  • romin (double): set output red black point (from 0 to 1) (default 0)

See FFix.Filter for pipelines, expressions, and output handling.

colormap(video_0, video_1, video_2, options \\ [])

@spec colormap(
  FFix.Graph.StreamRef.t(),
  FFix.Graph.StreamRef.t(),
  FFix.Graph.StreamRef.t(),
  enable: String.t() | atom() | number(),
  kernel: String.t() | atom() | number(),
  nb_patches: String.t() | atom() | number(),
  patch_size: String.t() | atom() | number(),
  type: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Apply custom Color Maps to video stream.

Options

  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • kernel (int): set the kernel used for measuring color difference (from 0 to 1) (default euclidean)
    • euclidean (0) — square root of sum of squared differences
    • weuclidean (1) — weighted square root of sum of squared differences
  • nb_patches (int): set number of patches (from 0 to 64) (default 0)
  • patch_size (image_size): set patch size (default "64x64")
  • type (int): set the target type used (from 0 to 1) (default absolute)
    • relative (0) — the target colors are relative
    • absolute (1) — the target colors are absolute

See FFix.Filter for pipelines, expressions, and output handling.

colormatrix(video_0, options \\ [])

@spec colormatrix(FFix.Graph.StreamRef.t(),
  dst: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  src: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Convert color matrix.

Options

  • dst (int): set destination color matrix (from -1 to 4) (default -1)
    • bt709 (0) — set BT.709 colorspace
    • fcc (1) — set FCC colorspace
    • bt601 (2) — set BT.601 colorspace
    • bt470 (2) — set BT.470 colorspace
    • bt470bg (2) — set BT.470 colorspace
    • smpte170m (2) — set SMTPE-170M colorspace
    • smpte240m (3) — set SMPTE-240M colorspace
    • bt2020 (4) — set BT.2020 colorspace
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • src (int): set source color matrix (from -1 to 4) (default -1)
    • bt709 (0) — set BT.709 colorspace
    • fcc (1) — set FCC colorspace
    • bt601 (2) — set BT.601 colorspace
    • bt470 (2) — set BT.470 colorspace
    • bt470bg (2) — set BT.470 colorspace
    • smpte170m (2) — set SMTPE-170M colorspace
    • smpte240m (3) — set SMPTE-240M colorspace
    • bt2020 (4) — set BT.2020 colorspace

See FFix.Filter for pipelines, expressions, and output handling.

colorspace(video_0, options \\ [])

@spec colorspace(FFix.Graph.StreamRef.t(),
  all: String.t() | atom() | number(),
  dither: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  fast: String.t() | atom() | number(),
  format: String.t() | atom() | number(),
  iall: String.t() | atom() | number(),
  iprimaries: String.t() | atom() | number(),
  irange: String.t() | atom() | number(),
  ispace: String.t() | atom() | number(),
  itrc: String.t() | atom() | number(),
  primaries: String.t() | atom() | number(),
  range: String.t() | atom() | number(),
  space: String.t() | atom() | number(),
  trc: String.t() | atom() | number(),
  wpadapt: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Convert between colorspaces.

Options

  • all (int): Set all color properties together (from 0 to 8) (default 0)
    • bt470m (1)
    • bt470bg (2)
    • bt601-6-525 (3)
    • bt601-6-625 (4)
    • bt709 (5)
    • smpte170m (6)
    • smpte240m (7)
    • bt2020 (8)
  • dither (int): Dithering mode (from 0 to 1) (default none)
    • none (0)
    • fsb (1)
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • fast (boolean): Ignore primary chromaticity and gamma correction (default false)
  • format (int): Output pixel format (from -1 to 161) (default -1)
    • yuv420p (0)
    • yuv420p10 (62)
    • yuv420p12 (123)
    • yuv422p (4)
    • yuv422p10 (64)
    • yuv422p12 (127)
    • yuv444p (5)
    • yuv444p10 (68)
    • yuv444p12 (131)
  • iall (int): Set all input color properties together (from 0 to 8) (default 0)
    • bt470m (1)
    • bt470bg (2)
    • bt601-6-525 (3)
    • bt601-6-625 (4)
    • bt709 (5)
    • smpte170m (6)
    • smpte240m (7)
    • bt2020 (8)
  • iprimaries (int): Input color primaries (from 0 to 22) (default 2)
    • bt709 (1)
    • bt470m (4)
    • bt470bg (5)
    • smpte170m (6)
    • smpte240m (7)
    • smpte428 (10)
    • film (8)
    • smpte431 (11)
    • smpte432 (12)
    • bt2020 (9)
    • jedec-p22 (22)
    • ebu3213 (22)
  • irange (int): Input color range (from 0 to 2) (default 0)
    • tv (1)
    • mpeg (1)
    • pc (2)
    • jpeg (2)
  • ispace (int): Input colorspace (from 0 to 22) (default 2)
    • bt709 (1)
    • fcc (4)
    • bt470bg (5)
    • smpte170m (6)
    • smpte240m (7)
    • ycgco (8)
    • gbr (0)
    • bt2020nc (9)
    • bt2020ncl (9)
  • itrc (int): Input transfer characteristics (from 0 to 18) (default 2)
    • bt709 (1)
    • bt470m (4)
    • gamma22 (4)
    • bt470bg (5)
    • gamma28 (5)
    • smpte170m (6)
    • smpte240m (7)
    • linear (8)
    • srgb (13)
    • iec61966-2-1 (13)
    • xvycc (11)
    • iec61966-2-4 (11)
    • bt2020-10 (14)
    • bt2020-12 (15)
  • primaries (int): Output color primaries (from 0 to 22) (default 2)
    • bt709 (1)
    • bt470m (4)
    • bt470bg (5)
    • smpte170m (6)
    • smpte240m (7)
    • smpte428 (10)
    • film (8)
    • smpte431 (11)
    • smpte432 (12)
    • bt2020 (9)
    • jedec-p22 (22)
    • ebu3213 (22)
  • range (int): Output color range (from 0 to 2) (default 0)
    • tv (1)
    • mpeg (1)
    • pc (2)
    • jpeg (2)
  • space (int): Output colorspace (from 0 to 17) (default 2)
    • bt709 (1)
    • fcc (4)
    • bt470bg (5)
    • smpte170m (6)
    • smpte240m (7)
    • ycgco (8)
    • gbr (0)
    • bt2020nc (9)
    • bt2020ncl (9)
  • trc (int): Output transfer characteristics (from 0 to 18) (default 2)
    • bt709 (1)
    • bt470m (4)
    • gamma22 (4)
    • bt470bg (5)
    • gamma28 (5)
    • smpte170m (6)
    • smpte240m (7)
    • linear (8)
    • srgb (13)
    • iec61966-2-1 (13)
    • xvycc (11)
    • iec61966-2-4 (11)
    • bt2020-10 (14)
    • bt2020-12 (15)
  • wpadapt (int): Whitepoint adaptation method (from 0 to 2) (default bradford)
    • bradford (0)
    • vonkries (1)
    • identity (2)

See FFix.Filter for pipelines, expressions, and output handling.

colortemperature(video_0, options \\ [])

@spec colortemperature(FFix.Graph.StreamRef.t(),
  enable: String.t() | atom() | number(),
  mix: String.t() | atom() | number(),
  pl: String.t() | atom() | number(),
  temperature: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Adjust color temperature of video.

Options

  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • mix (float): set the mix with filtered output (from 0 to 1) (default 1)
  • pl (float): set the amount of preserving lightness (from 0 to 1) (default 0)
  • temperature (float): set the temperature in Kelvin (from 1000 to 40000) (default 6500)

See FFix.Filter for pipelines, expressions, and output handling.

convolution(video_0, options \\ [])

@spec convolution(FFix.Graph.StreamRef.t(),
  "0bias": String.t() | atom() | number(),
  "0m": String.t() | atom() | number(),
  "0mode": String.t() | atom() | number(),
  "0rdiv": String.t() | atom() | number(),
  "1bias": String.t() | atom() | number(),
  "1m": String.t() | atom() | number(),
  "1mode": String.t() | atom() | number(),
  "1rdiv": String.t() | atom() | number(),
  "2bias": String.t() | atom() | number(),
  "2m": String.t() | atom() | number(),
  "2mode": String.t() | atom() | number(),
  "2rdiv": String.t() | atom() | number(),
  "3bias": String.t() | atom() | number(),
  "3m": String.t() | atom() | number(),
  "3mode": String.t() | atom() | number(),
  "3rdiv": String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Apply convolution filter.

Options

  • 0bias (float): set bias for 1st plane (from 0 to INT_MAX) (default 0)
  • 0m (string): set matrix for 1st plane (default "0 0 0 0 1 0 0 0 0")
  • 0mode (int): set matrix mode for 1st plane (from 0 to 2) (default square)
    • square (0) — square matrix
    • row (1) — single row matrix
    • column (2) — single column matrix
  • 0rdiv (float): set rdiv for 1st plane (from 0 to INT_MAX) (default 0)
  • 1bias (float): set bias for 2nd plane (from 0 to INT_MAX) (default 0)
  • 1m (string): set matrix for 2nd plane (default "0 0 0 0 1 0 0 0 0")
  • 1mode (int): set matrix mode for 2nd plane (from 0 to 2) (default square)
    • square (0) — square matrix
    • row (1) — single row matrix
    • column (2) — single column matrix
  • 1rdiv (float): set rdiv for 2nd plane (from 0 to INT_MAX) (default 0)
  • 2bias (float): set bias for 3rd plane (from 0 to INT_MAX) (default 0)
  • 2m (string): set matrix for 3rd plane (default "0 0 0 0 1 0 0 0 0")
  • 2mode (int): set matrix mode for 3rd plane (from 0 to 2) (default square)
    • square (0) — square matrix
    • row (1) — single row matrix
    • column (2) — single column matrix
  • 2rdiv (float): set rdiv for 3rd plane (from 0 to INT_MAX) (default 0)
  • 3bias (float): set bias for 4th plane (from 0 to INT_MAX) (default 0)
  • 3m (string): set matrix for 4th plane (default "0 0 0 0 1 0 0 0 0")
  • 3mode (int): set matrix mode for 4th plane (from 0 to 2) (default square)
    • square (0) — square matrix
    • row (1) — single row matrix
    • column (2) — single column matrix
  • 3rdiv (float): set rdiv for 4th plane (from 0 to INT_MAX) (default 0)
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero

See FFix.Filter for pipelines, expressions, and output handling.

convolution_opencl(video_0, options \\ [])

@spec convolution_opencl(FFix.Graph.StreamRef.t(),
  "0bias": String.t() | atom() | number(),
  "0m": String.t() | atom() | number(),
  "0rdiv": String.t() | atom() | number(),
  "1bias": String.t() | atom() | number(),
  "1m": String.t() | atom() | number(),
  "1rdiv": String.t() | atom() | number(),
  "2bias": String.t() | atom() | number(),
  "2m": String.t() | atom() | number(),
  "2rdiv": String.t() | atom() | number(),
  "3bias": String.t() | atom() | number(),
  "3m": String.t() | atom() | number(),
  "3rdiv": String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Apply convolution mask to input video

Options

  • 0bias (float): set bias for 1st plane (from 0 to INT_MAX) (default 0)
  • 0m (string): set matrix for 2nd plane (default "0 0 0 0 1 0 0 0 0")
  • 0rdiv (float): set rdiv for 1nd plane (from 0 to INT_MAX) (default 1)
  • 1bias (float): set bias for 2nd plane (from 0 to INT_MAX) (default 0)
  • 1m (string): set matrix for 2nd plane (default "0 0 0 0 1 0 0 0 0")
  • 1rdiv (float): set rdiv for 2nd plane (from 0 to INT_MAX) (default 1)
  • 2bias (float): set bias for 3rd plane (from 0 to INT_MAX) (default 0)
  • 2m (string): set matrix for 3rd plane (default "0 0 0 0 1 0 0 0 0")
  • 2rdiv (float): set rdiv for 3rd plane (from 0 to INT_MAX) (default 1)
  • 3bias (float): set bias for 4th plane (from 0 to INT_MAX) (default 0)
  • 3m (string): set matrix for 4th plane (default "0 0 0 0 1 0 0 0 0")
  • 3rdiv (float): set rdiv for 4th plane (from 0 to INT_MAX) (default 1)

See FFix.Filter for pipelines, expressions, and output handling.

convolve(video_0, video_1, options \\ [])

@spec convolve(FFix.Graph.StreamRef.t(), FFix.Graph.StreamRef.t(),
  enable: String.t() | atom() | number(),
  eof_action: String.t() | atom() | number(),
  impulse: String.t() | atom() | number(),
  noise: String.t() | atom() | number(),
  planes: String.t() | atom() | number(),
  repeatlast: String.t() | atom() | number(),
  shortest: String.t() | atom() | number(),
  ts_sync_mode: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Convolve first video stream with second video stream.

Options

  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • eof_action (int): Action to take when encountering EOF from secondary input (from 0 to 2) (default repeat)
    • repeat (0) — Repeat the previous frame.
    • endall (1) — End both streams.
    • pass (2) — Pass through the main input.
  • impulse (int): when to process impulses (from 0 to 1) (default all)
    • first (0) — process only first impulse, ignore rest
    • all (1) — process all impulses
  • noise (float): set noise (from 0 to 1) (default 1e-07)
  • planes (int): set planes to convolve (from 0 to 15) (default 7)
  • repeatlast (boolean): extend last frame of secondary streams beyond EOF (default true)
  • shortest (boolean): force termination when the shortest input terminates (default false)
  • ts_sync_mode (int): How strictly to sync streams based on secondary input timestamps (from 0 to 1) (default default)
    • default (0) — Frame from secondary input with the nearest lower or equal timestamp to the primary input frame
    • nearest (1) — Frame from secondary input with the absolute nearest timestamp to the primary input frame

See FFix.Filter for pipelines, expressions, and output handling.

copy(video_0, options \\ [])

Copy the input video unchanged to the output.

Options

See FFix.Filter for pipelines, expressions, and output handling.

corr(video_0, video_1, options \\ [])

@spec corr(FFix.Graph.StreamRef.t(), FFix.Graph.StreamRef.t(),
  enable: String.t() | atom() | number(),
  eof_action: String.t() | atom() | number(),
  repeatlast: String.t() | atom() | number(),
  shortest: String.t() | atom() | number(),
  ts_sync_mode: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Calculate the correlation between two video streams.

Options

  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • eof_action (int): Action to take when encountering EOF from secondary input (from 0 to 2) (default repeat)
    • repeat (0) — Repeat the previous frame.
    • endall (1) — End both streams.
    • pass (2) — Pass through the main input.
  • repeatlast (boolean): extend last frame of secondary streams beyond EOF (default true)
  • shortest (boolean): force termination when the shortest input terminates (default false)
  • ts_sync_mode (int): How strictly to sync streams based on secondary input timestamps (from 0 to 1) (default default)
    • default (0) — Frame from secondary input with the nearest lower or equal timestamp to the primary input frame
    • nearest (1) — Frame from secondary input with the absolute nearest timestamp to the primary input frame

See FFix.Filter for pipelines, expressions, and output handling.

cover_rect(video_0, options \\ [])

@spec cover_rect(FFix.Graph.StreamRef.t(),
  cover: String.t() | atom() | number(),
  mode: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Find and cover a user specified object.

Options

  • cover (string): cover bitmap filename
  • mode (int): set removal mode (from 0 to 1) (default blur)
    • cover (0) — cover area with bitmap
    • blur (1) — blur area

See FFix.Filter for pipelines, expressions, and output handling.

crop(video_0, options \\ [])

@spec crop(FFix.Graph.StreamRef.t(),
  exact: String.t() | atom() | number(),
  h: String.t() | atom() | number(),
  keep_aspect: String.t() | atom() | number(),
  out_h: String.t() | atom() | number(),
  out_w: String.t() | atom() | number(),
  w: String.t() | atom() | number(),
  x: String.t() | atom() | number(),
  y: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Crop the input video.

Example

FFix.Filter.crop(video, w: 720, h: 720)

Options

  • exact (boolean): do exact cropping (default false)
  • h (string): set the height crop area expression (default "ih")
  • keep_aspect (boolean): keep aspect ratio (default false)
  • out_h (string): set the height crop area expression (default "ih")
  • out_w (string): set the width crop area expression (default "iw")
  • w (string): set the width crop area expression (default "iw")
  • x (string): set the x crop area expression (default "(in_w-out_w)/2")
  • y (string): set the y crop area expression (default "(in_h-out_h)/2")

See FFix.Filter for pipelines, expressions, and output handling.

cropdetect(video_0, options \\ [])

@spec cropdetect(FFix.Graph.StreamRef.t(),
  enable: String.t() | atom() | number(),
  high: String.t() | atom() | number(),
  limit: String.t() | atom() | number(),
  low: String.t() | atom() | number(),
  max_outliers: String.t() | atom() | number(),
  mode: String.t() | atom() | number(),
  mv_threshold: String.t() | atom() | number(),
  reset: String.t() | atom() | number(),
  reset_count: String.t() | atom() | number(),
  round: String.t() | atom() | number(),
  skip: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Auto-detect crop size.

Options

  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • high (float): Set high threshold for edge detection (from 0 to 1) (default 0.0980392)
  • limit (float): Threshold below which the pixel is considered black (from 0 to 65535) (default 0.0941176)
  • low (float): Set low threshold for edge detection (from 0 to 1) (default 0.0588235)
  • max_outliers (int): Threshold count of outliers (from 0 to INT_MAX) (default 0)
  • mode (int): set mode (from 0 to 1) (default black)
    • black (0) — detect black pixels surrounding the video
    • mvedges (1) — detect motion and edged surrounding the video
  • mv_threshold (int): motion vector threshold when estimating video window size (from 0 to 100) (default 8)
  • reset (int): Recalculate the crop area after this many frames (from 0 to INT_MAX) (default 0)
  • reset_count (int): Recalculate the crop area after this many frames (from 0 to INT_MAX) (default 0)
  • round (int): Value by which the width/height should be divisible (from 0 to INT_MAX) (default 16)
  • skip (int): Number of initial frames to skip (from 0 to INT_MAX) (default 2)

See FFix.Filter for pipelines, expressions, and output handling.

cue(video_0, options \\ [])

@spec cue(FFix.Graph.StreamRef.t(),
  buffer: String.t() | atom() | number(),
  cue: String.t() | atom() | number(),
  preroll: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Delay filtering to match a cue.

Options

  • buffer (duration): buffer duration in seconds (default 0)
  • cue (int64): cue unix timestamp in microseconds (from 0 to I64_MAX) (default 0)
  • preroll (duration): preroll duration in seconds (default 0)

See FFix.Filter for pipelines, expressions, and output handling.

curves(video_0, options \\ [])

@spec curves(FFix.Graph.StreamRef.t(),
  all: String.t() | atom() | number(),
  b: String.t() | atom() | number(),
  blue: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  g: String.t() | atom() | number(),
  green: String.t() | atom() | number(),
  interp: String.t() | atom() | number(),
  m: String.t() | atom() | number(),
  master: String.t() | atom() | number(),
  plot: String.t() | atom() | number(),
  preset: String.t() | atom() | number(),
  psfile: String.t() | atom() | number(),
  r: String.t() | atom() | number(),
  red: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Adjust components curves.

Options

  • all (string): set points coordinates for all components
  • b (string): set blue points coordinates
  • blue (string): set blue points coordinates
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • g (string): set green points coordinates
  • green (string): set green points coordinates
  • interp (int): specify the kind of interpolation (from 0 to 1) (default natural)
    • natural (0) — natural cubic spline
    • pchip (1) — monotonically cubic interpolation
  • m (string): set master points coordinates
  • master (string): set master points coordinates
  • plot (string): save Gnuplot script of the curves in specified file
  • preset (int): select a color curves preset (from 0 to 10) (default none)
    • none (0)
    • color_negative (1)
    • cross_process (2)
    • darker (3)
    • increase_contrast (4)
    • lighter (5)
    • linear_contrast (6)
    • medium_contrast (7)
    • negative (8)
    • strong_contrast (9)
    • vintage (10)
  • psfile (string): set Photoshop curves file name
  • r (string): set red points coordinates
  • red (string): set red points coordinates

See FFix.Filter for pipelines, expressions, and output handling.

datascope(video_0, options \\ [])

@spec datascope(FFix.Graph.StreamRef.t(),
  axis: String.t() | atom() | number(),
  components: String.t() | atom() | number(),
  format: String.t() | atom() | number(),
  mode: String.t() | atom() | number(),
  opacity: String.t() | atom() | number(),
  s: String.t() | atom() | number(),
  size: String.t() | atom() | number(),
  x: String.t() | atom() | number(),
  y: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Video data analysis.

Options

  • axis (boolean): draw column/row numbers (default false)
  • components (int): set components to display (from 1 to 15) (default 15)
  • format (int): set display number format (from 0 to 1) (default hex)
    • hex (0)
    • dec (1)
  • mode (int): set scope mode (from 0 to 2) (default mono)
    • mono (0)
    • color (1)
    • color2 (2)
  • opacity (float): set background opacity (from 0 to 1) (default 0.75)
  • s (image_size): set output size (default "hd720")
  • size (image_size): set output size (default "hd720")
  • x (int): set x offset (from 0 to INT_MAX) (default 0)
  • y (int): set y offset (from 0 to INT_MAX) (default 0)

See FFix.Filter for pipelines, expressions, and output handling.

dblur(video_0, options \\ [])

@spec dblur(FFix.Graph.StreamRef.t(),
  angle: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  planes: String.t() | atom() | number(),
  radius: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Apply Directional Blur filter.

Options

  • angle (float): set angle (from 0 to 360) (default 45)
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • planes (int): set planes to filter (from 0 to 15) (default 15)
  • radius (float): set radius (from 0 to 8192) (default 5)

See FFix.Filter for pipelines, expressions, and output handling.

dctdnoiz(video_0, options \\ [])

@spec dctdnoiz(FFix.Graph.StreamRef.t(),
  e: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  expr: String.t() | atom() | number(),
  n: String.t() | atom() | number(),
  overlap: String.t() | atom() | number(),
  s: String.t() | atom() | number(),
  sigma: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Denoise frames using 2D DCT.

Options

  • e (string): set coefficient factor expression
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • expr (string): set coefficient factor expression
  • n (int): set the block size, expressed in bits (from 3 to 4) (default 3)
  • overlap (int): set number of block overlapping pixels (from -1 to 15) (default -1)
  • s (float): set noise sigma constant (from 0 to 999) (default 0)
  • sigma (float): set noise sigma constant (from 0 to 999) (default 0)

See FFix.Filter for pipelines, expressions, and output handling.

deband(video_0, options \\ [])

@spec deband(FFix.Graph.StreamRef.t(),
  "1thr": String.t() | atom() | number(),
  "2thr": String.t() | atom() | number(),
  "3thr": String.t() | atom() | number(),
  "4thr": String.t() | atom() | number(),
  b: String.t() | atom() | number(),
  blur: String.t() | atom() | number(),
  c: String.t() | atom() | number(),
  coupling: String.t() | atom() | number(),
  d: String.t() | atom() | number(),
  direction: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  r: String.t() | atom() | number(),
  range: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Debands video.

Options

  • 1thr (float): set 1st plane threshold (from 3e-05 to 0.5) (default 0.02)
  • 2thr (float): set 2nd plane threshold (from 3e-05 to 0.5) (default 0.02)
  • 3thr (float): set 3rd plane threshold (from 3e-05 to 0.5) (default 0.02)
  • 4thr (float): set 4th plane threshold (from 3e-05 to 0.5) (default 0.02)
  • b (boolean): set blur (default true)
  • blur (boolean): set blur (default true)
  • c (boolean): set plane coupling (default false)
  • coupling (boolean): set plane coupling (default false)
  • d (float): set direction (from -6.28319 to 6.28319) (default 6.28319)
  • direction (float): set direction (from -6.28319 to 6.28319) (default 6.28319)
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • r (int): set range (from INT_MIN to INT_MAX) (default 16)
  • range (int): set range (from INT_MIN to INT_MAX) (default 16)

See FFix.Filter for pipelines, expressions, and output handling.

deblock(video_0, options \\ [])

@spec deblock(FFix.Graph.StreamRef.t(),
  alpha: String.t() | atom() | number(),
  beta: String.t() | atom() | number(),
  block: String.t() | atom() | number(),
  delta: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  filter: String.t() | atom() | number(),
  gamma: String.t() | atom() | number(),
  planes: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Deblock video.

Options

  • alpha (float): set 1st detection threshold (from 0 to 1) (default 0.098)
  • beta (float): set 2nd detection threshold (from 0 to 1) (default 0.05)
  • block (int): set size of block (from 4 to 512) (default 8)
  • delta (float): set 4th detection threshold (from 0 to 1) (default 0.05)
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • filter (int): set type of filter (from 0 to 1) (default strong)
    • weak (0)
    • strong (1)
  • gamma (float): set 3rd detection threshold (from 0 to 1) (default 0.05)
  • planes (int): set planes to filter (from 0 to 15) (default 15)

See FFix.Filter for pipelines, expressions, and output handling.

decimate(streams, options \\ [])

@spec decimate([FFix.Graph.StreamRef.t()],
  blockx: String.t() | atom() | number(),
  blocky: String.t() | atom() | number(),
  chroma: String.t() | atom() | number(),
  cycle: String.t() | atom() | number(),
  dupthresh: String.t() | atom() | number(),
  mixed: String.t() | atom() | number(),
  ppsrc: String.t() | atom() | number(),
  scthresh: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Decimate frames (post field matching filter).

Options

  • blockx (int): set the size of the x-axis blocks used during metric calculations (from 4 to 512) (default 32)
  • blocky (int): set the size of the y-axis blocks used during metric calculations (from 4 to 512) (default 32)
  • chroma (boolean): set whether or not chroma is considered in the metric calculations (default true)
  • cycle (int): set the number of frame from which one will be dropped (from 2 to 25) (default 5)
  • dupthresh (double): set duplicate threshold (from 0 to 100) (default 1.1)
  • mixed (boolean): set whether or not the input only partially contains content to be decimated (default false)
  • ppsrc (boolean): mark main input as a pre-processed input and activate clean source input stream (default false)
  • scthresh (double): set scene change threshold (from 0 to 100) (default 15)

See FFix.Filter for pipelines, expressions, and output handling.

deconvolve(video_0, video_1, options \\ [])

@spec deconvolve(FFix.Graph.StreamRef.t(), FFix.Graph.StreamRef.t(),
  enable: String.t() | atom() | number(),
  eof_action: String.t() | atom() | number(),
  impulse: String.t() | atom() | number(),
  noise: String.t() | atom() | number(),
  planes: String.t() | atom() | number(),
  repeatlast: String.t() | atom() | number(),
  shortest: String.t() | atom() | number(),
  ts_sync_mode: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Deconvolve first video stream with second video stream.

Options

  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • eof_action (int): Action to take when encountering EOF from secondary input (from 0 to 2) (default repeat)
    • repeat (0) — Repeat the previous frame.
    • endall (1) — End both streams.
    • pass (2) — Pass through the main input.
  • impulse (int): when to process impulses (from 0 to 1) (default all)
    • first (0) — process only first impulse, ignore rest
    • all (1) — process all impulses
  • noise (float): set noise (from 0 to 1) (default 1e-07)
  • planes (int): set planes to deconvolve (from 0 to 15) (default 7)
  • repeatlast (boolean): extend last frame of secondary streams beyond EOF (default true)
  • shortest (boolean): force termination when the shortest input terminates (default false)
  • ts_sync_mode (int): How strictly to sync streams based on secondary input timestamps (from 0 to 1) (default default)
    • default (0) — Frame from secondary input with the nearest lower or equal timestamp to the primary input frame
    • nearest (1) — Frame from secondary input with the absolute nearest timestamp to the primary input frame

See FFix.Filter for pipelines, expressions, and output handling.

dedot(video_0, options \\ [])

@spec dedot(FFix.Graph.StreamRef.t(),
  ct: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  lt: String.t() | atom() | number(),
  m: (String.t() | atom() | number()) | [String.t() | atom() | number()],
  tc: String.t() | atom() | number(),
  tl: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Reduce cross-luminance and cross-color.

Options

  • ct (float): set temporal chroma threshold (from 0 to 1) (default 0.019)
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • lt (float): set spatial luma threshold (from 0 to 1) (default 0.079)
  • m (flags): set filtering mode (default dotcrawl+rainbows)
    • dotcrawl
    • rainbows
  • tc (float): set tolerance for chroma temporal variation (from 0 to 1) (default 0.058)
  • tl (float): set tolerance for temporal luma (from 0 to 1) (default 0.079)

See FFix.Filter for pipelines, expressions, and output handling.

deflate(video_0, options \\ [])

@spec deflate(FFix.Graph.StreamRef.t(),
  enable: String.t() | atom() | number(),
  threshold0: String.t() | atom() | number(),
  threshold1: String.t() | atom() | number(),
  threshold2: String.t() | atom() | number(),
  threshold3: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Apply deflate effect.

Options

  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • threshold0 (int): set threshold for 1st plane (from 0 to 65535) (default 65535)
  • threshold1 (int): set threshold for 2nd plane (from 0 to 65535) (default 65535)
  • threshold2 (int): set threshold for 3rd plane (from 0 to 65535) (default 65535)
  • threshold3 (int): set threshold for 4th plane (from 0 to 65535) (default 65535)

See FFix.Filter for pipelines, expressions, and output handling.

deflicker(video_0, options \\ [])

@spec deflicker(FFix.Graph.StreamRef.t(),
  bypass: String.t() | atom() | number(),
  m: String.t() | atom() | number(),
  mode: String.t() | atom() | number(),
  s: String.t() | atom() | number(),
  size: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Remove temporal frame luminance variations.

Options

  • bypass (boolean): leave frames unchanged (default false)
  • m (int): set how to smooth luminance (from 0 to 6) (default am)
    • am (0) — arithmetic mean
    • gm (1) — geometric mean
    • hm (2) — harmonic mean
    • qm (3) — quadratic mean
    • cm (4) — cubic mean
    • pm (5) — power mean
    • median (6) — median
  • mode (int): set how to smooth luminance (from 0 to 6) (default am)
    • am (0) — arithmetic mean
    • gm (1) — geometric mean
    • hm (2) — harmonic mean
    • qm (3) — quadratic mean
    • cm (4) — cubic mean
    • pm (5) — power mean
    • median (6) — median
  • s (int): set how many frames to use (from 2 to 129) (default 5)
  • size (int): set how many frames to use (from 2 to 129) (default 5)

See FFix.Filter for pipelines, expressions, and output handling.

deinterlace_qsv(video_0, options \\ [])

@spec deinterlace_qsv(FFix.Graph.StreamRef.t(),
  mode: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Quick Sync Video "deinterlacing"

Options

  • mode (int): set deinterlace mode (from 1 to 2) (default advanced)
    • bob (1) — bob algorithm
    • advanced (2) — Motion adaptive algorithm

See FFix.Filter for pipelines, expressions, and output handling.

deinterlace_vaapi(video_0, options \\ [])

@spec deinterlace_vaapi(FFix.Graph.StreamRef.t(),
  auto: String.t() | atom() | number(),
  mode: String.t() | atom() | number(),
  rate: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Deinterlacing of VAAPI surfaces

Options

  • auto (int): Only deinterlace fields, passing frames through unchanged (from 0 to 1) (default 0)
  • mode (int): Deinterlacing mode (from 0 to 4) (default default)
    • default (0) — Use the highest-numbered (and therefore possibly most advanced) deinterlacing algorithm
    • bob (1) — Use the bob deinterlacing algorithm
    • weave (2) — Use the weave deinterlacing algorithm
    • motion_adaptive (3) — Use the motion adaptive deinterlacing algorithm
    • motion_compensated (4) — Use the motion compensated deinterlacing algorithm
  • rate (int): Generate output at frame rate or field rate (from 1 to 2) (default frame)
    • frame (1) — Output at frame rate (one frame of output for each field-pair)
    • field (2) — Output at field rate (one frame of output for each field)

See FFix.Filter for pipelines, expressions, and output handling.

dejudder(video_0, options \\ [])

@spec dejudder(FFix.Graph.StreamRef.t(),
  cycle: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Remove judder produced by pullup.

Options

  • cycle (int): set the length of the cycle to use for dejuddering (from 2 to 240) (default 4)

See FFix.Filter for pipelines, expressions, and output handling.

delogo(video_0, options \\ [])

@spec delogo(FFix.Graph.StreamRef.t(),
  enable: String.t() | atom() | number(),
  h: String.t() | atom() | number(),
  show: String.t() | atom() | number(),
  w: String.t() | atom() | number(),
  x: String.t() | atom() | number(),
  y: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Remove logo from input video.

Options

  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • h (string): set logo height (default "-1")
  • show (boolean): show delogo area (default false)
  • w (string): set logo width (default "-1")
  • x (string): set logo x position (default "-1")
  • y (string): set logo y position (default "-1")

See FFix.Filter for pipelines, expressions, and output handling.

denoise_vaapi(video_0, options \\ [])

@spec denoise_vaapi(FFix.Graph.StreamRef.t(),
  denoise: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

VAAPI VPP for de-noise

Options

  • denoise (int): denoise level (from 0 to 64) (default 0)

See FFix.Filter for pipelines, expressions, and output handling.

deshake(video_0, options \\ [])

@spec deshake(FFix.Graph.StreamRef.t(),
  blocksize: String.t() | atom() | number(),
  contrast: String.t() | atom() | number(),
  edge: String.t() | atom() | number(),
  filename: String.t() | atom() | number(),
  h: String.t() | atom() | number(),
  opencl: String.t() | atom() | number(),
  rx: String.t() | atom() | number(),
  ry: String.t() | atom() | number(),
  search: String.t() | atom() | number(),
  w: String.t() | atom() | number(),
  x: String.t() | atom() | number(),
  y: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Stabilize shaky video.

Options

  • blocksize (int): set motion search blocksize (from 4 to 128) (default 8)
  • contrast (int): set contrast threshold for blocks (from 1 to 255) (default 125)
  • edge (int): set edge mode (from 0 to 3) (default mirror)
    • blank (0) — fill zeroes at blank locations
    • original (1) — original image at blank locations
    • clamp (2) — extruded edge value at blank locations
    • mirror (3) — mirrored edge at blank locations
  • filename (string): set motion search detailed log file name
  • h (int): set height for the rectangular search area (from -1 to INT_MAX) (default -1)
  • opencl (boolean): ignored (default false)
  • rx (int): set x for the rectangular search area (from 0 to 64) (default 16)
  • ry (int): set y for the rectangular search area (from 0 to 64) (default 16)
  • search (int): set search strategy (from 0 to 1) (default exhaustive)
    • exhaustive (0) — exhaustive search
    • less (1) — less exhaustive search
  • w (int): set width for the rectangular search area (from -1 to INT_MAX) (default -1)
  • x (int): set x for the rectangular search area (from -1 to INT_MAX) (default -1)
  • y (int): set y for the rectangular search area (from -1 to INT_MAX) (default -1)

See FFix.Filter for pipelines, expressions, and output handling.

deshake_opencl(video_0, options \\ [])

@spec deshake_opencl(FFix.Graph.StreamRef.t(),
  adaptive_crop: String.t() | atom() | number(),
  debug: String.t() | atom() | number(),
  refine_features: String.t() | atom() | number(),
  smooth_strength: String.t() | atom() | number(),
  smooth_window_multiplier: String.t() | atom() | number(),
  tripod: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Feature-point based video stabilization filter

Options

  • adaptive_crop (boolean): attempt to subtly crop borders to reduce mirrored content (default true)
  • debug (boolean): turn on additional debugging information (default false)
  • refine_features (boolean): refine feature point locations at a sub-pixel level (default true)
  • smooth_strength (float): smoothing strength (0 attempts to adaptively determine optimal strength) (from 0 to 1) (default 0)
  • smooth_window_multiplier (float): multiplier for number of frames to buffer for motion data (from 0.1 to 10) (default 2)
  • tripod (boolean): simulates a tripod by preventing any camera movement whatsoever from the original frame (default false)

See FFix.Filter for pipelines, expressions, and output handling.

despill(video_0, options \\ [])

@spec despill(FFix.Graph.StreamRef.t(),
  alpha: String.t() | atom() | number(),
  blue: String.t() | atom() | number(),
  brightness: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  expand: String.t() | atom() | number(),
  green: String.t() | atom() | number(),
  mix: String.t() | atom() | number(),
  red: String.t() | atom() | number(),
  type: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Despill video.

Options

  • alpha (boolean): change alpha component (default false)
  • blue (float): set blue scale (from -100 to 100) (default 0)
  • brightness (float): set brightness (from -10 to 10) (default 0)
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • expand (float): set the spillmap expand (from 0 to 1) (default 0)
  • green (float): set green scale (from -100 to 100) (default -1)
  • mix (float): set the spillmap mix (from 0 to 1) (default 0.5)
  • red (float): set red scale (from -100 to 100) (default 0)
  • type (int): set the screen type (from 0 to 1) (default green)
    • green (0) — greenscreen
    • blue (1) — bluescreen

See FFix.Filter for pipelines, expressions, and output handling.

detelecine(video_0, options \\ [])

@spec detelecine(FFix.Graph.StreamRef.t(),
  first_field: String.t() | atom() | number(),
  pattern: String.t() | atom() | number(),
  start_frame: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Apply an inverse telecine pattern.

Options

  • first_field (int): select first field (from 0 to 1) (default top)
    • top (0) — select top field first
    • t (0) — select top field first
    • bottom (1) — select bottom field first
    • b (1) — select bottom field first
  • pattern (string): pattern that describe for how many fields a frame is to be displayed (default "23")
  • start_frame (int): position of first frame with respect to the pattern if stream is cut (from 0 to 13) (default 0)

See FFix.Filter for pipelines, expressions, and output handling.

dilation(video_0, options \\ [])

@spec dilation(FFix.Graph.StreamRef.t(),
  coordinates: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  threshold0: String.t() | atom() | number(),
  threshold1: String.t() | atom() | number(),
  threshold2: String.t() | atom() | number(),
  threshold3: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Apply dilation effect.

Options

  • coordinates (int): set coordinates (from 0 to 255) (default 255)
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • threshold0 (int): set threshold for 1st plane (from 0 to 65535) (default 65535)
  • threshold1 (int): set threshold for 2nd plane (from 0 to 65535) (default 65535)
  • threshold2 (int): set threshold for 3rd plane (from 0 to 65535) (default 65535)
  • threshold3 (int): set threshold for 4th plane (from 0 to 65535) (default 65535)

See FFix.Filter for pipelines, expressions, and output handling.

dilation_opencl(video_0, options \\ [])

@spec dilation_opencl(FFix.Graph.StreamRef.t(),
  coordinates: String.t() | atom() | number(),
  threshold0: String.t() | atom() | number(),
  threshold1: String.t() | atom() | number(),
  threshold2: String.t() | atom() | number(),
  threshold3: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Apply dilation effect

Options

  • coordinates (int): set coordinates (from 0 to 255) (default 255)
  • threshold0 (float): set threshold for 1st plane (from 0 to 65535) (default 65535)
  • threshold1 (float): set threshold for 2nd plane (from 0 to 65535) (default 65535)
  • threshold2 (float): set threshold for 3rd plane (from 0 to 65535) (default 65535)
  • threshold3 (float): set threshold for 4th plane (from 0 to 65535) (default 65535)

See FFix.Filter for pipelines, expressions, and output handling.

displace(video_0, video_1, video_2, options \\ [])

@spec displace(
  FFix.Graph.StreamRef.t(),
  FFix.Graph.StreamRef.t(),
  FFix.Graph.StreamRef.t(),
  edge: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Displace pixels.

Options

  • edge (int): set edge mode (from 0 to 3) (default smear)
    • blank (0)
    • smear (1)
    • wrap (2)
    • mirror (3)
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero

See FFix.Filter for pipelines, expressions, and output handling.

doubleweave(video_0, options \\ [])

@spec doubleweave(FFix.Graph.StreamRef.t(),
  first_field: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Weave input video fields into double number of frames.

Options

  • first_field (int): set first field (from 0 to 1) (default top)
    • top (0) — set top field first
    • t (0) — set top field first
    • bottom (1) — set bottom field first
    • b (1) — set bottom field first

See FFix.Filter for pipelines, expressions, and output handling.

drawbox(video_0, options \\ [])

@spec drawbox(FFix.Graph.StreamRef.t(),
  box_source: String.t() | atom() | number(),
  c: String.t() | atom() | number(),
  color: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  h: String.t() | atom() | number(),
  height: String.t() | atom() | number(),
  replace: String.t() | atom() | number(),
  t: String.t() | atom() | number(),
  thickness: String.t() | atom() | number(),
  w: String.t() | atom() | number(),
  width: String.t() | atom() | number(),
  x: String.t() | atom() | number(),
  y: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Draw a colored box on the input video.

Options

  • box_source (string): use datas from bounding box in side data
  • c (string): set color of the box (default "black")
  • color (string): set color of the box (default "black")
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • h (string): set height of the box (default "0")
  • height (string): set height of the box (default "0")
  • replace (boolean): replace color & alpha (default false)
  • t (string): set the box thickness (default "3")
  • thickness (string): set the box thickness (default "3")
  • w (string): set width of the box (default "0")
  • width (string): set width of the box (default "0")
  • x (string): set horizontal position of the left box edge (default "0")
  • y (string): set vertical position of the top box edge (default "0")

See FFix.Filter for pipelines, expressions, and output handling.

drawbox_vaapi(video_0, options \\ [])

@spec drawbox_vaapi(FFix.Graph.StreamRef.t(),
  c: String.t() | atom() | number(),
  color: String.t() | atom() | number(),
  h: String.t() | atom() | number(),
  height: String.t() | atom() | number(),
  replace: String.t() | atom() | number(),
  t: String.t() | atom() | number(),
  thickness: String.t() | atom() | number(),
  w: String.t() | atom() | number(),
  width: String.t() | atom() | number(),
  x: String.t() | atom() | number(),
  y: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Draw a colored box on the input video.

Options

  • c (color): set color of the box (default "black")
  • color (color): set color of the box (default "black")
  • h (string): set height of the box (default "0")
  • height (string): set height of the box (default "0")
  • replace (boolean): replace color (default false)
  • t (string): set the box thickness (default "3")
  • thickness (string): set the box thickness (default "3")
  • w (string): set width of the box (default "0")
  • width (string): set width of the box (default "0")
  • x (string): set horizontal position of the left box edge (default "0")
  • y (string): set vertical position of the top box edge (default "0")

See FFix.Filter for pipelines, expressions, and output handling.

drawgraph(video_0, options \\ [])

@spec drawgraph(FFix.Graph.StreamRef.t(),
  bg: String.t() | atom() | number(),
  fg1: String.t() | atom() | number(),
  fg2: String.t() | atom() | number(),
  fg3: String.t() | atom() | number(),
  fg4: String.t() | atom() | number(),
  m1: String.t() | atom() | number(),
  m2: String.t() | atom() | number(),
  m3: String.t() | atom() | number(),
  m4: String.t() | atom() | number(),
  max: String.t() | atom() | number(),
  min: String.t() | atom() | number(),
  mode: String.t() | atom() | number(),
  r: String.t() | atom() | number(),
  rate: String.t() | atom() | number(),
  s: String.t() | atom() | number(),
  size: String.t() | atom() | number(),
  slide: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Draw a graph using input video metadata.

Options

  • bg (color): set background color (default "white")
  • fg1 (string): set 1st foreground color expression (default "0xffff0000")
  • fg2 (string): set 2nd foreground color expression (default "0xff00ff00")
  • fg3 (string): set 3rd foreground color expression (default "0xffff00ff")
  • fg4 (string): set 4th foreground color expression (default "0xffffff00")
  • m1 (string): set 1st metadata key (default "")
  • m2 (string): set 2nd metadata key (default "")
  • m3 (string): set 3rd metadata key (default "")
  • m4 (string): set 4th metadata key (default "")
  • max (float): set maximal value (from INT_MIN to INT_MAX) (default 1)
  • min (float): set minimal value (from INT_MIN to INT_MAX) (default -1)
  • mode (int): set graph mode (from 0 to 2) (default line)
    • bar (0) — draw bars
    • dot (1) — draw dots
    • line (2) — draw lines
  • r (video_rate): set video rate (default "25")
  • rate (video_rate): set video rate (default "25")
  • s (image_size): set graph size (default "900x256")
  • size (image_size): set graph size (default "900x256")
  • slide (int): set slide mode (from 0 to 4) (default frame)
    • frame (0) — draw new frames
    • replace (1) — replace old columns with new
    • scroll (2) — scroll from right to left
    • rscroll (3) — scroll from left to right
    • picture (4) — display graph in single frame

See FFix.Filter for pipelines, expressions, and output handling.

drawgrid(video_0, options \\ [])

@spec drawgrid(FFix.Graph.StreamRef.t(),
  c: String.t() | atom() | number(),
  color: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  h: String.t() | atom() | number(),
  height: String.t() | atom() | number(),
  replace: String.t() | atom() | number(),
  t: String.t() | atom() | number(),
  thickness: String.t() | atom() | number(),
  w: String.t() | atom() | number(),
  width: String.t() | atom() | number(),
  x: String.t() | atom() | number(),
  y: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Draw a colored grid on the input video.

Options

  • c (string): set color of the grid (default "black")
  • color (string): set color of the grid (default "black")
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • h (string): set height of grid cell (default "0")
  • height (string): set height of grid cell (default "0")
  • replace (boolean): replace color & alpha (default false)
  • t (string): set grid line thickness (default "1")
  • thickness (string): set grid line thickness (default "1")
  • w (string): set width of grid cell (default "0")
  • width (string): set width of grid cell (default "0")
  • x (string): set horizontal offset (default "0")
  • y (string): set vertical offset (default "0")

See FFix.Filter for pipelines, expressions, and output handling.

drawtext(video_0, options \\ [])

@spec drawtext(FFix.Graph.StreamRef.t(),
  alpha: String.t() | atom() | number(),
  basetime: String.t() | atom() | number(),
  bordercolor: String.t() | atom() | number(),
  borderw: String.t() | atom() | number(),
  box: String.t() | atom() | number(),
  boxborderw: String.t() | atom() | number(),
  boxcolor: String.t() | atom() | number(),
  boxh: String.t() | atom() | number(),
  boxw: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  expansion: String.t() | atom() | number(),
  fix_bounds: String.t() | atom() | number(),
  font: String.t() | atom() | number(),
  fontcolor: String.t() | atom() | number(),
  fontcolor_expr: String.t() | atom() | number(),
  fontfile: String.t() | atom() | number(),
  fontsize: String.t() | atom() | number(),
  ft_load_flags:
    (String.t() | atom() | number()) | [String.t() | atom() | number()],
  line_spacing: String.t() | atom() | number(),
  r: String.t() | atom() | number(),
  rate: String.t() | atom() | number(),
  reload: String.t() | atom() | number(),
  shadowcolor: String.t() | atom() | number(),
  shadowx: String.t() | atom() | number(),
  shadowy: String.t() | atom() | number(),
  start_number: String.t() | atom() | number(),
  tabsize: String.t() | atom() | number(),
  tc24hmax: String.t() | atom() | number(),
  text: String.t() | atom() | number(),
  text_align:
    (String.t() | atom() | number()) | [String.t() | atom() | number()],
  text_shaping: String.t() | atom() | number(),
  text_source: String.t() | atom() | number(),
  textfile: String.t() | atom() | number(),
  timecode: String.t() | atom() | number(),
  timecode_rate: String.t() | atom() | number(),
  x: String.t() | atom() | number(),
  y: String.t() | atom() | number(),
  y_align: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Draw text on top of video frames using libfreetype library.

Options

  • alpha (string): apply alpha while rendering (default "1")
  • basetime (int64): set base time (from I64_MIN to I64_MAX) (default I64_MIN)
  • bordercolor (color): set border color (default "black")
  • borderw (int): set border width (from INT_MIN to INT_MAX) (default 0)
  • box (boolean): set box (default false)
  • boxborderw (string): set box borders width (default "0")
  • boxcolor (color): set box color (default "white")
  • boxh (int): set box height (from 0 to INT_MAX) (default 0)
  • boxw (int): set box width (from 0 to INT_MAX) (default 0)
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • expansion (int): set the expansion mode (from 0 to 2) (default normal)
    • none (0) — set no expansion
    • normal (1) — set normal expansion
    • strftime (2) — set strftime expansion (deprecated)
  • fix_bounds (boolean): check and fix text coords to avoid clipping (default false)
  • font (string): Font name (default "Sans")
  • fontcolor (color): set foreground color (default "black")
  • fontcolor_expr (string): set foreground color expression (default "")
  • fontfile (string): set font file
  • fontsize (string): set font size
  • ft_load_flags (flags): set font loading flags for libfreetype (default 0)
    • 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
  • line_spacing (int): set line spacing in pixels (from INT_MIN to INT_MAX) (default 0)
  • r (rational): set rate (timecode only) (from 0 to INT_MAX) (default 0/1)
  • rate (rational): set rate (timecode only) (from 0 to INT_MAX) (default 0/1)
  • reload (int): reload text file at specified frame interval (from 0 to INT_MAX) (default 0)
  • shadowcolor (color): set shadow color (default "black")
  • shadowx (int): set shadow x offset (from INT_MIN to INT_MAX) (default 0)
  • shadowy (int): set shadow y offset (from INT_MIN to INT_MAX) (default 0)
  • start_number (int): start frame number for n/frame_num variable (from 0 to INT_MAX) (default 0)
  • tabsize (int): set tab size (from 0 to INT_MAX) (default 4)
  • tc24hmax (boolean): set 24 hours max (timecode only) (default false)
  • text (string): set text
  • text_align (flags): set text alignment (default 0)
    • left
    • L
    • right
    • R
    • center
    • C
    • top
    • T
    • bottom
    • B
    • middle
    • M
  • text_shaping (boolean): attempt to shape text before drawing (default true)
  • text_source (string): the source of text
  • textfile (string): set text file
  • timecode (string): set initial timecode
  • timecode_rate (rational): set rate (timecode only) (from 0 to INT_MAX) (default 0/1)
  • x (string): set x expression (default "0")
  • y (string): set y expression (default "0")
  • y_align (int): set the y alignment (from 0 to 2) (default text)
    • text (0) — y is referred to the top of the first text line
    • baseline (1) — y is referred to the baseline of the first line
    • font (2) — y is referred to the font defined line metrics

See FFix.Filter for pipelines, expressions, and output handling.

edgedetect(video_0, options \\ [])

@spec edgedetect(FFix.Graph.StreamRef.t(),
  enable: String.t() | atom() | number(),
  high: String.t() | atom() | number(),
  low: String.t() | atom() | number(),
  mode: String.t() | atom() | number(),
  planes: (String.t() | atom() | number()) | [String.t() | atom() | number()],
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Detect and draw edge.

Options

  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • high (double): set high threshold (from 0 to 1) (default 0.196078)
  • low (double): set low threshold (from 0 to 1) (default 0.0784314)
  • mode (int): set mode (from 0 to 2) (default wires)
    • wires (0) — white/gray wires on black
    • colormix (1) — mix colors
    • canny (2) — detect edges on planes
  • planes (flags): set planes to filter (default y+u+v+r+g+b)
    • y — filter luma plane
    • u — filter u plane
    • v — filter v plane
    • r — filter red plane
    • g — filter green plane
    • b — filter blue plane

See FFix.Filter for pipelines, expressions, and output handling.

elbg(video_0, options \\ [])

@spec elbg(FFix.Graph.StreamRef.t(),
  codebook_length: String.t() | atom() | number(),
  l: String.t() | atom() | number(),
  n: String.t() | atom() | number(),
  nb_steps: String.t() | atom() | number(),
  pal8: String.t() | atom() | number(),
  s: String.t() | atom() | number(),
  seed: String.t() | atom() | number(),
  use_alpha: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Apply posterize effect, using the ELBG algorithm.

Options

  • codebook_length (int): set codebook length (from 1 to INT_MAX) (default 256)
  • l (int): set codebook length (from 1 to INT_MAX) (default 256)
  • n (int): set max number of steps used to compute the mapping (from 1 to INT_MAX) (default 1)
  • nb_steps (int): set max number of steps used to compute the mapping (from 1 to INT_MAX) (default 1)
  • pal8 (boolean): set the pal8 output (default false)
  • s (int64): set the random seed (from -1 to UINT32_MAX) (default -1)
  • seed (int64): set the random seed (from -1 to UINT32_MAX) (default -1)
  • use_alpha (boolean): use alpha channel for mapping (default false)

See FFix.Filter for pipelines, expressions, and output handling.

entropy(video_0, options \\ [])

@spec entropy(FFix.Graph.StreamRef.t(),
  enable: String.t() | atom() | number(),
  mode: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Measure video frames entropy.

Options

  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • mode (int): set kind of histogram entropy measurement (from 0 to 1) (default normal)
    • normal (0)
    • diff (1)

See FFix.Filter for pipelines, expressions, and output handling.

epx(video_0, options \\ [])

@spec epx(FFix.Graph.StreamRef.t(),
  n: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Scale the input using EPX algorithm.

Options

  • n (int): set scale factor (from 2 to 3) (default 3)

See FFix.Filter for pipelines, expressions, and output handling.

eq(video_0, options \\ [])

@spec eq(FFix.Graph.StreamRef.t(),
  brightness: String.t() | atom() | number(),
  contrast: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  eval: String.t() | atom() | number(),
  gamma: String.t() | atom() | number(),
  gamma_b: String.t() | atom() | number(),
  gamma_g: String.t() | atom() | number(),
  gamma_r: String.t() | atom() | number(),
  gamma_weight: String.t() | atom() | number(),
  saturation: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Adjust brightness, contrast, gamma, and saturation.

Options

  • brightness (string): set the brightness adjustment (default "0.0")
  • contrast (string): set the contrast adjustment, negative values give a negative image (default "1.0")
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • eval (int): specify when to evaluate expressions (from 0 to 1) (default init)
    • init (0) — eval expressions once during initialization
    • frame (1) — eval expressions per-frame
  • gamma (string): set the initial gamma value (default "1.0")
  • gamma_b (string): gamma value for blue (default "1.0")
  • gamma_g (string): gamma value for green (default "1.0")
  • gamma_r (string): gamma value for red (default "1.0")
  • gamma_weight (string): set the gamma weight which reduces the effect of gamma on bright areas (default "1.0")
  • saturation (string): set the saturation adjustment (default "1.0")

See FFix.Filter for pipelines, expressions, and output handling.

erosion(video_0, options \\ [])

@spec erosion(FFix.Graph.StreamRef.t(),
  coordinates: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  threshold0: String.t() | atom() | number(),
  threshold1: String.t() | atom() | number(),
  threshold2: String.t() | atom() | number(),
  threshold3: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Apply erosion effect.

Options

  • coordinates (int): set coordinates (from 0 to 255) (default 255)
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • threshold0 (int): set threshold for 1st plane (from 0 to 65535) (default 65535)
  • threshold1 (int): set threshold for 2nd plane (from 0 to 65535) (default 65535)
  • threshold2 (int): set threshold for 3rd plane (from 0 to 65535) (default 65535)
  • threshold3 (int): set threshold for 4th plane (from 0 to 65535) (default 65535)

See FFix.Filter for pipelines, expressions, and output handling.

erosion_opencl(video_0, options \\ [])

@spec erosion_opencl(FFix.Graph.StreamRef.t(),
  coordinates: String.t() | atom() | number(),
  threshold0: String.t() | atom() | number(),
  threshold1: String.t() | atom() | number(),
  threshold2: String.t() | atom() | number(),
  threshold3: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Apply erosion effect

Options

  • coordinates (int): set coordinates (from 0 to 255) (default 255)
  • threshold0 (float): set threshold for 1st plane (from 0 to 65535) (default 65535)
  • threshold1 (float): set threshold for 2nd plane (from 0 to 65535) (default 65535)
  • threshold2 (float): set threshold for 3rd plane (from 0 to 65535) (default 65535)
  • threshold3 (float): set threshold for 4th plane (from 0 to 65535) (default 65535)

See FFix.Filter for pipelines, expressions, and output handling.

estdif(video_0, options \\ [])

@spec estdif(FFix.Graph.StreamRef.t(),
  dcost: String.t() | atom() | number(),
  deint: String.t() | atom() | number(),
  ecost: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  interp: String.t() | atom() | number(),
  mcost: String.t() | atom() | number(),
  mode: String.t() | atom() | number(),
  parity: String.t() | atom() | number(),
  redge: String.t() | atom() | number(),
  rslope: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Apply Edge Slope Tracing deinterlace.

Options

  • dcost (int): specify the distance cost for edge matching (from 0 to 50) (default 1)
  • deint (int): specify which frames to deinterlace (from 0 to 1) (default all)
    • all (0) — deinterlace all frames
    • interlaced (1) — only deinterlace frames marked as interlaced
  • ecost (int): specify the edge cost for edge matching (from 0 to 50) (default 2)
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • interp (int): specify the type of interpolation (from 0 to 2) (default 4p)
    • 2p (0) — two-point interpolation
    • 4p (1) — four-point interpolation
    • 6p (2) — six-point interpolation
  • mcost (int): specify the middle cost for edge matching (from 0 to 50) (default 1)
  • mode (int): specify the mode (from 0 to 1) (default field)
    • frame (0) — send one frame for each frame
    • field (1) — send one frame for each field
  • parity (int): specify the assumed picture field parity (from -1 to 1) (default auto)
    • tff (0) — assume top field first
    • bff (1) — assume bottom field first
    • auto (-1) — auto detect parity
  • redge (int): specify the search radius for best edge matching (from 0 to 15) (default 2)
  • rslope (int): specify the search radius for edge slope tracing (from 1 to 15) (default 1)

See FFix.Filter for pipelines, expressions, and output handling.

exposure(video_0, options \\ [])

@spec exposure(FFix.Graph.StreamRef.t(),
  black: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  exposure: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Adjust exposure of the video stream.

Options

  • black (float): set the black level correction (from -1 to 1) (default 0)
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • exposure (float): set the exposure correction (from -3 to 3) (default 0)

See FFix.Filter for pipelines, expressions, and output handling.

extractplanes(video_0, options \\ [])

@spec extractplanes(FFix.Graph.StreamRef.t(),
  planes: (String.t() | atom() | number()) | [String.t() | atom() | number()],
  pos: String.t() | atom() | number()
) ::
  FFix.Graph.StreamRef.t()
  | [FFix.Graph.StreamRef.t()]
  | FFix.Graph.Terminal.t()

Extract planes as grayscale frames.

Options

  • planes (flags): set planes (default r)
    • y — set luma plane
    • u — set u plane
    • v — set v plane
    • r — set red plane
    • g — set green plane
    • b — set blue plane
    • a — set alpha plane

See FFix.Filter for pipelines, expressions, and output handling.

fade(video_0, options \\ [])

@spec fade(FFix.Graph.StreamRef.t(),
  alpha: String.t() | atom() | number(),
  c: String.t() | atom() | number(),
  color: String.t() | atom() | number(),
  d: String.t() | atom() | number(),
  duration: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  n: String.t() | atom() | number(),
  nb_frames: String.t() | atom() | number(),
  s: String.t() | atom() | number(),
  st: String.t() | atom() | number(),
  start_frame: String.t() | atom() | number(),
  start_time: String.t() | atom() | number(),
  t: String.t() | atom() | number(),
  type: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Fade in/out input video.

Options

  • alpha (boolean): fade alpha if it is available on the input (default false)
  • c (color): set color (default "black")
  • color (color): set color (default "black")
  • d (duration): Duration of the effect in seconds. (default 0)
  • duration (duration): Duration of the effect in seconds. (default 0)
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • n (int): Number of frames to which the effect should be applied. (from 1 to INT_MAX) (default 25)
  • nb_frames (int): Number of frames to which the effect should be applied. (from 1 to INT_MAX) (default 25)
  • s (int): Number of the first frame to which to apply the effect. (from 0 to INT_MAX) (default 0)
  • st (duration): Number of seconds of the beginning of the effect. (default 0)
  • start_frame (int): Number of the first frame to which to apply the effect. (from 0 to INT_MAX) (default 0)
  • start_time (duration): Number of seconds of the beginning of the effect. (default 0)
  • t (int): set the fade direction (from 0 to 1) (default in)
    • in (0) — fade-in
    • out (1) — fade-out
  • type (int): set the fade direction (from 0 to 1) (default in)
    • in (0) — fade-in
    • out (1) — fade-out

See FFix.Filter for pipelines, expressions, and output handling.

feedback(video_0, video_1, options \\ [])

@spec feedback(FFix.Graph.StreamRef.t(), FFix.Graph.StreamRef.t(),
  enable: String.t() | atom() | number(),
  h: String.t() | atom() | number(),
  w: String.t() | atom() | number(),
  x: String.t() | atom() | number(),
  y: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: [FFix.Graph.StreamRef.t()]

Apply feedback video filter.

Options

  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • h (int): set crop size (from 0 to INT_MAX) (default 0)
  • w (int): set crop size (from 0 to INT_MAX) (default 0)
  • x (int): set top left crop position (from 0 to INT_MAX) (default 0)
  • y (int): set top left crop position (from 0 to INT_MAX) (default 0)

See FFix.Filter for pipelines, expressions, and output handling.

fftdnoiz(video_0, options \\ [])

@spec fftdnoiz(FFix.Graph.StreamRef.t(),
  amount: String.t() | atom() | number(),
  block: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  method: String.t() | atom() | number(),
  next: String.t() | atom() | number(),
  overlap: String.t() | atom() | number(),
  planes: String.t() | atom() | number(),
  prev: String.t() | atom() | number(),
  sigma: String.t() | atom() | number(),
  window: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Denoise frames using 3D FFT.

Options

  • amount (float): set amount of denoising (from 0.01 to 1) (default 1)
  • block (int): set block size (from 8 to 256) (default 32)
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • method (int): set method of denoising (from 0 to 1) (default wiener)
    • wiener (0) — wiener method
    • hard (1) — hard thresholding
  • next (int): set number of next frames for temporal denoising (from 0 to 1) (default 0)
  • overlap (float): set block overlap (from 0.2 to 0.8) (default 0.5)
  • planes (int): set planes to filter (from 0 to 15) (default 7)
  • prev (int): set number of previous frames for temporal denoising (from 0 to 1) (default 0)
  • sigma (float): set denoise strength (from 0 to 100) (default 1)
  • window (int): set window function (from 0 to 20) (default hann)
    • rect (0) — Rectangular
    • bartlett (4) — Bartlett
    • hann (1) — Hann
    • hanning (1) — Hanning
    • hamming (2) — Hamming
    • blackman (3) — Blackman
    • welch (5) — Welch
    • flattop (6) — Flat-top
    • bharris (7) — Blackman-Harris
    • bnuttall (8) — Blackman-Nuttall
    • bhann (11) — Bartlett-Hann
    • sine (9) — Sine
    • nuttall (10) — Nuttall
    • lanczos (12) — Lanczos
    • gauss (13) — Gauss
    • tukey (14) — Tukey
    • dolph (15) — Dolph-Chebyshev
    • cauchy (16) — Cauchy
    • parzen (17) — Parzen
    • poisson (18) — Poisson
    • bohman (19) — Bohman
    • kaiser (20) — Kaiser

See FFix.Filter for pipelines, expressions, and output handling.

fftfilt(video_0, options \\ [])

@spec fftfilt(FFix.Graph.StreamRef.t(),
  dc_U: String.t() | atom() | number(),
  dc_V: String.t() | atom() | number(),
  dc_Y: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  eval: String.t() | atom() | number(),
  weight_U: String.t() | atom() | number(),
  weight_V: String.t() | atom() | number(),
  weight_Y: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Apply arbitrary expressions to pixels in frequency domain.

Options

  • dc_U (int): adjust gain in U plane (from 0 to 1000) (default 0)
  • dc_V (int): adjust gain in V plane (from 0 to 1000) (default 0)
  • dc_Y (int): adjust gain in Y plane (from 0 to 1000) (default 0)
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • eval (int): specify when to evaluate expressions (from 0 to 1) (default init)
    • init (0) — eval expressions once during initialization
    • frame (1) — eval expressions per-frame
  • weight_U (string): set chrominance expression in U plane
  • weight_V (string): set chrominance expression in V plane
  • weight_Y (string): set luminance expression in Y plane (default "1")

See FFix.Filter for pipelines, expressions, and output handling.

field(video_0, options \\ [])

@spec field(FFix.Graph.StreamRef.t(),
  type: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Extract a field from the input video.

Options

  • type (int): set field type (top or bottom) (from 0 to 1) (default top)
    • top (0) — select top field
    • bottom (1) — select bottom field

See FFix.Filter for pipelines, expressions, and output handling.

fieldhint(video_0, options \\ [])

@spec fieldhint(FFix.Graph.StreamRef.t(),
  hint: String.t() | atom() | number(),
  mode: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Field matching using hints.

Options

  • hint (string): set hint file
  • mode (int): set hint mode (from 0 to 2) (default absolute)
    • absolute (0)
    • relative (1)
    • pattern (2)

See FFix.Filter for pipelines, expressions, and output handling.

fieldmatch(streams, options \\ [])

@spec fieldmatch([FFix.Graph.StreamRef.t()],
  blockx: String.t() | atom() | number(),
  blocky: String.t() | atom() | number(),
  chroma: String.t() | atom() | number(),
  combdbg: String.t() | atom() | number(),
  combmatch: String.t() | atom() | number(),
  combpel: String.t() | atom() | number(),
  cthresh: String.t() | atom() | number(),
  field: String.t() | atom() | number(),
  mchroma: String.t() | atom() | number(),
  mode: String.t() | atom() | number(),
  order: String.t() | atom() | number(),
  ppsrc: String.t() | atom() | number(),
  scthresh: String.t() | atom() | number(),
  y0: String.t() | atom() | number(),
  y1: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Field matching for inverse telecine.

Options

  • blockx (int): set the x-axis size of the window used during combed frame detection (from 4 to 512) (default 16)
  • blocky (int): set the y-axis size of the window used during combed frame detection (from 4 to 512) (default 16)
  • chroma (boolean): set whether or not chroma is considered in the combed frame decision (default false)
  • combdbg (int): enable comb debug (from 0 to 2) (default none)
    • none (0) — no forced calculation
    • pcn (1) — calculate p/c/n
    • pcnub (2) — calculate p/c/n/u/b
  • combmatch (int): set combmatching mode (from 0 to 2) (default sc)
    • none (0) — disable combmatching
    • sc (1) — enable combmatching only on scene change
    • full (2) — enable combmatching all the time
  • combpel (int): set the number of combed pixels inside any of the blocky by blockx size blocks on the frame for the frame to be detected as combed (from 0 to INT_MAX) (default 80)
  • cthresh (int): set the area combing threshold used for combed frame detection (from -1 to 255) (default 9)
  • field (int): set the field to match from (from -1 to 1) (default auto)
    • auto (-1) — automatic (same value as 'order')
    • bottom (0) — bottom field
    • top (1) — top field
  • mchroma (boolean): set whether or not chroma is included during the match comparisons (default true)
  • mode (int): set the matching mode or strategy to use (from 0 to 5) (default pc_n)
    • pc (0) — 2-way match (p/c)
    • pc_n (1) — 2-way match + 3rd match on combed (p/c + u)
    • pc_u (2) — 2-way match + 3rd match (same order) on combed (p/c + u)
    • pc_n_ub (3) — 2-way match + 3rd match on combed + 4th/5th matches if still combed (p/c + u + u/b)
    • pcn (4) — 3-way match (p/c/n)
    • pcn_ub (5) — 3-way match + 4th/5th matches on combed (p/c/n + u/b)
  • order (int): specify the assumed field order (from -1 to 1) (default auto)
    • auto (-1) — auto detect parity
    • bff (0) — assume bottom field first
    • tff (1) — assume top field first
  • ppsrc (boolean): mark main input as a pre-processed input and activate clean source input stream (default false)
  • scthresh (double): set scene change detection threshold (from 0 to 100) (default 12)
  • y0 (int): define an exclusion band which excludes the lines between y0 and y1 from the field matching decision (from 0 to INT_MAX) (default 0)
  • y1 (int): define an exclusion band which excludes the lines between y0 and y1 from the field matching decision (from 0 to INT_MAX) (default 0)

See FFix.Filter for pipelines, expressions, and output handling.

fieldorder(video_0, options \\ [])

@spec fieldorder(FFix.Graph.StreamRef.t(),
  enable: String.t() | atom() | number(),
  order: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Set the field order.

Options

  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • order (int): output field order (from 0 to 1) (default tff)
    • bff (0) — bottom field first
    • tff (1) — top field first

See FFix.Filter for pipelines, expressions, and output handling.

fillborders(video_0, options \\ [])

@spec fillborders(FFix.Graph.StreamRef.t(),
  bottom: String.t() | atom() | number(),
  color: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  left: String.t() | atom() | number(),
  mode: String.t() | atom() | number(),
  right: String.t() | atom() | number(),
  top: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Fill borders of the input video.

Options

  • bottom (int): set the bottom fill border (from 0 to INT_MAX) (default 0)
  • color (color): set the color for the fixed/fade mode (default "black")
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • left (int): set the left fill border (from 0 to INT_MAX) (default 0)
  • mode (int): set the fill borders mode (from 0 to 6) (default smear)
    • smear (0)
    • mirror (1)
    • fixed (2)
    • reflect (3)
    • wrap (4)
    • fade (5)
    • margins (6)
  • right (int): set the right fill border (from 0 to INT_MAX) (default 0)
  • top (int): set the top fill border (from 0 to INT_MAX) (default 0)

See FFix.Filter for pipelines, expressions, and output handling.

find_rect(video_0, options \\ [])

@spec find_rect(FFix.Graph.StreamRef.t(),
  discard: String.t() | atom() | number(),
  mipmaps: String.t() | atom() | number(),
  object: String.t() | atom() | number(),
  threshold: String.t() | atom() | number(),
  xmax: String.t() | atom() | number(),
  xmin: String.t() | atom() | number(),
  ymax: String.t() | atom() | number(),
  ymin: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Find a user specified object.

Options

  • discard (boolean): (default false)
  • mipmaps (int): set mipmaps (from 1 to 5) (default 3)
  • object (string): object bitmap filename
  • threshold (float): set threshold (from 0 to 1) (default 0.5)
  • xmax (int): (from 0 to INT_MAX) (default INT_MAX)
  • xmin (int): (from 0 to INT_MAX) (default 0)
  • ymax (int): (from 0 to INT_MAX) (default INT_MAX)
  • ymin (int): (from 0 to INT_MAX) (default 0)

See FFix.Filter for pipelines, expressions, and output handling.

flip_vulkan(video_0, options \\ [])

Flip both horizontally and vertically

Options

See FFix.Filter for pipelines, expressions, and output handling.

floodfill(video_0, options \\ [])

@spec floodfill(FFix.Graph.StreamRef.t(),
  d0: String.t() | atom() | number(),
  d1: String.t() | atom() | number(),
  d2: String.t() | atom() | number(),
  d3: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  s0: String.t() | atom() | number(),
  s1: String.t() | atom() | number(),
  s2: String.t() | atom() | number(),
  s3: String.t() | atom() | number(),
  x: String.t() | atom() | number(),
  y: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Fill area with same color with another color.

Options

  • d0 (int): set destination #0 component value (from 0 to 65535) (default 0)
  • d1 (int): set destination #1 component value (from 0 to 65535) (default 0)
  • d2 (int): set destination #2 component value (from 0 to 65535) (default 0)
  • d3 (int): set destination #3 component value (from 0 to 65535) (default 0)
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • s0 (int): set source #0 component value (from -1 to 65535) (default 0)
  • s1 (int): set source #1 component value (from -1 to 65535) (default 0)
  • s2 (int): set source #2 component value (from -1 to 65535) (default 0)
  • s3 (int): set source #3 component value (from -1 to 65535) (default 0)
  • x (int): set pixel x coordinate (from 0 to 65535) (default 0)
  • y (int): set pixel y coordinate (from 0 to 65535) (default 0)

See FFix.Filter for pipelines, expressions, and output handling.

format(video_0, options \\ [])

@spec format(FFix.Graph.StreamRef.t(),
  color_ranges: String.t() | atom() | number(),
  color_spaces: String.t() | atom() | number(),
  pix_fmts: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Convert the input video to one of the specified pixel formats.

Options

  • color_ranges (string): A '|'-separated list of color ranges
  • color_spaces (string): A '|'-separated list of color spaces
  • pix_fmts (string): A '|'-separated list of pixel formats

See FFix.Filter for pipelines, expressions, and output handling.

fps(video_0, options \\ [])

@spec fps(FFix.Graph.StreamRef.t(),
  eof_action: String.t() | atom() | number(),
  fps: String.t() | atom() | number(),
  round: String.t() | atom() | number(),
  start_time: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Force constant framerate.

Options

  • eof_action (int): action performed for last frame (from 0 to 1) (default round)
    • round (0) — round similar to other frames
    • pass (1) — pass through last frame
  • fps (string): A string describing desired output framerate (default "25")
  • round (int): set rounding method for timestamps (from 0 to 5) (default near)
    • zero (0) — round towards 0
    • inf (1) — round away from 0
    • down (2) — round towards -infty
    • up (3) — round towards +infty
    • near (5) — round to nearest
  • start_time (double): Assume the first PTS should be this value. (from -DBL_MAX to DBL_MAX) (default DBL_MAX)

See FFix.Filter for pipelines, expressions, and output handling.

framepack(video_0, video_1, options \\ [])

@spec framepack(FFix.Graph.StreamRef.t(), FFix.Graph.StreamRef.t(),
  format: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Generate a frame packed stereoscopic video.

Options

  • format (int): Frame pack output format (from 0 to INT_MAX) (default sbs)
    • sbs (1) — Views are packed next to each other
    • tab (2) — Views are packed on top of each other
    • frameseq (3) — Views are one after the other
    • lines (6) — Views are interleaved by lines
    • columns (7) — Views are interleaved by columns

See FFix.Filter for pipelines, expressions, and output handling.

framerate(video_0, options \\ [])

@spec framerate(FFix.Graph.StreamRef.t(),
  flags: (String.t() | atom() | number()) | [String.t() | atom() | number()],
  fps: String.t() | atom() | number(),
  interp_end: String.t() | atom() | number(),
  interp_start: String.t() | atom() | number(),
  scene: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Upsamples or downsamples progressive source between specified frame rates.

Options

  • flags (flags): set flags (default scene_change_detect+scd)
    • scene_change_detect — enable scene change detection
    • scd — enable scene change detection
  • fps (video_rate): required output frames per second rate (default "50")
  • interp_end (int): point to end linear interpolation (from 0 to 255) (default 240)
  • interp_start (int): point to start linear interpolation (from 0 to 255) (default 15)
  • scene (double): scene change level (from 0 to 100) (default 8.2)

See FFix.Filter for pipelines, expressions, and output handling.

framestep(video_0, options \\ [])

@spec framestep(FFix.Graph.StreamRef.t(),
  enable: String.t() | atom() | number(),
  step: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Select one frame every N frames.

Options

  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • step (int): set frame step (from 1 to INT_MAX) (default 1)

See FFix.Filter for pipelines, expressions, and output handling.

freezedetect(video_0, options \\ [])

@spec freezedetect(FFix.Graph.StreamRef.t(),
  d: String.t() | atom() | number(),
  duration: String.t() | atom() | number(),
  n: String.t() | atom() | number(),
  noise: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Detects frozen video input.

Options

  • d (duration): set minimum duration in seconds (default 2)
  • duration (duration): set minimum duration in seconds (default 2)
  • n (double): set noise tolerance (from 0 to 1) (default 0.001)
  • noise (double): set noise tolerance (from 0 to 1) (default 0.001)

See FFix.Filter for pipelines, expressions, and output handling.

freezeframes(video_0, video_1, options \\ [])

@spec freezeframes(FFix.Graph.StreamRef.t(), FFix.Graph.StreamRef.t(),
  first: String.t() | atom() | number(),
  last: String.t() | atom() | number(),
  replace: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Freeze video frames.

Options

  • first (int64): set first frame to freeze (from 0 to I64_MAX) (default 0)
  • last (int64): set last frame to freeze (from 0 to I64_MAX) (default 0)
  • replace (int64): set frame to replace (from 0 to I64_MAX) (default 0)

See FFix.Filter for pipelines, expressions, and output handling.

frei0r(video_0, options \\ [])

@spec frei0r(FFix.Graph.StreamRef.t(),
  enable: String.t() | atom() | number(),
  filter_name: String.t() | atom() | number(),
  filter_params: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Apply a frei0r effect.

Options

  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • filter_name (string)
  • filter_params (string)

See FFix.Filter for pipelines, expressions, and output handling.

fspp(video_0, options \\ [])

@spec fspp(FFix.Graph.StreamRef.t(),
  enable: String.t() | atom() | number(),
  qp: String.t() | atom() | number(),
  quality: String.t() | atom() | number(),
  strength: String.t() | atom() | number(),
  use_bframe_qp: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Apply Fast Simple Post-processing filter.

Options

  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • qp (int): force a constant quantizer parameter (from 0 to 64) (default 0)
  • quality (int): set quality (from 4 to 5) (default 4)
  • strength (int): set filter strength (from -15 to 32) (default 0)
  • use_bframe_qp (boolean): use B-frames' QP (default false)

See FFix.Filter for pipelines, expressions, and output handling.

fsync(video_0, options \\ [])

@spec fsync(FFix.Graph.StreamRef.t(),
  f: String.t() | atom() | number(),
  file: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Synchronize video frames from external source.

Options

  • f (string): set the file name to use for frame sync (default "")
  • file (string): set the file name to use for frame sync (default "")

See FFix.Filter for pipelines, expressions, and output handling.

gblur(video_0, options \\ [])

@spec gblur(FFix.Graph.StreamRef.t(),
  enable: String.t() | atom() | number(),
  planes: String.t() | atom() | number(),
  sigma: String.t() | atom() | number(),
  sigmaV: String.t() | atom() | number(),
  steps: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Apply Gaussian Blur filter.

Options

  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • planes (int): set planes to filter (from 0 to 15) (default 15)
  • sigma (float): set sigma (from 0 to 1024) (default 0.5)
  • sigmaV (float): set vertical sigma (from -1 to 1024) (default -1)
  • steps (int): set number of steps (from 1 to 6) (default 1)

See FFix.Filter for pipelines, expressions, and output handling.

gblur_vulkan(video_0, options \\ [])

@spec gblur_vulkan(FFix.Graph.StreamRef.t(),
  planes: String.t() | atom() | number(),
  sigma: String.t() | atom() | number(),
  sigmaV: String.t() | atom() | number(),
  size: String.t() | atom() | number(),
  sizeV: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Gaussian Blur in Vulkan

Options

  • planes (int): Set planes to filter (from 0 to 15) (default 15)
  • sigma (float): Set sigma (from 0.01 to 1024) (default 0.5)
  • sigmaV (float): Set vertical sigma (from 0 to 1024) (default 0)
  • size (int): Set kernel size (from 1 to 127) (default 19)
  • sizeV (int): Set vertical kernel size (from 0 to 127) (default 0)

See FFix.Filter for pipelines, expressions, and output handling.

geq(video_0, options \\ [])

@spec geq(FFix.Graph.StreamRef.t(),
  a: String.t() | atom() | number(),
  alpha_expr: String.t() | atom() | number(),
  b: String.t() | atom() | number(),
  blue_expr: String.t() | atom() | number(),
  cb: String.t() | atom() | number(),
  cb_expr: String.t() | atom() | number(),
  cr: String.t() | atom() | number(),
  cr_expr: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  g: String.t() | atom() | number(),
  green_expr: String.t() | atom() | number(),
  i: String.t() | atom() | number(),
  interpolation: String.t() | atom() | number(),
  lum: String.t() | atom() | number(),
  lum_expr: String.t() | atom() | number(),
  r: String.t() | atom() | number(),
  red_expr: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Apply generic equation to each pixel.

Options

  • a (string): set alpha expression
  • alpha_expr (string): set alpha expression
  • b (string): set blue expression
  • blue_expr (string): set blue expression
  • cb (string): set chroma blue expression
  • cb_expr (string): set chroma blue expression
  • cr (string): set chroma red expression
  • cr_expr (string): set chroma red expression
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • g (string): set green expression
  • green_expr (string): set green expression
  • i (int): set interpolation method (from 0 to 1) (default bilinear)
    • nearest (0) — nearest interpolation
    • n (0) — nearest interpolation
    • bilinear (1) — bilinear interpolation
    • b (1) — bilinear interpolation
  • interpolation (int): set interpolation method (from 0 to 1) (default bilinear)
    • nearest (0) — nearest interpolation
    • n (0) — nearest interpolation
    • bilinear (1) — bilinear interpolation
    • b (1) — bilinear interpolation
  • lum (string): set luminance expression
  • lum_expr (string): set luminance expression
  • r (string): set red expression
  • red_expr (string): set red expression

See FFix.Filter for pipelines, expressions, and output handling.

gradfun(video_0, options \\ [])

@spec gradfun(FFix.Graph.StreamRef.t(),
  enable: String.t() | atom() | number(),
  radius: String.t() | atom() | number(),
  strength: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Debands video quickly using gradients.

Options

  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • radius (int): The neighborhood to fit the gradient to. (from 4 to 32) (default 16)
  • strength (float): The maximum amount by which the filter will change any one pixel. (from 0.51 to 64) (default 1.2)

See FFix.Filter for pipelines, expressions, and output handling.

graphmonitor(video_0, options \\ [])

@spec graphmonitor(FFix.Graph.StreamRef.t(),
  f: (String.t() | atom() | number()) | [String.t() | atom() | number()],
  flags: (String.t() | atom() | number()) | [String.t() | atom() | number()],
  m: (String.t() | atom() | number()) | [String.t() | atom() | number()],
  mode: (String.t() | atom() | number()) | [String.t() | atom() | number()],
  o: String.t() | atom() | number(),
  opacity: String.t() | atom() | number(),
  r: String.t() | atom() | number(),
  rate: String.t() | atom() | number(),
  s: String.t() | atom() | number(),
  size: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Show various filtergraph stats.

Options

  • f (flags): set flags (default all+queue)
    • none
    • all
    • queue
    • frame_count_in
    • frame_count_out
    • frame_count_delta
    • pts
    • pts_delta
    • time
    • time_delta
    • timebase
    • format
    • size
    • rate
    • eof
    • sample_count_in
    • sample_count_out
    • sample_count_delta
    • disabled
  • flags (flags): set flags (default all+queue)
    • none
    • all
    • queue
    • frame_count_in
    • frame_count_out
    • frame_count_delta
    • pts
    • pts_delta
    • time
    • time_delta
    • timebase
    • format
    • size
    • rate
    • eof
    • sample_count_in
    • sample_count_out
    • sample_count_delta
    • disabled
  • m (flags): set mode (default 0)
    • full
    • compact
    • nozero
    • noeof
    • nodisabled
  • mode (flags): set mode (default 0)
    • full
    • compact
    • nozero
    • noeof
    • nodisabled
  • o (float): set video opacity (from 0 to 1) (default 0.9)
  • opacity (float): set video opacity (from 0 to 1) (default 0.9)
  • r (video_rate): set video rate (default "25")
  • rate (video_rate): set video rate (default "25")
  • s (image_size): set monitor size (default "hd720")
  • size (image_size): set monitor size (default "hd720")

See FFix.Filter for pipelines, expressions, and output handling.

grayworld(video_0, options \\ [])

@spec grayworld(FFix.Graph.StreamRef.t(),
  enable: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Adjust white balance using LAB gray world algorithm

Options

  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero

See FFix.Filter for pipelines, expressions, and output handling.

greyedge(video_0, options \\ [])

@spec greyedge(FFix.Graph.StreamRef.t(),
  difford: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  minknorm: String.t() | atom() | number(),
  sigma: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Estimates scene illumination by grey edge assumption.

Options

  • difford (int): set differentiation order (from 0 to 2) (default 1)
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • minknorm (int): set Minkowski norm (from 0 to 20) (default 1)
  • sigma (double): set sigma (from 0 to 1024) (default 1)

See FFix.Filter for pipelines, expressions, and output handling.

guided(streams, options \\ [])

@spec guided([FFix.Graph.StreamRef.t()],
  enable: String.t() | atom() | number(),
  eps: String.t() | atom() | number(),
  guidance: String.t() | atom() | number(),
  mode: String.t() | atom() | number(),
  planes: String.t() | atom() | number(),
  radius: String.t() | atom() | number(),
  sub: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Apply Guided filter.

Options

  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • eps (float): set the regularization parameter (with square) (from 0 to 1) (default 0.01)
  • guidance (int): set guidance mode (0: off mode; 1: on mode) (from 0 to 1) (default off)
    • off (0) — only one input is enabled
    • on (1) — two inputs are required
  • mode (int): set filtering mode (0: basic mode; 1: fast mode) (from 0 to 1) (default basic)
    • basic (0) — basic guided filter
    • fast (1) — fast guided filter
  • planes (int): set planes to filter (from 0 to 15) (default 1)
  • radius (int): set the box radius (from 1 to 20) (default 3)
  • sub (int): subsampling ratio for fast mode (from 2 to 64) (default 4)

See FFix.Filter for pipelines, expressions, and output handling.

haldclut(video_0, video_1, options \\ [])

@spec haldclut(FFix.Graph.StreamRef.t(), FFix.Graph.StreamRef.t(),
  clut: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  eof_action: String.t() | atom() | number(),
  interp: String.t() | atom() | number(),
  repeatlast: String.t() | atom() | number(),
  shortest: String.t() | atom() | number(),
  ts_sync_mode: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Adjust colors using a Hald CLUT.

Options

  • clut (int): when to process CLUT (from 0 to 1) (default all)
    • first (0) — process only first CLUT, ignore rest
    • all (1) — process all CLUTs
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • eof_action (int): Action to take when encountering EOF from secondary input (from 0 to 2) (default repeat)
    • repeat (0) — Repeat the previous frame.
    • endall (1) — End both streams.
    • pass (2) — Pass through the main input.
  • interp (int): select interpolation mode (from 0 to 4) (default tetrahedral)
    • nearest (0) — use values from the nearest defined points
    • trilinear (1) — interpolate values using the 8 points defining a cube
    • tetrahedral (2) — interpolate values using a tetrahedron
    • pyramid (3) — interpolate values using a pyramid
    • prism (4) — interpolate values using a prism
  • repeatlast (boolean): extend last frame of secondary streams beyond EOF (default true)
  • shortest (boolean): force termination when the shortest input terminates (default false)
  • ts_sync_mode (int): How strictly to sync streams based on secondary input timestamps (from 0 to 1) (default default)
    • default (0) — Frame from secondary input with the nearest lower or equal timestamp to the primary input frame
    • nearest (1) — Frame from secondary input with the absolute nearest timestamp to the primary input frame

See FFix.Filter for pipelines, expressions, and output handling.

hflip(video_0, options \\ [])

@spec hflip(FFix.Graph.StreamRef.t(),
  enable: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Horizontally flip the input video.

Options

  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero

See FFix.Filter for pipelines, expressions, and output handling.

hflip_vulkan(video_0, options \\ [])

@spec hflip_vulkan(FFix.Graph.StreamRef.t(), keyword()) :: FFix.Graph.StreamRef.t()

Horizontally flip the input video in Vulkan

Options

See FFix.Filter for pipelines, expressions, and output handling.

histeq(video_0, options \\ [])

@spec histeq(FFix.Graph.StreamRef.t(),
  antibanding: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  intensity: String.t() | atom() | number(),
  strength: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Apply global color histogram equalization.

Options

  • antibanding (int): set the antibanding level (from 0 to 2) (default none)
    • none (0) — apply no antibanding
    • weak (1) — apply weak antibanding
    • strong (2) — apply strong antibanding
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • intensity (float): set the intensity (from 0 to 1) (default 0.21)
  • strength (float): set the strength (from 0 to 1) (default 0.2)

See FFix.Filter for pipelines, expressions, and output handling.

histogram(video_0, options \\ [])

@spec histogram(FFix.Graph.StreamRef.t(),
  b: String.t() | atom() | number(),
  bgopacity: String.t() | atom() | number(),
  c: String.t() | atom() | number(),
  colors_mode: String.t() | atom() | number(),
  components: String.t() | atom() | number(),
  d: String.t() | atom() | number(),
  display_mode: String.t() | atom() | number(),
  f: String.t() | atom() | number(),
  fgopacity: String.t() | atom() | number(),
  l: String.t() | atom() | number(),
  level_height: String.t() | atom() | number(),
  levels_mode: String.t() | atom() | number(),
  m: String.t() | atom() | number(),
  scale_height: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Compute and draw a histogram.

Options

  • b (float): set background opacity (from 0 to 1) (default 0.5)
  • bgopacity (float): set background opacity (from 0 to 1) (default 0.5)
  • c (int): set color components to display (from 1 to 15) (default 7)
  • colors_mode (int): set colors mode (from 0 to 9) (default whiteonblack)
    • whiteonblack (0)
    • blackonwhite (1)
    • whiteongray (2)
    • blackongray (3)
    • coloronblack (4)
    • coloronwhite (5)
    • colorongray (6)
    • blackoncolor (7)
    • whiteoncolor (8)
    • grayoncolor (9)
  • components (int): set color components to display (from 1 to 15) (default 7)
  • d (int): set display mode (from 0 to 2) (default stack)
    • overlay (0)
    • parade (1)
    • stack (2)
  • display_mode (int): set display mode (from 0 to 2) (default stack)
    • overlay (0)
    • parade (1)
    • stack (2)
  • f (float): set foreground opacity (from 0 to 1) (default 0.7)
  • fgopacity (float): set foreground opacity (from 0 to 1) (default 0.7)
  • l (int): set colors mode (from 0 to 9) (default whiteonblack)
    • whiteonblack (0)
    • blackonwhite (1)
    • whiteongray (2)
    • blackongray (3)
    • coloronblack (4)
    • coloronwhite (5)
    • colorongray (6)
    • blackoncolor (7)
    • whiteoncolor (8)
    • grayoncolor (9)
  • level_height (int): set level height (from 50 to 2048) (default 200)
  • levels_mode (int): set levels mode (from 0 to 1) (default linear)
    • linear (0)
    • logarithmic (1)
  • m (int): set levels mode (from 0 to 1) (default linear)
    • linear (0)
    • logarithmic (1)
  • scale_height (int): set scale height (from 0 to 40) (default 12)

See FFix.Filter for pipelines, expressions, and output handling.

hqdn3d(video_0, options \\ [])

@spec hqdn3d(FFix.Graph.StreamRef.t(),
  chroma_spatial: String.t() | atom() | number(),
  chroma_tmp: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  luma_spatial: String.t() | atom() | number(),
  luma_tmp: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Apply a High Quality 3D Denoiser.

Options

  • chroma_spatial (double): spatial chroma strength (from 0 to DBL_MAX) (default 0)
  • chroma_tmp (double): temporal chroma strength (from 0 to DBL_MAX) (default 0)
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • luma_spatial (double): spatial luma strength (from 0 to DBL_MAX) (default 0)
  • luma_tmp (double): temporal luma strength (from 0 to DBL_MAX) (default 0)

See FFix.Filter for pipelines, expressions, and output handling.

hqx(video_0, options \\ [])

@spec hqx(FFix.Graph.StreamRef.t(),
  n: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Scale the input by 2, 3 or 4 using the hq*x magnification algorithm.

Options

  • n (int): set scale factor (from 2 to 4) (default 3)

See FFix.Filter for pipelines, expressions, and output handling.

hstack(streams, options \\ [])

@spec hstack([FFix.Graph.StreamRef.t()],
  inputs: String.t() | atom() | number(),
  shortest: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Stack video inputs horizontally.

Options

  • inputs (int): set number of inputs (from 2 to INT_MAX) (default 2)
  • shortest (boolean): force termination when the shortest input terminates (default false)

See FFix.Filter for pipelines, expressions, and output handling.

hstack_qsv(streams, options \\ [])

@spec hstack_qsv([FFix.Graph.StreamRef.t()],
  height: String.t() | atom() | number(),
  inputs: String.t() | atom() | number(),
  shortest: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

"Quick Sync Video" hstack

Options

  • height (int): Set output height (0 to use the height of input 0) (from 0 to 65535) (default 0)
  • inputs (int): Set number of inputs (from 2 to 65535) (default 2)
  • shortest (boolean): Force termination when the shortest input terminates (default false)

See FFix.Filter for pipelines, expressions, and output handling.

hstack_vaapi(streams, options \\ [])

@spec hstack_vaapi([FFix.Graph.StreamRef.t()],
  height: String.t() | atom() | number(),
  inputs: String.t() | atom() | number(),
  shortest: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

"VA-API" hstack

Options

  • height (int): Set output height (0 to use the height of input 0) (from 0 to 65535) (default 0)
  • inputs (int): Set number of inputs (from 2 to 65535) (default 2)
  • shortest (boolean): Force termination when the shortest input terminates (default false)

See FFix.Filter for pipelines, expressions, and output handling.

hsvhold(video_0, options \\ [])

@spec hsvhold(FFix.Graph.StreamRef.t(),
  blend: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  hue: String.t() | atom() | number(),
  sat: String.t() | atom() | number(),
  similarity: String.t() | atom() | number(),
  val: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Turns a certain HSV range into gray.

Options

  • blend (float): set the hsvhold blend value (from 0 to 1) (default 0)
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • hue (float): set the hue value (from -360 to 360) (default 0)
  • sat (float): set the saturation value (from -1 to 1) (default 0)
  • similarity (float): set the hsvhold similarity value (from 1e-05 to 1) (default 0.01)
  • val (float): set the value value (from -1 to 1) (default 0)

See FFix.Filter for pipelines, expressions, and output handling.

hsvkey(video_0, options \\ [])

@spec hsvkey(FFix.Graph.StreamRef.t(),
  blend: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  hue: String.t() | atom() | number(),
  sat: String.t() | atom() | number(),
  similarity: String.t() | atom() | number(),
  val: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Turns a certain HSV range into transparency. Operates on YUV colors.

Options

  • blend (float): set the hsvkey blend value (from 0 to 1) (default 0)
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • hue (float): set the hue value (from -360 to 360) (default 0)
  • sat (float): set the saturation value (from -1 to 1) (default 0)
  • similarity (float): set the hsvkey similarity value (from 1e-05 to 1) (default 0.01)
  • val (float): set the value value (from -1 to 1) (default 0)

See FFix.Filter for pipelines, expressions, and output handling.

hue(video_0, options \\ [])

@spec hue(FFix.Graph.StreamRef.t(),
  H: String.t() | atom() | number(),
  b: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  h: String.t() | atom() | number(),
  s: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Adjust the hue and saturation of the input video.

Options

  • H (string): set the hue angle radians expression
  • b (string): set the brightness expression (default "0")
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • h (string): set the hue angle degrees expression
  • s (string): set the saturation expression (default "1")

See FFix.Filter for pipelines, expressions, and output handling.

huesaturation(video_0, options \\ [])

@spec huesaturation(FFix.Graph.StreamRef.t(),
  bw: String.t() | atom() | number(),
  colors: (String.t() | atom() | number()) | [String.t() | atom() | number()],
  enable: String.t() | atom() | number(),
  gw: String.t() | atom() | number(),
  hue: String.t() | atom() | number(),
  intensity: String.t() | atom() | number(),
  lightness: String.t() | atom() | number(),
  rw: String.t() | atom() | number(),
  saturation: String.t() | atom() | number(),
  strength: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Apply hue-saturation-intensity adjustments.

Options

  • bw (float): set the blue weight (from 0 to 1) (default 0.333)
  • colors (flags): set colors range (default r+y+g+c+b+m+a)
    • r — set reds
    • y — set yellows
    • g — set greens
    • c — set cyans
    • b — set blues
    • m — set magentas
    • a — set all colors
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • gw (float): set the green weight (from 0 to 1) (default 0.334)
  • hue (float): set the hue shift (from -180 to 180) (default 0)
  • intensity (float): set the intensity shift (from -1 to 1) (default 0)
  • lightness (boolean): set the preserve lightness (default false)
  • rw (float): set the red weight (from 0 to 1) (default 0.333)
  • saturation (float): set the saturation shift (from -1 to 1) (default 0)
  • strength (float): set the filtering strength (from 0 to 100) (default 1)

See FFix.Filter for pipelines, expressions, and output handling.

hwdownload(video_0, options \\ [])

Download a hardware frame to a normal frame

Options

See FFix.Filter for pipelines, expressions, and output handling.

hwmap(video_0, options \\ [])

@spec hwmap(FFix.Graph.StreamRef.t(),
  derive_device: String.t() | atom() | number(),
  mode: (String.t() | atom() | number()) | [String.t() | atom() | number()],
  reverse: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Map hardware frames

Options

  • derive_device (string): Derive a new device of this type
  • mode (flags): Frame mapping mode (default read+write)
    • read — Mapping should be readable
    • write — Mapping should be writeable
    • overwrite — Mapping will always overwrite the entire frame
    • direct — Mapping should not involve any copying
  • reverse (int): Map in reverse (create and allocate in the sink) (from 0 to 1) (default 0)

See FFix.Filter for pipelines, expressions, and output handling.

hwupload(video_0, options \\ [])

@spec hwupload(FFix.Graph.StreamRef.t(),
  derive_device: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Upload a normal frame to a hardware frame

Options

  • derive_device (string): Derive a new device of this type

See FFix.Filter for pipelines, expressions, and output handling.

hwupload_cuda(video_0, options \\ [])

@spec hwupload_cuda(FFix.Graph.StreamRef.t(),
  device: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Upload a system memory frame to a CUDA device.

Options

  • device (int): Number of the device to use (from 0 to INT_MAX) (default 0)

See FFix.Filter for pipelines, expressions, and output handling.

hysteresis(video_0, video_1, options \\ [])

@spec hysteresis(FFix.Graph.StreamRef.t(), FFix.Graph.StreamRef.t(),
  enable: String.t() | atom() | number(),
  eof_action: String.t() | atom() | number(),
  planes: String.t() | atom() | number(),
  repeatlast: String.t() | atom() | number(),
  shortest: String.t() | atom() | number(),
  threshold: String.t() | atom() | number(),
  ts_sync_mode: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Grow first stream into second stream by connecting components.

Options

  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • eof_action (int): Action to take when encountering EOF from secondary input (from 0 to 2) (default repeat)
    • repeat (0) — Repeat the previous frame.
    • endall (1) — End both streams.
    • pass (2) — Pass through the main input.
  • planes (int): set planes (from 0 to 15) (default 15)
  • repeatlast (boolean): extend last frame of secondary streams beyond EOF (default true)
  • shortest (boolean): force termination when the shortest input terminates (default false)
  • threshold (int): set threshold (from 0 to 65535) (default 0)
  • ts_sync_mode (int): How strictly to sync streams based on secondary input timestamps (from 0 to 1) (default default)
    • default (0) — Frame from secondary input with the nearest lower or equal timestamp to the primary input frame
    • nearest (1) — Frame from secondary input with the absolute nearest timestamp to the primary input frame

See FFix.Filter for pipelines, expressions, and output handling.

iccdetect(video_0, options \\ [])

@spec iccdetect(FFix.Graph.StreamRef.t(),
  force: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Detect and parse ICC profiles.

Options

  • force (boolean): overwrite existing tags (default true)

See FFix.Filter for pipelines, expressions, and output handling.

iccgen(video_0, options \\ [])

@spec iccgen(FFix.Graph.StreamRef.t(),
  color_primaries: String.t() | atom() | number(),
  color_trc: String.t() | atom() | number(),
  force: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Generate and attach ICC profiles.

Options

  • color_primaries (int): select color primaries (from 0 to 22) (default auto)
    • auto (0) — infer based on frame
    • bt709 (1)
    • bt470m (4)
    • bt470bg (5)
    • smpte170m (6)
    • smpte240m (7)
    • film (8)
    • bt2020 (9)
    • smpte428 (10)
    • smpte431 (11)
    • smpte432 (12)
    • jedec-p22 (22)
    • ebu3213 (22)
  • color_trc (int): select color transfer (from 0 to 18) (default auto)
    • auto (0) — infer based on frame
    • bt709 (1)
    • bt470m (4)
    • bt470bg (5)
    • smpte170m (6)
    • smpte240m (7)
    • linear (8)
    • iec61966-2-4 (11)
    • bt1361e (12)
    • iec61966-2-1 (13)
    • bt2020-10 (14)
    • bt2020-12 (15)
    • smpte2084 (16)
    • arib-std-b67 (18)
  • force (boolean): overwrite existing ICC profile (default false)

See FFix.Filter for pipelines, expressions, and output handling.

identity(video_0, video_1, options \\ [])

@spec identity(FFix.Graph.StreamRef.t(), FFix.Graph.StreamRef.t(),
  enable: String.t() | atom() | number(),
  eof_action: String.t() | atom() | number(),
  repeatlast: String.t() | atom() | number(),
  shortest: String.t() | atom() | number(),
  ts_sync_mode: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Calculate the Identity between two video streams.

Options

  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • eof_action (int): Action to take when encountering EOF from secondary input (from 0 to 2) (default repeat)
    • repeat (0) — Repeat the previous frame.
    • endall (1) — End both streams.
    • pass (2) — Pass through the main input.
  • repeatlast (boolean): extend last frame of secondary streams beyond EOF (default true)
  • shortest (boolean): force termination when the shortest input terminates (default false)
  • ts_sync_mode (int): How strictly to sync streams based on secondary input timestamps (from 0 to 1) (default default)
    • default (0) — Frame from secondary input with the nearest lower or equal timestamp to the primary input frame
    • nearest (1) — Frame from secondary input with the absolute nearest timestamp to the primary input frame

See FFix.Filter for pipelines, expressions, and output handling.

idet(video_0, options \\ [])

@spec idet(FFix.Graph.StreamRef.t(),
  analyze_interlaced_flag: String.t() | atom() | number(),
  half_life: String.t() | atom() | number(),
  intl_thres: String.t() | atom() | number(),
  prog_thres: String.t() | atom() | number(),
  rep_thres: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Interlace detect Filter.

Options

  • analyze_interlaced_flag (int): set number of frames to use to determine if the interlace flag is accurate (from 0 to INT_MAX) (default 0)
  • half_life (float): half life of cumulative statistics (from -1 to INT_MAX) (default 0)
  • intl_thres (float): set interlacing threshold (from -1 to FLT_MAX) (default 1.04)
  • prog_thres (float): set progressive threshold (from -1 to FLT_MAX) (default 1.5)
  • rep_thres (float): set repeat threshold (from -1 to FLT_MAX) (default 3)

See FFix.Filter for pipelines, expressions, and output handling.

il(video_0, options \\ [])

@spec il(FFix.Graph.StreamRef.t(),
  a: String.t() | atom() | number(),
  alpha_mode: String.t() | atom() | number(),
  alpha_swap: String.t() | atom() | number(),
  as: String.t() | atom() | number(),
  c: String.t() | atom() | number(),
  chroma_mode: String.t() | atom() | number(),
  chroma_swap: String.t() | atom() | number(),
  cs: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  l: String.t() | atom() | number(),
  ls: String.t() | atom() | number(),
  luma_mode: String.t() | atom() | number(),
  luma_swap: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Deinterleave or interleave fields.

Options

  • a (int): select alpha mode (from 0 to 2) (default none)
    • none (0)
    • interleave (1)
    • i (1)
    • deinterleave (2)
    • d (2)
  • alpha_mode (int): select alpha mode (from 0 to 2) (default none)
    • none (0)
    • interleave (1)
    • i (1)
    • deinterleave (2)
    • d (2)
  • alpha_swap (boolean): swap alpha fields (default false)
  • as (boolean): swap alpha fields (default false)
  • c (int): select chroma mode (from 0 to 2) (default none)
    • none (0)
    • interleave (1)
    • i (1)
    • deinterleave (2)
    • d (2)
  • chroma_mode (int): select chroma mode (from 0 to 2) (default none)
    • none (0)
    • interleave (1)
    • i (1)
    • deinterleave (2)
    • d (2)
  • chroma_swap (boolean): swap chroma fields (default false)
  • cs (boolean): swap chroma fields (default false)
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • l (int): select luma mode (from 0 to 2) (default none)
    • none (0)
    • interleave (1)
    • i (1)
    • deinterleave (2)
    • d (2)
  • ls (boolean): swap luma fields (default false)
  • luma_mode (int): select luma mode (from 0 to 2) (default none)
    • none (0)
    • interleave (1)
    • i (1)
    • deinterleave (2)
    • d (2)
  • luma_swap (boolean): swap luma fields (default false)

See FFix.Filter for pipelines, expressions, and output handling.

inflate(video_0, options \\ [])

@spec inflate(FFix.Graph.StreamRef.t(),
  enable: String.t() | atom() | number(),
  threshold0: String.t() | atom() | number(),
  threshold1: String.t() | atom() | number(),
  threshold2: String.t() | atom() | number(),
  threshold3: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Apply inflate effect.

Options

  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • threshold0 (int): set threshold for 1st plane (from 0 to 65535) (default 65535)
  • threshold1 (int): set threshold for 2nd plane (from 0 to 65535) (default 65535)
  • threshold2 (int): set threshold for 3rd plane (from 0 to 65535) (default 65535)
  • threshold3 (int): set threshold for 4th plane (from 0 to 65535) (default 65535)

See FFix.Filter for pipelines, expressions, and output handling.

interlace(video_0, options \\ [])

@spec interlace(FFix.Graph.StreamRef.t(),
  lowpass: String.t() | atom() | number(),
  scan: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Convert progressive video into interlaced.

Options

  • lowpass (int): set vertical low-pass filter (from 0 to 2) (default linear)
    • off (0) — disable vertical low-pass filter
    • linear (1) — linear vertical low-pass filter
    • complex (2) — complex vertical low-pass filter
  • scan (int): scanning mode (from 0 to 1) (default tff)
    • tff (0) — top field first
    • bff (1) — bottom field first

See FFix.Filter for pipelines, expressions, and output handling.

interleave(streams, options \\ [])

@spec interleave([FFix.Graph.StreamRef.t()],
  duration: String.t() | atom() | number(),
  n: String.t() | atom() | number(),
  nb_inputs: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Temporally interleave video inputs.

Options

  • duration (int): how to determine the end-of-stream (from 0 to 2) (default longest)
    • longest (0) — Duration of longest input
    • shortest (1) — Duration of shortest input
    • first (2) — Duration of first input
  • n (int): set number of inputs (from 1 to INT_MAX) (default 2)
  • nb_inputs (int): set number of inputs (from 1 to INT_MAX) (default 2)

See FFix.Filter for pipelines, expressions, and output handling.

kerndeint(video_0, options \\ [])

@spec kerndeint(FFix.Graph.StreamRef.t(),
  map: String.t() | atom() | number(),
  order: String.t() | atom() | number(),
  sharp: String.t() | atom() | number(),
  thresh: String.t() | atom() | number(),
  twoway: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Apply kernel deinterlacing to the input.

Options

  • map (boolean): set the map (default false)
  • order (boolean): set the order (default false)
  • sharp (boolean): set sharpening (default false)
  • thresh (int): set the threshold (from 0 to 255) (default 10)
  • twoway (boolean): set twoway (default false)

See FFix.Filter for pipelines, expressions, and output handling.

kirsch(video_0, options \\ [])

@spec kirsch(FFix.Graph.StreamRef.t(),
  delta: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  planes: String.t() | atom() | number(),
  scale: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Apply kirsch operator.

Options

  • delta (float): set delta (from -65535 to 65535) (default 0)
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • planes (int): set planes to filter (from 0 to 15) (default 15)
  • scale (float): set scale (from 0 to 65535) (default 1)

See FFix.Filter for pipelines, expressions, and output handling.

lagfun(video_0, options \\ [])

@spec lagfun(FFix.Graph.StreamRef.t(),
  decay: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  planes: (String.t() | atom() | number()) | [String.t() | atom() | number()],
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Slowly update darker pixels.

Options

  • decay (float): set decay (from 0 to 1) (default 0.95)
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • planes (flags): set what planes to filter (default F)

See FFix.Filter for pipelines, expressions, and output handling.

latency(video_0, options \\ [])

@spec latency(FFix.Graph.StreamRef.t(),
  enable: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Report video filtering latency.

Options

  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero

See FFix.Filter for pipelines, expressions, and output handling.

lenscorrection(video_0, options \\ [])

@spec lenscorrection(FFix.Graph.StreamRef.t(),
  cx: String.t() | atom() | number(),
  cy: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  fc: String.t() | atom() | number(),
  i: String.t() | atom() | number(),
  k1: String.t() | atom() | number(),
  k2: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Rectify the image by correcting for lens distortion.

Options

  • cx (double): set relative center x (from 0 to 1) (default 0.5)
  • cy (double): set relative center y (from 0 to 1) (default 0.5)
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • fc (color): set the color of the unmapped pixels (default "black@0")
  • i (int): set interpolation type (from 0 to 64) (default nearest)
    • nearest (0) — nearest neighbour
    • bilinear (1) — bilinear
  • k1 (double): set quadratic distortion factor (from -1 to 1) (default 0)
  • k2 (double): set double quadratic distortion factor (from -1 to 1) (default 0)

See FFix.Filter for pipelines, expressions, and output handling.

libplacebo(streams, options \\ [])

@spec libplacebo([FFix.Graph.StreamRef.t()],
  antiringing: String.t() | atom() | number(),
  apply_dolbyvision: String.t() | atom() | number(),
  apply_filmgrain: String.t() | atom() | number(),
  brightness: String.t() | atom() | number(),
  color_primaries: String.t() | atom() | number(),
  color_trc: String.t() | atom() | number(),
  colorspace: String.t() | atom() | number(),
  "cone-strength": String.t() | atom() | number(),
  cones: (String.t() | atom() | number()) | [String.t() | atom() | number()],
  contrast: String.t() | atom() | number(),
  contrast_recovery: String.t() | atom() | number(),
  contrast_smoothness: String.t() | atom() | number(),
  corner_rounding: String.t() | atom() | number(),
  crop_h: String.t() | atom() | number(),
  crop_w: String.t() | atom() | number(),
  crop_x: String.t() | atom() | number(),
  crop_y: String.t() | atom() | number(),
  custom_shader_bin: String.t() | atom() | number(),
  custom_shader_path: String.t() | atom() | number(),
  deband: String.t() | atom() | number(),
  deband_grain: String.t() | atom() | number(),
  deband_iterations: String.t() | atom() | number(),
  deband_radius: String.t() | atom() | number(),
  deband_threshold: String.t() | atom() | number(),
  disable_builtin: String.t() | atom() | number(),
  disable_fbos: String.t() | atom() | number(),
  disable_linear: String.t() | atom() | number(),
  dither_lut_size: String.t() | atom() | number(),
  dither_temporal: String.t() | atom() | number(),
  dithering: String.t() | atom() | number(),
  downscaler: String.t() | atom() | number(),
  extra_opts: String.t() | atom() | number(),
  fillcolor: String.t() | atom() | number(),
  force_dither: String.t() | atom() | number(),
  force_divisible_by: String.t() | atom() | number(),
  force_original_aspect_ratio: String.t() | atom() | number(),
  format: String.t() | atom() | number(),
  fps: String.t() | atom() | number(),
  frame_mixer: String.t() | atom() | number(),
  gamma: String.t() | atom() | number(),
  gamut_mode: String.t() | atom() | number(),
  h: String.t() | atom() | number(),
  hue: String.t() | atom() | number(),
  inputs: String.t() | atom() | number(),
  inverse_tonemapping: String.t() | atom() | number(),
  lut_entries: String.t() | atom() | number(),
  minimum_peak: String.t() | atom() | number(),
  normalize_sar: String.t() | atom() | number(),
  pad_crop_ratio: String.t() | atom() | number(),
  peak_detect: String.t() | atom() | number(),
  percentile: String.t() | atom() | number(),
  polar_cutoff: String.t() | atom() | number(),
  pos_h: String.t() | atom() | number(),
  pos_w: String.t() | atom() | number(),
  pos_x: String.t() | atom() | number(),
  pos_y: String.t() | atom() | number(),
  range: String.t() | atom() | number(),
  saturation: String.t() | atom() | number(),
  scene_threshold_high: String.t() | atom() | number(),
  scene_threshold_low: String.t() | atom() | number(),
  sigmoid: String.t() | atom() | number(),
  skip_aa: String.t() | atom() | number(),
  smoothing_period: String.t() | atom() | number(),
  tonemapping: String.t() | atom() | number(),
  tonemapping_lut_size: String.t() | atom() | number(),
  tonemapping_param: String.t() | atom() | number(),
  upscaler: String.t() | atom() | number(),
  w: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Apply various GPU filters from libplacebo

Options

  • antiringing (float): Antiringing strength (for non-EWA filters) (from 0 to 1) (default 0)
  • apply_dolbyvision (boolean): Apply Dolby Vision metadata (default true)
  • apply_filmgrain (boolean): Apply film grain metadata (default true)
  • brightness (float): Brightness boost (from -1 to 1) (default 0)
  • color_primaries (int): select color primaries (from -1 to 22) (default auto)
    • auto (-1) — keep the same color primaries
    • bt709 (1)
    • unknown (2)
    • bt470m (4)
    • bt470bg (5)
    • smpte170m (6)
    • smpte240m (7)
    • film (8)
    • bt2020 (9)
    • smpte428 (10)
    • smpte431 (11)
    • smpte432 (12)
    • jedec-p22 (22)
    • ebu3213 (22)
  • color_trc (int): select color transfer (from -1 to 18) (default auto)
    • auto (-1) — keep the same color transfer
    • bt709 (1)
    • unknown (2)
    • bt470m (4)
    • bt470bg (5)
    • smpte170m (6)
    • smpte240m (7)
    • linear (8)
    • iec61966-2-4 (11)
    • bt1361e (12)
    • iec61966-2-1 (13)
    • bt2020-10 (14)
    • bt2020-12 (15)
    • smpte2084 (16)
    • arib-std-b67 (18)
  • colorspace (int): select colorspace (from -1 to 17) (default auto)
    • auto (-1) — keep the same colorspace
    • gbr (0)
    • bt709 (1)
    • unknown (2)
    • bt470bg (5)
    • smpte170m (6)
    • smpte240m (7)
    • ycgco (8)
    • bt2020nc (9)
    • bt2020c (10)
    • ictcp (14)
  • cone-strength (float): Colorblindness adaptation strength (from 0 to 10) (default 0)
  • cones (flags): Colorblindness adaptation model (default 0)
    • l — L cone
    • m — M cone
    • s — S cone
  • contrast (float): Contrast gain (from 0 to 16) (default 1)
  • contrast_recovery (float): HDR contrast recovery strength (from 0 to 3) (default 0.3)
  • contrast_smoothness (float): HDR contrast recovery smoothness (from 1 to 32) (default 3.5)
  • corner_rounding (float): Corner rounding radius (from 0 to 1) (default 0)
  • crop_h (string): Input video crop h (default "ih")
  • crop_w (string): Input video crop w (default "iw")
  • crop_x (string): Input video crop x (default "(iw-cw)/2")
  • crop_y (string): Input video crop y (default "(ih-ch)/2")
  • custom_shader_bin (binary): Custom user shader as binary (mpv .hook format)
  • custom_shader_path (string): Path to custom user shader (mpv .hook format)
  • deband (boolean): Enable debanding (default false)
  • deband_grain (float): Deband grain (from 0 to 1024) (default 6)
  • deband_iterations (int): Deband iterations (from 0 to 16) (default 1)
  • deband_radius (float): Deband radius (from 0 to 1024) (default 16)
  • deband_threshold (float): Deband threshold (from 0 to 1024) (default 4)
  • disable_builtin (boolean): Disable built-in scalers (default false)
  • disable_fbos (boolean): Force-disable FBOs (default false)
  • disable_linear (boolean): Disable linear scaling (default false)
  • dither_lut_size (int): Dithering LUT size (from 1 to 8) (default 6)
  • dither_temporal (boolean): Enable temporal dithering (default false)
  • dithering (int): Dither method to use (from -1 to 3) (default blue)
    • none (-1) — Disable dithering
    • blue (0) — Blue noise
    • ordered (1) — Ordered LUT
    • ordered_fixed (2) — Fixed function ordered
    • white (3) — White noise
  • downscaler (string): Downscaler function (default "mitchell")
  • extra_opts (dictionary): Pass extra libplacebo-specific options using a :-separated list of key=value pairs
  • fillcolor (string): Background fill color (default "black")
  • force_dither (boolean): Force dithering (default false)
  • force_divisible_by (int): enforce that the output resolution is divisible by a defined integer when force_original_aspect_ratio is used (from 1 to 256) (default 1)
  • force_original_aspect_ratio (int): decrease or increase w/h if necessary to keep the original AR (from 0 to 2) (default disable)
    • disable (0)
    • decrease (1)
    • increase (2)
  • format (string): Output video format
  • fps (string): Output video frame rate (default "none")
  • frame_mixer (string): Frame mixing function (default "none")
  • gamma (float): Gamma adjustment (from 0 to 16) (default 1)
  • gamut_mode (int): Gamut-mapping mode (from 0 to 8) (default perceptual)
    • clip (0) — Hard-clip (RGB per-channel)
    • perceptual (1) — Colorimetric soft clipping
    • relative (2) — Relative colorimetric clipping
    • saturation (3) — Saturation mapping (RGB -> RGB)
    • absolute (4) — Absolute colorimetric clipping
    • desaturate (5) — Colorimetrically desaturate colors towards white
    • darken (6) — Colorimetric clip with bias towards darkening image to fit gamut
    • warn (7) — Highlight out-of-gamut colors
    • linear (8) — Linearly reduce chromaticity to fit gamut
  • h (string): Output video frame height (default "ih")
  • hue (float): Hue shift (from -3.14159 to 3.14159) (default 0)
  • inputs (int): Number of inputs (from 1 to INT_MAX) (default 1)
  • inverse_tonemapping (boolean): Inverse tone mapping (range expansion) (default false)
  • lut_entries (int): Number of scaler LUT entries (from 0 to 256) (default 0)
  • minimum_peak (float): Peak detection minimum peak (from 0 to 100) (default 1)
  • normalize_sar (boolean): force SAR normalization to 1:1 by adjusting pos_x/y/w/h (default false)
  • pad_crop_ratio (float): ratio between padding and cropping when normalizing SAR (0=pad, 1=crop) (from 0 to 1) (default 0)
  • peak_detect (boolean): Enable dynamic peak detection for HDR tone-mapping (default true)
  • percentile (float): Peak detection percentile (from 0 to 100) (default 99.995)
  • polar_cutoff (float): Polar LUT cutoff (from 0 to 1) (default 0)
  • pos_h (string): Output video placement h (default "oh")
  • pos_w (string): Output video placement w (default "ow")
  • pos_x (string): Output video placement x (default "(ow-pw)/2")
  • pos_y (string): Output video placement y (default "(oh-ph)/2")
  • range (int): select color range (from -1 to 2) (default auto)
    • auto (-1) — keep the same color range
    • unspecified (0)
    • unknown (0)
    • limited (1)
    • tv (1)
    • mpeg (1)
    • full (2)
    • pc (2)
    • jpeg (2)
  • saturation (float): Saturation gain (from 0 to 16) (default 1)
  • scene_threshold_high (float): Scene change high threshold (from -1 to 100) (default 10)
  • scene_threshold_low (float): Scene change low threshold (from -1 to 100) (default 5.5)
  • sigmoid (boolean): Enable sigmoid upscaling (default true)
  • skip_aa (boolean): Skip anti-aliasing (default false)
  • smoothing_period (float): Peak detection smoothing period (from 0 to 1000) (default 100)
  • tonemapping (int): Tone-mapping algorithm (from 0 to 11) (default auto)
    • auto (0) — Automatic selection
    • clip (1) — No tone mapping (clip
    • st2094-40 (2) — SMPTE ST 2094-40
    • st2094-10 (3) — SMPTE ST 2094-10
    • bt.2390 (4) — ITU-R BT.2390 EETF
    • bt.2446a (5) — ITU-R BT.2446 Method A
    • spline (6) — Single-pivot polynomial spline
    • reinhard (7) — Reinhard
    • mobius (8) — Mobius
    • hable (9) — Filmic tone-mapping (Hable)
    • gamma (10) — Gamma function with knee
    • linear (11) — Perceptually linear stretch
  • tonemapping_lut_size (int): Tone-mapping LUT size (from 2 to 1024) (default 256)
  • tonemapping_param (float): Tunable parameter for some tone-mapping functions (from 0 to 100) (default 0)
  • upscaler (string): Upscaler function (default "spline36")
  • w (string): Output video frame width (default "iw")

See FFix.Filter for pipelines, expressions, and output handling.

libvmaf(video_0, video_1, options \\ [])

@spec libvmaf(FFix.Graph.StreamRef.t(), FFix.Graph.StreamRef.t(),
  eof_action: String.t() | atom() | number(),
  feature: String.t() | atom() | number(),
  log_fmt: String.t() | atom() | number(),
  log_path: String.t() | atom() | number(),
  model: String.t() | atom() | number(),
  n_subsample: String.t() | atom() | number(),
  n_threads: String.t() | atom() | number(),
  pool: String.t() | atom() | number(),
  repeatlast: String.t() | atom() | number(),
  shortest: String.t() | atom() | number(),
  ts_sync_mode: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Calculate the VMAF between two video streams.

Options

  • eof_action (int): Action to take when encountering EOF from secondary input (from 0 to 2) (default repeat)
    • repeat (0) — Repeat the previous frame.
    • endall (1) — End both streams.
    • pass (2) — Pass through the main input.
  • feature (string): Set the feature to be used for computing vmaf.
  • log_fmt (string): Set the format of the log (csv, json, xml, or sub). (default "xml")
  • log_path (string): Set the file path to be used to write log.
  • model (string): Set the model to be used for computing vmaf. (default "version=vmaf_v0.6.1")
  • n_subsample (int): Set interval for frame subsampling used when computing vmaf. (from 1 to UINT32_MAX) (default 1)
  • n_threads (int): Set number of threads to be used when computing vmaf. (from 0 to UINT32_MAX) (default 0)
  • pool (string): Set the pool method to be used for computing vmaf.
  • repeatlast (boolean): extend last frame of secondary streams beyond EOF (default true)
  • shortest (boolean): force termination when the shortest input terminates (default false)
  • ts_sync_mode (int): How strictly to sync streams based on secondary input timestamps (from 0 to 1) (default default)
    • default (0) — Frame from secondary input with the nearest lower or equal timestamp to the primary input frame
    • nearest (1) — Frame from secondary input with the absolute nearest timestamp to the primary input frame

See FFix.Filter for pipelines, expressions, and output handling.

limitdiff(streams, options \\ [])

@spec limitdiff([FFix.Graph.StreamRef.t()],
  elasticity: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  planes: String.t() | atom() | number(),
  reference: String.t() | atom() | number(),
  threshold: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Apply filtering with limiting difference.

Options

  • elasticity (float): set the elasticity (from 0 to 10) (default 2)
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • planes (int): set the planes to filter (from 0 to 15) (default 15)
  • reference (boolean): enable reference stream (default false)
  • threshold (float): set the threshold (from 0 to 1) (default 0.00392157)

See FFix.Filter for pipelines, expressions, and output handling.

limiter(video_0, options \\ [])

@spec limiter(FFix.Graph.StreamRef.t(),
  enable: String.t() | atom() | number(),
  max: String.t() | atom() | number(),
  min: String.t() | atom() | number(),
  planes: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Limit pixels components to the specified range.

Options

  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • max (int): set max value (from 0 to 65535) (default 65535)
  • min (int): set min value (from 0 to 65535) (default 0)
  • planes (int): set planes (from 0 to 15) (default 15)

See FFix.Filter for pipelines, expressions, and output handling.

loop(video_0, options \\ [])

@spec loop(FFix.Graph.StreamRef.t(),
  loop: String.t() | atom() | number(),
  size: String.t() | atom() | number(),
  start: String.t() | atom() | number(),
  time: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Loop video frames.

Options

  • loop (int): number of loops (from -1 to INT_MAX) (default 0)
  • size (int64): max number of frames to loop (from 0 to 32767) (default 0)
  • start (int64): set the loop start frame (from -1 to I64_MAX) (default 0)
  • time (duration): set the loop start time (default INT64_MAX)

See FFix.Filter for pipelines, expressions, and output handling.

lumakey(video_0, options \\ [])

@spec lumakey(FFix.Graph.StreamRef.t(),
  enable: String.t() | atom() | number(),
  softness: String.t() | atom() | number(),
  threshold: String.t() | atom() | number(),
  tolerance: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Turns a certain luma into transparency.

Options

  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • softness (double): set the softness value (from 0 to 1) (default 0)
  • threshold (double): set the threshold value (from 0 to 1) (default 0)
  • tolerance (double): set the tolerance value (from 0 to 1) (default 0.01)

See FFix.Filter for pipelines, expressions, and output handling.

lut1d(video_0, options \\ [])

@spec lut1d(FFix.Graph.StreamRef.t(),
  enable: String.t() | atom() | number(),
  file: String.t() | atom() | number(),
  interp: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Adjust colors using a 1D LUT.

Options

  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • file (string): set 1D LUT file name
  • interp (int): select interpolation mode (from 0 to 4) (default linear)
    • nearest (0) — use values from the nearest defined points
    • linear (1) — use values from the linear interpolation
    • cosine (3) — use values from the cosine interpolation
    • cubic (2) — use values from the cubic interpolation
    • spline (4) — use values from the spline interpolation

See FFix.Filter for pipelines, expressions, and output handling.

lut2(video_0, video_1, options \\ [])

@spec lut2(FFix.Graph.StreamRef.t(), FFix.Graph.StreamRef.t(),
  c0: String.t() | atom() | number(),
  c1: String.t() | atom() | number(),
  c2: String.t() | atom() | number(),
  c3: String.t() | atom() | number(),
  d: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  eof_action: String.t() | atom() | number(),
  repeatlast: String.t() | atom() | number(),
  shortest: String.t() | atom() | number(),
  ts_sync_mode: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Compute and apply a lookup table from two video inputs.

Options

  • c0 (string): set component #0 expression (default "x")
  • c1 (string): set component #1 expression (default "x")
  • c2 (string): set component #2 expression (default "x")
  • c3 (string): set component #3 expression (default "x")
  • d (int): set output depth (from 0 to 16) (default 0)
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • eof_action (int): Action to take when encountering EOF from secondary input (from 0 to 2) (default repeat)
    • repeat (0) — Repeat the previous frame.
    • endall (1) — End both streams.
    • pass (2) — Pass through the main input.
  • repeatlast (boolean): extend last frame of secondary streams beyond EOF (default true)
  • shortest (boolean): force termination when the shortest input terminates (default false)
  • ts_sync_mode (int): How strictly to sync streams based on secondary input timestamps (from 0 to 1) (default default)
    • default (0) — Frame from secondary input with the nearest lower or equal timestamp to the primary input frame
    • nearest (1) — Frame from secondary input with the absolute nearest timestamp to the primary input frame

See FFix.Filter for pipelines, expressions, and output handling.

lut3d(video_0, options \\ [])

@spec lut3d(FFix.Graph.StreamRef.t(),
  clut: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  file: String.t() | atom() | number(),
  interp: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Adjust colors using a 3D LUT.

Options

  • clut (int): when to process CLUT (from 0 to 1) (default all)
    • first (0) — process only first CLUT, ignore rest
    • all (1) — process all CLUTs
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • file (string): set 3D LUT file name
  • interp (int): select interpolation mode (from 0 to 4) (default tetrahedral)
    • nearest (0) — use values from the nearest defined points
    • trilinear (1) — interpolate values using the 8 points defining a cube
    • tetrahedral (2) — interpolate values using a tetrahedron
    • pyramid (3) — interpolate values using a pyramid
    • prism (4) — interpolate values using a prism

See FFix.Filter for pipelines, expressions, and output handling.

lut(video_0, options \\ [])

@spec lut(FFix.Graph.StreamRef.t(),
  a: String.t() | atom() | number(),
  b: String.t() | atom() | number(),
  c0: String.t() | atom() | number(),
  c1: String.t() | atom() | number(),
  c2: String.t() | atom() | number(),
  c3: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  g: String.t() | atom() | number(),
  r: String.t() | atom() | number(),
  u: String.t() | atom() | number(),
  v: String.t() | atom() | number(),
  y: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Compute and apply a lookup table to the RGB/YUV input video.

Options

  • a (string): set A expression (default "clipval")
  • b (string): set B expression (default "clipval")
  • c0 (string): set component #0 expression (default "clipval")
  • c1 (string): set component #1 expression (default "clipval")
  • c2 (string): set component #2 expression (default "clipval")
  • c3 (string): set component #3 expression (default "clipval")
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • g (string): set G expression (default "clipval")
  • r (string): set R expression (default "clipval")
  • u (string): set U expression (default "clipval")
  • v (string): set V expression (default "clipval")
  • y (string): set Y expression (default "clipval")

See FFix.Filter for pipelines, expressions, and output handling.

lutrgb(video_0, options \\ [])

@spec lutrgb(FFix.Graph.StreamRef.t(),
  a: String.t() | atom() | number(),
  b: String.t() | atom() | number(),
  c0: String.t() | atom() | number(),
  c1: String.t() | atom() | number(),
  c2: String.t() | atom() | number(),
  c3: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  g: String.t() | atom() | number(),
  r: String.t() | atom() | number(),
  u: String.t() | atom() | number(),
  v: String.t() | atom() | number(),
  y: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Compute and apply a lookup table to the RGB input video.

Options

  • a (string): set A expression (default "clipval")
  • b (string): set B expression (default "clipval")
  • c0 (string): set component #0 expression (default "clipval")
  • c1 (string): set component #1 expression (default "clipval")
  • c2 (string): set component #2 expression (default "clipval")
  • c3 (string): set component #3 expression (default "clipval")
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • g (string): set G expression (default "clipval")
  • r (string): set R expression (default "clipval")
  • u (string): set U expression (default "clipval")
  • v (string): set V expression (default "clipval")
  • y (string): set Y expression (default "clipval")

See FFix.Filter for pipelines, expressions, and output handling.

lutyuv(video_0, options \\ [])

@spec lutyuv(FFix.Graph.StreamRef.t(),
  a: String.t() | atom() | number(),
  b: String.t() | atom() | number(),
  c0: String.t() | atom() | number(),
  c1: String.t() | atom() | number(),
  c2: String.t() | atom() | number(),
  c3: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  g: String.t() | atom() | number(),
  r: String.t() | atom() | number(),
  u: String.t() | atom() | number(),
  v: String.t() | atom() | number(),
  y: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Compute and apply a lookup table to the YUV input video.

Options

  • a (string): set A expression (default "clipval")
  • b (string): set B expression (default "clipval")
  • c0 (string): set component #0 expression (default "clipval")
  • c1 (string): set component #1 expression (default "clipval")
  • c2 (string): set component #2 expression (default "clipval")
  • c3 (string): set component #3 expression (default "clipval")
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • g (string): set G expression (default "clipval")
  • r (string): set R expression (default "clipval")
  • u (string): set U expression (default "clipval")
  • v (string): set V expression (default "clipval")
  • y (string): set Y expression (default "clipval")

See FFix.Filter for pipelines, expressions, and output handling.

maskedclamp(video_0, video_1, video_2, options \\ [])

@spec maskedclamp(
  FFix.Graph.StreamRef.t(),
  FFix.Graph.StreamRef.t(),
  FFix.Graph.StreamRef.t(),
  enable: String.t() | atom() | number(),
  overshoot: String.t() | atom() | number(),
  planes: String.t() | atom() | number(),
  undershoot: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Clamp first stream with second stream and third stream.

Options

  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • overshoot (int): set overshoot (from 0 to 65535) (default 0)
  • planes (int): set planes (from 0 to 15) (default 15)
  • undershoot (int): set undershoot (from 0 to 65535) (default 0)

See FFix.Filter for pipelines, expressions, and output handling.

maskedmax(video_0, video_1, video_2, options \\ [])

@spec maskedmax(
  FFix.Graph.StreamRef.t(),
  FFix.Graph.StreamRef.t(),
  FFix.Graph.StreamRef.t(),
  enable: String.t() | atom() | number(),
  planes: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Apply filtering with maximum difference of two streams.

Options

  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • planes (int): set planes (from 0 to 15) (default 15)

See FFix.Filter for pipelines, expressions, and output handling.

maskedmerge(video_0, video_1, video_2, options \\ [])

@spec maskedmerge(
  FFix.Graph.StreamRef.t(),
  FFix.Graph.StreamRef.t(),
  FFix.Graph.StreamRef.t(),
  enable: String.t() | atom() | number(),
  planes: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Merge first stream with second stream using third stream as mask.

Options

  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • planes (int): set planes (from 0 to 15) (default 15)

See FFix.Filter for pipelines, expressions, and output handling.

maskedmin(video_0, video_1, video_2, options \\ [])

@spec maskedmin(
  FFix.Graph.StreamRef.t(),
  FFix.Graph.StreamRef.t(),
  FFix.Graph.StreamRef.t(),
  enable: String.t() | atom() | number(),
  planes: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Apply filtering with minimum difference of two streams.

Options

  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • planes (int): set planes (from 0 to 15) (default 15)

See FFix.Filter for pipelines, expressions, and output handling.

maskedthreshold(video_0, video_1, options \\ [])

@spec maskedthreshold(FFix.Graph.StreamRef.t(), FFix.Graph.StreamRef.t(),
  enable: String.t() | atom() | number(),
  mode: String.t() | atom() | number(),
  planes: String.t() | atom() | number(),
  threshold: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Pick pixels comparing absolute difference of two streams with threshold.

Options

  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • mode (int): set mode (from 0 to 1) (default abs)
    • abs (0)
    • diff (1)
  • planes (int): set planes (from 0 to 15) (default 15)
  • threshold (int): set threshold (from 0 to 65535) (default 1)

See FFix.Filter for pipelines, expressions, and output handling.

maskfun(video_0, options \\ [])

@spec maskfun(FFix.Graph.StreamRef.t(),
  enable: String.t() | atom() | number(),
  fill: String.t() | atom() | number(),
  high: String.t() | atom() | number(),
  low: String.t() | atom() | number(),
  planes: String.t() | atom() | number(),
  sum: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Create Mask.

Options

  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • fill (int): set fill value (from 0 to 65535) (default 0)
  • high (int): set high threshold (from 0 to 65535) (default 10)
  • low (int): set low threshold (from 0 to 65535) (default 10)
  • planes (int): set planes (from 0 to 15) (default 15)
  • sum (int): set sum value (from 0 to 65535) (default 10)

See FFix.Filter for pipelines, expressions, and output handling.

mcdeint(video_0, options \\ [])

@spec mcdeint(FFix.Graph.StreamRef.t(),
  mode: String.t() | atom() | number(),
  parity: String.t() | atom() | number(),
  qp: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Apply motion compensating deinterlacing.

Options

  • mode (int): set mode (from 0 to 3) (default fast)
    • fast (0)
    • medium (1)
    • slow (2)
    • extra_slow (3)
  • parity (int): set the assumed picture field parity (from -1 to 1) (default bff)
    • tff (0) — assume top field first
    • bff (1) — assume bottom field first
  • qp (int): set qp (from INT_MIN to INT_MAX) (default 1)

See FFix.Filter for pipelines, expressions, and output handling.

median(video_0, options \\ [])

@spec median(FFix.Graph.StreamRef.t(),
  enable: String.t() | atom() | number(),
  percentile: String.t() | atom() | number(),
  planes: String.t() | atom() | number(),
  radius: String.t() | atom() | number(),
  radiusV: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Apply Median filter.

Options

  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • percentile (float): set median percentile (from 0 to 1) (default 0.5)
  • planes (int): set planes to filter (from 0 to 15) (default 15)
  • radius (int): set median radius (from 1 to 127) (default 1)
  • radiusV (int): set median vertical radius (from 0 to 127) (default 0)

See FFix.Filter for pipelines, expressions, and output handling.

mergeplanes(streams, options \\ [])

@spec mergeplanes([FFix.Graph.StreamRef.t()],
  format: String.t() | atom() | number(),
  map0p: String.t() | atom() | number(),
  map0s: String.t() | atom() | number(),
  map1p: String.t() | atom() | number(),
  map1s: String.t() | atom() | number(),
  map2p: String.t() | atom() | number(),
  map2s: String.t() | atom() | number(),
  map3p: String.t() | atom() | number(),
  map3s: String.t() | atom() | number(),
  mapping: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Merge planes.

Options

  • format (pix_fmt): set output pixel format (default yuva444p)
  • map0p (int): set 1st input to output plane mapping (from 0 to 3) (default 0)
  • map0s (int): set 1st input to output stream mapping (from 0 to 3) (default 0)
  • map1p (int): set 2nd input to output plane mapping (from 0 to 3) (default 0)
  • map1s (int): set 2nd input to output stream mapping (from 0 to 3) (default 0)
  • map2p (int): set 3rd input to output plane mapping (from 0 to 3) (default 0)
  • map2s (int): set 3rd input to output stream mapping (from 0 to 3) (default 0)
  • map3p (int): set 4th input to output plane mapping (from 0 to 3) (default 0)
  • map3s (int): set 4th input to output stream mapping (from 0 to 3) (default 0)
  • mapping (int): set input to output plane mapping (from -1 to 8.58993e+08) (default -1)

See FFix.Filter for pipelines, expressions, and output handling.

mestimate(video_0, options \\ [])

@spec mestimate(FFix.Graph.StreamRef.t(),
  mb_size: String.t() | atom() | number(),
  method: String.t() | atom() | number(),
  search_param: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Generate motion vectors.

Options

  • mb_size (int): macroblock size (from 8 to INT_MAX) (default 16)
  • method (int): motion estimation method (from 1 to 9) (default esa)
    • esa (1) — exhaustive search
    • tss (2) — three step search
    • tdls (3) — two dimensional logarithmic search
    • ntss (4) — new three step search
    • fss (5) — four step search
    • ds (6) — diamond search
    • hexbs (7) — hexagon-based search
    • epzs (8) — enhanced predictive zonal search
    • umh (9) — uneven multi-hexagon search
  • search_param (int): search parameter (from 4 to INT_MAX) (default 7)

See FFix.Filter for pipelines, expressions, and output handling.

metadata(video_0, options \\ [])

@spec metadata(FFix.Graph.StreamRef.t(),
  direct: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  expr: String.t() | atom() | number(),
  file: String.t() | atom() | number(),
  function: String.t() | atom() | number(),
  key: String.t() | atom() | number(),
  mode: String.t() | atom() | number(),
  value: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Manipulate video frame metadata.

Options

  • direct (boolean): reduce buffering when printing to user-set file or pipe (default false)
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • expr (string): set expression for expr function
  • file (string): set file where to print metadata information
  • function (int): function for comparing values (from 0 to 6) (default same_str)
    • same_str (0)
    • starts_with (1)
    • less (2)
    • equal (3)
    • greater (4)
    • expr (5)
    • ends_with (6)
  • key (string): set metadata key
  • mode (int): set a mode of operation (from 0 to 4) (default select)
    • select (0) — select frame
    • add (1) — add new metadata
    • modify (2) — modify metadata
    • delete (3) — delete metadata
    • print (4) — print metadata
  • value (string): set metadata value

See FFix.Filter for pipelines, expressions, and output handling.

midequalizer(video_0, video_1, options \\ [])

@spec midequalizer(FFix.Graph.StreamRef.t(), FFix.Graph.StreamRef.t(),
  enable: String.t() | atom() | number(),
  planes: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Apply Midway Equalization.

Options

  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • planes (int): set planes (from 0 to 15) (default 15)

See FFix.Filter for pipelines, expressions, and output handling.

minterpolate(video_0, options \\ [])

@spec minterpolate(FFix.Graph.StreamRef.t(),
  fps: String.t() | atom() | number(),
  mb_size: String.t() | atom() | number(),
  mc_mode: String.t() | atom() | number(),
  me: String.t() | atom() | number(),
  me_mode: String.t() | atom() | number(),
  mi_mode: String.t() | atom() | number(),
  scd: String.t() | atom() | number(),
  scd_threshold: String.t() | atom() | number(),
  search_param: String.t() | atom() | number(),
  vsbmc: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Frame rate conversion using Motion Interpolation.

Options

  • fps (video_rate): output's frame rate (default "60")
  • mb_size (int): macroblock size (from 4 to 16) (default 16)
  • mc_mode (int): motion compensation mode (from 0 to 1) (default obmc)
    • obmc (0) — overlapped block motion compensation
    • aobmc (1) — adaptive overlapped block motion compensation
  • me (int): motion estimation method (from 1 to 9) (default epzs)
    • esa (1) — exhaustive search
    • tss (2) — three step search
    • tdls (3) — two dimensional logarithmic search
    • ntss (4) — new three step search
    • fss (5) — four step search
    • ds (6) — diamond search
    • hexbs (7) — hexagon-based search
    • epzs (8) — enhanced predictive zonal search
    • umh (9) — uneven multi-hexagon search
  • me_mode (int): motion estimation mode (from 0 to 1) (default bilat)
    • bidir (0) — bidirectional motion estimation
    • bilat (1) — bilateral motion estimation
  • mi_mode (int): motion interpolation mode (from 0 to 2) (default mci)
    • dup (0) — duplicate frames
    • blend (1) — blend frames
    • mci (2) — motion compensated interpolation
  • scd (int): scene change detection method (from 0 to 1) (default fdiff)
    • none (0) — disable detection
    • fdiff (1) — frame difference
  • scd_threshold (double): scene change threshold (from 0 to 100) (default 10)
  • search_param (int): search parameter (from 4 to INT_MAX) (default 32)
  • vsbmc (int): variable-size block motion compensation (from 0 to 1) (default 0)

See FFix.Filter for pipelines, expressions, and output handling.

mix(streams, options \\ [])

@spec mix([FFix.Graph.StreamRef.t()],
  duration: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  inputs: String.t() | atom() | number(),
  planes: (String.t() | atom() | number()) | [String.t() | atom() | number()],
  scale: String.t() | atom() | number(),
  weights: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Mix video inputs.

Options

  • duration (int): how to determine end of stream (from 0 to 2) (default longest)
    • longest (0) — Duration of longest input
    • shortest (1) — Duration of shortest input
    • first (2) — Duration of first input
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • inputs (int): set number of inputs (from 2 to 32767) (default 2)
  • planes (flags): set what planes to filter (default F)
  • scale (float): set scale (from 0 to 32767) (default 0)
  • weights (string): set weight for each input (default "1 1")

See FFix.Filter for pipelines, expressions, and output handling.

monochrome(video_0, options \\ [])

@spec monochrome(FFix.Graph.StreamRef.t(),
  cb: String.t() | atom() | number(),
  cr: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  high: String.t() | atom() | number(),
  size: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Convert video to gray using custom color filter.

Options

  • cb (float): set the chroma blue spot (from -1 to 1) (default 0)
  • cr (float): set the chroma red spot (from -1 to 1) (default 0)
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • high (float): set the highlights strength (from 0 to 1) (default 0)
  • size (float): set the color filter size (from 0.1 to 10) (default 1)

See FFix.Filter for pipelines, expressions, and output handling.

morpho(video_0, video_1, options \\ [])

@spec morpho(FFix.Graph.StreamRef.t(), FFix.Graph.StreamRef.t(),
  enable: String.t() | atom() | number(),
  eof_action: String.t() | atom() | number(),
  mode: String.t() | atom() | number(),
  planes: String.t() | atom() | number(),
  repeatlast: String.t() | atom() | number(),
  shortest: String.t() | atom() | number(),
  structure: String.t() | atom() | number(),
  ts_sync_mode: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Apply Morphological filter.

Options

  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • eof_action (int): Action to take when encountering EOF from secondary input (from 0 to 2) (default repeat)
    • repeat (0) — Repeat the previous frame.
    • endall (1) — End both streams.
    • pass (2) — Pass through the main input.
  • mode (int): set morphological transform (from 0 to 6) (default erode)
    • erode (0)
    • dilate (1)
    • open (2)
    • close (3)
    • gradient (4)
    • tophat (5)
    • blackhat (6)
  • planes (int): set planes to filter (from 0 to 15) (default 7)
  • repeatlast (boolean): extend last frame of secondary streams beyond EOF (default true)
  • shortest (boolean): force termination when the shortest input terminates (default false)
  • structure (int): when to process structures (from 0 to 1) (default all)
    • first (0) — process only first structure, ignore rest
    • all (1) — process all structure
  • ts_sync_mode (int): How strictly to sync streams based on secondary input timestamps (from 0 to 1) (default default)
    • default (0) — Frame from secondary input with the nearest lower or equal timestamp to the primary input frame
    • nearest (1) — Frame from secondary input with the absolute nearest timestamp to the primary input frame

See FFix.Filter for pipelines, expressions, and output handling.

mpdecimate(video_0, options \\ [])

@spec mpdecimate(FFix.Graph.StreamRef.t(),
  frac: String.t() | atom() | number(),
  hi: String.t() | atom() | number(),
  keep: String.t() | atom() | number(),
  lo: String.t() | atom() | number(),
  max: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Remove near-duplicate frames.

Options

  • frac (float): set fraction dropping threshold (from 0 to 1) (default 0.33)
  • hi (int): set high dropping threshold (from INT_MIN to INT_MAX) (default 768)
  • keep (int): set the number of similar consecutive frames to be kept before starting to drop similar frames (from 0 to INT_MAX) (default 0)
  • lo (int): set low dropping threshold (from INT_MIN to INT_MAX) (default 320)
  • max (int): set the maximum number of consecutive dropped frames (positive), or the minimum interval between dropped frames (negative) (from INT_MIN to INT_MAX) (default 0)

See FFix.Filter for pipelines, expressions, and output handling.

msad(video_0, video_1, options \\ [])

@spec msad(FFix.Graph.StreamRef.t(), FFix.Graph.StreamRef.t(),
  enable: String.t() | atom() | number(),
  eof_action: String.t() | atom() | number(),
  repeatlast: String.t() | atom() | number(),
  shortest: String.t() | atom() | number(),
  ts_sync_mode: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Calculate the MSAD between two video streams.

Options

  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • eof_action (int): Action to take when encountering EOF from secondary input (from 0 to 2) (default repeat)
    • repeat (0) — Repeat the previous frame.
    • endall (1) — End both streams.
    • pass (2) — Pass through the main input.
  • repeatlast (boolean): extend last frame of secondary streams beyond EOF (default true)
  • shortest (boolean): force termination when the shortest input terminates (default false)
  • ts_sync_mode (int): How strictly to sync streams based on secondary input timestamps (from 0 to 1) (default default)
    • default (0) — Frame from secondary input with the nearest lower or equal timestamp to the primary input frame
    • nearest (1) — Frame from secondary input with the absolute nearest timestamp to the primary input frame

See FFix.Filter for pipelines, expressions, and output handling.

multiply(video_0, video_1, options \\ [])

@spec multiply(FFix.Graph.StreamRef.t(), FFix.Graph.StreamRef.t(),
  enable: String.t() | atom() | number(),
  offset: String.t() | atom() | number(),
  planes: (String.t() | atom() | number()) | [String.t() | atom() | number()],
  scale: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Multiply first video stream with second video stream.

Options

  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • offset (float): set offset (from -1 to 1) (default 0.5)
  • planes (flags): set planes (default F)
  • scale (float): set scale (from 0 to 9) (default 1)

See FFix.Filter for pipelines, expressions, and output handling.

negate(video_0, options \\ [])

@spec negate(FFix.Graph.StreamRef.t(),
  components:
    (String.t() | atom() | number()) | [String.t() | atom() | number()],
  enable: String.t() | atom() | number(),
  negate_alpha: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Negate input video.

Options

  • components (flags): set components to negate (default y+u+v+r+g+b)
    • y — set luma component
    • u — set u component
    • v — set v component
    • r — set red component
    • g — set green component
    • b — set blue component
    • a — set alpha component
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • negate_alpha (boolean): (default false)

See FFix.Filter for pipelines, expressions, and output handling.

nlmeans(video_0, options \\ [])

@spec nlmeans(FFix.Graph.StreamRef.t(),
  enable: String.t() | atom() | number(),
  p: String.t() | atom() | number(),
  pc: String.t() | atom() | number(),
  r: String.t() | atom() | number(),
  rc: String.t() | atom() | number(),
  s: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Non-local means denoiser.

Options

  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • p (int): patch size (from 0 to 99) (default 7)
  • pc (int): patch size for chroma planes (from 0 to 99) (default 0)
  • r (int): research window (from 0 to 99) (default 15)
  • rc (int): research window for chroma planes (from 0 to 99) (default 0)
  • s (double): denoising strength (from 1 to 30) (default 1)

See FFix.Filter for pipelines, expressions, and output handling.

nlmeans_opencl(video_0, options \\ [])

@spec nlmeans_opencl(FFix.Graph.StreamRef.t(),
  p: String.t() | atom() | number(),
  pc: String.t() | atom() | number(),
  r: String.t() | atom() | number(),
  rc: String.t() | atom() | number(),
  s: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Non-local means denoiser through OpenCL

Options

  • p (int): patch size (from 0 to 99) (default 7)
  • pc (int): patch size for chroma planes (from 0 to 99) (default 0)
  • r (int): research window (from 0 to 99) (default 15)
  • rc (int): research window for chroma planes (from 0 to 99) (default 0)
  • s (double): denoising strength (from 1 to 30) (default 1)

See FFix.Filter for pipelines, expressions, and output handling.

nlmeans_vulkan(video_0, options \\ [])

@spec nlmeans_vulkan(FFix.Graph.StreamRef.t(),
  p: String.t() | atom() | number(),
  p1: String.t() | atom() | number(),
  p2: String.t() | atom() | number(),
  p3: String.t() | atom() | number(),
  p4: String.t() | atom() | number(),
  r: String.t() | atom() | number(),
  s: String.t() | atom() | number(),
  s1: String.t() | atom() | number(),
  s2: String.t() | atom() | number(),
  s3: String.t() | atom() | number(),
  s4: String.t() | atom() | number(),
  t: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Non-local means denoiser (Vulkan)

Options

  • p (int): patch size for all components (from 0 to 99) (default 7)
  • p1 (int): patch size for component 1 (from 0 to 99) (default 0)
  • p2 (int): patch size for component 2 (from 0 to 99) (default 0)
  • p3 (int): patch size for component 3 (from 0 to 99) (default 0)
  • p4 (int): patch size for component 4 (from 0 to 99) (default 0)
  • r (int): research window radius (from 0 to 99) (default 15)
  • s (double): denoising strength for all components (from 1 to 100) (default 1)
  • s1 (double): denoising strength for component 1 (from 1 to 100) (default 1)
  • s2 (double): denoising strength for component 2 (from 1 to 100) (default 1)
  • s3 (double): denoising strength for component 3 (from 1 to 100) (default 1)
  • s4 (double): denoising strength for component 4 (from 1 to 100) (default 1)
  • t (int): parallelism (from 1 to 168) (default 36)

See FFix.Filter for pipelines, expressions, and output handling.

nnedi(video_0, options \\ [])

@spec nnedi(FFix.Graph.StreamRef.t(),
  deint: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  etype: String.t() | atom() | number(),
  field: String.t() | atom() | number(),
  nns: String.t() | atom() | number(),
  nsize: String.t() | atom() | number(),
  planes: String.t() | atom() | number(),
  pscrn: String.t() | atom() | number(),
  qual: String.t() | atom() | number(),
  weights: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Apply neural network edge directed interpolation intra-only deinterlacer.

Options

  • deint (int): set which frames to deinterlace (from 0 to 1) (default all)
    • all (0) — deinterlace all frames
    • interlaced (1) — only deinterlace frames marked as interlaced
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • etype (int): set which set of weights to use in the predictor (from 0 to 1) (default a)
    • a (0) — weights trained to minimize absolute error
    • abs (0) — weights trained to minimize absolute error
    • s (1) — weights trained to minimize squared error
    • mse (1) — weights trained to minimize squared error
  • field (int): set mode of operation (from -2 to 3) (default a)
    • af (-2) — use frame flags, both fields
    • a (-1) — use frame flags, single field
    • t (0) — use top field only
    • b (1) — use bottom field only
    • tf (2) — use both fields, top first
    • bf (3) — use both fields, bottom first
  • nns (int): set number of neurons in predictor neural network (from 0 to 4) (default n32)
    • n16 (0)
    • n32 (1)
    • n64 (2)
    • n128 (3)
    • n256 (4)
  • nsize (int): set size of local neighborhood around each pixel, used by the predictor neural network (from 0 to 6) (default s32x4)
    • s8x6 (0)
    • s16x6 (1)
    • s32x6 (2)
    • s48x6 (3)
    • s8x4 (4)
    • s16x4 (5)
    • s32x4 (6)
  • planes (int): set which planes to process (from 0 to 15) (default 7)
  • pscrn (int): set prescreening (from 0 to 4) (default new)
    • none (0)
    • original (1)
    • new (2)
    • new2 (3)
    • new3 (4)
  • qual (int): set quality (from 1 to 2) (default fast)
    • fast (1)
    • slow (2)
  • weights (string): set weights file (default "nnedi3_weights.bin")

See FFix.Filter for pipelines, expressions, and output handling.

noformat(video_0, options \\ [])

@spec noformat(FFix.Graph.StreamRef.t(),
  color_ranges: String.t() | atom() | number(),
  color_spaces: String.t() | atom() | number(),
  pix_fmts: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Force libavfilter not to use any of the specified pixel formats for the input to the next filter.

Options

  • color_ranges (string): A '|'-separated list of color ranges
  • color_spaces (string): A '|'-separated list of color spaces
  • pix_fmts (string): A '|'-separated list of pixel formats

See FFix.Filter for pipelines, expressions, and output handling.

noise(video_0, options \\ [])

@spec noise(FFix.Graph.StreamRef.t(),
  all_flags:
    (String.t() | atom() | number()) | [String.t() | atom() | number()],
  all_seed: String.t() | atom() | number(),
  all_strength: String.t() | atom() | number(),
  allf: (String.t() | atom() | number()) | [String.t() | atom() | number()],
  alls: String.t() | atom() | number(),
  c0_flags: (String.t() | atom() | number()) | [String.t() | atom() | number()],
  c0_seed: String.t() | atom() | number(),
  c0_strength: String.t() | atom() | number(),
  c0f: (String.t() | atom() | number()) | [String.t() | atom() | number()],
  c0s: String.t() | atom() | number(),
  c1_flags: (String.t() | atom() | number()) | [String.t() | atom() | number()],
  c1_seed: String.t() | atom() | number(),
  c1_strength: String.t() | atom() | number(),
  c1f: (String.t() | atom() | number()) | [String.t() | atom() | number()],
  c1s: String.t() | atom() | number(),
  c2_flags: (String.t() | atom() | number()) | [String.t() | atom() | number()],
  c2_seed: String.t() | atom() | number(),
  c2_strength: String.t() | atom() | number(),
  c2f: (String.t() | atom() | number()) | [String.t() | atom() | number()],
  c2s: String.t() | atom() | number(),
  c3_flags: (String.t() | atom() | number()) | [String.t() | atom() | number()],
  c3_seed: String.t() | atom() | number(),
  c3_strength: String.t() | atom() | number(),
  c3f: (String.t() | atom() | number()) | [String.t() | atom() | number()],
  c3s: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Add noise.

Options

  • all_flags (flags): set component #0 flags (default 0)
    • a — averaged noise
    • p — (semi)regular pattern
    • t — temporal noise
    • u — uniform noise
  • all_seed (int): set component #0 noise seed (from -1 to INT_MAX) (default -1)
  • all_strength (int): set component #0 strength (from 0 to 100) (default 0)
  • allf (flags): set component #0 flags (default 0)
    • a — averaged noise
    • p — (semi)regular pattern
    • t — temporal noise
    • u — uniform noise
  • alls (int): set component #0 strength (from 0 to 100) (default 0)
  • c0_flags (flags): set component #0 flags (default 0)
    • a — averaged noise
    • p — (semi)regular pattern
    • t — temporal noise
    • u — uniform noise
  • c0_seed (int): set component #0 noise seed (from -1 to INT_MAX) (default -1)
  • c0_strength (int): set component #0 strength (from 0 to 100) (default 0)
  • c0f (flags): set component #0 flags (default 0)
    • a — averaged noise
    • p — (semi)regular pattern
    • t — temporal noise
    • u — uniform noise
  • c0s (int): set component #0 strength (from 0 to 100) (default 0)
  • c1_flags (flags): set component #1 flags (default 0)
    • a — averaged noise
    • p — (semi)regular pattern
    • t — temporal noise
    • u — uniform noise
  • c1_seed (int): set component #1 noise seed (from -1 to INT_MAX) (default -1)
  • c1_strength (int): set component #1 strength (from 0 to 100) (default 0)
  • c1f (flags): set component #1 flags (default 0)
    • a — averaged noise
    • p — (semi)regular pattern
    • t — temporal noise
    • u — uniform noise
  • c1s (int): set component #1 strength (from 0 to 100) (default 0)
  • c2_flags (flags): set component #2 flags (default 0)
    • a — averaged noise
    • p — (semi)regular pattern
    • t — temporal noise
    • u — uniform noise
  • c2_seed (int): set component #2 noise seed (from -1 to INT_MAX) (default -1)
  • c2_strength (int): set component #2 strength (from 0 to 100) (default 0)
  • c2f (flags): set component #2 flags (default 0)
    • a — averaged noise
    • p — (semi)regular pattern
    • t — temporal noise
    • u — uniform noise
  • c2s (int): set component #2 strength (from 0 to 100) (default 0)
  • c3_flags (flags): set component #3 flags (default 0)
    • a — averaged noise
    • p — (semi)regular pattern
    • t — temporal noise
    • u — uniform noise
  • c3_seed (int): set component #3 noise seed (from -1 to INT_MAX) (default -1)
  • c3_strength (int): set component #3 strength (from 0 to 100) (default 0)
  • c3f (flags): set component #3 flags (default 0)
    • a — averaged noise
    • p — (semi)regular pattern
    • t — temporal noise
    • u — uniform noise
  • c3s (int): set component #3 strength (from 0 to 100) (default 0)
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero

See FFix.Filter for pipelines, expressions, and output handling.

normalize(video_0, options \\ [])

@spec normalize(FFix.Graph.StreamRef.t(),
  blackpt: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  independence: String.t() | atom() | number(),
  smoothing: String.t() | atom() | number(),
  strength: String.t() | atom() | number(),
  whitept: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Normalize RGB video.

Options

  • blackpt (color): output color to which darkest input color is mapped (default "black")
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • independence (float): proportion of independent to linked channel normalization (from 0 to 1) (default 1)
  • smoothing (int): amount of temporal smoothing of the input range, to reduce flicker (from 0 to 2.68435e+08) (default 0)
  • strength (float): strength of filter, from no effect to full normalization (from 0 to 1) (default 1)
  • whitept (color): output color to which brightest input color is mapped (default "white")

See FFix.Filter for pipelines, expressions, and output handling.

null(video_0, options \\ [])

Pass the source unchanged to the output.

Options

See FFix.Filter for pipelines, expressions, and output handling.

ocr(video_0, options \\ [])

@spec ocr(FFix.Graph.StreamRef.t(),
  blacklist: String.t() | atom() | number(),
  datapath: String.t() | atom() | number(),
  language: String.t() | atom() | number(),
  whitelist: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Optical Character Recognition.

Options

  • blacklist (string): set character blacklist (default "")
  • datapath (string): set datapath
  • language (string): set language (default "eng")
  • whitelist (string): set character whitelist (default "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ.:;,-+_!?"'[]{}()<>|/\=*&%$#@!~ ")

See FFix.Filter for pipelines, expressions, and output handling.

oscilloscope(video_0, options \\ [])

@spec oscilloscope(FFix.Graph.StreamRef.t(),
  c: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  g: String.t() | atom() | number(),
  o: String.t() | atom() | number(),
  s: String.t() | atom() | number(),
  sc: String.t() | atom() | number(),
  st: String.t() | atom() | number(),
  t: String.t() | atom() | number(),
  th: String.t() | atom() | number(),
  tw: String.t() | atom() | number(),
  tx: String.t() | atom() | number(),
  ty: String.t() | atom() | number(),
  x: String.t() | atom() | number(),
  y: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

2D Video Oscilloscope.

Options

  • c (int): set components to trace (from 0 to 15) (default 7)
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • g (boolean): draw trace grid (default true)
  • o (float): set trace opacity (from 0 to 1) (default 0.8)
  • s (float): set scope size (from 0 to 1) (default 0.8)
  • sc (boolean): draw scope (default true)
  • st (boolean): draw statistics (default true)
  • t (float): set scope tilt (from 0 to 1) (default 0.5)
  • th (float): set trace height (from 0.1 to 1) (default 0.3)
  • tw (float): set trace width (from 0.1 to 1) (default 0.8)
  • tx (float): set trace x position (from 0 to 1) (default 0.5)
  • ty (float): set trace y position (from 0 to 1) (default 0.9)
  • x (float): set scope x position (from 0 to 1) (default 0.5)
  • y (float): set scope y position (from 0 to 1) (default 0.5)

See FFix.Filter for pipelines, expressions, and output handling.

overlay(video_0, video_1, options \\ [])

@spec overlay(FFix.Graph.StreamRef.t(), FFix.Graph.StreamRef.t(),
  alpha: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  eof_action: String.t() | atom() | number(),
  eval: String.t() | atom() | number(),
  format: String.t() | atom() | number(),
  repeatlast: String.t() | atom() | number(),
  shortest: String.t() | atom() | number(),
  ts_sync_mode: String.t() | atom() | number(),
  x: String.t() | atom() | number(),
  y: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Overlay a video source on top of the input.

Example

FFix.Filter.overlay(background, logo, x: 20, y: 20)

Options

  • alpha (int): alpha format (from 0 to 1) (default straight)
    • straight (0)
    • premultiplied (1)
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • eof_action (int): Action to take when encountering EOF from secondary input (from 0 to 2) (default repeat)
    • repeat (0) — Repeat the previous frame.
    • endall (1) — End both streams.
    • pass (2) — Pass through the main input.
  • eval (int): specify when to evaluate expressions (from 0 to 1) (default frame)
    • init (0) — eval expressions once during initialization
    • frame (1) — eval expressions per-frame
  • format (int): set output format (from 0 to 8) (default yuv420)
    • yuv420 (0)
    • yuv420p10 (1)
    • yuv422 (2)
    • yuv422p10 (3)
    • yuv444 (4)
    • yuv444p10 (5)
    • rgb (6)
    • gbrp (7)
    • auto (8)
  • repeatlast (boolean): extend last frame of secondary streams beyond EOF (default true)
  • shortest (boolean): force termination when the shortest input terminates (default false)
  • ts_sync_mode (int): How strictly to sync streams based on secondary input timestamps (from 0 to 1) (default default)
    • default (0) — Frame from secondary input with the nearest lower or equal timestamp to the primary input frame
    • nearest (1) — Frame from secondary input with the absolute nearest timestamp to the primary input frame
  • x (string): set the x expression (default "0")
  • y (string): set the y expression (default "0")

See FFix.Filter for pipelines, expressions, and output handling.

overlay_opencl(video_0, video_1, options \\ [])

@spec overlay_opencl(FFix.Graph.StreamRef.t(), FFix.Graph.StreamRef.t(),
  x: String.t() | atom() | number(),
  y: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Overlay one video on top of another

Options

  • x (int): Overlay x position (from 0 to INT_MAX) (default 0)
  • y (int): Overlay y position (from 0 to INT_MAX) (default 0)

See FFix.Filter for pipelines, expressions, and output handling.

overlay_qsv(video_0, video_1, options \\ [])

@spec overlay_qsv(FFix.Graph.StreamRef.t(), FFix.Graph.StreamRef.t(),
  alpha: String.t() | atom() | number(),
  eof_action: String.t() | atom() | number(),
  h: String.t() | atom() | number(),
  repeatlast: String.t() | atom() | number(),
  shortest: String.t() | atom() | number(),
  ts_sync_mode: String.t() | atom() | number(),
  w: String.t() | atom() | number(),
  x: String.t() | atom() | number(),
  y: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Quick Sync Video overlay.

Options

  • alpha (int): Overlay global alpha (from 0 to 255) (default 255)
  • eof_action (int): Action to take when encountering EOF from secondary input (from 0 to 2) (default repeat)
    • repeat (0) — Repeat the previous frame.
    • endall (1) — End both streams.
    • pass (2) — Pass through the main input.
  • h (string): Overlay height (default "overlay_ih*w/overlay_iw")
  • repeatlast (boolean): extend last frame of secondary streams beyond EOF (default true)
  • shortest (boolean): force termination when the shortest input terminates (default false)
  • ts_sync_mode (int): How strictly to sync streams based on secondary input timestamps (from 0 to 1) (default default)
    • default (0) — Frame from secondary input with the nearest lower or equal timestamp to the primary input frame
    • nearest (1) — Frame from secondary input with the absolute nearest timestamp to the primary input frame
  • w (string): Overlay width (default "overlay_iw")
  • x (string): Overlay x position (default "0")
  • y (string): Overlay y position (default "0")

See FFix.Filter for pipelines, expressions, and output handling.

overlay_vaapi(video_0, video_1, options \\ [])

@spec overlay_vaapi(FFix.Graph.StreamRef.t(), FFix.Graph.StreamRef.t(),
  alpha: String.t() | atom() | number(),
  eof_action: String.t() | atom() | number(),
  h: String.t() | atom() | number(),
  repeatlast: String.t() | atom() | number(),
  shortest: String.t() | atom() | number(),
  ts_sync_mode: String.t() | atom() | number(),
  w: String.t() | atom() | number(),
  x: String.t() | atom() | number(),
  y: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Overlay one video on top of another

Options

  • alpha (float): Overlay global alpha (from 0 to 1) (default 1)
  • eof_action (int): Action to take when encountering EOF from secondary input (from 0 to 2) (default repeat)
    • repeat (0) — Repeat the previous frame.
    • endall (1) — End both streams.
    • pass (2) — Pass through the main input.
  • h (string): Overlay height (default "overlay_ih*w/overlay_iw")
  • repeatlast (boolean): extend last frame of secondary streams beyond EOF (default true)
  • shortest (boolean): force termination when the shortest input terminates (default false)
  • ts_sync_mode (int): How strictly to sync streams based on secondary input timestamps (from 0 to 1) (default default)
    • default (0) — Frame from secondary input with the nearest lower or equal timestamp to the primary input frame
    • nearest (1) — Frame from secondary input with the absolute nearest timestamp to the primary input frame
  • w (string): Overlay width (default "overlay_iw")
  • x (string): Overlay x position (default "0")
  • y (string): Overlay y position (default "0")

See FFix.Filter for pipelines, expressions, and output handling.

overlay_vulkan(video_0, video_1, options \\ [])

@spec overlay_vulkan(FFix.Graph.StreamRef.t(), FFix.Graph.StreamRef.t(),
  x: String.t() | atom() | number(),
  y: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Overlay a source on top of another

Options

  • x (int): Set horizontal offset (from 0 to INT_MAX) (default 0)
  • y (int): Set vertical offset (from 0 to INT_MAX) (default 0)

See FFix.Filter for pipelines, expressions, and output handling.

owdenoise(video_0, options \\ [])

@spec owdenoise(FFix.Graph.StreamRef.t(),
  chroma_strength: String.t() | atom() | number(),
  cs: String.t() | atom() | number(),
  depth: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  ls: String.t() | atom() | number(),
  luma_strength: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Denoise using wavelets.

Options

  • chroma_strength (double): set chroma strength (from 0 to 1000) (default 1)
  • cs (double): set chroma strength (from 0 to 1000) (default 1)
  • depth (int): set depth (from 8 to 16) (default 8)
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • ls (double): set luma strength (from 0 to 1000) (default 1)
  • luma_strength (double): set luma strength (from 0 to 1000) (default 1)

See FFix.Filter for pipelines, expressions, and output handling.

pad(video_0, options \\ [])

@spec pad(FFix.Graph.StreamRef.t(),
  aspect: String.t() | atom() | number(),
  color: String.t() | atom() | number(),
  eval: String.t() | atom() | number(),
  h: String.t() | atom() | number(),
  height: String.t() | atom() | number(),
  w: String.t() | atom() | number(),
  width: String.t() | atom() | number(),
  x: String.t() | atom() | number(),
  y: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Pad the input video.

Options

  • aspect (rational): pad to fit an aspect instead of a resolution (from 0 to DBL_MAX) (default 0/1)
  • color (color): set the color of the padded area border (default "black")
  • eval (int): specify when to evaluate expressions (from 0 to 1) (default init)
    • init (0) — eval expressions once during initialization
    • frame (1) — eval expressions during initialization and per-frame
  • h (string): set the pad area height expression (default "ih")
  • height (string): set the pad area height expression (default "ih")
  • w (string): set the pad area width expression (default "iw")
  • width (string): set the pad area width expression (default "iw")
  • x (string): set the x offset expression for the input image position (default "0")
  • y (string): set the y offset expression for the input image position (default "0")

See FFix.Filter for pipelines, expressions, and output handling.

pad_opencl(video_0, options \\ [])

@spec pad_opencl(FFix.Graph.StreamRef.t(),
  aspect: String.t() | atom() | number(),
  color: String.t() | atom() | number(),
  h: String.t() | atom() | number(),
  height: String.t() | atom() | number(),
  w: String.t() | atom() | number(),
  width: String.t() | atom() | number(),
  x: String.t() | atom() | number(),
  y: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Pad the input video.

Options

  • aspect (rational): pad to fit an aspect instead of a resolution (from 0 to 32767) (default 0/1)
  • color (color): set the color of the padded area border (default "black")
  • h (string): set the pad area height (default "ih")
  • height (string): set the pad area height (default "ih")
  • w (string): set the pad area width (default "iw")
  • width (string): set the pad area width (default "iw")
  • x (string): set the x offset for the input image position (default "0")
  • y (string): set the y offset for the input image position (default "0")

See FFix.Filter for pipelines, expressions, and output handling.

pad_vaapi(video_0, options \\ [])

@spec pad_vaapi(FFix.Graph.StreamRef.t(),
  aspect: String.t() | atom() | number(),
  color: String.t() | atom() | number(),
  h: String.t() | atom() | number(),
  height: String.t() | atom() | number(),
  w: String.t() | atom() | number(),
  width: String.t() | atom() | number(),
  x: String.t() | atom() | number(),
  y: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Pad the input video.

Options

  • aspect (rational): pad to fit an aspect instead of a resolution (from 0 to 32767) (default 0/1)
  • color (color): set the color of the padded area border (default "black")
  • h (string): set the pad area height (default "ih")
  • height (string): set the pad area height (default "ih")
  • w (string): set the pad area width (default "iw")
  • width (string): set the pad area width (default "iw")
  • x (string): set the x offset for the input image position (default "0")
  • y (string): set the y offset for the input image position (default "0")

See FFix.Filter for pipelines, expressions, and output handling.

palettegen(video_0, options \\ [])

@spec palettegen(FFix.Graph.StreamRef.t(),
  max_colors: String.t() | atom() | number(),
  reserve_transparent: String.t() | atom() | number(),
  stats_mode: String.t() | atom() | number(),
  transparency_color: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Find the optimal palette for a given stream.

Options

  • max_colors (int): set the maximum number of colors to use in the palette (from 2 to 256) (default 256)
  • reserve_transparent (boolean): reserve a palette entry for transparency (default true)
  • stats_mode (int): set statistics mode (from 0 to 2) (default full)
    • full (0) — compute full frame histograms
    • diff (1) — compute histograms only for the part that differs from previous frame
    • single (2) — compute new histogram for each frame
  • transparency_color (color): set a background color for transparency (default "lime")

See FFix.Filter for pipelines, expressions, and output handling.

paletteuse(video_0, video_1, options \\ [])

@spec paletteuse(FFix.Graph.StreamRef.t(), FFix.Graph.StreamRef.t(),
  alpha_threshold: String.t() | atom() | number(),
  bayer_scale: String.t() | atom() | number(),
  debug_kdtree: String.t() | atom() | number(),
  diff_mode: String.t() | atom() | number(),
  dither: String.t() | atom() | number(),
  new: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Use a palette to downsample an input video stream.

Options

  • alpha_threshold (int): set the alpha threshold for transparency (from 0 to 255) (default 128)
  • bayer_scale (int): set scale for bayer dithering (from 0 to 5) (default 2)
  • debug_kdtree (string): save Graphviz graph of the kdtree in specified file
  • diff_mode (int): set frame difference mode (from 0 to 1) (default 0)
    • rectangle (1) — process smallest different rectangle
  • dither (int): select dithering mode (from 0 to 8) (default sierra2_4a)
    • bayer (1) — ordered 8x8 bayer dithering (deterministic)
    • heckbert (2) — dithering as defined by Paul Heckbert in 1982 (simple error diffusion)
    • floyd_steinberg (3) — Floyd and Steingberg dithering (error diffusion)
    • sierra2 (4) — Frankie Sierra dithering v2 (error diffusion)
    • sierra2_4a (5) — Frankie Sierra dithering v2 "Lite" (error diffusion)
    • sierra3 (6) — Frankie Sierra dithering v3 (error diffusion)
    • burkes (7) — Burkes dithering (error diffusion)
    • atkinson (8) — Atkinson dithering by Bill Atkinson at Apple Computer (error diffusion)
  • new (boolean): take new palette for each output frame (default false)

See FFix.Filter for pipelines, expressions, and output handling.

perms(video_0, options \\ [])

@spec perms(FFix.Graph.StreamRef.t(),
  enable: String.t() | atom() | number(),
  mode: String.t() | atom() | number(),
  seed: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Set permissions for the output video frame.

Options

  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • mode (int): select permissions mode (from 0 to 4) (default none)
    • none (0) — do nothing
    • ro (1) — set all output frames read-only
    • rw (2) — set all output frames writable
    • toggle (3) — switch permissions
    • random (4) — set permissions randomly
  • seed (int64): set the seed for the random mode (from -1 to UINT32_MAX) (default -1)

See FFix.Filter for pipelines, expressions, and output handling.

perspective(video_0, options \\ [])

@spec perspective(FFix.Graph.StreamRef.t(),
  enable: String.t() | atom() | number(),
  eval: String.t() | atom() | number(),
  interpolation: String.t() | atom() | number(),
  sense: String.t() | atom() | number(),
  x0: String.t() | atom() | number(),
  x1: String.t() | atom() | number(),
  x2: String.t() | atom() | number(),
  x3: String.t() | atom() | number(),
  y0: String.t() | atom() | number(),
  y1: String.t() | atom() | number(),
  y2: String.t() | atom() | number(),
  y3: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Correct the perspective of video.

Options

  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • eval (int): specify when to evaluate expressions (from 0 to 1) (default init)
    • init (0) — eval expressions once during initialization
    • frame (1) — eval expressions per-frame
  • interpolation (int): set interpolation (from 0 to 1) (default linear)
    • linear (0)
    • cubic (1)
  • sense (int): specify the sense of the coordinates (from 0 to 1) (default source)
    • source (0) — specify locations in source to send to corners in destination
    • destination (1) — specify locations in destination to send corners of source
  • x0 (string): set top left x coordinate (default "0")
  • x1 (string): set top right x coordinate (default "W")
  • x2 (string): set bottom left x coordinate (default "0")
  • x3 (string): set bottom right x coordinate (default "W")
  • y0 (string): set top left y coordinate (default "0")
  • y1 (string): set top right y coordinate (default "0")
  • y2 (string): set bottom left y coordinate (default "H")
  • y3 (string): set bottom right y coordinate (default "H")

See FFix.Filter for pipelines, expressions, and output handling.

phase(video_0, options \\ [])

@spec phase(FFix.Graph.StreamRef.t(),
  enable: String.t() | atom() | number(),
  mode: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Phase shift fields.

Options

  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • mode (int): set phase mode (from 0 to 8) (default A)
    • p (0) — progressive
    • t (1) — top first
    • b (2) — bottom first
    • T (3) — top first analyze
    • B (4) — bottom first analyze
    • u (5) — analyze
    • U (6) — full analyze
    • a (7) — auto
    • A (8) — auto analyze

See FFix.Filter for pipelines, expressions, and output handling.

photosensitivity(video_0, options \\ [])

@spec photosensitivity(FFix.Graph.StreamRef.t(),
  bypass: String.t() | atom() | number(),
  f: String.t() | atom() | number(),
  frames: String.t() | atom() | number(),
  skip: String.t() | atom() | number(),
  t: String.t() | atom() | number(),
  threshold: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Filter out photosensitive epilepsy seizure-inducing flashes.

Options

  • bypass (boolean): leave frames unchanged (default false)
  • f (int): set how many frames to use (from 2 to 240) (default 30)
  • frames (int): set how many frames to use (from 2 to 240) (default 30)
  • skip (int): set pixels to skip when sampling frames (from 1 to 1024) (default 1)
  • t (float): set detection threshold factor (lower is stricter) (from 0.1 to FLT_MAX) (default 1)
  • threshold (float): set detection threshold factor (lower is stricter) (from 0.1 to FLT_MAX) (default 1)

See FFix.Filter for pipelines, expressions, and output handling.

pixdesctest(video_0, options \\ [])

Test pixel format definitions.

Options

See FFix.Filter for pipelines, expressions, and output handling.

pixelize(video_0, options \\ [])

@spec pixelize(FFix.Graph.StreamRef.t(),
  enable: String.t() | atom() | number(),
  h: String.t() | atom() | number(),
  height: String.t() | atom() | number(),
  m: String.t() | atom() | number(),
  mode: String.t() | atom() | number(),
  p: (String.t() | atom() | number()) | [String.t() | atom() | number()],
  planes: (String.t() | atom() | number()) | [String.t() | atom() | number()],
  w: String.t() | atom() | number(),
  width: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Pixelize video.

Options

  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • h (int): set block height (from 1 to 1024) (default 16)
  • height (int): set block height (from 1 to 1024) (default 16)
  • m (int): set the pixelize mode (from 0 to 2) (default avg)
    • avg (0) — average
    • min (1) — minimum
    • max (2) — maximum
  • mode (int): set the pixelize mode (from 0 to 2) (default avg)
    • avg (0) — average
    • min (1) — minimum
    • max (2) — maximum
  • p (flags): set what planes to filter (default F)
  • planes (flags): set what planes to filter (default F)
  • w (int): set block width (from 1 to 1024) (default 16)
  • width (int): set block width (from 1 to 1024) (default 16)

See FFix.Filter for pipelines, expressions, and output handling.

pixscope(video_0, options \\ [])

@spec pixscope(FFix.Graph.StreamRef.t(),
  enable: String.t() | atom() | number(),
  h: String.t() | atom() | number(),
  o: String.t() | atom() | number(),
  w: String.t() | atom() | number(),
  wx: String.t() | atom() | number(),
  wy: String.t() | atom() | number(),
  x: String.t() | atom() | number(),
  y: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Pixel data analysis.

Options

  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • h (int): set scope height (from 1 to 80) (default 7)
  • o (float): set window opacity (from 0 to 1) (default 0.5)
  • w (int): set scope width (from 1 to 80) (default 7)
  • wx (float): set window x offset (from -1 to 1) (default -1)
  • wy (float): set window y offset (from -1 to 1) (default -1)
  • x (float): set scope x offset (from 0 to 1) (default 0.5)
  • y (float): set scope y offset (from 0 to 1) (default 0.5)

See FFix.Filter for pipelines, expressions, and output handling.

pp7(video_0, options \\ [])

@spec pp7(FFix.Graph.StreamRef.t(),
  enable: String.t() | atom() | number(),
  mode: String.t() | atom() | number(),
  qp: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Apply Postprocessing 7 filter.

Options

  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • mode (int): set thresholding mode (from 0 to 2) (default medium)
    • hard (0) — hard thresholding
    • soft (1) — soft thresholding
    • medium (2) — medium thresholding
  • qp (int): force a constant quantizer parameter (from 0 to 64) (default 0)

See FFix.Filter for pipelines, expressions, and output handling.

pp(video_0, options \\ [])

@spec pp(FFix.Graph.StreamRef.t(),
  enable: String.t() | atom() | number(),
  subfilters: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Filter video using libpostproc.

Options

  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • subfilters (string): set postprocess subfilters (default "de")

See FFix.Filter for pipelines, expressions, and output handling.

premultiply(streams, options \\ [])

@spec premultiply([FFix.Graph.StreamRef.t()],
  enable: String.t() | atom() | number(),
  inplace: String.t() | atom() | number(),
  planes: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

PreMultiply first stream with first plane of second stream.

Options

  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • inplace (boolean): enable inplace mode (default false)
  • planes (int): set planes (from 0 to 15) (default 15)

See FFix.Filter for pipelines, expressions, and output handling.

prewitt(video_0, options \\ [])

@spec prewitt(FFix.Graph.StreamRef.t(),
  delta: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  planes: String.t() | atom() | number(),
  scale: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Apply prewitt operator.

Options

  • delta (float): set delta (from -65535 to 65535) (default 0)
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • planes (int): set planes to filter (from 0 to 15) (default 15)
  • scale (float): set scale (from 0 to 65535) (default 1)

See FFix.Filter for pipelines, expressions, and output handling.

prewitt_opencl(video_0, options \\ [])

@spec prewitt_opencl(FFix.Graph.StreamRef.t(),
  delta: String.t() | atom() | number(),
  planes: String.t() | atom() | number(),
  scale: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Apply prewitt operator

Options

  • delta (float): set delta (from -65535 to 65535) (default 0)
  • planes (int): set planes to filter (from 0 to 15) (default 15)
  • scale (float): set scale (from 0 to 65535) (default 1)

See FFix.Filter for pipelines, expressions, and output handling.

procamp_vaapi(video_0, options \\ [])

@spec procamp_vaapi(FFix.Graph.StreamRef.t(),
  b: String.t() | atom() | number(),
  brightness: String.t() | atom() | number(),
  c: String.t() | atom() | number(),
  contrast: String.t() | atom() | number(),
  h: String.t() | atom() | number(),
  hue: String.t() | atom() | number(),
  s: String.t() | atom() | number(),
  saturatio: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

ProcAmp (color balance) adjustments for hue, saturation, brightness, contrast

Options

  • b (float): Output video brightness (from -100 to 100) (default 0)
  • brightness (float): Output video brightness (from -100 to 100) (default 0)
  • c (float): Output video contrast (from 0 to 10) (default 1)
  • contrast (float): Output video contrast (from 0 to 10) (default 1)
  • h (float): Output video hue (from -180 to 180) (default 0)
  • hue (float): Output video hue (from -180 to 180) (default 0)
  • s (float): Output video saturation (from 0 to 10) (default 1)
  • saturatio (float): Output video saturation (from 0 to 10) (default 1)

See FFix.Filter for pipelines, expressions, and output handling.

program_opencl(streams, options \\ [])

@spec program_opencl([FFix.Graph.StreamRef.t()],
  eof_action: String.t() | atom() | number(),
  inputs: String.t() | atom() | number(),
  kernel: String.t() | atom() | number(),
  repeatlast: String.t() | atom() | number(),
  s: String.t() | atom() | number(),
  shortest: String.t() | atom() | number(),
  size: String.t() | atom() | number(),
  source: String.t() | atom() | number(),
  ts_sync_mode: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Filter video using an OpenCL program

Options

  • eof_action (int): Action to take when encountering EOF from secondary input (from 0 to 2) (default repeat)
    • repeat (0) — Repeat the previous frame.
    • endall (1) — End both streams.
    • pass (2) — Pass through the main input.
  • inputs (int): Number of inputs (from 1 to INT_MAX) (default 1)
  • kernel (string): Kernel name in program
  • repeatlast (boolean): extend last frame of secondary streams beyond EOF (default true)
  • s (image_size): Video size
  • shortest (boolean): force termination when the shortest input terminates (default false)
  • size (image_size): Video size
  • source (string): OpenCL program source file
  • ts_sync_mode (int): How strictly to sync streams based on secondary input timestamps (from 0 to 1) (default default)
    • default (0) — Frame from secondary input with the nearest lower or equal timestamp to the primary input frame
    • nearest (1) — Frame from secondary input with the absolute nearest timestamp to the primary input frame

See FFix.Filter for pipelines, expressions, and output handling.

pseudocolor(video_0, options \\ [])

@spec pseudocolor(FFix.Graph.StreamRef.t(),
  c0: String.t() | atom() | number(),
  c1: String.t() | atom() | number(),
  c2: String.t() | atom() | number(),
  c3: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  i: String.t() | atom() | number(),
  index: String.t() | atom() | number(),
  opacity: String.t() | atom() | number(),
  p: String.t() | atom() | number(),
  preset: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Make pseudocolored video frames.

Options

  • c0 (string): set component #0 expression (default "val")
  • c1 (string): set component #1 expression (default "val")
  • c2 (string): set component #2 expression (default "val")
  • c3 (string): set component #3 expression (default "val")
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • i (int): set component as base (from 0 to 3) (default 0)
  • index (int): set component as base (from 0 to 3) (default 0)
  • opacity (float): set pseudocolor opacity (from 0 to 1) (default 1)
  • p (int): set preset (from -1 to 20) (default none)
    • none (-1)
    • magma (0)
    • inferno (1)
    • plasma (2)
    • viridis (3)
    • turbo (4)
    • cividis (5)
    • range1 (6)
    • range2 (7)
    • shadows (8)
    • highlights (9)
    • solar (10)
    • nominal (11)
    • preferred (12)
    • total (13)
    • spectral (14)
    • cool (15)
    • heat (16)
    • fiery (17)
    • blues (18)
    • green (19)
    • helix (20)
  • preset (int): set preset (from -1 to 20) (default none)
    • none (-1)
    • magma (0)
    • inferno (1)
    • plasma (2)
    • viridis (3)
    • turbo (4)
    • cividis (5)
    • range1 (6)
    • range2 (7)
    • shadows (8)
    • highlights (9)
    • solar (10)
    • nominal (11)
    • preferred (12)
    • total (13)
    • spectral (14)
    • cool (15)
    • heat (16)
    • fiery (17)
    • blues (18)
    • green (19)
    • helix (20)

See FFix.Filter for pipelines, expressions, and output handling.

psnr(video_0, video_1, options \\ [])

@spec psnr(FFix.Graph.StreamRef.t(), FFix.Graph.StreamRef.t(),
  enable: String.t() | atom() | number(),
  eof_action: String.t() | atom() | number(),
  f: String.t() | atom() | number(),
  output_max: String.t() | atom() | number(),
  repeatlast: String.t() | atom() | number(),
  shortest: String.t() | atom() | number(),
  stats_file: String.t() | atom() | number(),
  stats_version: String.t() | atom() | number(),
  ts_sync_mode: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Calculate the PSNR between two video streams.

Options

  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • eof_action (int): Action to take when encountering EOF from secondary input (from 0 to 2) (default repeat)
    • repeat (0) — Repeat the previous frame.
    • endall (1) — End both streams.
    • pass (2) — Pass through the main input.
  • f (string): Set file where to store per-frame difference information
  • output_max (boolean): Add raw stats (max values) to the output log. (default false)
  • repeatlast (boolean): extend last frame of secondary streams beyond EOF (default true)
  • shortest (boolean): force termination when the shortest input terminates (default false)
  • stats_file (string): Set file where to store per-frame difference information
  • stats_version (int): Set the format version for the stats file. (from 1 to 2) (default 1)
  • ts_sync_mode (int): How strictly to sync streams based on secondary input timestamps (from 0 to 1) (default default)
    • default (0) — Frame from secondary input with the nearest lower or equal timestamp to the primary input frame
    • nearest (1) — Frame from secondary input with the absolute nearest timestamp to the primary input frame

See FFix.Filter for pipelines, expressions, and output handling.

pullup(video_0, options \\ [])

@spec pullup(FFix.Graph.StreamRef.t(),
  jb: String.t() | atom() | number(),
  jl: String.t() | atom() | number(),
  jr: String.t() | atom() | number(),
  jt: String.t() | atom() | number(),
  mp: String.t() | atom() | number(),
  sb: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Pullup from field sequence to frames.

Options

  • jb (int): set bottom junk size (from 1 to INT_MAX) (default 4)
  • jl (int): set left junk size (from 0 to INT_MAX) (default 1)
  • jr (int): set right junk size (from 0 to INT_MAX) (default 1)
  • jt (int): set top junk size (from 1 to INT_MAX) (default 4)
  • mp (int): set metric plane (from 0 to 2) (default y)
    • y (0) — luma
    • u (1) — chroma blue
    • v (2) — chroma red
  • sb (boolean): set strict breaks (default false)

See FFix.Filter for pipelines, expressions, and output handling.

qp(video_0, options \\ [])

@spec qp(FFix.Graph.StreamRef.t(),
  enable: String.t() | atom() | number(),
  qp: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Change video quantization parameters.

Options

  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • qp (string): set qp expression

See FFix.Filter for pipelines, expressions, and output handling.

qrencode(video_0, options \\ [])

@spec qrencode(FFix.Graph.StreamRef.t(),
  Q: String.t() | atom() | number(),
  background_color: String.t() | atom() | number(),
  bc: String.t() | atom() | number(),
  case_sensitive: String.t() | atom() | number(),
  cs: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  expansion: String.t() | atom() | number(),
  fc: String.t() | atom() | number(),
  foreground_color: String.t() | atom() | number(),
  l: String.t() | atom() | number(),
  level: String.t() | atom() | number(),
  padded_qrcode_width: String.t() | atom() | number(),
  q: String.t() | atom() | number(),
  qrcode_width: String.t() | atom() | number(),
  text: String.t() | atom() | number(),
  textfile: String.t() | atom() | number(),
  x: String.t() | atom() | number(),
  y: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Draw a QR code on top of video frames.

Options

  • Q (string): set rendered padded QR code width expression (default "q")
  • background_color (color): set QR background color (default "white")
  • bc (color): set QR background color (default "white")
  • case_sensitive (boolean): generate code which is case sensitive (default true)
  • cs (boolean): generate code which is case sensitive (default true)
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • expansion (int): set the expansion mode (from 0 to 2) (default normal)
    • none (0) — set no expansion
    • normal (1) — set normal expansion
  • fc (color): set QR foreground color (default "black")
  • foreground_color (color): set QR foreground color (default "black")
  • l (int): error correction level, lowest is L (from 0 to 3) (default Q)
    • L (0)
    • M (1)
    • Q (2)
    • H (3)
  • level (int): error correction level, lowest is L (from 0 to 3) (default Q)
    • L (0)
    • M (1)
    • Q (2)
    • H (3)
  • padded_qrcode_width (string): set rendered padded QR code width expression (default "q")
  • q (string): set rendered QR code width expression (default "64")
  • qrcode_width (string): set rendered QR code width expression (default "64")
  • text (string): set text to encode
  • textfile (string): set text file to encode
  • x (string): set x expression (default "0")
  • y (string): set y expression (default "0")

See FFix.Filter for pipelines, expressions, and output handling.

random(video_0, options \\ [])

@spec random(FFix.Graph.StreamRef.t(),
  frames: String.t() | atom() | number(),
  seed: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Return random frames.

Options

  • frames (int): set number of frames in cache (from 2 to 512) (default 30)
  • seed (int64): set the seed (from -1 to UINT32_MAX) (default -1)

See FFix.Filter for pipelines, expressions, and output handling.

readeia608(video_0, options \\ [])

@spec readeia608(FFix.Graph.StreamRef.t(),
  chp: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  lp: String.t() | atom() | number(),
  scan_max: String.t() | atom() | number(),
  scan_min: String.t() | atom() | number(),
  spw: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Read EIA-608 Closed Caption codes from input video and write them to frame metadata.

Options

  • chp (boolean): check and apply parity bit (default false)
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • lp (boolean): lowpass line prior to processing (default true)
  • scan_max (int): set to which line to scan for codes (from 0 to INT_MAX) (default 29)
  • scan_min (int): set from which line to scan for codes (from 0 to INT_MAX) (default 0)
  • spw (float): set ratio of width reserved for sync code detection (from 0.1 to 0.7) (default 0.27)

See FFix.Filter for pipelines, expressions, and output handling.

readvitc(video_0, options \\ [])

@spec readvitc(FFix.Graph.StreamRef.t(),
  scan_max: String.t() | atom() | number(),
  thr_b: String.t() | atom() | number(),
  thr_w: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Read vertical interval timecode and write it to frame metadata.

Options

  • scan_max (int): maximum line numbers to scan for VITC data (from -1 to INT_MAX) (default 45)
  • thr_b (double): black color threshold (from 0 to 1) (default 0.2)
  • thr_w (double): white color threshold (from 0 to 1) (default 0.6)

See FFix.Filter for pipelines, expressions, and output handling.

realtime(video_0, options \\ [])

@spec realtime(FFix.Graph.StreamRef.t(),
  limit: String.t() | atom() | number(),
  speed: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Slow down filtering to match realtime.

Options

  • limit (duration): sleep time limit (default 2)
  • speed (double): speed factor (from DBL_MIN to DBL_MAX) (default 1)

See FFix.Filter for pipelines, expressions, and output handling.

remap(video_0, video_1, video_2, options \\ [])

Remap pixels.

Options

  • fill (color): set the color of the unmapped pixels (default "black")
  • format (int): set output format (from 0 to 1) (default color)
    • color (0)
    • gray (1)

See FFix.Filter for pipelines, expressions, and output handling.

remap_opencl(video_0, video_1, video_2, options \\ [])

@spec remap_opencl(
  FFix.Graph.StreamRef.t(),
  FFix.Graph.StreamRef.t(),
  FFix.Graph.StreamRef.t(),
  fill: String.t() | atom() | number(),
  interp: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Remap pixels using OpenCL.

Options

  • fill (color): set the color of the unmapped pixels (default "black")
  • interp (int): set interpolation method (from 0 to 1) (default linear)
    • near (0)
    • linear (1)

See FFix.Filter for pipelines, expressions, and output handling.

removegrain(video_0, options \\ [])

@spec removegrain(FFix.Graph.StreamRef.t(),
  enable: String.t() | atom() | number(),
  m0: String.t() | atom() | number(),
  m1: String.t() | atom() | number(),
  m2: String.t() | atom() | number(),
  m3: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Remove grain.

Options

  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • m0 (int): set mode for 1st plane (from 0 to 24) (default 0)
  • m1 (int): set mode for 2nd plane (from 0 to 24) (default 0)
  • m2 (int): set mode for 3rd plane (from 0 to 24) (default 0)
  • m3 (int): set mode for 4th plane (from 0 to 24) (default 0)

See FFix.Filter for pipelines, expressions, and output handling.

removelogo(video_0, options \\ [])

@spec removelogo(FFix.Graph.StreamRef.t(),
  enable: String.t() | atom() | number(),
  f: String.t() | atom() | number(),
  filename: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Remove a TV logo based on a mask image.

Options

  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • f (string): set bitmap filename
  • filename (string): set bitmap filename

See FFix.Filter for pipelines, expressions, and output handling.

repeatfields(video_0, options \\ [])

@spec repeatfields(FFix.Graph.StreamRef.t(), keyword()) :: FFix.Graph.StreamRef.t()

Hard repeat fields based on MPEG repeat field flag.

Options

See FFix.Filter for pipelines, expressions, and output handling.

reverse(video_0, options \\ [])

Reverse a clip.

Options

See FFix.Filter for pipelines, expressions, and output handling.

rgbashift(video_0, options \\ [])

@spec rgbashift(FFix.Graph.StreamRef.t(),
  ah: String.t() | atom() | number(),
  av: String.t() | atom() | number(),
  bh: String.t() | atom() | number(),
  bv: String.t() | atom() | number(),
  edge: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  gh: String.t() | atom() | number(),
  gv: String.t() | atom() | number(),
  rh: String.t() | atom() | number(),
  rv: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Shift RGBA.

Options

  • ah (int): shift alpha horizontally (from -255 to 255) (default 0)
  • av (int): shift alpha vertically (from -255 to 255) (default 0)
  • bh (int): shift blue horizontally (from -255 to 255) (default 0)
  • bv (int): shift blue vertically (from -255 to 255) (default 0)
  • edge (int): set edge operation (from 0 to 1) (default smear)
    • smear (0)
    • wrap (1)
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • gh (int): shift green horizontally (from -255 to 255) (default 0)
  • gv (int): shift green vertically (from -255 to 255) (default 0)
  • rh (int): shift red horizontally (from -255 to 255) (default 0)
  • rv (int): shift red vertically (from -255 to 255) (default 0)

See FFix.Filter for pipelines, expressions, and output handling.

roberts(video_0, options \\ [])

@spec roberts(FFix.Graph.StreamRef.t(),
  delta: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  planes: String.t() | atom() | number(),
  scale: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Apply roberts cross operator.

Options

  • delta (float): set delta (from -65535 to 65535) (default 0)
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • planes (int): set planes to filter (from 0 to 15) (default 15)
  • scale (float): set scale (from 0 to 65535) (default 1)

See FFix.Filter for pipelines, expressions, and output handling.

roberts_opencl(video_0, options \\ [])

@spec roberts_opencl(FFix.Graph.StreamRef.t(),
  delta: String.t() | atom() | number(),
  planes: String.t() | atom() | number(),
  scale: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Apply roberts operator

Options

  • delta (float): set delta (from -65535 to 65535) (default 0)
  • planes (int): set planes to filter (from 0 to 15) (default 15)
  • scale (float): set scale (from 0 to 65535) (default 1)

See FFix.Filter for pipelines, expressions, and output handling.

rotate(video_0, options \\ [])

@spec rotate(FFix.Graph.StreamRef.t(),
  a: String.t() | atom() | number(),
  angle: String.t() | atom() | number(),
  bilinear: String.t() | atom() | number(),
  c: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  fillcolor: String.t() | atom() | number(),
  oh: String.t() | atom() | number(),
  out_h: String.t() | atom() | number(),
  out_w: String.t() | atom() | number(),
  ow: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Rotate the input image.

Options

  • a (string): set angle (in radians) (default "0")
  • angle (string): set angle (in radians) (default "0")
  • bilinear (boolean): use bilinear interpolation (default true)
  • c (string): set background fill color (default "black")
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • fillcolor (string): set background fill color (default "black")
  • oh (string): set output height expression (default "ih")
  • out_h (string): set output height expression (default "ih")
  • out_w (string): set output width expression (default "iw")
  • ow (string): set output width expression (default "iw")

See FFix.Filter for pipelines, expressions, and output handling.

sab(video_0, options \\ [])

@spec sab(FFix.Graph.StreamRef.t(),
  chroma_pre_filter_radius: String.t() | atom() | number(),
  chroma_radius: String.t() | atom() | number(),
  chroma_strength: String.t() | atom() | number(),
  cpfr: String.t() | atom() | number(),
  cr: String.t() | atom() | number(),
  cs: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  lpfr: String.t() | atom() | number(),
  lr: String.t() | atom() | number(),
  ls: String.t() | atom() | number(),
  luma_pre_filter_radius: String.t() | atom() | number(),
  luma_radius: String.t() | atom() | number(),
  luma_strength: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Apply shape adaptive blur.

Options

  • chroma_pre_filter_radius (float): set chroma pre-filter radius (from -0.9 to 2) (default -0.9)
  • chroma_radius (float): set chroma radius (from -0.9 to 4) (default -0.9)
  • chroma_strength (float): set chroma strength (from -0.9 to 100) (default -0.9)
  • cpfr (float): set chroma pre-filter radius (from -0.9 to 2) (default -0.9)
  • cr (float): set chroma radius (from -0.9 to 4) (default -0.9)
  • cs (float): set chroma strength (from -0.9 to 100) (default -0.9)
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • lpfr (float): set luma pre-filter radius (from 0.1 to 2) (default 1)
  • lr (float): set luma radius (from 0.1 to 4) (default 1)
  • ls (float): set luma strength (from 0.1 to 100) (default 1)
  • luma_pre_filter_radius (float): set luma pre-filter radius (from 0.1 to 2) (default 1)
  • luma_radius (float): set luma radius (from 0.1 to 4) (default 1)
  • luma_strength (float): set luma strength (from 0.1 to 100) (default 1)

See FFix.Filter for pipelines, expressions, and output handling.

scale2ref(video_0, video_1, options \\ [])

@spec scale2ref(FFix.Graph.StreamRef.t(), FFix.Graph.StreamRef.t(),
  eval: String.t() | atom() | number(),
  flags: String.t() | atom() | number(),
  force_divisible_by: String.t() | atom() | number(),
  force_original_aspect_ratio: String.t() | atom() | number(),
  h: String.t() | atom() | number(),
  height: String.t() | atom() | number(),
  in_chroma_loc: String.t() | atom() | number(),
  in_color_matrix: String.t() | atom() | number(),
  in_h_chr_pos: String.t() | atom() | number(),
  in_range: String.t() | atom() | number(),
  in_v_chr_pos: String.t() | atom() | number(),
  interl: String.t() | atom() | number(),
  out_chroma_loc: String.t() | atom() | number(),
  out_color_matrix: String.t() | atom() | number(),
  out_h_chr_pos: String.t() | atom() | number(),
  out_range: String.t() | atom() | number(),
  out_v_chr_pos: String.t() | atom() | number(),
  param0: String.t() | atom() | number(),
  param1: String.t() | atom() | number(),
  s: String.t() | atom() | number(),
  size: String.t() | atom() | number(),
  w: String.t() | atom() | number(),
  width: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: [FFix.Graph.StreamRef.t()]

Scale the input video size and/or convert the image format to the given reference.

Options

  • eval (int): specify when to evaluate expressions (from 0 to 1) (default init)
    • init (0) — eval expressions once during initialization
    • frame (1) — eval expressions during initialization and per-frame
  • flags (string): Flags to pass to libswscale (default "")
  • force_divisible_by (int): enforce that the output resolution is divisible by a defined integer when force_original_aspect_ratio is used (from 1 to 256) (default 1)
  • force_original_aspect_ratio (int): decrease or increase w/h if necessary to keep the original AR (from 0 to 2) (default disable)
    • disable (0)
    • decrease (1)
    • increase (2)
  • h (string): Output video height
  • height (string): Output video height
  • in_chroma_loc (int): set input chroma sample location (from 0 to 6) (default auto)
    • auto (0)
    • unknown (0)
    • left (1)
    • center (2)
    • topleft (3)
    • top (4)
    • bottomleft (5)
    • bottom (6)
  • in_color_matrix (int): set input YCbCr type (from -1 to 17) (default auto)
    • auto (-1)
    • bt601 (5)
    • bt470 (5)
    • smpte170m (5)
    • bt709 (1)
    • fcc (4)
    • smpte240m (7)
    • bt2020 (9)
  • in_h_chr_pos (int): input horizontal chroma position in luma grid/256 (from -513 to 512) (default -513)
  • in_range (int): set input color range (from 0 to 2) (default auto)
    • auto (0)
    • unknown (0)
    • full (2)
    • limited (1)
    • jpeg (2)
    • mpeg (1)
    • tv (1)
    • pc (2)
  • in_v_chr_pos (int): input vertical chroma position in luma grid/256 (from -513 to 512) (default -513)
  • interl (boolean): set interlacing (default false)
  • out_chroma_loc (int): set output chroma sample location (from 0 to 6) (default auto)
    • auto (0)
    • unknown (0)
    • left (1)
    • center (2)
    • topleft (3)
    • top (4)
    • bottomleft (5)
    • bottom (6)
  • out_color_matrix (int): set output YCbCr type (from 0 to 17) (default 2)
    • auto (-1)
    • bt601 (5)
    • bt470 (5)
    • smpte170m (5)
    • bt709 (1)
    • fcc (4)
    • smpte240m (7)
    • bt2020 (9)
  • out_h_chr_pos (int): output horizontal chroma position in luma grid/256 (from -513 to 512) (default -513)
  • out_range (int): set output color range (from 0 to 2) (default auto)
    • auto (0)
    • unknown (0)
    • full (2)
    • limited (1)
    • jpeg (2)
    • mpeg (1)
    • tv (1)
    • pc (2)
  • out_v_chr_pos (int): output vertical chroma position in luma grid/256 (from -513 to 512) (default -513)
  • param0 (double): Scaler param 0 (from -DBL_MAX to DBL_MAX) (default DBL_MAX)
  • param1 (double): Scaler param 1 (from -DBL_MAX to DBL_MAX) (default DBL_MAX)
  • s (string): set video size
  • size (string): set video size
  • w (string): Output video width
  • width (string): Output video width

See FFix.Filter for pipelines, expressions, and output handling.

scale(video_0, options \\ [])

@spec scale(FFix.Graph.StreamRef.t(),
  eof_action: String.t() | atom() | number(),
  eval: String.t() | atom() | number(),
  flags: String.t() | atom() | number(),
  force_divisible_by: String.t() | atom() | number(),
  force_original_aspect_ratio: String.t() | atom() | number(),
  h: String.t() | atom() | number(),
  height: String.t() | atom() | number(),
  in_chroma_loc: String.t() | atom() | number(),
  in_color_matrix: String.t() | atom() | number(),
  in_h_chr_pos: String.t() | atom() | number(),
  in_range: String.t() | atom() | number(),
  in_v_chr_pos: String.t() | atom() | number(),
  interl: String.t() | atom() | number(),
  out_chroma_loc: String.t() | atom() | number(),
  out_color_matrix: String.t() | atom() | number(),
  out_h_chr_pos: String.t() | atom() | number(),
  out_range: String.t() | atom() | number(),
  out_v_chr_pos: String.t() | atom() | number(),
  param0: String.t() | atom() | number(),
  param1: String.t() | atom() | number(),
  repeatlast: String.t() | atom() | number(),
  s: String.t() | atom() | number(),
  shortest: String.t() | atom() | number(),
  size: String.t() | atom() | number(),
  ts_sync_mode: String.t() | atom() | number(),
  w: String.t() | atom() | number(),
  width: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Scale the input video size and/or convert the image format.

Example

FFix.Filter.scale(video, w: 1280, h: -2)

Options

  • eof_action (int): Action to take when encountering EOF from secondary input (from 0 to 2) (default repeat)
    • repeat (0) — Repeat the previous frame.
    • endall (1) — End both streams.
    • pass (2) — Pass through the main input.
  • eval (int): specify when to evaluate expressions (from 0 to 1) (default init)
    • init (0) — eval expressions once during initialization
    • frame (1) — eval expressions during initialization and per-frame
  • flags (string): Flags to pass to libswscale (default "")
  • force_divisible_by (int): enforce that the output resolution is divisible by a defined integer when force_original_aspect_ratio is used (from 1 to 256) (default 1)
  • force_original_aspect_ratio (int): decrease or increase w/h if necessary to keep the original AR (from 0 to 2) (default disable)
    • disable (0)
    • decrease (1)
    • increase (2)
  • h (string): Output video height
  • height (string): Output video height
  • in_chroma_loc (int): set input chroma sample location (from 0 to 6) (default auto)
    • auto (0)
    • unknown (0)
    • left (1)
    • center (2)
    • topleft (3)
    • top (4)
    • bottomleft (5)
    • bottom (6)
  • in_color_matrix (int): set input YCbCr type (from -1 to 17) (default auto)
    • auto (-1)
    • bt601 (5)
    • bt470 (5)
    • smpte170m (5)
    • bt709 (1)
    • fcc (4)
    • smpte240m (7)
    • bt2020 (9)
  • in_h_chr_pos (int): input horizontal chroma position in luma grid/256 (from -513 to 512) (default -513)
  • in_range (int): set input color range (from 0 to 2) (default auto)
    • auto (0)
    • unknown (0)
    • full (2)
    • limited (1)
    • jpeg (2)
    • mpeg (1)
    • tv (1)
    • pc (2)
  • in_v_chr_pos (int): input vertical chroma position in luma grid/256 (from -513 to 512) (default -513)
  • interl (boolean): set interlacing (default false)
  • out_chroma_loc (int): set output chroma sample location (from 0 to 6) (default auto)
    • auto (0)
    • unknown (0)
    • left (1)
    • center (2)
    • topleft (3)
    • top (4)
    • bottomleft (5)
    • bottom (6)
  • out_color_matrix (int): set output YCbCr type (from 0 to 17) (default 2)
    • auto (-1)
    • bt601 (5)
    • bt470 (5)
    • smpte170m (5)
    • bt709 (1)
    • fcc (4)
    • smpte240m (7)
    • bt2020 (9)
  • out_h_chr_pos (int): output horizontal chroma position in luma grid/256 (from -513 to 512) (default -513)
  • out_range (int): set output color range (from 0 to 2) (default auto)
    • auto (0)
    • unknown (0)
    • full (2)
    • limited (1)
    • jpeg (2)
    • mpeg (1)
    • tv (1)
    • pc (2)
  • out_v_chr_pos (int): output vertical chroma position in luma grid/256 (from -513 to 512) (default -513)
  • param0 (double): Scaler param 0 (from -DBL_MAX to DBL_MAX) (default DBL_MAX)
  • param1 (double): Scaler param 1 (from -DBL_MAX to DBL_MAX) (default DBL_MAX)
  • repeatlast (boolean): extend last frame of secondary streams beyond EOF (default true)
  • s (string): set video size
  • shortest (boolean): force termination when the shortest input terminates (default false)
  • size (string): set video size
  • ts_sync_mode (int): How strictly to sync streams based on secondary input timestamps (from 0 to 1) (default default)
    • default (0) — Frame from secondary input with the nearest lower or equal timestamp to the primary input frame
    • nearest (1) — Frame from secondary input with the absolute nearest timestamp to the primary input frame
  • w (string): Output video width
  • width (string): Output video width

See FFix.Filter for pipelines, expressions, and output handling.

scale_qsv(video_0, options \\ [])

@spec scale_qsv(FFix.Graph.StreamRef.t(),
  format: String.t() | atom() | number(),
  h: String.t() | atom() | number(),
  mode: String.t() | atom() | number(),
  w: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Quick Sync Video "scaling and format conversion"

Options

  • format (string): Output pixel format (default "same")
  • h (string): Output video height(0=input video height, -1=keep input video aspect) (default "ih")
  • mode (int): scaling & format conversion mode (mode compute(3), vd(4) and ve(5) are only available on some platforms) (from 0 to 5) (default 0)
    • low_power (1) — low power mode
    • hq (2) — high quality mode
    • compute (3) — compute
    • vd (4) — vd
    • ve (5) — ve
  • w (string): Output video width(0=input video width, -1=keep input video aspect) (default "iw")

See FFix.Filter for pipelines, expressions, and output handling.

scale_vaapi(video_0, options \\ [])

@spec scale_vaapi(FFix.Graph.StreamRef.t(),
  force_divisible_by: String.t() | atom() | number(),
  force_original_aspect_ratio: String.t() | atom() | number(),
  format: String.t() | atom() | number(),
  h: String.t() | atom() | number(),
  mode: String.t() | atom() | number(),
  out_chroma_location: String.t() | atom() | number(),
  out_color_matrix: String.t() | atom() | number(),
  out_color_primaries: String.t() | atom() | number(),
  out_color_transfer: String.t() | atom() | number(),
  out_range: String.t() | atom() | number(),
  w: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Scale to/from VAAPI surfaces.

Options

  • force_divisible_by (int): enforce that the output resolution is divisible by a defined integer when force_original_aspect_ratio is used (from 1 to 256) (default 1)
  • force_original_aspect_ratio (int): decrease or increase w/h if necessary to keep the original AR (from 0 to 2) (default disable)
    • disable (0)
    • decrease (1)
    • increase (2)
  • format (string): Output video format (software format of hardware frames)
  • h (string): Output video height (default "ih")
  • mode (int): Scaling mode (from 0 to 768) (default hq)
    • default (0) — Use the default (depend on the driver) scaling algorithm
    • fast (256) — Use fast scaling algorithm
    • hq (512) — Use high quality scaling algorithm
    • nl_anamorphic (768) — Use nolinear anamorphic scaling algorithm
  • out_chroma_location (string): Output chroma sample location
  • out_color_matrix (string): Output colour matrix coefficient set
  • out_color_primaries (string): Output colour primaries
  • out_color_transfer (string): Output colour transfer characteristics
  • out_range (int): Output colour range (from 0 to 2) (default 0)
    • full (2) — Full range
    • limited (1) — Limited range
    • jpeg (2) — Full range
    • mpeg (1) — Limited range
    • tv (1) — Limited range
    • pc (2) — Full range
  • w (string): Output video width (default "iw")

See FFix.Filter for pipelines, expressions, and output handling.

scale_vulkan(video_0, options \\ [])

@spec scale_vulkan(FFix.Graph.StreamRef.t(),
  format: String.t() | atom() | number(),
  h: String.t() | atom() | number(),
  out_range: String.t() | atom() | number(),
  scaler: String.t() | atom() | number(),
  w: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Scale Vulkan frames

Options

  • format (string): Output video format (software format of hardware frames)
  • h (string): Output video height (default "ih")
  • out_range (int): Output colour range (from 0 to 2) (default 0) (from 0 to 2) (default 0)
    • full (2) — Full range
    • limited (1) — Limited range
    • jpeg (2) — Full range
    • mpeg (1) — Limited range
    • tv (1) — Limited range
    • pc (2) — Full range
  • scaler (int): Scaler function (from 0 to 2) (default bilinear)
    • bilinear (0) — Bilinear interpolation (fastest)
    • nearest (1) — Nearest (useful for pixel art)
  • w (string): Output video width (default "iw")

See FFix.Filter for pipelines, expressions, and output handling.

scdet(video_0, options \\ [])

@spec scdet(FFix.Graph.StreamRef.t(),
  s: String.t() | atom() | number(),
  sc_pass: String.t() | atom() | number(),
  t: String.t() | atom() | number(),
  threshold: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Detect video scene change

Options

  • s (boolean): Set the flag to pass scene change frames (default false)
  • sc_pass (boolean): Set the flag to pass scene change frames (default false)
  • t (double): set scene change detect threshold (from 0 to 100) (default 10)
  • threshold (double): set scene change detect threshold (from 0 to 100) (default 10)

See FFix.Filter for pipelines, expressions, and output handling.

scharr(video_0, options \\ [])

@spec scharr(FFix.Graph.StreamRef.t(),
  delta: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  planes: String.t() | atom() | number(),
  scale: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Apply scharr operator.

Options

  • delta (float): set delta (from -65535 to 65535) (default 0)
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • planes (int): set planes to filter (from 0 to 15) (default 15)
  • scale (float): set scale (from 0 to 65535) (default 1)

See FFix.Filter for pipelines, expressions, and output handling.

scroll(video_0, options \\ [])

@spec scroll(FFix.Graph.StreamRef.t(),
  enable: String.t() | atom() | number(),
  h: String.t() | atom() | number(),
  horizontal: String.t() | atom() | number(),
  hpos: String.t() | atom() | number(),
  v: String.t() | atom() | number(),
  vertical: String.t() | atom() | number(),
  vpos: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Scroll input video.

Options

  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • h (float): set the horizontal scrolling speed (from -1 to 1) (default 0)
  • horizontal (float): set the horizontal scrolling speed (from -1 to 1) (default 0)
  • hpos (float): set initial horizontal position (from 0 to 1) (default 0)
  • v (float): set the vertical scrolling speed (from -1 to 1) (default 0)
  • vertical (float): set the vertical scrolling speed (from -1 to 1) (default 0)
  • vpos (float): set initial vertical position (from 0 to 1) (default 0)

See FFix.Filter for pipelines, expressions, and output handling.

segment(video_0, options \\ [])

@spec segment(FFix.Graph.StreamRef.t(),
  frames: String.t() | atom() | number(),
  timestamps: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) ::
  FFix.Graph.StreamRef.t()
  | [FFix.Graph.StreamRef.t()]
  | FFix.Graph.Terminal.t()

Segment video stream.

Options

  • frames (string): frames at which to split input
  • timestamps (string): timestamps of input at which to split input

See FFix.Filter for pipelines, expressions, and output handling.

select(video_0, options \\ [])

@spec select(FFix.Graph.StreamRef.t(),
  e: String.t() | atom() | number(),
  expr: String.t() | atom() | number(),
  n: String.t() | atom() | number(),
  outputs: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) ::
  FFix.Graph.StreamRef.t()
  | [FFix.Graph.StreamRef.t()]
  | FFix.Graph.Terminal.t()

Select video frames to pass in output.

Options

  • e (string): set an expression to use for selecting frames (default "1")
  • expr (string): set an expression to use for selecting frames (default "1")
  • n (int): set the number of outputs (from 1 to INT_MAX) (default 1)
  • outputs (int): set the number of outputs (from 1 to INT_MAX) (default 1)

See FFix.Filter for pipelines, expressions, and output handling.

selectivecolor(video_0, options \\ [])

@spec selectivecolor(FFix.Graph.StreamRef.t(),
  blacks: String.t() | atom() | number(),
  blues: String.t() | atom() | number(),
  correction_method: String.t() | atom() | number(),
  cyans: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  greens: String.t() | atom() | number(),
  magentas: String.t() | atom() | number(),
  neutrals: String.t() | atom() | number(),
  psfile: String.t() | atom() | number(),
  reds: String.t() | atom() | number(),
  whites: String.t() | atom() | number(),
  yellows: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Apply CMYK adjustments to specific color ranges.

Options

  • blacks (string): adjust black regions
  • blues (string): adjust blue regions
  • correction_method (int): select correction method (from 0 to 1) (default absolute)
    • absolute (0)
    • relative (1)
  • cyans (string): adjust cyan regions
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • greens (string): adjust green regions
  • magentas (string): adjust magenta regions
  • neutrals (string): adjust neutral regions
  • psfile (string): set Photoshop selectivecolor file name
  • reds (string): adjust red regions
  • whites (string): adjust white regions
  • yellows (string): adjust yellow regions

See FFix.Filter for pipelines, expressions, and output handling.

sendcmd(video_0, options \\ [])

@spec sendcmd(FFix.Graph.StreamRef.t(),
  c: String.t() | atom() | number(),
  commands: String.t() | atom() | number(),
  f: String.t() | atom() | number(),
  filename: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Send commands to filters.

Options

  • c (string): set commands
  • commands (string): set commands
  • f (string): set commands file
  • filename (string): set commands file

See FFix.Filter for pipelines, expressions, and output handling.

separatefields(video_0, options \\ [])

@spec separatefields(FFix.Graph.StreamRef.t(), keyword()) :: FFix.Graph.StreamRef.t()

Split input video frames into fields.

Options

See FFix.Filter for pipelines, expressions, and output handling.

setdar(video_0, options \\ [])

@spec setdar(FFix.Graph.StreamRef.t(),
  dar: String.t() | atom() | number(),
  max: String.t() | atom() | number(),
  r: String.t() | atom() | number(),
  ratio: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Set the frame display aspect ratio.

Options

  • dar (string): set display aspect ratio (default "0")
  • max (int): set max value for nominator or denominator in the ratio (from 1 to INT_MAX) (default 100)
  • r (string): set display aspect ratio (default "0")
  • ratio (string): set display aspect ratio (default "0")

See FFix.Filter for pipelines, expressions, and output handling.

setfield(video_0, options \\ [])

@spec setfield(FFix.Graph.StreamRef.t(),
  mode: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Force field for the output video frame.

Options

  • mode (int): select interlace mode (from -1 to 2) (default auto)
    • auto (-1) — keep the same input field
    • bff (0) — mark as bottom-field-first
    • tff (1) — mark as top-field-first
    • prog (2) — mark as progressive

See FFix.Filter for pipelines, expressions, and output handling.

setparams(video_0, options \\ [])

@spec setparams(FFix.Graph.StreamRef.t(),
  chroma_location: String.t() | atom() | number(),
  color_primaries: String.t() | atom() | number(),
  color_trc: String.t() | atom() | number(),
  colorspace: String.t() | atom() | number(),
  field_mode: String.t() | atom() | number(),
  range: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Force field, or color property for the output video frame.

Options

  • chroma_location (int): select chroma sample location (from -1 to 6) (default auto)
    • auto (-1) — keep the same chroma location
    • unspecified (0)
    • unknown (0)
    • left (1)
    • center (2)
    • topleft (3)
    • top (4)
    • bottomleft (5)
    • bottom (6)
  • color_primaries (int): select color primaries (from -1 to 22) (default auto)
    • auto (-1) — keep the same color primaries
    • bt709 (1)
    • unknown (2)
    • bt470m (4)
    • bt470bg (5)
    • smpte170m (6)
    • smpte240m (7)
    • film (8)
    • bt2020 (9)
    • smpte428 (10)
    • smpte431 (11)
    • smpte432 (12)
    • jedec-p22 (22)
    • ebu3213 (22)
  • color_trc (int): select color transfer (from -1 to 18) (default auto)
    • auto (-1) — keep the same color transfer
    • bt709 (1)
    • unknown (2)
    • bt470m (4)
    • bt470bg (5)
    • smpte170m (6)
    • smpte240m (7)
    • linear (8)
    • log100 (9)
    • log316 (10)
    • iec61966-2-4 (11)
    • bt1361e (12)
    • iec61966-2-1 (13)
    • bt2020-10 (14)
    • bt2020-12 (15)
    • smpte2084 (16)
    • smpte428 (17)
    • arib-std-b67 (18)
  • colorspace (int): select colorspace (from -1 to 17) (default auto)
    • auto (-1) — keep the same colorspace
    • gbr (0)
    • bt709 (1)
    • unknown (2)
    • fcc (4)
    • bt470bg (5)
    • smpte170m (6)
    • smpte240m (7)
    • ycgco (8)
    • ycgco-re (16)
    • ycgco-ro (17)
    • bt2020nc (9)
    • bt2020c (10)
    • smpte2085 (11)
    • chroma-derived-nc (12)
    • chroma-derived-c (13)
    • ictcp (14)
    • ipt-c2 (15)
  • field_mode (int): select interlace mode (from -1 to 2) (default auto)
    • auto (-1) — keep the same input field
    • bff (0) — mark as bottom-field-first
    • tff (1) — mark as top-field-first
    • prog (2) — mark as progressive
  • range (int): select color range (from -1 to 2) (default auto)
    • auto (-1) — keep the same color range
    • unspecified (0)
    • unknown (0)
    • limited (1)
    • tv (1)
    • mpeg (1)
    • full (2)
    • pc (2)
    • jpeg (2)

See FFix.Filter for pipelines, expressions, and output handling.

setpts(video_0, options \\ [])

@spec setpts(FFix.Graph.StreamRef.t(),
  expr: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Set PTS for the output video frame.

Options

  • expr (string): Expression determining the frame timestamp (default "PTS")

See FFix.Filter for pipelines, expressions, and output handling.

setrange(video_0, options \\ [])

@spec setrange(FFix.Graph.StreamRef.t(),
  range: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Force color range for the output video frame.

Options

  • range (int): select color range (from -1 to 2) (default auto)
    • auto (-1) — keep the same color range
    • unspecified (0)
    • unknown (0)
    • limited (1)
    • tv (1)
    • mpeg (1)
    • full (2)
    • pc (2)
    • jpeg (2)

See FFix.Filter for pipelines, expressions, and output handling.

setsar(video_0, options \\ [])

@spec setsar(FFix.Graph.StreamRef.t(),
  max: String.t() | atom() | number(),
  r: String.t() | atom() | number(),
  ratio: String.t() | atom() | number(),
  sar: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Set the pixel sample aspect ratio.

Options

  • max (int): set max value for nominator or denominator in the ratio (from 1 to INT_MAX) (default 100)
  • r (string): set sample (pixel) aspect ratio (default "0")
  • ratio (string): set sample (pixel) aspect ratio (default "0")
  • sar (string): set sample (pixel) aspect ratio (default "0")

See FFix.Filter for pipelines, expressions, and output handling.

settb(video_0, options \\ [])

@spec settb(FFix.Graph.StreamRef.t(),
  expr: String.t() | atom() | number(),
  tb: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Set timebase for the video output link.

Options

  • expr (string): set expression determining the output timebase (default "intb")
  • tb (string): set expression determining the output timebase (default "intb")

See FFix.Filter for pipelines, expressions, and output handling.

sharpness_vaapi(video_0, options \\ [])

@spec sharpness_vaapi(FFix.Graph.StreamRef.t(),
  sharpness: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

VAAPI VPP for sharpness

Options

  • sharpness (int): sharpness level (from 0 to 64) (default 44)

See FFix.Filter for pipelines, expressions, and output handling.

shear(video_0, options \\ [])

@spec shear(FFix.Graph.StreamRef.t(),
  c: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  fillcolor: String.t() | atom() | number(),
  interp: String.t() | atom() | number(),
  shx: String.t() | atom() | number(),
  shy: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Shear transform the input image.

Options

  • c (string): set background fill color (default "black")
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • fillcolor (string): set background fill color (default "black")
  • interp (int): set interpolation (from 0 to 1) (default bilinear)
    • nearest (0) — nearest neighbour
    • bilinear (1) — bilinear
  • shx (float): set x shear factor (from -2 to 2) (default 0)
  • shy (float): set y shear factor (from -2 to 2) (default 0)

See FFix.Filter for pipelines, expressions, and output handling.

showinfo(video_0, options \\ [])

@spec showinfo(FFix.Graph.StreamRef.t(),
  checksum: String.t() | atom() | number(),
  udu_sei_as_ascii: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Show textual information for each video frame.

Options

  • checksum (boolean): calculate checksums (default true)
  • udu_sei_as_ascii (boolean): try to print user data unregistered SEI as ascii character when possible (default false)

See FFix.Filter for pipelines, expressions, and output handling.

showpalette(video_0, options \\ [])

@spec showpalette(FFix.Graph.StreamRef.t(),
  s: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Display frame palette.

Options

  • s (int): set pixel box size (from 1 to 100) (default 30)

See FFix.Filter for pipelines, expressions, and output handling.

shuffleframes(video_0, options \\ [])

@spec shuffleframes(FFix.Graph.StreamRef.t(),
  enable: String.t() | atom() | number(),
  mapping: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Shuffle video frames.

Options

  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • mapping (string): set destination indexes of input frames (default "0")

See FFix.Filter for pipelines, expressions, and output handling.

shufflepixels(video_0, options \\ [])

@spec shufflepixels(FFix.Graph.StreamRef.t(),
  d: String.t() | atom() | number(),
  direction: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  h: String.t() | atom() | number(),
  height: String.t() | atom() | number(),
  m: String.t() | atom() | number(),
  mode: String.t() | atom() | number(),
  s: String.t() | atom() | number(),
  seed: String.t() | atom() | number(),
  w: String.t() | atom() | number(),
  width: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Shuffle video pixels.

Options

  • d (int): set shuffle direction (from 0 to 1) (default forward)
    • forward (0)
    • inverse (1)
  • direction (int): set shuffle direction (from 0 to 1) (default forward)
    • forward (0)
    • inverse (1)
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • h (int): set block height (from 1 to 8000) (default 10)
  • height (int): set block height (from 1 to 8000) (default 10)
  • m (int): set shuffle mode (from 0 to 2) (default horizontal)
    • horizontal (0)
    • vertical (1)
    • block (2)
  • mode (int): set shuffle mode (from 0 to 2) (default horizontal)
    • horizontal (0)
    • vertical (1)
    • block (2)
  • s (int64): set random seed (from -1 to UINT32_MAX) (default -1)
  • seed (int64): set random seed (from -1 to UINT32_MAX) (default -1)
  • w (int): set block width (from 1 to 8000) (default 10)
  • width (int): set block width (from 1 to 8000) (default 10)

See FFix.Filter for pipelines, expressions, and output handling.

shuffleplanes(video_0, options \\ [])

@spec shuffleplanes(FFix.Graph.StreamRef.t(),
  enable: String.t() | atom() | number(),
  map0: String.t() | atom() | number(),
  map1: String.t() | atom() | number(),
  map2: String.t() | atom() | number(),
  map3: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Shuffle video planes.

Options

  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • map0 (int): Index of the input plane to be used as the first output plane (from 0 to 3) (default 0)
  • map1 (int): Index of the input plane to be used as the second output plane (from 0 to 3) (default 1)
  • map2 (int): Index of the input plane to be used as the third output plane (from 0 to 3) (default 2)
  • map3 (int): Index of the input plane to be used as the fourth output plane (from 0 to 3) (default 3)

See FFix.Filter for pipelines, expressions, and output handling.

sidedata(video_0, options \\ [])

@spec sidedata(FFix.Graph.StreamRef.t(),
  enable: String.t() | atom() | number(),
  mode: String.t() | atom() | number(),
  type: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Manipulate video frame side data.

Options

  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • mode (int): set a mode of operation (from 0 to 1) (default select)
    • select (0) — select frame
    • delete (1) — delete side data
  • type (int): set side data type (from -1 to INT_MAX) (default -1)
    • PANSCAN (0)
    • A53_CC (1)
    • STEREO3D (2)
    • MATRIXENCODING (3)
    • DOWNMIX_INFO (4)
    • REPLAYGAIN (5)
    • DISPLAYMATRIX (6)
    • AFD (7)
    • MOTION_VECTORS (8)
    • SKIP_SAMPLES (9)
    • AUDIO_SERVICE_TYPE (10)
    • MASTERING_DISPLAY_METADATA (11)
    • GOP_TIMECODE (12)
    • SPHERICAL (13)
    • CONTENT_LIGHT_LEVEL (14)
    • ICC_PROFILE (15)
    • S12M_TIMECOD (16)
    • DYNAMIC_HDR_PLUS (17)
    • REGIONS_OF_INTEREST (18)
    • VIDEO_ENC_PARAMS (19)
    • SEI_UNREGISTERED (20)
    • FILM_GRAIN_PARAMS (21)
    • DETECTION_BOUNDING_BOXES (22)
    • DETECTION_BBOXES (22)
    • DOVI_RPU_BUFFER (23)
    • DOVI_METADATA (24)
    • DYNAMIC_HDR_VIVID (25)
    • AMBIENT_VIEWING_ENVIRONMENT (26)
    • VIDEO_HINT (27)

See FFix.Filter for pipelines, expressions, and output handling.

signalstats(video_0, options \\ [])

@spec signalstats(FFix.Graph.StreamRef.t(),
  c: String.t() | atom() | number(),
  color: String.t() | atom() | number(),
  out: String.t() | atom() | number(),
  stat: (String.t() | atom() | number()) | [String.t() | atom() | number()],
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Generate statistics from video analysis.

Options

  • c (color): set highlight color (default "yellow")
  • color (color): set highlight color (default "yellow")
  • out (int): set video filter (from -1 to 2) (default -1)
    • tout (0) — highlight pixels that depict temporal outliers
    • vrep (1) — highlight video lines that depict vertical line repetition
    • brng (2) — highlight pixels that are outside of broadcast range
  • stat (flags): set statistics filters (default 0)
    • tout — analyze pixels for temporal outliers
    • vrep — analyze video lines for vertical line repetition
    • brng — analyze for pixels outside of broadcast range

See FFix.Filter for pipelines, expressions, and output handling.

signature(streams, options \\ [])

@spec signature([FFix.Graph.StreamRef.t()],
  detectmode: String.t() | atom() | number(),
  filename: String.t() | atom() | number(),
  format: String.t() | atom() | number(),
  nb_inputs: String.t() | atom() | number(),
  th_d: String.t() | atom() | number(),
  th_dc: String.t() | atom() | number(),
  th_di: String.t() | atom() | number(),
  th_it: String.t() | atom() | number(),
  th_xh: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Calculate the MPEG-7 video signature

Options

  • detectmode (int): set the detectmode (from 0 to 2) (default off)
    • off (0)
    • full (1)
    • fast (2)
  • filename (string): filename for output files (default "")
  • format (int): set output format (from 0 to 1) (default binary)
    • binary (0)
    • xml (1)
  • nb_inputs (int): number of inputs (from 1 to INT_MAX) (default 1)
  • th_d (int): threshold to detect one word as similar (from 1 to INT_MAX) (default 9000)
  • th_dc (int): threshold to detect all words as similar (from 1 to INT_MAX) (default 60000)
  • th_di (int): minimum length of matching sequence in frames (from 0 to INT_MAX) (default 0)
  • th_it (double): threshold for relation of good to all frames (from 0 to 1) (default 0.5)
  • th_xh (int): threshold to detect frames as similar (from 1 to INT_MAX) (default 116)

See FFix.Filter for pipelines, expressions, and output handling.

siti(video_0, options \\ [])

@spec siti(FFix.Graph.StreamRef.t(),
  print_summary: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Calculate spatial information (SI) and temporal information (TI).

Options

  • print_summary (boolean): Print summary showing average values (default false)

See FFix.Filter for pipelines, expressions, and output handling.

smartblur(video_0, options \\ [])

@spec smartblur(FFix.Graph.StreamRef.t(),
  alpha_radius: String.t() | atom() | number(),
  alpha_strength: String.t() | atom() | number(),
  alpha_threshold: String.t() | atom() | number(),
  ar: String.t() | atom() | number(),
  as: String.t() | atom() | number(),
  at: String.t() | atom() | number(),
  chroma_radius: String.t() | atom() | number(),
  chroma_strength: String.t() | atom() | number(),
  chroma_threshold: String.t() | atom() | number(),
  cr: String.t() | atom() | number(),
  cs: String.t() | atom() | number(),
  ct: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  lr: String.t() | atom() | number(),
  ls: String.t() | atom() | number(),
  lt: String.t() | atom() | number(),
  luma_radius: String.t() | atom() | number(),
  luma_strength: String.t() | atom() | number(),
  luma_threshold: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Blur the input video without impacting the outlines.

Options

  • alpha_radius (float): set alpha radius (from -0.9 to 5) (default -0.9)
  • alpha_strength (float): set alpha strength (from -2 to 1) (default -2)
  • alpha_threshold (int): set alpha threshold (from -31 to 30) (default -31)
  • ar (float): set alpha radius (from -0.9 to 5) (default -0.9)
  • as (float): set alpha strength (from -2 to 1) (default -2)
  • at (int): set alpha threshold (from -31 to 30) (default -31)
  • chroma_radius (float): set chroma radius (from -0.9 to 5) (default -0.9)
  • chroma_strength (float): set chroma strength (from -2 to 1) (default -2)
  • chroma_threshold (int): set chroma threshold (from -31 to 30) (default -31)
  • cr (float): set chroma radius (from -0.9 to 5) (default -0.9)
  • cs (float): set chroma strength (from -2 to 1) (default -2)
  • ct (int): set chroma threshold (from -31 to 30) (default -31)
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • lr (float): set luma radius (from 0.1 to 5) (default 1)
  • ls (float): set luma strength (from -1 to 1) (default 1)
  • lt (int): set luma threshold (from -30 to 30) (default 0)
  • luma_radius (float): set luma radius (from 0.1 to 5) (default 1)
  • luma_strength (float): set luma strength (from -1 to 1) (default 1)
  • luma_threshold (int): set luma threshold (from -30 to 30) (default 0)

See FFix.Filter for pipelines, expressions, and output handling.

sobel(video_0, options \\ [])

@spec sobel(FFix.Graph.StreamRef.t(),
  delta: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  planes: String.t() | atom() | number(),
  scale: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Apply sobel operator.

Options

  • delta (float): set delta (from -65535 to 65535) (default 0)
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • planes (int): set planes to filter (from 0 to 15) (default 15)
  • scale (float): set scale (from 0 to 65535) (default 1)

See FFix.Filter for pipelines, expressions, and output handling.

sobel_opencl(video_0, options \\ [])

@spec sobel_opencl(FFix.Graph.StreamRef.t(),
  delta: String.t() | atom() | number(),
  planes: String.t() | atom() | number(),
  scale: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Apply sobel operator

Options

  • delta (float): set delta (from -65535 to 65535) (default 0)
  • planes (int): set planes to filter (from 0 to 15) (default 15)
  • scale (float): set scale (from 0 to 65535) (default 1)

See FFix.Filter for pipelines, expressions, and output handling.

split(video_0, options \\ [])

Pass on the input to N video outputs.

Example

[main, preview] = FFix.Filter.split(video, outputs: 2)

Options

  • outputs (int): set number of outputs (from 1 to INT_MAX) (default 2)

See FFix.Filter for pipelines, expressions, and output handling.

spp(video_0, options \\ [])

@spec spp(FFix.Graph.StreamRef.t(),
  enable: String.t() | atom() | number(),
  mode: String.t() | atom() | number(),
  qp: String.t() | atom() | number(),
  quality: String.t() | atom() | number(),
  use_bframe_qp: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Apply a simple post processing filter.

Options

  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • mode (int): set thresholding mode (from 0 to 1) (default hard)
    • hard (0) — hard thresholding
    • soft (1) — soft thresholding
  • qp (int): force a constant quantizer parameter (from 0 to 63) (default 0)
  • quality (int): set quality (from 0 to 6) (default 3)
  • use_bframe_qp (boolean): use B-frames' QP (default false)

See FFix.Filter for pipelines, expressions, and output handling.

ssim360(video_0, video_1, options \\ [])

@spec ssim360(FFix.Graph.StreamRef.t(), FFix.Graph.StreamRef.t(),
  compute_chroma: String.t() | atom() | number(),
  default_heatmap_height: String.t() | atom() | number(),
  default_heatmap_width: String.t() | atom() | number(),
  eof_action: String.t() | atom() | number(),
  f: String.t() | atom() | number(),
  frame_skip_ratio: String.t() | atom() | number(),
  heatmap_str: String.t() | atom() | number(),
  main_pad: String.t() | atom() | number(),
  main_projection: String.t() | atom() | number(),
  main_stereo: String.t() | atom() | number(),
  ref_pad: String.t() | atom() | number(),
  ref_projection: String.t() | atom() | number(),
  ref_stereo: String.t() | atom() | number(),
  repeatlast: String.t() | atom() | number(),
  shortest: String.t() | atom() | number(),
  stats_file: String.t() | atom() | number(),
  ts_sync_mode: String.t() | atom() | number(),
  use_tape: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Calculate the SSIM between two 360 video streams.

Options

  • compute_chroma (int): Specifies if non-luma channels must be computed (from 0 to 1) (default 1)
  • default_heatmap_height (int): Default heatmap dimension. Will be used when dimension is not specified in heatmap data. (from 1 to 4096) (default 16)
  • default_heatmap_width (int): Default heatmap dimension. Will be used when dimension is not specified in heatmap data. (from 1 to 4096) (default 32)
  • eof_action (int): Action to take when encountering EOF from secondary input (from 0 to 2) (default repeat)
    • repeat (0) — Repeat the previous frame.
    • endall (1) — End both streams.
    • pass (2) — Pass through the main input.
  • f (string): Set file where to store per-frame difference information
  • frame_skip_ratio (int): Specifies the number of frames to be skipped from evaluation, for every evaluated frame (from 0 to 1e+06) (default 0)
  • heatmap_str (string): Heatmap data for view-based evaluation. For heatmap file format, please refer to EntSphericalVideoHeatmapData.
  • main_pad (float): Expansion (padding) coeffiecient for each cube face of the main video (from 0 to 10) (default 0)
  • main_projection (int): projection of the main video (from 0 to 5) (default 5)
    • e (4) — equirectangular
    • equirect (4) — equirectangular
    • c3x2 (0) — cubemap 3x2
    • c2x3 (1) — cubemap 2x3
    • barrel (2) — barrel facebook's 360 format
    • barrelsplit (3) — barrel split facebook's 360 format
  • main_stereo (int): stereo format of main video (from 0 to 3) (default 3)
    • mono (2)
    • tb (0)
    • lr (1)
  • ref_pad (float): Expansion (padding) coefficient for each cube face of the reference video (from 0 to 10) (default 0)
  • ref_projection (int): projection of the reference video (from 0 to 4) (default e)
    • e (4) — equirectangular
    • equirect (4) — equirectangular
    • c3x2 (0) — cubemap 3x2
    • c2x3 (1) — cubemap 2x3
    • barrel (2) — barrel facebook's 360 format
    • barrelsplit (3) — barrel split facebook's 360 format
  • ref_stereo (int): stereo format of the reference video (from 0 to 2) (default mono)
    • mono (2)
    • tb (0)
    • lr (1)
  • repeatlast (boolean): extend last frame of secondary streams beyond EOF (default true)
  • shortest (boolean): force termination when the shortest input terminates (default false)
  • stats_file (string): Set file where to store per-frame difference information
  • ts_sync_mode (int): How strictly to sync streams based on secondary input timestamps (from 0 to 1) (default default)
    • default (0) — Frame from secondary input with the nearest lower or equal timestamp to the primary input frame
    • nearest (1) — Frame from secondary input with the absolute nearest timestamp to the primary input frame
  • use_tape (int): Specifies if the tape based SSIM 360 algorithm must be used independent of the input video types (from 0 to 1) (default 0)

See FFix.Filter for pipelines, expressions, and output handling.

ssim(video_0, video_1, options \\ [])

@spec ssim(FFix.Graph.StreamRef.t(), FFix.Graph.StreamRef.t(),
  enable: String.t() | atom() | number(),
  eof_action: String.t() | atom() | number(),
  f: String.t() | atom() | number(),
  repeatlast: String.t() | atom() | number(),
  shortest: String.t() | atom() | number(),
  stats_file: String.t() | atom() | number(),
  ts_sync_mode: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Calculate the SSIM between two video streams.

Options

  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • eof_action (int): Action to take when encountering EOF from secondary input (from 0 to 2) (default repeat)
    • repeat (0) — Repeat the previous frame.
    • endall (1) — End both streams.
    • pass (2) — Pass through the main input.
  • f (string): Set file where to store per-frame difference information
  • repeatlast (boolean): extend last frame of secondary streams beyond EOF (default true)
  • shortest (boolean): force termination when the shortest input terminates (default false)
  • stats_file (string): Set file where to store per-frame difference information
  • ts_sync_mode (int): How strictly to sync streams based on secondary input timestamps (from 0 to 1) (default default)
    • default (0) — Frame from secondary input with the nearest lower or equal timestamp to the primary input frame
    • nearest (1) — Frame from secondary input with the absolute nearest timestamp to the primary input frame

See FFix.Filter for pipelines, expressions, and output handling.

stereo3d(video_0, options \\ [])

@spec stereo3d(FFix.Graph.StreamRef.t(),
  in: String.t() | atom() | number(),
  out: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Convert video stereoscopic 3D view.

Options

  • in (int): set input format (from 16 to 32) (default sbsl)
    • ab2l (24) — above below half height left first
    • tb2l (24) — above below half height left first
    • ab2r (25) — above below half height right first
    • tb2r (25) — above below half height right first
    • abl (22) — above below left first
    • tbl (22) — above below left first
    • abr (23) — above below right first
    • tbr (23) — above below right first
    • al (26) — alternating frames left first
    • ar (27) — alternating frames right first
    • sbs2l (20) — side by side half width left first
    • sbs2r (21) — side by side half width right first
    • sbsl (18) — side by side left first
    • sbsr (19) — side by side right first
    • irl (16) — interleave rows left first
    • irr (17) — interleave rows right first
    • icl (30) — interleave columns left first
    • icr (31) — interleave columns right first
  • out (int): set output format (from 0 to 32) (default arcd)
    • ab2l (24) — above below half height left first
    • tb2l (24) — above below half height left first
    • ab2r (25) — above below half height right first
    • tb2r (25) — above below half height right first
    • abl (22) — above below left first
    • tbl (22) — above below left first
    • abr (23) — above below right first
    • tbr (23) — above below right first
    • agmc (6) — anaglyph green magenta color
    • agmd (7) — anaglyph green magenta dubois
    • agmg (4) — anaglyph green magenta gray
    • agmh (5) — anaglyph green magenta half color
    • al (26) — alternating frames left first
    • ar (27) — alternating frames right first
    • arbg (12) — anaglyph red blue gray
    • arcc (2) — anaglyph red cyan color
    • arcd (3) — anaglyph red cyan dubois
    • arcg (0) — anaglyph red cyan gray
    • arch (1) — anaglyph red cyan half color
    • argg (13) — anaglyph red green gray
    • aybc (10) — anaglyph yellow blue color
    • aybd (11) — anaglyph yellow blue dubois
    • aybg (8) — anaglyph yellow blue gray
    • aybh (9) — anaglyph yellow blue half color
    • irl (16) — interleave rows left first
    • irr (17) — interleave rows right first
    • ml (14) — mono left
    • mr (15) — mono right
    • sbs2l (20) — side by side half width left first
    • sbs2r (21) — side by side half width right first
    • sbsl (18) — side by side left first
    • sbsr (19) — side by side right first
    • chl (28) — checkerboard left first
    • chr (29) — checkerboard right first
    • icl (30) — interleave columns left first
    • icr (31) — interleave columns right first
    • hdmi (32) — HDMI frame pack

See FFix.Filter for pipelines, expressions, and output handling.

subtitles(video_0, options \\ [])

@spec subtitles(FFix.Graph.StreamRef.t(),
  alpha: String.t() | atom() | number(),
  charenc: String.t() | atom() | number(),
  f: String.t() | atom() | number(),
  filename: String.t() | atom() | number(),
  fontsdir: String.t() | atom() | number(),
  force_style: String.t() | atom() | number(),
  original_size: String.t() | atom() | number(),
  si: String.t() | atom() | number(),
  stream_index: String.t() | atom() | number(),
  wrap_unicode: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Render text subtitles onto input video using the libass library.

Options

  • alpha (boolean): enable processing of alpha channel (default false)
  • charenc (string): set input character encoding
  • f (string): set the filename of file to read
  • filename (string): set the filename of file to read
  • fontsdir (string): set the directory containing the fonts to read
  • force_style (string): force subtitle style
  • original_size (image_size): set the size of the original video (used to scale fonts)
  • si (int): set stream index (from -1 to INT_MAX) (default -1)
  • stream_index (int): set stream index (from -1 to INT_MAX) (default -1)
  • wrap_unicode (boolean): break lines according to the Unicode Line Breaking Algorithm (default auto)

See FFix.Filter for pipelines, expressions, and output handling.

super2xsai(video_0, options \\ [])

Scale the input by 2x using the Super2xSaI pixel art algorithm.

Options

See FFix.Filter for pipelines, expressions, and output handling.

swaprect(video_0, options \\ [])

@spec swaprect(FFix.Graph.StreamRef.t(),
  enable: String.t() | atom() | number(),
  h: String.t() | atom() | number(),
  w: String.t() | atom() | number(),
  x1: String.t() | atom() | number(),
  x2: String.t() | atom() | number(),
  y1: String.t() | atom() | number(),
  y2: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Swap 2 rectangular objects in video.

Options

  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • h (string): set rect height (default "h/2")
  • w (string): set rect width (default "w/2")
  • x1 (string): set 1st rect x top left coordinate (default "w/2")
  • x2 (string): set 2nd rect x top left coordinate (default "0")
  • y1 (string): set 1st rect y top left coordinate (default "h/2")
  • y2 (string): set 2nd rect y top left coordinate (default "0")

See FFix.Filter for pipelines, expressions, and output handling.

swapuv(video_0, options \\ [])

@spec swapuv(FFix.Graph.StreamRef.t(),
  enable: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Swap U and V components.

Options

  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero

See FFix.Filter for pipelines, expressions, and output handling.

tblend(video_0, options \\ [])

@spec tblend(FFix.Graph.StreamRef.t(),
  all_expr: String.t() | atom() | number(),
  all_mode: String.t() | atom() | number(),
  all_opacity: String.t() | atom() | number(),
  c0_expr: String.t() | atom() | number(),
  c0_mode: String.t() | atom() | number(),
  c0_opacity: String.t() | atom() | number(),
  c1_expr: String.t() | atom() | number(),
  c1_mode: String.t() | atom() | number(),
  c1_opacity: String.t() | atom() | number(),
  c2_expr: String.t() | atom() | number(),
  c2_mode: String.t() | atom() | number(),
  c2_opacity: String.t() | atom() | number(),
  c3_expr: String.t() | atom() | number(),
  c3_mode: String.t() | atom() | number(),
  c3_opacity: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Blend successive frames.

Options

  • all_expr (string): set expression for all color components
  • all_mode (int): set blend mode for all components (from -1 to 39) (default -1)
    • addition (1)
    • addition128 (28)
    • grainmerge (28)
    • and (2)
    • average (3)
    • burn (4)
    • darken (5)
    • difference (6)
    • difference128 (7)
    • grainextract (7)
    • divide (8)
    • dodge (9)
    • exclusion (10)
    • extremity (32)
    • freeze (31)
    • glow (27)
    • hardlight (11)
    • hardmix (25)
    • heat (30)
    • lighten (12)
    • linearlight (26)
    • multiply (13)
    • multiply128 (29)
    • negation (14)
    • normal (0)
    • or (15)
    • overlay (16)
    • phoenix (17)
    • pinlight (18)
    • reflect (19)
    • screen (20)
    • softlight (21)
    • subtract (22)
    • vividlight (23)
    • xor (24)
    • softdifference (33)
    • geometric (34)
    • harmonic (35)
    • bleach (36)
    • stain (37)
    • interpolate (38)
    • hardoverlay (39)
  • all_opacity (double): set opacity for all color components (from 0 to 1) (default 1)
  • c0_expr (string): set color component #0 expression
  • c0_mode (int): set component #0 blend mode (from 0 to 39) (default normal)
    • addition (1)
    • addition128 (28)
    • grainmerge (28)
    • and (2)
    • average (3)
    • burn (4)
    • darken (5)
    • difference (6)
    • difference128 (7)
    • grainextract (7)
    • divide (8)
    • dodge (9)
    • exclusion (10)
    • extremity (32)
    • freeze (31)
    • glow (27)
    • hardlight (11)
    • hardmix (25)
    • heat (30)
    • lighten (12)
    • linearlight (26)
    • multiply (13)
    • multiply128 (29)
    • negation (14)
    • normal (0)
    • or (15)
    • overlay (16)
    • phoenix (17)
    • pinlight (18)
    • reflect (19)
    • screen (20)
    • softlight (21)
    • subtract (22)
    • vividlight (23)
    • xor (24)
    • softdifference (33)
    • geometric (34)
    • harmonic (35)
    • bleach (36)
    • stain (37)
    • interpolate (38)
    • hardoverlay (39)
  • c0_opacity (double): set color component #0 opacity (from 0 to 1) (default 1)
  • c1_expr (string): set color component #1 expression
  • c1_mode (int): set component #1 blend mode (from 0 to 39) (default normal)
    • addition (1)
    • addition128 (28)
    • grainmerge (28)
    • and (2)
    • average (3)
    • burn (4)
    • darken (5)
    • difference (6)
    • difference128 (7)
    • grainextract (7)
    • divide (8)
    • dodge (9)
    • exclusion (10)
    • extremity (32)
    • freeze (31)
    • glow (27)
    • hardlight (11)
    • hardmix (25)
    • heat (30)
    • lighten (12)
    • linearlight (26)
    • multiply (13)
    • multiply128 (29)
    • negation (14)
    • normal (0)
    • or (15)
    • overlay (16)
    • phoenix (17)
    • pinlight (18)
    • reflect (19)
    • screen (20)
    • softlight (21)
    • subtract (22)
    • vividlight (23)
    • xor (24)
    • softdifference (33)
    • geometric (34)
    • harmonic (35)
    • bleach (36)
    • stain (37)
    • interpolate (38)
    • hardoverlay (39)
  • c1_opacity (double): set color component #1 opacity (from 0 to 1) (default 1)
  • c2_expr (string): set color component #2 expression
  • c2_mode (int): set component #2 blend mode (from 0 to 39) (default normal)
    • addition (1)
    • addition128 (28)
    • grainmerge (28)
    • and (2)
    • average (3)
    • burn (4)
    • darken (5)
    • difference (6)
    • difference128 (7)
    • grainextract (7)
    • divide (8)
    • dodge (9)
    • exclusion (10)
    • extremity (32)
    • freeze (31)
    • glow (27)
    • hardlight (11)
    • hardmix (25)
    • heat (30)
    • lighten (12)
    • linearlight (26)
    • multiply (13)
    • multiply128 (29)
    • negation (14)
    • normal (0)
    • or (15)
    • overlay (16)
    • phoenix (17)
    • pinlight (18)
    • reflect (19)
    • screen (20)
    • softlight (21)
    • subtract (22)
    • vividlight (23)
    • xor (24)
    • softdifference (33)
    • geometric (34)
    • harmonic (35)
    • bleach (36)
    • stain (37)
    • interpolate (38)
    • hardoverlay (39)
  • c2_opacity (double): set color component #2 opacity (from 0 to 1) (default 1)
  • c3_expr (string): set color component #3 expression
  • c3_mode (int): set component #3 blend mode (from 0 to 39) (default normal)
    • addition (1)
    • addition128 (28)
    • grainmerge (28)
    • and (2)
    • average (3)
    • burn (4)
    • darken (5)
    • difference (6)
    • difference128 (7)
    • grainextract (7)
    • divide (8)
    • dodge (9)
    • exclusion (10)
    • extremity (32)
    • freeze (31)
    • glow (27)
    • hardlight (11)
    • hardmix (25)
    • heat (30)
    • lighten (12)
    • linearlight (26)
    • multiply (13)
    • multiply128 (29)
    • negation (14)
    • normal (0)
    • or (15)
    • overlay (16)
    • phoenix (17)
    • pinlight (18)
    • reflect (19)
    • screen (20)
    • softlight (21)
    • subtract (22)
    • vividlight (23)
    • xor (24)
    • softdifference (33)
    • geometric (34)
    • harmonic (35)
    • bleach (36)
    • stain (37)
    • interpolate (38)
    • hardoverlay (39)
  • c3_opacity (double): set color component #3 opacity (from 0 to 1) (default 1)
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero

See FFix.Filter for pipelines, expressions, and output handling.

telecine(video_0, options \\ [])

@spec telecine(FFix.Graph.StreamRef.t(),
  first_field: String.t() | atom() | number(),
  pattern: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Apply a telecine pattern.

Options

  • first_field (int): select first field (from 0 to 1) (default top)
    • top (0) — select top field first
    • t (0) — select top field first
    • bottom (1) — select bottom field first
    • b (1) — select bottom field first
  • pattern (string): pattern that describe for how many fields a frame is to be displayed (default "23")

See FFix.Filter for pipelines, expressions, and output handling.

thistogram(video_0, options \\ [])

@spec thistogram(FFix.Graph.StreamRef.t(),
  b: String.t() | atom() | number(),
  bgopacity: String.t() | atom() | number(),
  c: String.t() | atom() | number(),
  components: String.t() | atom() | number(),
  d: String.t() | atom() | number(),
  display_mode: String.t() | atom() | number(),
  e: String.t() | atom() | number(),
  ec: String.t() | atom() | number(),
  ecolor: String.t() | atom() | number(),
  envelope: String.t() | atom() | number(),
  levels_mode: String.t() | atom() | number(),
  m: String.t() | atom() | number(),
  slide: String.t() | atom() | number(),
  w: String.t() | atom() | number(),
  width: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Compute and draw a temporal histogram.

Options

  • b (float): set background opacity (from 0 to 1) (default 0.9)
  • bgopacity (float): set background opacity (from 0 to 1) (default 0.9)
  • c (int): set color components to display (from 1 to 15) (default 7)
  • components (int): set color components to display (from 1 to 15) (default 7)
  • d (int): set display mode (from 0 to 2) (default stack)
    • overlay (0)
    • parade (1)
    • stack (2)
  • display_mode (int): set display mode (from 0 to 2) (default stack)
    • overlay (0)
    • parade (1)
    • stack (2)
  • e (boolean): display envelope (default false)
  • ec (color): set envelope color (default "gold")
  • ecolor (color): set envelope color (default "gold")
  • envelope (boolean): display envelope (default false)
  • levels_mode (int): set levels mode (from 0 to 1) (default linear)
    • linear (0)
    • logarithmic (1)
  • m (int): set levels mode (from 0 to 1) (default linear)
    • linear (0)
    • logarithmic (1)
  • slide (int): set slide mode (from 0 to 4) (default replace)
    • frame (0) — draw new frames
    • replace (1) — replace old columns with new
    • scroll (2) — scroll from right to left
    • rscroll (3) — scroll from left to right
    • picture (4) — display graph in single frame
  • w (int): set width (from 0 to 8192) (default 0)
  • width (int): set width (from 0 to 8192) (default 0)

See FFix.Filter for pipelines, expressions, and output handling.

threshold(video_0, video_1, video_2, video_3, options \\ [])

Threshold first video stream using other video streams.

Options

  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • planes (int): set planes to filter (from 0 to 15) (default 15)

See FFix.Filter for pipelines, expressions, and output handling.

thumbnail(video_0, options \\ [])

@spec thumbnail(FFix.Graph.StreamRef.t(),
  enable: String.t() | atom() | number(),
  log: String.t() | atom() | number(),
  n: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Select the most representative frame in a given sequence of consecutive frames.

Options

  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • log (int): force stats logging level (from INT_MIN to INT_MAX) (default info)
    • quiet (-8) — logging disabled
    • info (32) — information logging level
    • verbose (40) — verbose logging level
  • n (int): set the frames batch size (from 2 to INT_MAX) (default 100)

See FFix.Filter for pipelines, expressions, and output handling.

tile(video_0, options \\ [])

@spec tile(FFix.Graph.StreamRef.t(),
  color: String.t() | atom() | number(),
  init_padding: String.t() | atom() | number(),
  layout: String.t() | atom() | number(),
  margin: String.t() | atom() | number(),
  nb_frames: String.t() | atom() | number(),
  overlap: String.t() | atom() | number(),
  padding: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Tile several successive frames together.

Options

  • color (color): set the color of the unused area (default "black")
  • init_padding (int): set how many frames to initially pad (from 0 to INT_MAX) (default 0)
  • layout (image_size): set grid size (default "6x5")
  • margin (int): set outer border margin in pixels (from 0 to 1024) (default 0)
  • nb_frames (int): set maximum number of frame to render (from 0 to INT_MAX) (default 0)
  • overlap (int): set how many frames to overlap for each render (from 0 to INT_MAX) (default 0)
  • padding (int): set inner border thickness in pixels (from 0 to 1024) (default 0)

See FFix.Filter for pipelines, expressions, and output handling.

tiltandshift(video_0, options \\ [])

@spec tiltandshift(FFix.Graph.StreamRef.t(),
  end: String.t() | atom() | number(),
  hold: String.t() | atom() | number(),
  pad: String.t() | atom() | number(),
  start: String.t() | atom() | number(),
  tilt: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Generate a tilt-and-shift'd video.

Options

  • end (int): Action at the end of input (from 0 to 3) (default none)
    • none (0) — Do not pad at the end (default)
    • frame (1) — Use the last frame
    • black (2) — Fill with black
  • hold (int): Number of columns to hold at the start of the video (from 0 to INT_MAX) (default 0)
  • pad (int): Number of columns to pad at the end of the video (from 0 to INT_MAX) (default 0)
  • start (int): Action at the start of input (from 0 to 3) (default none)
    • none (0) — Start immediately (default)
    • frame (1) — Use the first frames
    • black (2) — Fill with black
  • tilt (int): Tilt the video horizontally while shifting (from 0 to 1) (default 1)

See FFix.Filter for pipelines, expressions, and output handling.

tinterlace(video_0, options \\ [])

@spec tinterlace(FFix.Graph.StreamRef.t(),
  mode: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Perform temporal field interlacing.

Options

  • mode (int): select interlace mode (from 0 to 7) (default merge)
    • merge (0) — merge fields
    • drop_even (1) — drop even fields
    • drop_odd (2) — drop odd fields
    • pad (3) — pad alternate lines with black
    • interleave_top (4) — interleave top and bottom fields
    • interleave_bottom (5) — interleave bottom and top fields
    • interlacex2 (6) — interlace fields from two consecutive frames
    • mergex2 (7) — merge fields keeping same frame rate

See FFix.Filter for pipelines, expressions, and output handling.

tlut2(video_0, options \\ [])

@spec tlut2(FFix.Graph.StreamRef.t(),
  c0: String.t() | atom() | number(),
  c1: String.t() | atom() | number(),
  c2: String.t() | atom() | number(),
  c3: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Compute and apply a lookup table from two successive frames.

Options

  • c0 (string): set component #0 expression (default "x")
  • c1 (string): set component #1 expression (default "x")
  • c2 (string): set component #2 expression (default "x")
  • c3 (string): set component #3 expression (default "x")
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero

See FFix.Filter for pipelines, expressions, and output handling.

tmedian(video_0, options \\ [])

@spec tmedian(FFix.Graph.StreamRef.t(),
  enable: String.t() | atom() | number(),
  percentile: String.t() | atom() | number(),
  planes: String.t() | atom() | number(),
  radius: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Pick median pixels from successive frames.

Options

  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • percentile (float): set percentile (from 0 to 1) (default 0.5)
  • planes (int): set planes to filter (from 0 to 15) (default 15)
  • radius (int): set median filter radius (from 1 to 127) (default 1)

See FFix.Filter for pipelines, expressions, and output handling.

tmidequalizer(video_0, options \\ [])

@spec tmidequalizer(FFix.Graph.StreamRef.t(),
  enable: String.t() | atom() | number(),
  planes: String.t() | atom() | number(),
  radius: String.t() | atom() | number(),
  sigma: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Apply Temporal Midway Equalization.

Options

  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • planes (int): set planes (from 0 to 15) (default 15)
  • radius (int): set radius (from 1 to 127) (default 5)
  • sigma (float): set sigma (from 0 to 1) (default 0.5)

See FFix.Filter for pipelines, expressions, and output handling.

tmix(video_0, options \\ [])

@spec tmix(FFix.Graph.StreamRef.t(),
  enable: String.t() | atom() | number(),
  frames: String.t() | atom() | number(),
  planes: (String.t() | atom() | number()) | [String.t() | atom() | number()],
  scale: String.t() | atom() | number(),
  weights: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Mix successive video frames.

Options

  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • frames (int): set number of successive frames to mix (from 1 to 1024) (default 3)
  • planes (flags): set what planes to filter (default F)
  • scale (float): set scale (from 0 to 32767) (default 0)
  • weights (string): set weight for each frame (default "1 1 1")

See FFix.Filter for pipelines, expressions, and output handling.

tonemap(video_0, options \\ [])

@spec tonemap(FFix.Graph.StreamRef.t(),
  desat: String.t() | atom() | number(),
  param: String.t() | atom() | number(),
  peak: String.t() | atom() | number(),
  tonemap: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Conversion to/from different dynamic ranges.

Options

  • desat (double): desaturation strength (from 0 to DBL_MAX) (default 2)
  • param (double): tonemap parameter (from DBL_MIN to DBL_MAX) (default nan)
  • peak (double): signal peak override (from 0 to DBL_MAX) (default 0)
  • tonemap (int): tonemap algorithm selection (from 0 to 6) (default none)
    • none (0)
    • linear (1)
    • gamma (2)
    • clip (3)
    • reinhard (4)
    • hable (5)
    • mobius (6)

See FFix.Filter for pipelines, expressions, and output handling.

tonemap_opencl(video_0, options \\ [])

@spec tonemap_opencl(FFix.Graph.StreamRef.t(),
  desat: String.t() | atom() | number(),
  format: String.t() | atom() | number(),
  m: String.t() | atom() | number(),
  matrix: String.t() | atom() | number(),
  p: String.t() | atom() | number(),
  param: String.t() | atom() | number(),
  peak: String.t() | atom() | number(),
  primaries: String.t() | atom() | number(),
  r: String.t() | atom() | number(),
  range: String.t() | atom() | number(),
  t: String.t() | atom() | number(),
  threshold: String.t() | atom() | number(),
  tonemap: String.t() | atom() | number(),
  transfer: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Perform HDR to SDR conversion with tonemapping.

Options

  • desat (double): desaturation parameter (from 0 to DBL_MAX) (default 0.5)
  • format (pix_fmt): output pixel format (default none)
  • m (int): set colorspace matrix (from -1 to INT_MAX) (default -1)
    • bt709 (1)
    • bt2020 (9)
  • matrix (int): set colorspace matrix (from -1 to INT_MAX) (default -1)
    • bt709 (1)
    • bt2020 (9)
  • p (int): set color primaries (from -1 to INT_MAX) (default -1)
    • bt709 (1)
    • bt2020 (9)
  • param (double): tonemap parameter (from DBL_MIN to DBL_MAX) (default nan)
  • peak (double): signal peak override (from 0 to DBL_MAX) (default 0)
  • primaries (int): set color primaries (from -1 to INT_MAX) (default -1)
    • bt709 (1)
    • bt2020 (9)
  • r (int): set color range (from -1 to INT_MAX) (default -1)
    • tv (1)
    • pc (2)
    • limited (1)
    • full (2)
  • range (int): set color range (from -1 to INT_MAX) (default -1)
    • tv (1)
    • pc (2)
    • limited (1)
    • full (2)
  • t (int): set transfer characteristic (from -1 to INT_MAX) (default bt709)
    • bt709 (1)
    • bt2020 (14)
  • threshold (double): scene detection threshold (from 0 to DBL_MAX) (default 0.2)
  • tonemap (int): tonemap algorithm selection (from 0 to 6) (default none)
    • none (0)
    • linear (1)
    • gamma (2)
    • clip (3)
    • reinhard (4)
    • hable (5)
    • mobius (6)
  • transfer (int): set transfer characteristic (from -1 to INT_MAX) (default bt709)
    • bt709 (1)
    • bt2020 (14)

See FFix.Filter for pipelines, expressions, and output handling.

tonemap_vaapi(video_0, options \\ [])

@spec tonemap_vaapi(FFix.Graph.StreamRef.t(),
  display: String.t() | atom() | number(),
  format: String.t() | atom() | number(),
  light: String.t() | atom() | number(),
  m: String.t() | atom() | number(),
  matrix: String.t() | atom() | number(),
  p: String.t() | atom() | number(),
  primaries: String.t() | atom() | number(),
  t: String.t() | atom() | number(),
  transfer: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

VAAPI VPP for tone-mapping

Options

  • display (string): set mastering display colour volume
  • format (string): Output pixel format set
  • light (string): set content light level information
  • m (string): Output color matrix coefficient set
  • matrix (string): Output color matrix coefficient set
  • p (string): Output color primaries set
  • primaries (string): Output color primaries set
  • t (string): Output color transfer characteristics set
  • transfer (string): Output color transfer characteristics set

See FFix.Filter for pipelines, expressions, and output handling.

tpad(video_0, options \\ [])

@spec tpad(FFix.Graph.StreamRef.t(),
  color: String.t() | atom() | number(),
  start: String.t() | atom() | number(),
  start_duration: String.t() | atom() | number(),
  start_mode: String.t() | atom() | number(),
  stop: String.t() | atom() | number(),
  stop_duration: String.t() | atom() | number(),
  stop_mode: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Temporarily pad video frames.

Options

  • color (color): set the color of the added frames (default "black")
  • start (int): set the number of frames to delay input (from 0 to INT_MAX) (default 0)
  • start_duration (duration): set the duration to delay input (default 0)
  • start_mode (int): set the mode of added frames to start (from 0 to 1) (default add)
    • add (0) — add solid-color frames
    • clone (1) — clone first/last frame
  • stop (int): set the number of frames to add after input finished (from -1 to INT_MAX) (default 0)
  • stop_duration (duration): set the duration to pad input (default 0)
  • stop_mode (int): set the mode of added frames to end (from 0 to 1) (default add)
    • add (0) — add solid-color frames
    • clone (1) — clone first/last frame

See FFix.Filter for pipelines, expressions, and output handling.

transpose(video_0, options \\ [])

@spec transpose(FFix.Graph.StreamRef.t(),
  dir: String.t() | atom() | number(),
  passthrough: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Transpose input video.

Options

  • dir (int): set transpose direction (from 0 to 7) (default cclock_flip)
    • cclock_flip (0) — rotate counter-clockwise with vertical flip
    • clock (1) — rotate clockwise
    • cclock (2) — rotate counter-clockwise
    • clock_flip (3) — rotate clockwise with vertical flip
  • passthrough (int): do not apply transposition if the input matches the specified geometry (from 0 to INT_MAX) (default none)
    • none (0) — always apply transposition
    • portrait (2) — preserve portrait geometry
    • landscape (1) — preserve landscape geometry

See FFix.Filter for pipelines, expressions, and output handling.

transpose_opencl(video_0, options \\ [])

@spec transpose_opencl(FFix.Graph.StreamRef.t(),
  dir: String.t() | atom() | number(),
  passthrough: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Transpose input video

Options

  • dir (int): set transpose direction (from 0 to 3) (default cclock_flip)
    • cclock_flip (0) — rotate counter-clockwise with vertical flip
    • clock (1) — rotate clockwise
    • cclock (2) — rotate counter-clockwise
    • clock_flip (3) — rotate clockwise with vertical flip
  • passthrough (int): do not apply transposition if the input matches the specified geometry (from 0 to INT_MAX) (default none)
    • none (0) — always apply transposition
    • portrait (2) — preserve portrait geometry
    • landscape (1) — preserve landscape geometry

See FFix.Filter for pipelines, expressions, and output handling.

transpose_vaapi(video_0, options \\ [])

@spec transpose_vaapi(FFix.Graph.StreamRef.t(),
  dir: String.t() | atom() | number(),
  passthrough: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

VAAPI VPP for transpose

Options

  • dir (int): set transpose direction (from 0 to 6) (default cclock_flip)
    • cclock_flip (0) — rotate counter-clockwise with vertical flip
    • clock (1) — rotate clockwise
    • cclock (2) — rotate counter-clockwise
    • clock_flip (3) — rotate clockwise with vertical flip
    • reversal (4) — rotate by half-turn
    • hflip (5) — flip horizontally
    • vflip (6) — flip vertically
  • passthrough (int): do not apply transposition if the input matches the specified geometry (from 0 to INT_MAX) (default none)
    • none (0) — always apply transposition
    • portrait (2) — preserve portrait geometry
    • landscape (1) — preserve landscape geometry

See FFix.Filter for pipelines, expressions, and output handling.

transpose_vulkan(video_0, options \\ [])

@spec transpose_vulkan(FFix.Graph.StreamRef.t(),
  dir: String.t() | atom() | number(),
  passthrough: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Transpose Vulkan Filter

Options

  • dir (int): set transpose direction (from 0 to 7) (default cclock_flip)
    • cclock_flip (0) — rotate counter-clockwise with vertical flip
    • clock (1) — rotate clockwise
    • cclock (2) — rotate counter-clockwise
    • clock_flip (3) — rotate clockwise with vertical flip
  • passthrough (int): do not apply transposition if the input matches the specified geometry (from 0 to INT_MAX) (default none)
    • none (0) — always apply transposition
    • portrait (2) — preserve portrait geometry
    • landscape (1) — preserve landscape geometry

See FFix.Filter for pipelines, expressions, and output handling.

trim(video_0, options \\ [])

@spec trim(FFix.Graph.StreamRef.t(),
  duration: String.t() | atom() | number(),
  durationi: String.t() | atom() | number(),
  end: String.t() | atom() | number(),
  end_frame: String.t() | atom() | number(),
  end_pts: String.t() | atom() | number(),
  endi: String.t() | atom() | number(),
  start: String.t() | atom() | number(),
  start_frame: String.t() | atom() | number(),
  start_pts: String.t() | atom() | number(),
  starti: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Pick one continuous section from the input, drop the rest.

Options

  • duration (duration): Maximum duration of the output (default 0)
  • durationi (duration): Maximum duration of the output (default 0)
  • end (duration): Timestamp of the first frame that should be dropped again (default INT64_MAX)
  • end_frame (int64): Number of the first frame that should be dropped again (from 0 to I64_MAX) (default I64_MAX)
  • end_pts (int64): Timestamp of the first frame that should be dropped again (from I64_MIN to I64_MAX) (default I64_MIN)
  • endi (duration): Timestamp of the first frame that should be dropped again (default INT64_MAX)
  • start (duration): Timestamp of the first frame that should be passed (default INT64_MAX)
  • start_frame (int64): Number of the first frame that should be passed to the output (from -1 to I64_MAX) (default -1)
  • start_pts (int64): Timestamp of the first frame that should be passed (from I64_MIN to I64_MAX) (default I64_MIN)
  • starti (duration): Timestamp of the first frame that should be passed (default INT64_MAX)

See FFix.Filter for pipelines, expressions, and output handling.

unpremultiply(streams, options \\ [])

@spec unpremultiply([FFix.Graph.StreamRef.t()],
  enable: String.t() | atom() | number(),
  inplace: String.t() | atom() | number(),
  planes: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

UnPreMultiply first stream with first plane of second stream.

Options

  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • inplace (boolean): enable inplace mode (default false)
  • planes (int): set planes (from 0 to 15) (default 15)

See FFix.Filter for pipelines, expressions, and output handling.

unsharp(video_0, options \\ [])

@spec unsharp(FFix.Graph.StreamRef.t(),
  aa: String.t() | atom() | number(),
  alpha_amount: String.t() | atom() | number(),
  alpha_msize_x: String.t() | atom() | number(),
  alpha_msize_y: String.t() | atom() | number(),
  ax: String.t() | atom() | number(),
  ay: String.t() | atom() | number(),
  ca: String.t() | atom() | number(),
  chroma_amount: String.t() | atom() | number(),
  chroma_msize_x: String.t() | atom() | number(),
  chroma_msize_y: String.t() | atom() | number(),
  cx: String.t() | atom() | number(),
  cy: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  la: String.t() | atom() | number(),
  luma_amount: String.t() | atom() | number(),
  luma_msize_x: String.t() | atom() | number(),
  luma_msize_y: String.t() | atom() | number(),
  lx: String.t() | atom() | number(),
  ly: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Sharpen or blur the input video.

Options

  • aa (float): set alpha effect strength (from -2 to 5) (default 0)
  • alpha_amount (float): set alpha effect strength (from -2 to 5) (default 0)
  • alpha_msize_x (int): set alpha matrix horizontal size (from 3 to 23) (default 5)
  • alpha_msize_y (int): set alpha matrix vertical size (from 3 to 23) (default 5)
  • ax (int): set alpha matrix horizontal size (from 3 to 23) (default 5)
  • ay (int): set alpha matrix vertical size (from 3 to 23) (default 5)
  • ca (float): set chroma effect strength (from -2 to 5) (default 0)
  • chroma_amount (float): set chroma effect strength (from -2 to 5) (default 0)
  • chroma_msize_x (int): set chroma matrix horizontal size (from 3 to 23) (default 5)
  • chroma_msize_y (int): set chroma matrix vertical size (from 3 to 23) (default 5)
  • cx (int): set chroma matrix horizontal size (from 3 to 23) (default 5)
  • cy (int): set chroma matrix vertical size (from 3 to 23) (default 5)
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • la (float): set luma effect strength (from -2 to 5) (default 1)
  • luma_amount (float): set luma effect strength (from -2 to 5) (default 1)
  • luma_msize_x (int): set luma matrix horizontal size (from 3 to 23) (default 5)
  • luma_msize_y (int): set luma matrix vertical size (from 3 to 23) (default 5)
  • lx (int): set luma matrix horizontal size (from 3 to 23) (default 5)
  • ly (int): set luma matrix vertical size (from 3 to 23) (default 5)

See FFix.Filter for pipelines, expressions, and output handling.

unsharp_opencl(video_0, options \\ [])

@spec unsharp_opencl(FFix.Graph.StreamRef.t(),
  ca: String.t() | atom() | number(),
  chroma_amount: String.t() | atom() | number(),
  chroma_msize_x: String.t() | atom() | number(),
  chroma_msize_y: String.t() | atom() | number(),
  cx: String.t() | atom() | number(),
  cy: String.t() | atom() | number(),
  la: String.t() | atom() | number(),
  luma_amount: String.t() | atom() | number(),
  luma_msize_x: String.t() | atom() | number(),
  luma_msize_y: String.t() | atom() | number(),
  lx: String.t() | atom() | number(),
  ly: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Apply unsharp mask to input video

Options

  • ca (float): Set chroma amount (multiplier) (from -10 to 10) (default 0)
  • chroma_amount (float): Set chroma amount (multiplier) (from -10 to 10) (default 0)
  • chroma_msize_x (float): Set chroma mask horizontal diameter (pixels after subsampling) (from 1 to 23) (default 5)
  • chroma_msize_y (float): Set chroma mask vertical diameter (pixels after subsampling) (from 1 to 23) (default 5)
  • cx (float): Set chroma mask horizontal diameter (pixels after subsampling) (from 1 to 23) (default 5)
  • cy (float): Set chroma mask vertical diameter (pixels after subsampling) (from 1 to 23) (default 5)
  • la (float): Set luma amount (multiplier) (from -10 to 10) (default 1)
  • luma_amount (float): Set luma amount (multiplier) (from -10 to 10) (default 1)
  • luma_msize_x (float): Set luma mask horizontal diameter (pixels) (from 1 to 23) (default 5)
  • luma_msize_y (float): Set luma mask vertical diameter (pixels) (from 1 to 23) (default 5)
  • lx (float): Set luma mask horizontal diameter (pixels) (from 1 to 23) (default 5)
  • ly (float): Set luma mask vertical diameter (pixels) (from 1 to 23) (default 5)

See FFix.Filter for pipelines, expressions, and output handling.

untile(video_0, options \\ [])

@spec untile(FFix.Graph.StreamRef.t(),
  layout: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Untile a frame into a sequence of frames.

Options

  • layout (image_size): set grid size (default "6x5")

See FFix.Filter for pipelines, expressions, and output handling.

uspp(video_0, options \\ [])

@spec uspp(FFix.Graph.StreamRef.t(),
  codec: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  qp: String.t() | atom() | number(),
  quality: String.t() | atom() | number(),
  use_bframe_qp: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Apply Ultra Simple / Slow Post-processing filter.

Options

  • codec (string): Codec name (default "snow")
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • qp (int): force a constant quantizer parameter (from 0 to 63) (default 0)
  • quality (int): set quality (from 0 to 8) (default 3)
  • use_bframe_qp (boolean): use B-frames' QP (default false)

See FFix.Filter for pipelines, expressions, and output handling.

v360(video_0, options \\ [])

@spec v360(FFix.Graph.StreamRef.t(),
  alpha_mask: String.t() | atom() | number(),
  d_flip: String.t() | atom() | number(),
  d_fov: String.t() | atom() | number(),
  fin_pad: String.t() | atom() | number(),
  fout_pad: String.t() | atom() | number(),
  h: String.t() | atom() | number(),
  h_flip: String.t() | atom() | number(),
  h_fov: String.t() | atom() | number(),
  h_offset: String.t() | atom() | number(),
  id_fov: String.t() | atom() | number(),
  ih_flip: String.t() | atom() | number(),
  ih_fov: String.t() | atom() | number(),
  in_forder: String.t() | atom() | number(),
  in_frot: String.t() | atom() | number(),
  in_pad: String.t() | atom() | number(),
  in_stereo: String.t() | atom() | number(),
  in_trans: String.t() | atom() | number(),
  input: String.t() | atom() | number(),
  interp: String.t() | atom() | number(),
  iv_flip: String.t() | atom() | number(),
  iv_fov: String.t() | atom() | number(),
  out_forder: String.t() | atom() | number(),
  out_frot: String.t() | atom() | number(),
  out_pad: String.t() | atom() | number(),
  out_stereo: String.t() | atom() | number(),
  out_trans: String.t() | atom() | number(),
  output: String.t() | atom() | number(),
  pitch: String.t() | atom() | number(),
  reset_rot: String.t() | atom() | number(),
  roll: String.t() | atom() | number(),
  rorder: String.t() | atom() | number(),
  v_flip: String.t() | atom() | number(),
  v_fov: String.t() | atom() | number(),
  v_offset: String.t() | atom() | number(),
  w: String.t() | atom() | number(),
  yaw: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Convert 360 projection of video.

Options

  • alpha_mask (boolean): build mask in alpha plane (default false)
  • d_flip (boolean): flip out video indepth (default false)
  • d_fov (float): output diagonal field of view (from 0 to 360) (default 0)
  • fin_pad (int): fixed input cubemap pads (from 0 to 100) (default 0)
  • fout_pad (int): fixed output cubemap pads (from 0 to 100) (default 0)
  • h (int): output height (from 0 to 32767) (default 0)
  • h_flip (boolean): flip out video horizontally (default false)
  • h_fov (float): output horizontal field of view (from 0 to 360) (default 0)
  • h_offset (float): output horizontal off-axis offset (from -1 to 1) (default 0)
  • id_fov (float): input diagonal field of view (from 0 to 360) (default 0)
  • ih_flip (boolean): flip in video horizontally (default false)
  • ih_fov (float): input horizontal field of view (from 0 to 360) (default 0)
  • in_forder (string): input cubemap face order (default "rludfb")
  • in_frot (string): input cubemap face rotation (default "000000")
  • in_pad (float): percent input cubemap pads (from 0 to 0.1) (default 0)
  • in_stereo (int): input stereo format (from 0 to 2) (default 2d)
    • 2d (0) — 2d mono
    • sbs (1) — side by side
    • tb (2) — top bottom
  • in_trans (boolean): transpose video input (default false)
  • input (int): set input projection (from 0 to 24) (default e)
    • e (0) — equirectangular
    • equirect (0) — equirectangular
    • c3x2 (1) — cubemap 3x2
    • c6x1 (2) — cubemap 6x1
    • eac (3) — equi-angular cubemap
    • dfisheye (5) — dual fisheye
    • flat (4) — regular video
    • rectilinear (4) — regular video
    • gnomonic (4) — regular video
    • barrel (6) — barrel facebook's 360 format
    • fb (6) — barrel facebook's 360 format
    • c1x6 (7) — cubemap 1x6
    • sg (8) — stereographic
    • mercator (9) — mercator
    • ball (10) — ball
    • hammer (11) — hammer
    • sinusoidal (12) — sinusoidal
    • fisheye (13) — fisheye
    • pannini (14) — pannini
    • cylindrical (15) — cylindrical
    • tetrahedron (17) — tetrahedron
    • barrelsplit (18) — barrel split facebook's 360 format
    • tsp (19) — truncated square pyramid
    • hequirect (20) — half equirectangular
    • he (20) — half equirectangular
    • equisolid (21) — equisolid
    • og (22) — orthographic
    • octahedron (23) — octahedron
    • cylindricalea (24) — cylindrical equal area
  • interp (int): set interpolation method (from 0 to 7) (default line)
    • near (0) — nearest neighbour
    • nearest (0) — nearest neighbour
    • line (1) — bilinear interpolation
    • linear (1) — bilinear interpolation
    • lagrange9 (2) — lagrange9 interpolation
    • cube (3) — bicubic interpolation
    • cubic (3) — bicubic interpolation
    • lanc (4) — lanczos interpolation
    • lanczos (4) — lanczos interpolation
    • sp16 (5) — spline16 interpolation
    • spline16 (5) — spline16 interpolation
    • gauss (6) — gaussian interpolation
    • gaussian (6) — gaussian interpolation
    • mitchell (7) — mitchell interpolation
  • iv_flip (boolean): flip in video vertically (default false)
  • iv_fov (float): input vertical field of view (from 0 to 360) (default 0)
  • out_forder (string): output cubemap face order (default "rludfb")
  • out_frot (string): output cubemap face rotation (default "000000")
  • out_pad (float): percent output cubemap pads (from 0 to 0.1) (default 0)
  • out_stereo (int): output stereo format (from 0 to 2) (default 2d)
    • 2d (0) — 2d mono
    • sbs (1) — side by side
    • tb (2) — top bottom
  • out_trans (boolean): transpose video output (default false)
  • output (int): set output projection (from 0 to 24) (default c3x2)
    • e (0) — equirectangular
    • equirect (0) — equirectangular
    • c3x2 (1) — cubemap 3x2
    • c6x1 (2) — cubemap 6x1
    • eac (3) — equi-angular cubemap
    • dfisheye (5) — dual fisheye
    • flat (4) — regular video
    • rectilinear (4) — regular video
    • gnomonic (4) — regular video
    • barrel (6) — barrel facebook's 360 format
    • fb (6) — barrel facebook's 360 format
    • c1x6 (7) — cubemap 1x6
    • sg (8) — stereographic
    • mercator (9) — mercator
    • ball (10) — ball
    • hammer (11) — hammer
    • sinusoidal (12) — sinusoidal
    • fisheye (13) — fisheye
    • pannini (14) — pannini
    • cylindrical (15) — cylindrical
    • perspective (16) — perspective
    • tetrahedron (17) — tetrahedron
    • barrelsplit (18) — barrel split facebook's 360 format
    • tsp (19) — truncated square pyramid
    • hequirect (20) — half equirectangular
    • he (20) — half equirectangular
    • equisolid (21) — equisolid
    • og (22) — orthographic
    • octahedron (23) — octahedron
    • cylindricalea (24) — cylindrical equal area
  • pitch (float): pitch rotation (from -180 to 180) (default 0)
  • reset_rot (boolean): reset rotation (default false)
  • roll (float): roll rotation (from -180 to 180) (default 0)
  • rorder (string): rotation order (default "ypr")
  • v_flip (boolean): flip out video vertically (default false)
  • v_fov (float): output vertical field of view (from 0 to 360) (default 0)
  • v_offset (float): output vertical off-axis offset (from -1 to 1) (default 0)
  • w (int): output width (from 0 to 32767) (default 0)
  • yaw (float): yaw rotation (from -180 to 180) (default 0)

See FFix.Filter for pipelines, expressions, and output handling.

vaguedenoiser(video_0, options \\ [])

@spec vaguedenoiser(FFix.Graph.StreamRef.t(),
  enable: String.t() | atom() | number(),
  method: String.t() | atom() | number(),
  nsteps: String.t() | atom() | number(),
  percent: String.t() | atom() | number(),
  planes: String.t() | atom() | number(),
  threshold: String.t() | atom() | number(),
  type: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Apply a Wavelet based Denoiser.

Options

  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • method (int): set filtering method (from 0 to 2) (default garrote)
    • hard (0) — hard thresholding
    • soft (1) — soft thresholding
    • garrote (2) — garrote thresholding
  • nsteps (int): set number of steps (from 1 to 32) (default 6)
  • percent (float): set percent of full denoising (from 0 to 100) (default 85)
  • planes (int): set planes to filter (from 0 to 15) (default 15)
  • threshold (float): set filtering strength (from 0 to DBL_MAX) (default 2)
  • type (int): set threshold type (from 0 to 1) (default universal)
    • universal (0) — universal (VisuShrink)
    • bayes (1) — bayes (BayesShrink)

See FFix.Filter for pipelines, expressions, and output handling.

varblur(video_0, video_1, options \\ [])

@spec varblur(FFix.Graph.StreamRef.t(), FFix.Graph.StreamRef.t(),
  enable: String.t() | atom() | number(),
  eof_action: String.t() | atom() | number(),
  max_r: String.t() | atom() | number(),
  min_r: String.t() | atom() | number(),
  planes: String.t() | atom() | number(),
  repeatlast: String.t() | atom() | number(),
  shortest: String.t() | atom() | number(),
  ts_sync_mode: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Apply Variable Blur filter.

Options

  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • eof_action (int): Action to take when encountering EOF from secondary input (from 0 to 2) (default repeat)
    • repeat (0) — Repeat the previous frame.
    • endall (1) — End both streams.
    • pass (2) — Pass through the main input.
  • max_r (int): set max blur radius (from 1 to 255) (default 8)
  • min_r (int): set min blur radius (from 0 to 254) (default 0)
  • planes (int): set planes to filter (from 0 to 15) (default 15)
  • repeatlast (boolean): extend last frame of secondary streams beyond EOF (default true)
  • shortest (boolean): force termination when the shortest input terminates (default false)
  • ts_sync_mode (int): How strictly to sync streams based on secondary input timestamps (from 0 to 1) (default default)
    • default (0) — Frame from secondary input with the nearest lower or equal timestamp to the primary input frame
    • nearest (1) — Frame from secondary input with the absolute nearest timestamp to the primary input frame

See FFix.Filter for pipelines, expressions, and output handling.

vectorscope(video_0, options \\ [])

@spec vectorscope(FFix.Graph.StreamRef.t(),
  b: String.t() | atom() | number(),
  bgopacity: String.t() | atom() | number(),
  c: String.t() | atom() | number(),
  colorspace: String.t() | atom() | number(),
  e: String.t() | atom() | number(),
  envelope: String.t() | atom() | number(),
  f: (String.t() | atom() | number()) | [String.t() | atom() | number()],
  flags: (String.t() | atom() | number()) | [String.t() | atom() | number()],
  g: String.t() | atom() | number(),
  graticule: String.t() | atom() | number(),
  h: String.t() | atom() | number(),
  hthreshold: String.t() | atom() | number(),
  i: String.t() | atom() | number(),
  intensity: String.t() | atom() | number(),
  l: String.t() | atom() | number(),
  lthreshold: String.t() | atom() | number(),
  m: String.t() | atom() | number(),
  mode: String.t() | atom() | number(),
  o: String.t() | atom() | number(),
  opacity: String.t() | atom() | number(),
  t0: String.t() | atom() | number(),
  t1: String.t() | atom() | number(),
  tint0: String.t() | atom() | number(),
  tint1: String.t() | atom() | number(),
  x: String.t() | atom() | number(),
  y: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Video vectorscope.

Options

  • b (float): set background opacity (from 0 to 1) (default 0.3)
  • bgopacity (float): set background opacity (from 0 to 1) (default 0.3)
  • c (int): set colorspace (from 0 to 2) (default auto)
    • auto (0)
    • 601 (1)
    • 709 (2)
  • colorspace (int): set colorspace (from 0 to 2) (default auto)
    • auto (0)
    • 601 (1)
    • 709 (2)
  • e (int): set envelope (from 0 to 3) (default none)
    • none (0)
    • instant (1)
    • peak (2)
    • peak+instant (3)
  • envelope (int): set envelope (from 0 to 3) (default none)
    • none (0)
    • instant (1)
    • peak (2)
    • peak+instant (3)
  • f (flags): set graticule flags (default name)
    • white — draw white point
    • black — draw black point
    • name — draw point name
  • flags (flags): set graticule flags (default name)
    • white — draw white point
    • black — draw black point
    • name — draw point name
  • g (int): set graticule (from 0 to 3) (default none)
    • none (0)
    • green (1)
    • color (2)
    • invert (3)
  • graticule (int): set graticule (from 0 to 3) (default none)
    • none (0)
    • green (1)
    • color (2)
    • invert (3)
  • h (float): set high threshold (from 0 to 1) (default 1)
  • hthreshold (float): set high threshold (from 0 to 1) (default 1)
  • i (float): set intensity (from 0 to 1) (default 0.004)
  • intensity (float): set intensity (from 0 to 1) (default 0.004)
  • l (float): set low threshold (from 0 to 1) (default 0)
  • lthreshold (float): set low threshold (from 0 to 1) (default 0)
  • m (int): set vectorscope mode (from 0 to 5) (default gray)
    • gray (0)
    • tint (0)
    • color (1)
    • color2 (2)
    • color3 (3)
    • color4 (4)
    • color5 (5)
  • mode (int): set vectorscope mode (from 0 to 5) (default gray)
    • gray (0)
    • tint (0)
    • color (1)
    • color2 (2)
    • color3 (3)
    • color4 (4)
    • color5 (5)
  • o (float): set graticule opacity (from 0 to 1) (default 0.75)
  • opacity (float): set graticule opacity (from 0 to 1) (default 0.75)
  • t0 (float): set 1st tint (from -1 to 1) (default 0)
  • t1 (float): set 2nd tint (from -1 to 1) (default 0)
  • tint0 (float): set 1st tint (from -1 to 1) (default 0)
  • tint1 (float): set 2nd tint (from -1 to 1) (default 0)
  • x (int): set color component on X axis (from 0 to 2) (default 1)
  • y (int): set color component on Y axis (from 0 to 2) (default 2)

See FFix.Filter for pipelines, expressions, and output handling.

vflip(video_0, options \\ [])

@spec vflip(FFix.Graph.StreamRef.t(),
  enable: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Flip the input video vertically.

Options

  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero

See FFix.Filter for pipelines, expressions, and output handling.

vflip_vulkan(video_0, options \\ [])

@spec vflip_vulkan(FFix.Graph.StreamRef.t(), keyword()) :: FFix.Graph.StreamRef.t()

Vertically flip the input video in Vulkan

Options

See FFix.Filter for pipelines, expressions, and output handling.

vfrdet(video_0, options \\ [])

Variable frame rate detect filter.

Options

See FFix.Filter for pipelines, expressions, and output handling.

vibrance(video_0, options \\ [])

@spec vibrance(FFix.Graph.StreamRef.t(),
  alternate: String.t() | atom() | number(),
  bbal: String.t() | atom() | number(),
  blum: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  gbal: String.t() | atom() | number(),
  glum: String.t() | atom() | number(),
  intensity: String.t() | atom() | number(),
  rbal: String.t() | atom() | number(),
  rlum: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Boost or alter saturation.

Options

  • alternate (boolean): use alternate colors (default false)
  • bbal (float): set the blue balance value (from -10 to 10) (default 1)
  • blum (float): set the blue luma coefficient (from 0 to 1) (default 0.212656)
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • gbal (float): set the green balance value (from -10 to 10) (default 1)
  • glum (float): set the green luma coefficient (from 0 to 1) (default 0.715158)
  • intensity (float): set the intensity value (from -2 to 2) (default 0)
  • rbal (float): set the red balance value (from -10 to 10) (default 1)
  • rlum (float): set the red luma coefficient (from 0 to 1) (default 0.072186)

See FFix.Filter for pipelines, expressions, and output handling.

vidstabdetect(video_0, options \\ [])

@spec vidstabdetect(FFix.Graph.StreamRef.t(),
  accuracy: String.t() | atom() | number(),
  fileformat: String.t() | atom() | number(),
  mincontrast: String.t() | atom() | number(),
  result: String.t() | atom() | number(),
  shakiness: String.t() | atom() | number(),
  show: String.t() | atom() | number(),
  stepsize: String.t() | atom() | number(),
  tripod: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Extract relative transformations, pass 1 of 2 for stabilization (see vidstabtransform for pass 2).

Options

  • accuracy (int): (>=shakiness) 1: low 15: high (slow) (from 1 to 15) (default 15)
  • fileformat (int): transforms data file format (from 1 to 2) (default binary)
    • ascii (1) — ASCII text
    • binary (2) — binary
  • mincontrast (double): below this contrast a field is discarded (0-1) (from 0 to 1) (default 0.25)
  • result (string): path to the file used to write the transforms (default "transforms.trf")
  • shakiness (int): how shaky is the video and how quick is the camera? 1: little (fast) 10: very strong/quick (slow) (from 1 to 10) (default 5)
  • show (int): 0: draw nothing; 1,2: show fields and transforms (from 0 to 2) (default 0)
  • stepsize (int): region around minimum is scanned with 1 pixel resolution (from 1 to 32) (default 6)
  • tripod (int): virtual tripod mode (if >0): motion is compared to a reference reference frame (frame # is the value) (from 0 to INT_MAX) (default 0)

See FFix.Filter for pipelines, expressions, and output handling.

vidstabtransform(video_0, options \\ [])

@spec vidstabtransform(FFix.Graph.StreamRef.t(),
  crop: String.t() | atom() | number(),
  debug: String.t() | atom() | number(),
  input: String.t() | atom() | number(),
  interpol: String.t() | atom() | number(),
  invert: String.t() | atom() | number(),
  maxangle: String.t() | atom() | number(),
  maxshift: String.t() | atom() | number(),
  optalgo: String.t() | atom() | number(),
  optzoom: String.t() | atom() | number(),
  relative: String.t() | atom() | number(),
  smoothing: String.t() | atom() | number(),
  tripod: String.t() | atom() | number(),
  zoom: String.t() | atom() | number(),
  zoomspeed: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Transform the frames, pass 2 of 2 for stabilization (see vidstabdetect for pass 1).

Options

  • crop (int): set cropping mode (from 0 to 1) (default keep)
    • keep (0) — keep border
    • black (1) — black border
  • debug (boolean): enable debug mode and writer global motions information to file (default false)
  • input (string): set path to the file storing the transforms (default "transforms.trf")
  • interpol (int): set type of interpolation (from 0 to 3) (default bilinear)
    • no (0) — no interpolation
    • linear (1) — linear (horizontal)
    • bilinear (2) — bi-linear
    • bicubic (3) — bi-cubic
  • invert (int): invert transforms (from 0 to 1) (default 0)
  • maxangle (double): set maximal angle in rad to rotate image (from -1 to 3.14) (default -1)
  • maxshift (int): set maximal number of pixels to translate image (from -1 to 500) (default -1)
  • optalgo (int): set camera path optimization algo (from 0 to 2) (default opt)
    • opt (0) — global optimization
    • gauss (1) — gaussian kernel
    • avg (2) — simple averaging on motion
  • optzoom (int): set optimal zoom (0: nothing, 1: optimal static zoom, 2: optimal dynamic zoom) (from 0 to 2) (default 1)
  • relative (int): consider transforms as relative (from 0 to 1) (default 1)
  • smoothing (int): set number of frames*2 + 1 used for lowpass filtering (from 0 to 1000) (default 15)
  • tripod (boolean): enable virtual tripod mode (same as relative=0:smoothing=0) (default false)
  • zoom (double): set percentage to zoom (>0: zoom in, <0: zoom out (from -100 to 100) (default 0)
  • zoomspeed (double): for adative zoom: percent to zoom maximally each frame (from 0 to 5) (default 0.25)

See FFix.Filter for pipelines, expressions, and output handling.

vif(video_0, video_1, options \\ [])

@spec vif(FFix.Graph.StreamRef.t(), FFix.Graph.StreamRef.t(),
  enable: String.t() | atom() | number(),
  eof_action: String.t() | atom() | number(),
  repeatlast: String.t() | atom() | number(),
  shortest: String.t() | atom() | number(),
  ts_sync_mode: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Calculate the VIF between two video streams.

Options

  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • eof_action (int): Action to take when encountering EOF from secondary input (from 0 to 2) (default repeat)
    • repeat (0) — Repeat the previous frame.
    • endall (1) — End both streams.
    • pass (2) — Pass through the main input.
  • repeatlast (boolean): extend last frame of secondary streams beyond EOF (default true)
  • shortest (boolean): force termination when the shortest input terminates (default false)
  • ts_sync_mode (int): How strictly to sync streams based on secondary input timestamps (from 0 to 1) (default default)
    • default (0) — Frame from secondary input with the nearest lower or equal timestamp to the primary input frame
    • nearest (1) — Frame from secondary input with the absolute nearest timestamp to the primary input frame

See FFix.Filter for pipelines, expressions, and output handling.

vignette(video_0, options \\ [])

@spec vignette(FFix.Graph.StreamRef.t(),
  a: String.t() | atom() | number(),
  angle: String.t() | atom() | number(),
  aspect: String.t() | atom() | number(),
  dither: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  eval: String.t() | atom() | number(),
  mode: String.t() | atom() | number(),
  x0: String.t() | atom() | number(),
  y0: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Make or reverse a vignette effect.

Options

  • a (string): set lens angle (default "PI/5")
  • angle (string): set lens angle (default "PI/5")
  • aspect (rational): set aspect ratio (from 0 to DBL_MAX) (default 1/1)
  • dither (boolean): set dithering (default true)
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • eval (int): specify when to evaluate expressions (from 0 to 1) (default init)
    • init (0) — eval expressions once during initialization
    • frame (1) — eval expressions for each frame
  • mode (int): set forward/backward mode (from 0 to 1) (default forward)
    • forward (0)
    • backward (1)
  • x0 (string): set circle center position on x-axis (default "w/2")
  • y0 (string): set circle center position on y-axis (default "h/2")

See FFix.Filter for pipelines, expressions, and output handling.

vmafmotion(video_0, options \\ [])

@spec vmafmotion(FFix.Graph.StreamRef.t(),
  stats_file: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Calculate the VMAF Motion score.

Options

  • stats_file (string): Set file where to store per-frame difference information

See FFix.Filter for pipelines, expressions, and output handling.

vpp_qsv(video_0, options \\ [])

@spec vpp_qsv(FFix.Graph.StreamRef.t(),
  async_depth: String.t() | atom() | number(),
  brightness: String.t() | atom() | number(),
  ch: String.t() | atom() | number(),
  contrast: String.t() | atom() | number(),
  cw: String.t() | atom() | number(),
  cx: String.t() | atom() | number(),
  cy: String.t() | atom() | number(),
  deinterlace: String.t() | atom() | number(),
  denoise: String.t() | atom() | number(),
  detail: String.t() | atom() | number(),
  format: String.t() | atom() | number(),
  framerate: String.t() | atom() | number(),
  h: String.t() | atom() | number(),
  height: String.t() | atom() | number(),
  hue: String.t() | atom() | number(),
  out_color_matrix: String.t() | atom() | number(),
  out_color_primaries: String.t() | atom() | number(),
  out_color_transfer: String.t() | atom() | number(),
  out_range: String.t() | atom() | number(),
  procamp: String.t() | atom() | number(),
  rate: String.t() | atom() | number(),
  saturation: String.t() | atom() | number(),
  scale_mode: String.t() | atom() | number(),
  tonemap: String.t() | atom() | number(),
  transpose: String.t() | atom() | number(),
  w: String.t() | atom() | number(),
  width: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Quick Sync Video "VPP"

Options

  • async_depth (int): Internal parallelization depth, the higher the value the higher the latency. (from 0 to INT_MAX) (default 4)
  • brightness (float): ProcAmp brightness (from -100 to 100) (default 0)
  • ch (string): set the height crop area expression (default "ih")
  • contrast (float): ProcAmp contrast (from 0 to 10) (default 1)
  • cw (string): set the width crop area expression (default "iw")
  • cx (string): set the x crop area expression (default "(in_w-out_w)/2")
  • cy (string): set the y crop area expression (default "(in_h-out_h)/2")
  • deinterlace (int): deinterlace mode: 0=off, 1=bob, 2=advanced (from 0 to 2) (default 0)
    • bob (1) — Bob deinterlace mode.
    • advanced (2) — Advanced deinterlace mode.
  • denoise (int): denoise level [0, 100] (from 0 to 100) (default 0)
  • detail (int): enhancement level [0, 100] (from 0 to 100) (default 0)
  • format (string): Output pixel format (default "same")
  • framerate (rational): output framerate (from 0 to DBL_MAX) (default 0/1)
  • h (string): Output video height(0=input video height, -1=keep input video aspect) (default "w*ch/cw")
  • height (string): Output video height(0=input video height, -1=keep input video aspect) (default "w*ch/cw")
  • hue (float): ProcAmp hue (from -180 to 180) (default 0)
  • out_color_matrix (string): Output color matrix coefficient set
  • out_color_primaries (string): Output color primaries
  • out_color_transfer (string): Output color transfer characteristics
  • out_range (int): Output color range (from 0 to 2) (default 0)
    • full (2) — Full range
    • limited (1) — Limited range
    • jpeg (2) — Full range
    • mpeg (1) — Limited range
    • tv (1) — Limited range
    • pc (2) — Full range
  • procamp (int): Enable ProcAmp (from 0 to 1) (default 0)
  • rate (int): Generate output at frame rate or field rate, available only for deinterlace mode (from 0 to 1) (default frame)
    • frame (0) — Output at frame rate (one frame of output for each field-pair)
    • field (1) — Output at field rate (one frame of output for each field)
  • saturation (float): ProcAmp saturation (from 0 to 10) (default 1)
  • scale_mode (int): scaling & format conversion mode (mode compute(3), vd(4) and ve(5) are only available on some platforms) (from 0 to 5) (default auto)
    • auto (0) — auto mode
    • low_power (1) — low power mode
    • hq (2) — high quality mode
    • compute (3) — compute
    • vd (4) — vd
    • ve (5) — ve
  • tonemap (int): Perform tonemapping (0=disable tonemapping, 1=perform tonemapping if the input has HDR metadata) (from 0 to 1) (default 0)
  • transpose (int): set transpose direction (from -1 to 6) (default -1)
    • cclock_hflip (0) — rotate counter-clockwise with horizontal flip
    • clock (1) — rotate clockwise
    • cclock (2) — rotate counter-clockwise
    • clock_hflip (3) — rotate clockwise with horizontal flip
    • reversal (4) — rotate by half-turn
    • hflip (5) — flip horizontally
    • vflip (6) — flip vertically
  • w (string): Output video width(0=input video width, -1=keep input video aspect) (default "cw")
  • width (string): Output video width(0=input video width, -1=keep input video aspect) (default "cw")

See FFix.Filter for pipelines, expressions, and output handling.

vstack(streams, options \\ [])

@spec vstack([FFix.Graph.StreamRef.t()],
  inputs: String.t() | atom() | number(),
  shortest: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Stack video inputs vertically.

Options

  • inputs (int): set number of inputs (from 2 to INT_MAX) (default 2)
  • shortest (boolean): force termination when the shortest input terminates (default false)

See FFix.Filter for pipelines, expressions, and output handling.

vstack_qsv(streams, options \\ [])

@spec vstack_qsv([FFix.Graph.StreamRef.t()],
  inputs: String.t() | atom() | number(),
  shortest: String.t() | atom() | number(),
  width: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

"Quick Sync Video" vstack

Options

  • inputs (int): Set number of inputs (from 2 to 65535) (default 2)
  • shortest (boolean): Force termination when the shortest input terminates (default false)
  • width (int): Set output width (0 to use the width of input 0) (from 0 to 65535) (default 0)

See FFix.Filter for pipelines, expressions, and output handling.

vstack_vaapi(streams, options \\ [])

@spec vstack_vaapi([FFix.Graph.StreamRef.t()],
  inputs: String.t() | atom() | number(),
  shortest: String.t() | atom() | number(),
  width: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

"VA-API" vstack

Options

  • inputs (int): Set number of inputs (from 2 to 65535) (default 2)
  • shortest (boolean): Force termination when the shortest input terminates (default false)
  • width (int): Set output width (0 to use the width of input 0) (from 0 to 65535) (default 0)

See FFix.Filter for pipelines, expressions, and output handling.

w3fdif(video_0, options \\ [])

@spec w3fdif(FFix.Graph.StreamRef.t(),
  deint: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  filter: String.t() | atom() | number(),
  mode: String.t() | atom() | number(),
  parity: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Apply Martin Weston three field deinterlace.

Options

  • deint (int): specify which frames to deinterlace (from 0 to 1) (default all)
    • all (0) — deinterlace all frames
    • interlaced (1) — only deinterlace frames marked as interlaced
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • filter (int): specify the filter (from 0 to 1) (default complex)
    • simple (0)
    • complex (1)
  • mode (int): specify the interlacing mode (from 0 to 1) (default field)
    • frame (0) — send one frame for each frame
    • field (1) — send one frame for each field
  • parity (int): specify the assumed picture field parity (from -1 to 1) (default auto)
    • tff (0) — assume top field first
    • bff (1) — assume bottom field first
    • auto (-1) — auto detect parity

See FFix.Filter for pipelines, expressions, and output handling.

waveform(video_0, options \\ [])

@spec waveform(FFix.Graph.StreamRef.t(),
  b: String.t() | atom() | number(),
  bgopacity: String.t() | atom() | number(),
  c: String.t() | atom() | number(),
  components: String.t() | atom() | number(),
  d: String.t() | atom() | number(),
  display: String.t() | atom() | number(),
  e: String.t() | atom() | number(),
  envelope: String.t() | atom() | number(),
  f: String.t() | atom() | number(),
  filter: String.t() | atom() | number(),
  fitmode: String.t() | atom() | number(),
  fl: (String.t() | atom() | number()) | [String.t() | atom() | number()],
  flags: (String.t() | atom() | number()) | [String.t() | atom() | number()],
  fm: String.t() | atom() | number(),
  g: String.t() | atom() | number(),
  graticule: String.t() | atom() | number(),
  i: String.t() | atom() | number(),
  input: String.t() | atom() | number(),
  intensity: String.t() | atom() | number(),
  m: String.t() | atom() | number(),
  mirror: String.t() | atom() | number(),
  mode: String.t() | atom() | number(),
  o: String.t() | atom() | number(),
  opacity: String.t() | atom() | number(),
  r: String.t() | atom() | number(),
  s: String.t() | atom() | number(),
  scale: String.t() | atom() | number(),
  t0: String.t() | atom() | number(),
  t1: String.t() | atom() | number(),
  tint0: String.t() | atom() | number(),
  tint1: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Video waveform monitor.

Options

  • b (float): set background opacity (from 0 to 1) (default 0.75)
  • bgopacity (float): set background opacity (from 0 to 1) (default 0.75)
  • c (int): set components to display (from 1 to 15) (default 1)
  • components (int): set components to display (from 1 to 15) (default 1)
  • d (int): set display mode (from 0 to 2) (default stack)
    • overlay (0)
    • stack (1)
    • parade (2)
  • display (int): set display mode (from 0 to 2) (default stack)
    • overlay (0)
    • stack (1)
    • parade (2)
  • e (int): set envelope to display (from 0 to 3) (default none)
    • none (0)
    • instant (1)
    • peak (2)
    • peak+instant (3)
  • envelope (int): set envelope to display (from 0 to 3) (default none)
    • none (0)
    • instant (1)
    • peak (2)
    • peak+instant (3)
  • f (int): set filter (from 0 to 7) (default lowpass)
    • lowpass (0)
    • flat (1)
    • aflat (2)
    • chroma (3)
    • color (4)
    • acolor (5)
    • xflat (6)
    • yflat (7)
  • filter (int): set filter (from 0 to 7) (default lowpass)
    • lowpass (0)
    • flat (1)
    • aflat (2)
    • chroma (3)
    • color (4)
    • acolor (5)
    • xflat (6)
    • yflat (7)
  • fitmode (int): set fit mode (from 0 to 1) (default none)
    • none (0)
    • size (1)
  • fl (flags): set graticule flags (default numbers)
    • numbers — draw numbers
    • dots — draw dots instead of lines
  • flags (flags): set graticule flags (default numbers)
    • numbers — draw numbers
    • dots — draw dots instead of lines
  • fm (int): set fit mode (from 0 to 1) (default none)
    • none (0)
    • size (1)
  • g (int): set graticule (from 0 to 3) (default none)
    • none (0)
    • green (1)
    • orange (2)
    • invert (3)
  • graticule (int): set graticule (from 0 to 3) (default none)
    • none (0)
    • green (1)
    • orange (2)
    • invert (3)
  • i (float): set intensity (from 0 to 1) (default 0.04)
  • input (int): set input formats selection (from 0 to 1) (default first)
    • all (0) — try to select from all available formats
    • first (1) — pick first available format
  • intensity (float): set intensity (from 0 to 1) (default 0.04)
  • m (int): set mode (from 0 to 1) (default column)
    • row (0)
    • column (1)
  • mirror (boolean): set mirroring (default true)
  • mode (int): set mode (from 0 to 1) (default column)
    • row (0)
    • column (1)
  • o (float): set graticule opacity (from 0 to 1) (default 0.75)
  • opacity (float): set graticule opacity (from 0 to 1) (default 0.75)
  • r (boolean): set mirroring (default true)
  • s (int): set scale (from 0 to 2) (default digital)
    • digital (0)
    • millivolts (1)
    • ire (2)
  • scale (int): set scale (from 0 to 2) (default digital)
    • digital (0)
    • millivolts (1)
    • ire (2)
  • t0 (float): set 1st tint (from -1 to 1) (default 0)
  • t1 (float): set 2nd tint (from -1 to 1) (default 0)
  • tint0 (float): set 1st tint (from -1 to 1) (default 0)
  • tint1 (float): set 2nd tint (from -1 to 1) (default 0)

See FFix.Filter for pipelines, expressions, and output handling.

weave(video_0, options \\ [])

@spec weave(FFix.Graph.StreamRef.t(),
  first_field: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Weave input video fields into frames.

Options

  • first_field (int): set first field (from 0 to 1) (default top)
    • top (0) — set top field first
    • t (0) — set top field first
    • bottom (1) — set bottom field first
    • b (1) — set bottom field first

See FFix.Filter for pipelines, expressions, and output handling.

xbr(video_0, options \\ [])

@spec xbr(FFix.Graph.StreamRef.t(),
  n: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Scale the input using xBR algorithm.

Options

  • n (int): set scale factor (from 2 to 4) (default 3)

See FFix.Filter for pipelines, expressions, and output handling.

xcorrelate(video_0, video_1, options \\ [])

@spec xcorrelate(FFix.Graph.StreamRef.t(), FFix.Graph.StreamRef.t(),
  enable: String.t() | atom() | number(),
  eof_action: String.t() | atom() | number(),
  planes: String.t() | atom() | number(),
  repeatlast: String.t() | atom() | number(),
  secondary: String.t() | atom() | number(),
  shortest: String.t() | atom() | number(),
  ts_sync_mode: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Cross-correlate first video stream with second video stream.

Options

  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • eof_action (int): Action to take when encountering EOF from secondary input (from 0 to 2) (default repeat)
    • repeat (0) — Repeat the previous frame.
    • endall (1) — End both streams.
    • pass (2) — Pass through the main input.
  • planes (int): set planes to cross-correlate (from 0 to 15) (default 7)
  • repeatlast (boolean): extend last frame of secondary streams beyond EOF (default true)
  • secondary (int): when to process secondary frame (from 0 to 1) (default all)
    • first (0) — process only first secondary frame, ignore rest
    • all (1) — process all secondary frames
  • shortest (boolean): force termination when the shortest input terminates (default false)
  • ts_sync_mode (int): How strictly to sync streams based on secondary input timestamps (from 0 to 1) (default default)
    • default (0) — Frame from secondary input with the nearest lower or equal timestamp to the primary input frame
    • nearest (1) — Frame from secondary input with the absolute nearest timestamp to the primary input frame

See FFix.Filter for pipelines, expressions, and output handling.

xfade(video_0, video_1, options \\ [])

@spec xfade(FFix.Graph.StreamRef.t(), FFix.Graph.StreamRef.t(),
  duration: String.t() | atom() | number(),
  expr: String.t() | atom() | number(),
  offset: String.t() | atom() | number(),
  transition: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Cross fade one video with another video.

Options

  • duration (duration): set cross fade duration (default 1)
  • expr (string): set expression for custom transition
  • offset (duration): set cross fade start relative to first input stream (default 0)
  • transition (int): set cross fade transition (from -1 to 57) (default fade)
    • custom (-1) — custom transition
    • fade (0) — fade transition
    • wipeleft (1) — wipe left transition
    • wiperight (2) — wipe right transition
    • wipeup (3) — wipe up transition
    • wipedown (4) — wipe down transition
    • slideleft (5) — slide left transition
    • slideright (6) — slide right transition
    • slideup (7) — slide up transition
    • slidedown (8) — slide down transition
    • circlecrop (9) — circle crop transition
    • rectcrop (10) — rect crop transition
    • distance (11) — distance transition
    • fadeblack (12) — fadeblack transition
    • fadewhite (13) — fadewhite transition
    • radial (14) — radial transition
    • smoothleft (15) — smoothleft transition
    • smoothright (16) — smoothright transition
    • smoothup (17) — smoothup transition
    • smoothdown (18) — smoothdown transition
    • circleopen (19) — circleopen transition
    • circleclose (20) — circleclose transition
    • vertopen (21) — vert open transition
    • vertclose (22) — vert close transition
    • horzopen (23) — horz open transition
    • horzclose (24) — horz close transition
    • dissolve (25) — dissolve transition
    • pixelize (26) — pixelize transition
    • diagtl (27) — diag tl transition
    • diagtr (28) — diag tr transition
    • diagbl (29) — diag bl transition
    • diagbr (30) — diag br transition
    • hlslice (31) — hl slice transition
    • hrslice (32) — hr slice transition
    • vuslice (33) — vu slice transition
    • vdslice (34) — vd slice transition
    • hblur (35) — hblur transition
    • fadegrays (36) — fadegrays transition
    • wipetl (37) — wipe tl transition
    • wipetr (38) — wipe tr transition
    • wipebl (39) — wipe bl transition
    • wipebr (40) — wipe br transition
    • squeezeh (41) — squeeze h transition
    • squeezev (42) — squeeze v transition
    • zoomin (43) — zoom in transition
    • fadefast (44) — fast fade transition
    • fadeslow (45) — slow fade transition
    • hlwind (46) — hl wind transition
    • hrwind (47) — hr wind transition
    • vuwind (48) — vu wind transition
    • vdwind (49) — vd wind transition
    • coverleft (50) — cover left transition
    • coverright (51) — cover right transition
    • coverup (52) — cover up transition
    • coverdown (53) — cover down transition
    • revealleft (54) — reveal left transition
    • revealright (55) — reveal right transition
    • revealup (56) — reveal up transition
    • revealdown (57) — reveal down transition

See FFix.Filter for pipelines, expressions, and output handling.

xfade_opencl(video_0, video_1, options \\ [])

@spec xfade_opencl(FFix.Graph.StreamRef.t(), FFix.Graph.StreamRef.t(),
  duration: String.t() | atom() | number(),
  kernel: String.t() | atom() | number(),
  offset: String.t() | atom() | number(),
  source: String.t() | atom() | number(),
  transition: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Cross fade one video with another video.

Options

  • duration (duration): set cross fade duration (default 1)
  • kernel (string): set kernel name in program file for custom transition
  • offset (duration): set cross fade start relative to first input stream (default 0)
  • source (string): set OpenCL program source file for custom transition
  • transition (int): set cross fade transition (from 0 to 9) (default fade)
    • custom (0) — custom transition
    • fade (1) — fade transition
    • wipeleft (2) — wipe left transition
    • wiperight (3) — wipe right transition
    • wipeup (4) — wipe up transition
    • wipedown (5) — wipe down transition
    • slideleft (6) — slide left transition
    • slideright (7) — slide right transition
    • slideup (8) — slide up transition
    • slidedown (9) — slide down transition

See FFix.Filter for pipelines, expressions, and output handling.

xfade_vulkan(video_0, video_1, options \\ [])

@spec xfade_vulkan(FFix.Graph.StreamRef.t(), FFix.Graph.StreamRef.t(),
  duration: String.t() | atom() | number(),
  offset: String.t() | atom() | number(),
  transition: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Cross fade one video with another video.

Options

  • duration (duration): set cross fade duration (default 1)
  • offset (duration): set cross fade start relative to first input stream (default 0)
  • transition (int): set cross fade transition (from 0 to 16) (default fade)
    • fade (0) — fade transition
    • wipeleft (1) — wipe left transition
    • wiperight (2) — wipe right transition
    • wipeup (3) — wipe up transition
    • wipedown (4) — wipe down transition
    • slidedown (5) — slide down transition
    • slideup (6) — slide up transition
    • slideleft (7) — slide left transition
    • slideright (8) — slide right transition
    • circleopen (9) — circleopen transition
    • circleclose (10) — circleclose transition
    • dissolve (11) — dissolve transition
    • pixelize (12) — pixelize transition
    • wipetl (13) — wipe top left transition
    • wipetr (14) — wipe top right transition
    • wipebl (15) — wipe bottom left transition
    • wipebr (16) — wipe bottom right transition

See FFix.Filter for pipelines, expressions, and output handling.

xmedian(streams, options \\ [])

@spec xmedian([FFix.Graph.StreamRef.t()],
  enable: String.t() | atom() | number(),
  eof_action: String.t() | atom() | number(),
  inputs: String.t() | atom() | number(),
  percentile: String.t() | atom() | number(),
  planes: String.t() | atom() | number(),
  repeatlast: String.t() | atom() | number(),
  shortest: String.t() | atom() | number(),
  ts_sync_mode: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Pick median pixels from several video inputs.

Options

  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • eof_action (int): Action to take when encountering EOF from secondary input (from 0 to 2) (default repeat)
    • repeat (0) — Repeat the previous frame.
    • endall (1) — End both streams.
    • pass (2) — Pass through the main input.
  • inputs (int): set number of inputs (from 3 to 255) (default 3)
  • percentile (float): set percentile (from 0 to 1) (default 0.5)
  • planes (int): set planes to filter (from 0 to 15) (default 15)
  • repeatlast (boolean): extend last frame of secondary streams beyond EOF (default true)
  • shortest (boolean): force termination when the shortest input terminates (default false)
  • ts_sync_mode (int): How strictly to sync streams based on secondary input timestamps (from 0 to 1) (default default)
    • default (0) — Frame from secondary input with the nearest lower or equal timestamp to the primary input frame
    • nearest (1) — Frame from secondary input with the absolute nearest timestamp to the primary input frame

See FFix.Filter for pipelines, expressions, and output handling.

xpsnr(video_0, video_1, options \\ [])

@spec xpsnr(FFix.Graph.StreamRef.t(), FFix.Graph.StreamRef.t(),
  enable: String.t() | atom() | number(),
  eof_action: String.t() | atom() | number(),
  f: String.t() | atom() | number(),
  repeatlast: String.t() | atom() | number(),
  shortest: String.t() | atom() | number(),
  stats_file: String.t() | atom() | number(),
  ts_sync_mode: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Calculate the extended perceptually weighted peak signal-to-noise ratio (XPSNR) between two video streams.

Options

  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • eof_action (int): Action to take when encountering EOF from secondary input (from 0 to 2) (default repeat)
    • repeat (0) — Repeat the previous frame.
    • endall (1) — End both streams.
    • pass (2) — Pass through the main input.
  • f (string): Set file where to store per-frame XPSNR information
  • repeatlast (boolean): extend last frame of secondary streams beyond EOF (default true)
  • shortest (boolean): force termination when the shortest input terminates (default false)
  • stats_file (string): Set file where to store per-frame XPSNR information
  • ts_sync_mode (int): How strictly to sync streams based on secondary input timestamps (from 0 to 1) (default default)
    • default (0) — Frame from secondary input with the nearest lower or equal timestamp to the primary input frame
    • nearest (1) — Frame from secondary input with the absolute nearest timestamp to the primary input frame

See FFix.Filter for pipelines, expressions, and output handling.

xstack(streams, options \\ [])

@spec xstack([FFix.Graph.StreamRef.t()],
  fill: String.t() | atom() | number(),
  grid: String.t() | atom() | number(),
  inputs: String.t() | atom() | number(),
  layout: String.t() | atom() | number(),
  shortest: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Stack video inputs into custom layout.

Options

  • fill (string): set the color for unused pixels (default "none")
  • grid (image_size): set fixed size grid layout
  • inputs (int): set number of inputs (from 2 to INT_MAX) (default 2)
  • layout (string): set custom layout
  • shortest (boolean): force termination when the shortest input terminates (default false)

See FFix.Filter for pipelines, expressions, and output handling.

xstack_qsv(streams, options \\ [])

@spec xstack_qsv([FFix.Graph.StreamRef.t()],
  fill: String.t() | atom() | number(),
  grid: String.t() | atom() | number(),
  grid_tile_size: String.t() | atom() | number(),
  inputs: String.t() | atom() | number(),
  layout: String.t() | atom() | number(),
  shortest: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

"Quick Sync Video" xstack

Options

  • fill (string): Set the color for unused pixels (default "none")
  • grid (image_size): set fixed size grid layout
  • grid_tile_size (image_size): set tile size in grid layout
  • inputs (int): Set number of inputs (from 2 to 65535) (default 2)
  • layout (string): Set custom layout
  • shortest (boolean): Force termination when the shortest input terminates (default false)

See FFix.Filter for pipelines, expressions, and output handling.

xstack_vaapi(streams, options \\ [])

@spec xstack_vaapi([FFix.Graph.StreamRef.t()],
  fill: String.t() | atom() | number(),
  grid: String.t() | atom() | number(),
  grid_tile_size: String.t() | atom() | number(),
  inputs: String.t() | atom() | number(),
  layout: String.t() | atom() | number(),
  shortest: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

"VA-API" xstack

Options

  • fill (string): Set the color for unused pixels (default "none")
  • grid (image_size): set fixed size grid layout
  • grid_tile_size (image_size): set tile size in grid layout
  • inputs (int): Set number of inputs (from 2 to 65535) (default 2)
  • layout (string): Set custom layout
  • shortest (boolean): Force termination when the shortest input terminates (default false)

See FFix.Filter for pipelines, expressions, and output handling.

yadif(video_0, options \\ [])

@spec yadif(FFix.Graph.StreamRef.t(),
  deint: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  mode: String.t() | atom() | number(),
  parity: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Deinterlace the input image.

Options

  • deint (int): specify which frames to deinterlace (from 0 to 1) (default all)
    • all (0) — deinterlace all frames
    • interlaced (1) — only deinterlace frames marked as interlaced
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • mode (int): specify the interlacing mode (from 0 to 3) (default send_frame)
    • send_frame (0) — send one frame for each frame
    • send_field (1) — send one frame for each field
    • send_frame_nospatial (2) — send one frame for each frame, but skip spatial interlacing check
    • send_field_nospatial (3) — send one frame for each field, but skip spatial interlacing check
  • parity (int): specify the assumed picture field parity (from -1 to 1) (default auto)
    • tff (0) — assume top field first
    • bff (1) — assume bottom field first
    • auto (-1) — auto detect parity

See FFix.Filter for pipelines, expressions, and output handling.

yaepblur(video_0, options \\ [])

@spec yaepblur(FFix.Graph.StreamRef.t(),
  enable: String.t() | atom() | number(),
  p: String.t() | atom() | number(),
  planes: String.t() | atom() | number(),
  r: String.t() | atom() | number(),
  radius: String.t() | atom() | number(),
  s: String.t() | atom() | number(),
  sigma: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Yet another edge preserving blur filter.

Options

  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • p (int): set planes to filter (from 0 to 15) (default 1)
  • planes (int): set planes to filter (from 0 to 15) (default 1)
  • r (int): set window radius (from 0 to INT_MAX) (default 3)
  • radius (int): set window radius (from 0 to INT_MAX) (default 3)
  • s (int): set blur strength (from 1 to INT_MAX) (default 128)
  • sigma (int): set blur strength (from 1 to INT_MAX) (default 128)

See FFix.Filter for pipelines, expressions, and output handling.

zmq(video_0, options \\ [])

@spec zmq(FFix.Graph.StreamRef.t(),
  b: String.t() | atom() | number(),
  bind_address: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Receive commands through ZMQ and broker them to filters.

Options

  • b (string): set bind address (default "tcp://*:5555")
  • bind_address (string): set bind address (default "tcp://*:5555")

See FFix.Filter for pipelines, expressions, and output handling.

zoompan(video_0, options \\ [])

@spec zoompan(FFix.Graph.StreamRef.t(),
  d: String.t() | atom() | number(),
  fps: String.t() | atom() | number(),
  s: String.t() | atom() | number(),
  x: String.t() | atom() | number(),
  y: String.t() | atom() | number(),
  z: String.t() | atom() | number(),
  zoom: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Apply Zoom & Pan effect.

Options

  • d (string): set the duration expression (default "90")
  • fps (video_rate): set the output framerate (default "25")
  • s (image_size): set the output image size (default "hd720")
  • x (string): set the x expression (default "0")
  • y (string): set the y expression (default "0")
  • z (string): set the zoom expression (default "1")
  • zoom (string): set the zoom expression (default "1")

See FFix.Filter for pipelines, expressions, and output handling.

zscale(video_0, options \\ [])

@spec zscale(FFix.Graph.StreamRef.t(),
  agamma: String.t() | atom() | number(),
  c: String.t() | atom() | number(),
  chromal: String.t() | atom() | number(),
  chromalin: String.t() | atom() | number(),
  cin: String.t() | atom() | number(),
  d: String.t() | atom() | number(),
  dither: String.t() | atom() | number(),
  f: String.t() | atom() | number(),
  filter: String.t() | atom() | number(),
  h: String.t() | atom() | number(),
  height: String.t() | atom() | number(),
  in_range: String.t() | atom() | number(),
  m: String.t() | atom() | number(),
  matrix: String.t() | atom() | number(),
  matrixin: String.t() | atom() | number(),
  min: String.t() | atom() | number(),
  npl: String.t() | atom() | number(),
  out_range: String.t() | atom() | number(),
  p: String.t() | atom() | number(),
  param_a: String.t() | atom() | number(),
  param_b: String.t() | atom() | number(),
  pin: String.t() | atom() | number(),
  primaries: String.t() | atom() | number(),
  primariesin: String.t() | atom() | number(),
  r: String.t() | atom() | number(),
  range: String.t() | atom() | number(),
  rangein: String.t() | atom() | number(),
  rin: String.t() | atom() | number(),
  s: String.t() | atom() | number(),
  size: String.t() | atom() | number(),
  t: String.t() | atom() | number(),
  tin: String.t() | atom() | number(),
  transfer: String.t() | atom() | number(),
  transferin: String.t() | atom() | number(),
  w: String.t() | atom() | number(),
  width: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Apply resizing, colorspace and bit depth conversion.

Options

  • agamma (boolean): allow approximate gamma (default true)
  • c (int): set output chroma location (from -1 to 5) (default input)
    • input (-1)
    • left (0)
    • center (1)
    • topleft (2)
    • top (3)
    • bottomleft (4)
    • bottom (5)
  • chromal (int): set output chroma location (from -1 to 5) (default input)
    • input (-1)
    • left (0)
    • center (1)
    • topleft (2)
    • top (3)
    • bottomleft (4)
    • bottom (5)
  • chromalin (int): set input chroma location (from -1 to 5) (default input)
    • input (-1)
    • left (0)
    • center (1)
    • topleft (2)
    • top (3)
    • bottomleft (4)
    • bottom (5)
  • cin (int): set input chroma location (from -1 to 5) (default input)
    • input (-1)
    • left (0)
    • center (1)
    • topleft (2)
    • top (3)
    • bottomleft (4)
    • bottom (5)
  • d (int): set dither type (from 0 to 3) (default none)
    • none (0)
    • ordered (1)
    • random (2)
    • error_diffusion (3)
  • dither (int): set dither type (from 0 to 3) (default none)
    • none (0)
    • ordered (1)
    • random (2)
    • error_diffusion (3)
  • f (int): set filter type (from 0 to 5) (default bilinear)
    • point (0)
    • bilinear (1)
    • bicubic (2)
    • spline16 (3)
    • spline36 (4)
    • lanczos (5)
  • filter (int): set filter type (from 0 to 5) (default bilinear)
    • point (0)
    • bilinear (1)
    • bicubic (2)
    • spline16 (3)
    • spline36 (4)
    • lanczos (5)
  • h (string): Output video height
  • height (string): Output video height
  • in_range (int): set input color range (from -1 to 1) (default input)
    • input (-1)
    • limited (0)
    • full (1)
    • unknown (-1)
    • tv (0)
    • pc (1)
  • m (int): set colorspace matrix (from -1 to INT_MAX) (default input)
    • input (-1)
    • 709 (1)
    • unspecified (2)
    • 470bg (5)
    • 170m (6)
    • 2020_ncl (9)
    • 2020_cl (10)
    • unknown (2)
    • gbr (0)
    • bt709 (1)
    • fcc (4)
    • bt470bg (5)
    • smpte170m (6)
    • smpte240m (7)
    • ycgco (8)
    • bt2020nc (9)
    • bt2020c (10)
    • chroma-derived-nc (12)
    • chroma-derived-c (13)
    • ictcp (14)
  • matrix (int): set colorspace matrix (from -1 to INT_MAX) (default input)
    • input (-1)
    • 709 (1)
    • unspecified (2)
    • 470bg (5)
    • 170m (6)
    • 2020_ncl (9)
    • 2020_cl (10)
    • unknown (2)
    • gbr (0)
    • bt709 (1)
    • fcc (4)
    • bt470bg (5)
    • smpte170m (6)
    • smpte240m (7)
    • ycgco (8)
    • bt2020nc (9)
    • bt2020c (10)
    • chroma-derived-nc (12)
    • chroma-derived-c (13)
    • ictcp (14)
  • matrixin (int): set input colorspace matrix (from -1 to INT_MAX) (default input)
    • input (-1)
    • 709 (1)
    • unspecified (2)
    • 470bg (5)
    • 170m (6)
    • 2020_ncl (9)
    • 2020_cl (10)
    • unknown (2)
    • gbr (0)
    • bt709 (1)
    • fcc (4)
    • bt470bg (5)
    • smpte170m (6)
    • smpte240m (7)
    • ycgco (8)
    • bt2020nc (9)
    • bt2020c (10)
    • chroma-derived-nc (12)
    • chroma-derived-c (13)
    • ictcp (14)
  • min (int): set input colorspace matrix (from -1 to INT_MAX) (default input)
    • input (-1)
    • 709 (1)
    • unspecified (2)
    • 470bg (5)
    • 170m (6)
    • 2020_ncl (9)
    • 2020_cl (10)
    • unknown (2)
    • gbr (0)
    • bt709 (1)
    • fcc (4)
    • bt470bg (5)
    • smpte170m (6)
    • smpte240m (7)
    • ycgco (8)
    • bt2020nc (9)
    • bt2020c (10)
    • chroma-derived-nc (12)
    • chroma-derived-c (13)
    • ictcp (14)
  • npl (double): set nominal peak luminance (from 0 to DBL_MAX) (default nan)
  • out_range (int): set color range (from -1 to 1) (default input)
    • input (-1)
    • limited (0)
    • full (1)
    • unknown (-1)
    • tv (0)
    • pc (1)
  • p (int): set color primaries (from -1 to INT_MAX) (default input)
    • input (-1)
    • 709 (1)
    • unspecified (2)
    • 170m (6)
    • 240m (7)
    • 2020 (9)
    • unknown (2)
    • bt709 (1)
    • bt470m (4)
    • bt470bg (5)
    • smpte170m (6)
    • smpte240m (7)
    • film (8)
    • bt2020 (9)
    • smpte428 (10)
    • smpte431 (11)
    • smpte432 (12)
    • jedec-p22 (22)
    • ebu3213 (22)
  • param_a (double): parameter A, which is parameter "b" for bicubic, and the number of filter taps for lanczos (from -DBL_MAX to DBL_MAX) (default nan)
  • param_b (double): parameter B, which is parameter "c" for bicubic (from -DBL_MAX to DBL_MAX) (default nan)
  • pin (int): set input color primaries (from -1 to INT_MAX) (default input)
    • input (-1)
    • 709 (1)
    • unspecified (2)
    • 170m (6)
    • 240m (7)
    • 2020 (9)
    • unknown (2)
    • bt709 (1)
    • bt470m (4)
    • bt470bg (5)
    • smpte170m (6)
    • smpte240m (7)
    • film (8)
    • bt2020 (9)
    • smpte428 (10)
    • smpte431 (11)
    • smpte432 (12)
    • jedec-p22 (22)
    • ebu3213 (22)
  • primaries (int): set color primaries (from -1 to INT_MAX) (default input)
    • input (-1)
    • 709 (1)
    • unspecified (2)
    • 170m (6)
    • 240m (7)
    • 2020 (9)
    • unknown (2)
    • bt709 (1)
    • bt470m (4)
    • bt470bg (5)
    • smpte170m (6)
    • smpte240m (7)
    • film (8)
    • bt2020 (9)
    • smpte428 (10)
    • smpte431 (11)
    • smpte432 (12)
    • jedec-p22 (22)
    • ebu3213 (22)
  • primariesin (int): set input color primaries (from -1 to INT_MAX) (default input)
    • input (-1)
    • 709 (1)
    • unspecified (2)
    • 170m (6)
    • 240m (7)
    • 2020 (9)
    • unknown (2)
    • bt709 (1)
    • bt470m (4)
    • bt470bg (5)
    • smpte170m (6)
    • smpte240m (7)
    • film (8)
    • bt2020 (9)
    • smpte428 (10)
    • smpte431 (11)
    • smpte432 (12)
    • jedec-p22 (22)
    • ebu3213 (22)
  • r (int): set color range (from -1 to 1) (default input)
    • input (-1)
    • limited (0)
    • full (1)
    • unknown (-1)
    • tv (0)
    • pc (1)
  • range (int): set color range (from -1 to 1) (default input)
    • input (-1)
    • limited (0)
    • full (1)
    • unknown (-1)
    • tv (0)
    • pc (1)
  • rangein (int): set input color range (from -1 to 1) (default input)
    • input (-1)
    • limited (0)
    • full (1)
    • unknown (-1)
    • tv (0)
    • pc (1)
  • rin (int): set input color range (from -1 to 1) (default input)
    • input (-1)
    • limited (0)
    • full (1)
    • unknown (-1)
    • tv (0)
    • pc (1)
  • s (string): set video size
  • size (string): set video size
  • t (int): set transfer characteristic (from -1 to INT_MAX) (default input)
    • input (-1)
    • 709 (1)
    • unspecified (2)
    • 601 (6)
    • linear (8)
    • 2020_10 (14)
    • 2020_12 (15)
    • unknown (2)
    • bt470m (4)
    • bt470bg (5)
    • smpte170m (6)
    • smpte240m (7)
    • bt709 (1)
    • linear (8)
    • log100 (9)
    • log316 (10)
    • bt2020-10 (14)
    • bt2020-12 (15)
    • smpte2084 (16)
    • iec61966-2-4 (11)
    • iec61966-2-1 (13)
    • arib-std-b67 (18)
  • tin (int): set input transfer characteristic (from -1 to INT_MAX) (default input)
    • input (-1)
    • 709 (1)
    • unspecified (2)
    • 601 (6)
    • linear (8)
    • 2020_10 (14)
    • 2020_12 (15)
    • unknown (2)
    • bt470m (4)
    • bt470bg (5)
    • smpte170m (6)
    • smpte240m (7)
    • bt709 (1)
    • linear (8)
    • log100 (9)
    • log316 (10)
    • bt2020-10 (14)
    • bt2020-12 (15)
    • smpte2084 (16)
    • iec61966-2-4 (11)
    • iec61966-2-1 (13)
    • arib-std-b67 (18)
  • transfer (int): set transfer characteristic (from -1 to INT_MAX) (default input)
    • input (-1)
    • 709 (1)
    • unspecified (2)
    • 601 (6)
    • linear (8)
    • 2020_10 (14)
    • 2020_12 (15)
    • unknown (2)
    • bt470m (4)
    • bt470bg (5)
    • smpte170m (6)
    • smpte240m (7)
    • bt709 (1)
    • linear (8)
    • log100 (9)
    • log316 (10)
    • bt2020-10 (14)
    • bt2020-12 (15)
    • smpte2084 (16)
    • iec61966-2-4 (11)
    • iec61966-2-1 (13)
    • arib-std-b67 (18)
  • transferin (int): set input transfer characteristic (from -1 to INT_MAX) (default input)
    • input (-1)
    • 709 (1)
    • unspecified (2)
    • 601 (6)
    • linear (8)
    • 2020_10 (14)
    • 2020_12 (15)
    • unknown (2)
    • bt470m (4)
    • bt470bg (5)
    • smpte170m (6)
    • smpte240m (7)
    • bt709 (1)
    • linear (8)
    • log100 (9)
    • log316 (10)
    • bt2020-10 (14)
    • bt2020-12 (15)
    • smpte2084 (16)
    • iec61966-2-4 (11)
    • iec61966-2-1 (13)
    • arib-std-b67 (18)
  • w (string): Output video width
  • width (string): Output video width

See FFix.Filter for pipelines, expressions, and output handling.

Audio

aap(audio_0, audio_1, options \\ [])

@spec aap(FFix.Graph.StreamRef.t(), FFix.Graph.StreamRef.t(),
  delta: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  mu: String.t() | atom() | number(),
  order: String.t() | atom() | number(),
  out_mode: String.t() | atom() | number(),
  precision: String.t() | atom() | number(),
  projection: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Apply Affine Projection algorithm to first audio stream.

Options

  • delta (float): set the filter delta (from 0 to 1) (default 0.001)
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • mu (float): set the filter mu (from 0 to 1) (default 0.0001)
  • order (int): set the filter order (from 1 to 32767) (default 16)
  • out_mode (int): set output mode (from 0 to 4) (default o)
    • i (0) — input
    • d (1) — desired
    • o (2) — output
    • n (3) — noise
    • e (4) — error
  • precision (int): set processing precision (from 0 to 2) (default auto)
    • auto (0) — set auto processing precision
    • float (1) — set single-floating point processing precision
    • double (2) — set double-floating point processing precision
  • projection (int): set the filter projection (from 1 to 256) (default 2)

See FFix.Filter for pipelines, expressions, and output handling.

abench(audio_0, options \\ [])

@spec abench(FFix.Graph.StreamRef.t(),
  action: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Benchmark part of a filtergraph.

Options

  • action (int): set action (from 0 to 1) (default start)
    • start (0) — start timer
    • stop (1) — stop timer

See FFix.Filter for pipelines, expressions, and output handling.

acompressor(audio_0, options \\ [])

@spec acompressor(FFix.Graph.StreamRef.t(),
  attack: String.t() | atom() | number(),
  detection: String.t() | atom() | number(),
  knee: String.t() | atom() | number(),
  level_in: String.t() | atom() | number(),
  level_sc: String.t() | atom() | number(),
  link: String.t() | atom() | number(),
  makeup: String.t() | atom() | number(),
  mix: String.t() | atom() | number(),
  mode: String.t() | atom() | number(),
  ratio: String.t() | atom() | number(),
  release: String.t() | atom() | number(),
  threshold: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Audio compressor.

Options

  • attack (double): set attack (from 0.01 to 2000) (default 20)
  • detection (int): set detection (from 0 to 1) (default rms)
    • peak (0)
    • rms (1)
  • knee (double): set knee (from 1 to 8) (default 2.82843)
  • level_in (double): set input gain (from 0.015625 to 64) (default 1)
  • level_sc (double): set sidechain gain (from 0.015625 to 64) (default 1)
  • link (int): set link type (from 0 to 1) (default average)
    • average (0)
    • maximum (1)
  • makeup (double): set make up gain (from 1 to 64) (default 1)
  • mix (double): set mix (from 0 to 1) (default 1)
  • mode (int): set mode (from 0 to 1) (default downward)
    • downward (0)
    • upward (1)
  • ratio (double): set ratio (from 1 to 20) (default 2)
  • release (double): set release (from 0.01 to 9000) (default 250)
  • threshold (double): set threshold (from 0.000976563 to 1) (default 0.125)

See FFix.Filter for pipelines, expressions, and output handling.

acontrast(audio_0, options \\ [])

@spec acontrast(FFix.Graph.StreamRef.t(),
  contrast: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Simple audio dynamic range compression/expansion filter.

Options

  • contrast (float): set contrast (from 0 to 100) (default 33)

See FFix.Filter for pipelines, expressions, and output handling.

acopy(audio_0, options \\ [])

Copy the input audio unchanged to the output.

Options

See FFix.Filter for pipelines, expressions, and output handling.

acrossfade(audio_0, audio_1, options \\ [])

@spec acrossfade(FFix.Graph.StreamRef.t(), FFix.Graph.StreamRef.t(),
  c1: String.t() | atom() | number(),
  c2: String.t() | atom() | number(),
  curve1: String.t() | atom() | number(),
  curve2: String.t() | atom() | number(),
  d: String.t() | atom() | number(),
  duration: String.t() | atom() | number(),
  nb_samples: String.t() | atom() | number(),
  ns: String.t() | atom() | number(),
  o: String.t() | atom() | number(),
  overlap: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Cross fade two input audio streams.

Options

  • c1 (int): set fade curve type for 1st stream (from -1 to 22) (default tri)
    • nofade (-1) — no fade; keep audio as-is
    • tri (0) — linear slope
    • qsin (1) — quarter of sine wave
    • esin (2) — exponential sine wave
    • hsin (3) — half of sine wave
    • log (4) — logarithmic
    • ipar (5) — inverted parabola
    • qua (6) — quadratic
    • cub (7) — cubic
    • squ (8) — square root
    • cbr (9) — cubic root
    • par (10) — parabola
    • exp (11) — exponential
    • iqsin (12) — inverted quarter of sine wave
    • ihsin (13) — inverted half of sine wave
    • dese (14) — double-exponential seat
    • desi (15) — double-exponential sigmoid
    • losi (16) — logistic sigmoid
    • sinc (17) — sine cardinal function
    • isinc (18) — inverted sine cardinal function
    • quat (19) — quartic
    • quatr (20) — quartic root
    • qsin2 (21) — squared quarter of sine wave
    • hsin2 (22) — squared half of sine wave
  • c2 (int): set fade curve type for 2nd stream (from -1 to 22) (default tri)
    • nofade (-1) — no fade; keep audio as-is
    • tri (0) — linear slope
    • qsin (1) — quarter of sine wave
    • esin (2) — exponential sine wave
    • hsin (3) — half of sine wave
    • log (4) — logarithmic
    • ipar (5) — inverted parabola
    • qua (6) — quadratic
    • cub (7) — cubic
    • squ (8) — square root
    • cbr (9) — cubic root
    • par (10) — parabola
    • exp (11) — exponential
    • iqsin (12) — inverted quarter of sine wave
    • ihsin (13) — inverted half of sine wave
    • dese (14) — double-exponential seat
    • desi (15) — double-exponential sigmoid
    • losi (16) — logistic sigmoid
    • sinc (17) — sine cardinal function
    • isinc (18) — inverted sine cardinal function
    • quat (19) — quartic
    • quatr (20) — quartic root
    • qsin2 (21) — squared quarter of sine wave
    • hsin2 (22) — squared half of sine wave
  • curve1 (int): set fade curve type for 1st stream (from -1 to 22) (default tri)
    • nofade (-1) — no fade; keep audio as-is
    • tri (0) — linear slope
    • qsin (1) — quarter of sine wave
    • esin (2) — exponential sine wave
    • hsin (3) — half of sine wave
    • log (4) — logarithmic
    • ipar (5) — inverted parabola
    • qua (6) — quadratic
    • cub (7) — cubic
    • squ (8) — square root
    • cbr (9) — cubic root
    • par (10) — parabola
    • exp (11) — exponential
    • iqsin (12) — inverted quarter of sine wave
    • ihsin (13) — inverted half of sine wave
    • dese (14) — double-exponential seat
    • desi (15) — double-exponential sigmoid
    • losi (16) — logistic sigmoid
    • sinc (17) — sine cardinal function
    • isinc (18) — inverted sine cardinal function
    • quat (19) — quartic
    • quatr (20) — quartic root
    • qsin2 (21) — squared quarter of sine wave
    • hsin2 (22) — squared half of sine wave
  • curve2 (int): set fade curve type for 2nd stream (from -1 to 22) (default tri)
    • nofade (-1) — no fade; keep audio as-is
    • tri (0) — linear slope
    • qsin (1) — quarter of sine wave
    • esin (2) — exponential sine wave
    • hsin (3) — half of sine wave
    • log (4) — logarithmic
    • ipar (5) — inverted parabola
    • qua (6) — quadratic
    • cub (7) — cubic
    • squ (8) — square root
    • cbr (9) — cubic root
    • par (10) — parabola
    • exp (11) — exponential
    • iqsin (12) — inverted quarter of sine wave
    • ihsin (13) — inverted half of sine wave
    • dese (14) — double-exponential seat
    • desi (15) — double-exponential sigmoid
    • losi (16) — logistic sigmoid
    • sinc (17) — sine cardinal function
    • isinc (18) — inverted sine cardinal function
    • quat (19) — quartic
    • quatr (20) — quartic root
    • qsin2 (21) — squared quarter of sine wave
    • hsin2 (22) — squared half of sine wave
  • d (duration): set cross fade duration (default 0)
  • duration (duration): set cross fade duration (default 0)
  • nb_samples (int64): set number of samples for cross fade duration (from 1 to 2.14748e+08) (default 44100)
  • ns (int64): set number of samples for cross fade duration (from 1 to 2.14748e+08) (default 44100)
  • o (boolean): overlap 1st stream end with 2nd stream start (default true)
  • overlap (boolean): overlap 1st stream end with 2nd stream start (default true)

See FFix.Filter for pipelines, expressions, and output handling.

acrossover(audio_0, options \\ [])

@spec acrossover(FFix.Graph.StreamRef.t(),
  gain: String.t() | atom() | number(),
  level: String.t() | atom() | number(),
  order: String.t() | atom() | number(),
  precision: String.t() | atom() | number(),
  split: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) ::
  FFix.Graph.StreamRef.t()
  | [FFix.Graph.StreamRef.t()]
  | FFix.Graph.Terminal.t()

Split audio into per-bands streams.

Options

  • gain (string): set output bands gain (default "1.f")
  • level (float): set input gain (from 0 to 1) (default 1)
  • order (int): set filter order (from 0 to 9) (default 4th)
    • 2nd (0) — 2nd order (12 dB/8ve)
    • 4th (1) — 4th order (24 dB/8ve)
    • 6th (2) — 6th order (36 dB/8ve)
    • 8th (3) — 8th order (48 dB/8ve)
    • 10th (4) — 10th order (60 dB/8ve)
    • 12th (5) — 12th order (72 dB/8ve)
    • 14th (6) — 14th order (84 dB/8ve)
    • 16th (7) — 16th order (96 dB/8ve)
    • 18th (8) — 18th order (108 dB/8ve)
    • 20th (9) — 20th order (120 dB/8ve)
  • precision (int): set processing precision (from 0 to 2) (default auto)
    • auto (0) — set auto processing precision
    • float (1) — set single-floating point processing precision
    • double (2) — set double-floating point processing precision
  • split (string): set split frequencies (default "500")

See FFix.Filter for pipelines, expressions, and output handling.

acrusher(audio_0, options \\ [])

@spec acrusher(FFix.Graph.StreamRef.t(),
  aa: String.t() | atom() | number(),
  bits: String.t() | atom() | number(),
  dc: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  level_in: String.t() | atom() | number(),
  level_out: String.t() | atom() | number(),
  lfo: String.t() | atom() | number(),
  lforange: String.t() | atom() | number(),
  lforate: String.t() | atom() | number(),
  mix: String.t() | atom() | number(),
  mode: String.t() | atom() | number(),
  samples: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Reduce audio bit resolution.

Options

  • aa (double): set anti-aliasing (from 0 to 1) (default 0.5)
  • bits (double): set bit reduction (from 1 to 64) (default 8)
  • dc (double): set DC (from 0.25 to 4) (default 1)
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • level_in (double): set level in (from 0.015625 to 64) (default 1)
  • level_out (double): set level out (from 0.015625 to 64) (default 1)
  • lfo (boolean): enable LFO (default false)
  • lforange (double): set LFO depth (from 1 to 250) (default 20)
  • lforate (double): set LFO rate (from 0.01 to 200) (default 0.3)
  • mix (double): set mix (from 0 to 1) (default 0.5)
  • mode (int): set mode (from 0 to 1) (default lin)
    • lin (0) — linear
    • log (1) — logarithmic
  • samples (double): set sample reduction (from 1 to 250) (default 1)

See FFix.Filter for pipelines, expressions, and output handling.

acue(audio_0, options \\ [])

@spec acue(FFix.Graph.StreamRef.t(),
  buffer: String.t() | atom() | number(),
  cue: String.t() | atom() | number(),
  preroll: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Delay filtering to match a cue.

Options

  • buffer (duration): buffer duration in seconds (default 0)
  • cue (int64): cue unix timestamp in microseconds (from 0 to I64_MAX) (default 0)
  • preroll (duration): preroll duration in seconds (default 0)

See FFix.Filter for pipelines, expressions, and output handling.

adeclick(audio_0, options \\ [])

@spec adeclick(FFix.Graph.StreamRef.t(),
  a: String.t() | atom() | number(),
  arorder: String.t() | atom() | number(),
  b: String.t() | atom() | number(),
  burst: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  m: String.t() | atom() | number(),
  method: String.t() | atom() | number(),
  o: String.t() | atom() | number(),
  overlap: String.t() | atom() | number(),
  t: String.t() | atom() | number(),
  threshold: String.t() | atom() | number(),
  w: String.t() | atom() | number(),
  window: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Remove impulsive noise from input audio.

Options

  • a (double): set autoregression order (from 0 to 25) (default 2)
  • arorder (double): set autoregression order (from 0 to 25) (default 2)
  • b (double): set burst fusion (from 0 to 10) (default 2)
  • burst (double): set burst fusion (from 0 to 10) (default 2)
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • m (int): set overlap method (from 0 to 1) (default add)
    • add (0) — overlap-add
    • a (0) — overlap-add
    • save (1) — overlap-save
    • s (1) — overlap-save
  • method (int): set overlap method (from 0 to 1) (default add)
    • add (0) — overlap-add
    • a (0) — overlap-add
    • save (1) — overlap-save
    • s (1) — overlap-save
  • o (double): set window overlap (from 50 to 95) (default 75)
  • overlap (double): set window overlap (from 50 to 95) (default 75)
  • t (double): set threshold (from 1 to 100) (default 2)
  • threshold (double): set threshold (from 1 to 100) (default 2)
  • w (double): set window size (from 10 to 100) (default 55)
  • window (double): set window size (from 10 to 100) (default 55)

See FFix.Filter for pipelines, expressions, and output handling.

adeclip(audio_0, options \\ [])

@spec adeclip(FFix.Graph.StreamRef.t(),
  a: String.t() | atom() | number(),
  arorder: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  hsize: String.t() | atom() | number(),
  m: String.t() | atom() | number(),
  method: String.t() | atom() | number(),
  n: String.t() | atom() | number(),
  o: String.t() | atom() | number(),
  overlap: String.t() | atom() | number(),
  t: String.t() | atom() | number(),
  threshold: String.t() | atom() | number(),
  w: String.t() | atom() | number(),
  window: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Remove clipping from input audio.

Options

  • a (double): set autoregression order (from 0 to 25) (default 8)
  • arorder (double): set autoregression order (from 0 to 25) (default 8)
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • hsize (int): set histogram size (from 100 to 9999) (default 1000)
  • m (int): set overlap method (from 0 to 1) (default add)
    • add (0) — overlap-add
    • a (0) — overlap-add
    • save (1) — overlap-save
    • s (1) — overlap-save
  • method (int): set overlap method (from 0 to 1) (default add)
    • add (0) — overlap-add
    • a (0) — overlap-add
    • save (1) — overlap-save
    • s (1) — overlap-save
  • n (int): set histogram size (from 100 to 9999) (default 1000)
  • o (double): set window overlap (from 50 to 95) (default 75)
  • overlap (double): set window overlap (from 50 to 95) (default 75)
  • t (double): set threshold (from 1 to 100) (default 10)
  • threshold (double): set threshold (from 1 to 100) (default 10)
  • w (double): set window size (from 10 to 100) (default 55)
  • window (double): set window size (from 10 to 100) (default 55)

See FFix.Filter for pipelines, expressions, and output handling.

adecorrelate(audio_0, options \\ [])

@spec adecorrelate(FFix.Graph.StreamRef.t(),
  enable: String.t() | atom() | number(),
  seed: String.t() | atom() | number(),
  stages: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Apply decorrelation to input audio.

Options

  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • seed (int64): set random seed (from -1 to UINT32_MAX) (default -1)
  • stages (int): set filtering stages (from 1 to 16) (default 6)

See FFix.Filter for pipelines, expressions, and output handling.

adelay(audio_0, options \\ [])

@spec adelay(FFix.Graph.StreamRef.t(),
  all: String.t() | atom() | number(),
  delays: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Delay one or more audio channels.

Options

  • all (boolean): use last available delay for remained channels (default false)
  • delays (string): set list of delays for each channel
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero

See FFix.Filter for pipelines, expressions, and output handling.

adenorm(audio_0, options \\ [])

@spec adenorm(FFix.Graph.StreamRef.t(),
  enable: String.t() | atom() | number(),
  level: String.t() | atom() | number(),
  type: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Remedy denormals by adding extremely low-level noise.

Options

  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • level (double): set level (from -451 to -90) (default -351)
  • type (int): set type (from 0 to 3) (default dc)
    • dc (0)
    • ac (1)
    • square (2)
    • pulse (3)

See FFix.Filter for pipelines, expressions, and output handling.

aderivative(audio_0, options \\ [])

@spec aderivative(FFix.Graph.StreamRef.t(),
  enable: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Compute derivative of input audio.

Options

  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero

See FFix.Filter for pipelines, expressions, and output handling.

adrc(audio_0, options \\ [])

@spec adrc(FFix.Graph.StreamRef.t(),
  attack: String.t() | atom() | number(),
  channels: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  release: String.t() | atom() | number(),
  transfer: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Audio Spectral Dynamic Range Controller.

Options

  • attack (double): set the attack (from 1 to 1000) (default 50)
  • channels (string): set channels to filter (default "all")
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • release (double): set the release (from 5 to 2000) (default 100)
  • transfer (string): set the transfer expression (default "p")

See FFix.Filter for pipelines, expressions, and output handling.

adynamicequalizer(audio_0, options \\ [])

@spec adynamicequalizer(FFix.Graph.StreamRef.t(),
  attack: String.t() | atom() | number(),
  auto: String.t() | atom() | number(),
  dfrequency: String.t() | atom() | number(),
  dftype: String.t() | atom() | number(),
  dqfactor: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  makeup: String.t() | atom() | number(),
  mode: String.t() | atom() | number(),
  precision: String.t() | atom() | number(),
  range: String.t() | atom() | number(),
  ratio: String.t() | atom() | number(),
  release: String.t() | atom() | number(),
  tfrequency: String.t() | atom() | number(),
  tftype: String.t() | atom() | number(),
  threshold: String.t() | atom() | number(),
  tqfactor: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Apply Dynamic Equalization of input audio.

Options

  • attack (double): set detection attack duration (from 0.01 to 2000) (default 20)
  • auto (int): set auto threshold (from 1 to 4) (default off)
    • disabled (1)
    • off (2)
    • on (3)
    • adaptive (4)
  • dfrequency (double): set detection frequency (from 2 to 1e+06) (default 1000)
  • dftype (int): set detection filter type (from 0 to 3) (default bandpass)
    • bandpass (0)
    • lowpass (1)
    • highpass (2)
    • peak (3)
  • dqfactor (double): set detection Q factor (from 0.001 to 1000) (default 1)
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • makeup (double): set makeup gain (from 0 to 1000) (default 0)
  • mode (int): set mode (from -1 to 3) (default cutbelow)
    • listen (-1)
    • cutbelow (0)
    • cutabove (1)
    • boostbelow (2)
    • boostabove (3)
  • precision (int): set processing precision (from 0 to 2) (default auto)
    • auto (0) — set auto processing precision
    • float (1) — set single-floating point processing precision
    • double (2) — set double-floating point processing precision
  • range (double): set max gain (from 1 to 2000) (default 50)
  • ratio (double): set ratio factor (from 0 to 30) (default 1)
  • release (double): set detection release duration (from 0.01 to 2000) (default 200)
  • tfrequency (double): set target frequency (from 2 to 1e+06) (default 1000)
  • tftype (int): set target filter type (from 0 to 2) (default bell)
    • bell (0)
    • lowshelf (1)
    • highshelf (2)
  • threshold (double): set detection threshold (from 0 to 100) (default 0)
  • tqfactor (double): set target Q factor (from 0.001 to 1000) (default 1)

See FFix.Filter for pipelines, expressions, and output handling.

adynamicsmooth(audio_0, options \\ [])

@spec adynamicsmooth(FFix.Graph.StreamRef.t(),
  basefreq: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  sensitivity: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Apply Dynamic Smoothing of input audio.

Options

  • basefreq (double): set base frequency (from 2 to 1e+06) (default 22050)
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • sensitivity (double): set smooth sensitivity (from 0 to 1e+06) (default 2)

See FFix.Filter for pipelines, expressions, and output handling.

aecho(audio_0, options \\ [])

@spec aecho(FFix.Graph.StreamRef.t(),
  decays: String.t() | atom() | number(),
  delays: String.t() | atom() | number(),
  in_gain: String.t() | atom() | number(),
  out_gain: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Add echoing to the audio.

Options

  • decays (string): set list of signal decays (default "0.5")
  • delays (string): set list of signal delays (default "1000")
  • in_gain (float): set signal input gain (from 0 to 1) (default 0.6)
  • out_gain (float): set signal output gain (from 0 to 1) (default 0.3)

See FFix.Filter for pipelines, expressions, and output handling.

aemphasis(audio_0, options \\ [])

@spec aemphasis(FFix.Graph.StreamRef.t(),
  enable: String.t() | atom() | number(),
  level_in: String.t() | atom() | number(),
  level_out: String.t() | atom() | number(),
  mode: String.t() | atom() | number(),
  type: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Audio emphasis.

Options

  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • level_in (double): set input gain (from 0 to 64) (default 1)
  • level_out (double): set output gain (from 0 to 64) (default 1)
  • mode (int): set filter mode (from 0 to 1) (default reproduction)
    • reproduction (0)
    • production (1)
  • type (int): set filter type (from 0 to 8) (default cd)
    • col (0) — Columbia
    • emi (1) — EMI
    • bsi (2) — BSI (78RPM)
    • riaa (3) — RIAA
    • cd (4) — Compact Disc (CD)
    • 50fm (5) — 50µs (FM)
    • 75fm (6) — 75µs (FM)
    • 50kf (7) — 50µs (FM-KF)
    • 75kf (8) — 75µs (FM-KF)

See FFix.Filter for pipelines, expressions, and output handling.

aeval(audio_0, options \\ [])

@spec aeval(FFix.Graph.StreamRef.t(),
  c: String.t() | atom() | number(),
  channel_layout: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  exprs: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Filter audio signal according to a specified expression.

Options

  • c (string): set channel layout
  • channel_layout (string): set channel layout
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • exprs (string): set the '|'-separated list of channels expressions

See FFix.Filter for pipelines, expressions, and output handling.

aexciter(audio_0, options \\ [])

@spec aexciter(FFix.Graph.StreamRef.t(),
  amount: String.t() | atom() | number(),
  blend: String.t() | atom() | number(),
  ceil: String.t() | atom() | number(),
  drive: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  freq: String.t() | atom() | number(),
  level_in: String.t() | atom() | number(),
  level_out: String.t() | atom() | number(),
  listen: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Enhance high frequency part of audio.

Options

  • amount (double): set amount (from 0 to 64) (default 1)
  • blend (double): set blend harmonics (from -10 to 10) (default 0)
  • ceil (double): set ceiling (from 9999 to 20000) (default 9999)
  • drive (double): set harmonics (from 0.1 to 10) (default 8.5)
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • freq (double): set scope (from 2000 to 12000) (default 7500)
  • level_in (double): set level in (from 0 to 64) (default 1)
  • level_out (double): set level out (from 0 to 64) (default 1)
  • listen (boolean): enable listen mode (default false)

See FFix.Filter for pipelines, expressions, and output handling.

afade(audio_0, options \\ [])

@spec afade(FFix.Graph.StreamRef.t(),
  c: String.t() | atom() | number(),
  curve: String.t() | atom() | number(),
  d: String.t() | atom() | number(),
  duration: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  nb_samples: String.t() | atom() | number(),
  ns: String.t() | atom() | number(),
  silence: String.t() | atom() | number(),
  ss: String.t() | atom() | number(),
  st: String.t() | atom() | number(),
  start_sample: String.t() | atom() | number(),
  start_time: String.t() | atom() | number(),
  t: String.t() | atom() | number(),
  type: String.t() | atom() | number(),
  unity: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Fade in/out input audio.

Options

  • c (int): set fade curve type (from -1 to 22) (default tri)
    • nofade (-1) — no fade; keep audio as-is
    • tri (0) — linear slope
    • qsin (1) — quarter of sine wave
    • esin (2) — exponential sine wave
    • hsin (3) — half of sine wave
    • log (4) — logarithmic
    • ipar (5) — inverted parabola
    • qua (6) — quadratic
    • cub (7) — cubic
    • squ (8) — square root
    • cbr (9) — cubic root
    • par (10) — parabola
    • exp (11) — exponential
    • iqsin (12) — inverted quarter of sine wave
    • ihsin (13) — inverted half of sine wave
    • dese (14) — double-exponential seat
    • desi (15) — double-exponential sigmoid
    • losi (16) — logistic sigmoid
    • sinc (17) — sine cardinal function
    • isinc (18) — inverted sine cardinal function
    • quat (19) — quartic
    • quatr (20) — quartic root
    • qsin2 (21) — squared quarter of sine wave
    • hsin2 (22) — squared half of sine wave
  • curve (int): set fade curve type (from -1 to 22) (default tri)
    • nofade (-1) — no fade; keep audio as-is
    • tri (0) — linear slope
    • qsin (1) — quarter of sine wave
    • esin (2) — exponential sine wave
    • hsin (3) — half of sine wave
    • log (4) — logarithmic
    • ipar (5) — inverted parabola
    • qua (6) — quadratic
    • cub (7) — cubic
    • squ (8) — square root
    • cbr (9) — cubic root
    • par (10) — parabola
    • exp (11) — exponential
    • iqsin (12) — inverted quarter of sine wave
    • ihsin (13) — inverted half of sine wave
    • dese (14) — double-exponential seat
    • desi (15) — double-exponential sigmoid
    • losi (16) — logistic sigmoid
    • sinc (17) — sine cardinal function
    • isinc (18) — inverted sine cardinal function
    • quat (19) — quartic
    • quatr (20) — quartic root
    • qsin2 (21) — squared quarter of sine wave
    • hsin2 (22) — squared half of sine wave
  • d (duration): set fade duration (default 0)
  • duration (duration): set fade duration (default 0)
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • nb_samples (int64): set number of samples for fade duration (from 1 to I64_MAX) (default 44100)
  • ns (int64): set number of samples for fade duration (from 1 to I64_MAX) (default 44100)
  • silence (double): set the silence gain (from 0 to 1) (default 0)
  • ss (int64): set number of first sample to start fading (from 0 to I64_MAX) (default 0)
  • st (duration): set time to start fading (default 0)
  • start_sample (int64): set number of first sample to start fading (from 0 to I64_MAX) (default 0)
  • start_time (duration): set time to start fading (default 0)
  • t (int): set the fade direction (from 0 to 1) (default in)
    • in (0) — fade-in
    • out (1) — fade-out
  • type (int): set the fade direction (from 0 to 1) (default in)
    • in (0) — fade-in
    • out (1) — fade-out
  • unity (double): set the unity gain (from 0 to 1) (default 1)

See FFix.Filter for pipelines, expressions, and output handling.

afftdn(audio_0, options \\ [])

@spec afftdn(FFix.Graph.StreamRef.t(),
  ad: String.t() | atom() | number(),
  adaptivity: String.t() | atom() | number(),
  band_multiplier: String.t() | atom() | number(),
  band_noise: String.t() | atom() | number(),
  bm: String.t() | atom() | number(),
  bn: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  floor_offset: String.t() | atom() | number(),
  fo: String.t() | atom() | number(),
  gain_smooth: String.t() | atom() | number(),
  gs: String.t() | atom() | number(),
  nf: String.t() | atom() | number(),
  nl: String.t() | atom() | number(),
  noise_floor: String.t() | atom() | number(),
  noise_link: String.t() | atom() | number(),
  noise_reduction: String.t() | atom() | number(),
  noise_type: String.t() | atom() | number(),
  nr: String.t() | atom() | number(),
  nt: String.t() | atom() | number(),
  om: String.t() | atom() | number(),
  output_mode: String.t() | atom() | number(),
  residual_floor: String.t() | atom() | number(),
  rf: String.t() | atom() | number(),
  sample_noise: String.t() | atom() | number(),
  sn: String.t() | atom() | number(),
  tn: String.t() | atom() | number(),
  tr: String.t() | atom() | number(),
  track_noise: String.t() | atom() | number(),
  track_residual: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Denoise audio samples using FFT.

Options

  • ad (float): set adaptivity factor (from 0 to 1) (default 0.5)
  • adaptivity (float): set adaptivity factor (from 0 to 1) (default 0.5)
  • band_multiplier (float): set band multiplier (from 0.2 to 5) (default 1.25)
  • band_noise (string): set the custom bands noise
  • bm (float): set band multiplier (from 0.2 to 5) (default 1.25)
  • bn (string): set the custom bands noise
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • floor_offset (float): set noise floor offset factor (from -2 to 2) (default 1)
  • fo (float): set noise floor offset factor (from -2 to 2) (default 1)
  • gain_smooth (int): set gain smooth radius (from 0 to 50) (default 0)
  • gs (int): set gain smooth radius (from 0 to 50) (default 0)
  • nf (float): set the noise floor (from -80 to -20) (default -50)
  • nl (int): set the noise floor link (from 0 to 3) (default min)
    • none (0) — none
    • min (1) — min
    • max (2) — max
    • average (3) — average
  • noise_floor (float): set the noise floor (from -80 to -20) (default -50)
  • noise_link (int): set the noise floor link (from 0 to 3) (default min)
    • none (0) — none
    • min (1) — min
    • max (2) — max
    • average (3) — average
  • noise_reduction (float): set the noise reduction (from 0.01 to 97) (default 12)
  • noise_type (int): set the noise type (from 0 to 3) (default white)
    • white (0) — white noise
    • w (0) — white noise
    • vinyl (1) — vinyl noise
    • v (1) — vinyl noise
    • shellac (2) — shellac noise
    • s (2) — shellac noise
    • custom (3) — custom noise
    • c (3) — custom noise
  • nr (float): set the noise reduction (from 0.01 to 97) (default 12)
  • nt (int): set the noise type (from 0 to 3) (default white)
    • white (0) — white noise
    • w (0) — white noise
    • vinyl (1) — vinyl noise
    • v (1) — vinyl noise
    • shellac (2) — shellac noise
    • s (2) — shellac noise
    • custom (3) — custom noise
    • c (3) — custom noise
  • om (int): set output mode (from 0 to 2) (default output)
    • input (0) — input
    • i (0) — input
    • output (1) — output
    • o (1) — output
    • noise (2) — noise
    • n (2) — noise
  • output_mode (int): set output mode (from 0 to 2) (default output)
    • input (0) — input
    • i (0) — input
    • output (1) — output
    • o (1) — output
    • noise (2) — noise
    • n (2) — noise
  • residual_floor (float): set the residual floor (from -80 to -20) (default -38)
  • rf (float): set the residual floor (from -80 to -20) (default -38)
  • sample_noise (int): set sample noise mode (from 0 to 2) (default none)
    • none (0) — none
    • start (1) — start
    • begin (1) — start
    • stop (2) — stop
    • end (2) — stop
  • sn (int): set sample noise mode (from 0 to 2) (default none)
    • none (0) — none
    • start (1) — start
    • begin (1) — start
    • stop (2) — stop
    • end (2) — stop
  • tn (boolean): track noise (default false)
  • tr (boolean): track residual (default false)
  • track_noise (boolean): track noise (default false)
  • track_residual (boolean): track residual (default false)

See FFix.Filter for pipelines, expressions, and output handling.

afftfilt(audio_0, options \\ [])

@spec afftfilt(FFix.Graph.StreamRef.t(),
  enable: String.t() | atom() | number(),
  imag: String.t() | atom() | number(),
  overlap: String.t() | atom() | number(),
  real: String.t() | atom() | number(),
  win_func: String.t() | atom() | number(),
  win_size: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Apply arbitrary expressions to samples in frequency domain.

Options

  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • imag (string): set channels imaginary expressions (default "im")
  • overlap (float): set window overlap (from 0 to 1) (default 0.75)
  • real (string): set channels real expressions (default "re")
  • win_func (int): set window function (from 0 to 20) (default hann)
    • rect (0) — Rectangular
    • bartlett (4) — Bartlett
    • hann (1) — Hann
    • hanning (1) — Hanning
    • hamming (2) — Hamming
    • blackman (3) — Blackman
    • welch (5) — Welch
    • flattop (6) — Flat-top
    • bharris (7) — Blackman-Harris
    • bnuttall (8) — Blackman-Nuttall
    • bhann (11) — Bartlett-Hann
    • sine (9) — Sine
    • nuttall (10) — Nuttall
    • lanczos (12) — Lanczos
    • gauss (13) — Gauss
    • tukey (14) — Tukey
    • dolph (15) — Dolph-Chebyshev
    • cauchy (16) — Cauchy
    • parzen (17) — Parzen
    • poisson (18) — Poisson
    • bohman (19) — Bohman
    • kaiser (20) — Kaiser
  • win_size (int): set window size (from 16 to 131072) (default 4096)

See FFix.Filter for pipelines, expressions, and output handling.

afir(streams, options \\ [])

@spec afir([FFix.Graph.StreamRef.t()],
  channel: String.t() | atom() | number(),
  dry: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  gtype: String.t() | atom() | number(),
  ir: String.t() | atom() | number(),
  irfmt: String.t() | atom() | number(),
  irgain: String.t() | atom() | number(),
  irlink: String.t() | atom() | number(),
  irload: String.t() | atom() | number(),
  irnorm: String.t() | atom() | number(),
  length: String.t() | atom() | number(),
  maxir: String.t() | atom() | number(),
  maxp: String.t() | atom() | number(),
  minp: String.t() | atom() | number(),
  nbirs: String.t() | atom() | number(),
  precision: String.t() | atom() | number(),
  rate: String.t() | atom() | number(),
  response: String.t() | atom() | number(),
  size: String.t() | atom() | number(),
  wet: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Apply Finite Impulse Response filter with supplied coefficients in additional stream(s).

Options

  • channel (int): set IR channel to display frequency response (from 0 to 1024) (default 0)
  • dry (float): set dry gain (from 0 to 10) (default 1)
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • gtype (int): set IR auto gain type (from -1 to 4) (default peak)
    • none (-1) — without auto gain
    • peak (0) — peak gain
    • dc (1) — DC gain
    • gn (2) — gain to noise
    • ac (3) — AC gain
    • rms (4) — RMS gain
  • ir (int): select IR (from 0 to 31) (default 0)
  • irfmt (int): set IR format (from 0 to 1) (default input)
    • mono (0) — single channel
    • input (1) — same as input
  • irgain (float): set IR gain (from 0 to 1) (default 1)
  • irlink (boolean): set IR link (default true)
  • irload (int): set IR loading type (from 0 to 1) (default init)
    • init (0) — load all IRs on init
    • access (1) — load IR on access
  • irnorm (float): set IR norm (from -1 to 2) (default 1)
  • length (float): set IR length (from 0 to 1) (default 1)
  • maxir (float): set max IR length (from 0.1 to 60) (default 30)
  • maxp (int): set max partition size (from 8 to 65536) (default 8192)
  • minp (int): set min partition size (from 1 to 65536) (default 8192)
  • nbirs (int): set number of input IRs (from 1 to 32) (default 1)
  • precision (int): set processing precision (from 0 to 2) (default auto)
    • auto (0) — set auto processing precision
    • float (1) — set single-floating point processing precision
    • double (2) — set double-floating point processing precision
  • rate (video_rate): set video rate (default "25")
  • response (boolean): show IR frequency response (default false)
  • size (image_size): set video size (default "hd720")
  • wet (float): set wet gain (from 0 to 10) (default 1)

See FFix.Filter for pipelines, expressions, and output handling.

aformat(audio_0, options \\ [])

@spec aformat(FFix.Graph.StreamRef.t(),
  channel_layouts:
    (String.t() | atom() | number()) | [String.t() | atom() | number()],
  cl: (String.t() | atom() | number()) | [String.t() | atom() | number()],
  f: (String.t() | atom() | number()) | [String.t() | atom() | number()],
  r: (String.t() | atom() | number()) | [String.t() | atom() | number()],
  sample_fmts:
    (String.t() | atom() | number()) | [String.t() | atom() | number()],
  sample_rates:
    (String.t() | atom() | number()) | [String.t() | atom() | number()],
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Convert the input audio to one of the specified formats.

Options

  • channel_layouts (channel_layout list): A '|'-separated list of channel layouts.
  • cl (channel_layout list): A '|'-separated list of channel layouts.
  • f (sample_fmt list): A '|'-separated list of sample formats.
  • r (int list): A '|'-separated list of sample rates.
  • sample_fmts (sample_fmt list): A '|'-separated list of sample formats.
  • sample_rates (int list): A '|'-separated list of sample rates.

See FFix.Filter for pipelines, expressions, and output handling.

afreqshift(audio_0, options \\ [])

@spec afreqshift(FFix.Graph.StreamRef.t(),
  enable: String.t() | atom() | number(),
  level: String.t() | atom() | number(),
  order: String.t() | atom() | number(),
  shift: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Apply frequency shifting to input audio.

Options

  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • level (double): set output level (from 0 to 1) (default 1)
  • order (int): set filter order (from 1 to 16) (default 8)
  • shift (double): set frequency shift (from -2.14748e+09 to INT_MAX) (default 0)

See FFix.Filter for pipelines, expressions, and output handling.

afwtdn(audio_0, options \\ [])

@spec afwtdn(FFix.Graph.StreamRef.t(),
  adaptive: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  levels: String.t() | atom() | number(),
  percent: String.t() | atom() | number(),
  profile: String.t() | atom() | number(),
  samples: String.t() | atom() | number(),
  sigma: String.t() | atom() | number(),
  softness: String.t() | atom() | number(),
  wavet: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Denoise audio stream using Wavelets.

Options

  • adaptive (boolean): adaptive profiling of noise (default false)
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • levels (int): set number of wavelet levels (from 1 to 12) (default 10)
  • percent (double): set percent of full denoising (from 0 to 100) (default 85)
  • profile (boolean): profile noise (default false)
  • samples (int): set frame size in number of samples (from 512 to 65536) (default 8192)
  • sigma (double): set noise sigma (from 0 to 1) (default 0)
  • softness (double): set thresholding softness (from 0 to 10) (default 1)
  • wavet (int): set wavelet type (from 0 to 6) (default sym10)
    • sym2 (0) — sym2
    • sym4 (1) — sym4
    • rbior68 (2) — rbior68
    • deb10 (3) — deb10
    • sym10 (4) — sym10
    • coif5 (5) — coif5
    • bl3 (6) — bl3

See FFix.Filter for pipelines, expressions, and output handling.

agate(audio_0, options \\ [])

@spec agate(FFix.Graph.StreamRef.t(),
  attack: String.t() | atom() | number(),
  detection: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  knee: String.t() | atom() | number(),
  level_in: String.t() | atom() | number(),
  level_sc: String.t() | atom() | number(),
  link: String.t() | atom() | number(),
  makeup: String.t() | atom() | number(),
  mode: String.t() | atom() | number(),
  range: String.t() | atom() | number(),
  ratio: String.t() | atom() | number(),
  release: String.t() | atom() | number(),
  threshold: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Audio gate.

Options

  • attack (double): set attack (from 0.01 to 9000) (default 20)
  • detection (int): set detection (from 0 to 1) (default rms)
    • peak (0)
    • rms (1)
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • knee (double): set knee (from 1 to 8) (default 2.82843)
  • level_in (double): set input level (from 0.015625 to 64) (default 1)
  • level_sc (double): set sidechain gain (from 0.015625 to 64) (default 1)
  • link (int): set link (from 0 to 1) (default average)
    • average (0)
    • maximum (1)
  • makeup (double): set makeup gain (from 1 to 64) (default 1)
  • mode (int): set mode (from 0 to 1) (default downward)
    • downward (0)
    • upward (1)
  • range (double): set max gain reduction (from 0 to 1) (default 0.06125)
  • ratio (double): set ratio (from 1 to 9000) (default 2)
  • release (double): set release (from 0.01 to 9000) (default 250)
  • threshold (double): set threshold (from 0 to 1) (default 0.125)

See FFix.Filter for pipelines, expressions, and output handling.

aiir(audio_0, options \\ [])

@spec aiir(FFix.Graph.StreamRef.t(),
  channel: String.t() | atom() | number(),
  dry: String.t() | atom() | number(),
  e: String.t() | atom() | number(),
  f: String.t() | atom() | number(),
  format: String.t() | atom() | number(),
  gains: String.t() | atom() | number(),
  k: String.t() | atom() | number(),
  mix: String.t() | atom() | number(),
  n: String.t() | atom() | number(),
  normalize: String.t() | atom() | number(),
  p: String.t() | atom() | number(),
  poles: String.t() | atom() | number(),
  precision: String.t() | atom() | number(),
  process: String.t() | atom() | number(),
  r: String.t() | atom() | number(),
  rate: String.t() | atom() | number(),
  response: String.t() | atom() | number(),
  size: String.t() | atom() | number(),
  wet: String.t() | atom() | number(),
  z: String.t() | atom() | number(),
  zeros: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) ::
  FFix.Graph.StreamRef.t()
  | [FFix.Graph.StreamRef.t()]
  | FFix.Graph.Terminal.t()

Apply Infinite Impulse Response filter with supplied coefficients.

Options

  • channel (int): set IR channel to display frequency response (from 0 to 1024) (default 0)
  • dry (double): set dry gain (from 0 to 1) (default 1)
  • e (int): set precision (from 0 to 3) (default dbl)
    • dbl (0) — double-precision floating-point
    • flt (1) — single-precision floating-point
    • i32 (2) — 32-bit integers
    • i16 (3) — 16-bit integers
  • f (int): set coefficients format (from -2 to 4) (default zp)
    • ll (-2) — lattice-ladder function
    • sf (-1) — analog transfer function
    • tf (0) — digital transfer function
    • zp (1) — Z-plane zeros/poles
    • pr (2) — Z-plane zeros/poles (polar radians)
    • pd (3) — Z-plane zeros/poles (polar degrees)
    • sp (4) — S-plane zeros/poles
  • format (int): set coefficients format (from -2 to 4) (default zp)
    • ll (-2) — lattice-ladder function
    • sf (-1) — analog transfer function
    • tf (0) — digital transfer function
    • zp (1) — Z-plane zeros/poles
    • pr (2) — Z-plane zeros/poles (polar radians)
    • pd (3) — Z-plane zeros/poles (polar degrees)
    • sp (4) — S-plane zeros/poles
  • gains (string): set channels gains (default "1|1")
  • k (string): set channels gains (default "1|1")
  • mix (double): set mix (from 0 to 1) (default 1)
  • n (boolean): normalize coefficients (default true)
  • normalize (boolean): normalize coefficients (default true)
  • p (string): set A/denominator/poles/ladder coefficients (default "1+0i 1-0i")
  • poles (string): set A/denominator/poles/ladder coefficients (default "1+0i 1-0i")
  • precision (int): set filtering precision (from 0 to 3) (default dbl)
    • dbl (0) — double-precision floating-point
    • flt (1) — single-precision floating-point
    • i32 (2) — 32-bit integers
    • i16 (3) — 16-bit integers
  • process (int): set kind of processing (from 0 to 2) (default s)
    • d (0) — direct
    • s (1) — serial
    • p (2) — parallel
  • r (int): set kind of processing (from 0 to 2) (default s)
    • d (0) — direct
    • s (1) — serial
    • p (2) — parallel
  • rate (video_rate): set video rate (default "25")
  • response (boolean): show IR frequency response (default false)
  • size (image_size): set video size (default "hd720")
  • wet (double): set wet gain (from 0 to 1) (default 1)
  • z (string): set B/numerator/zeros/reflection coefficients (default "1+0i 1-0i")
  • zeros (string): set B/numerator/zeros/reflection coefficients (default "1+0i 1-0i")

See FFix.Filter for pipelines, expressions, and output handling.

aintegral(audio_0, options \\ [])

@spec aintegral(FFix.Graph.StreamRef.t(),
  enable: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Compute integral of input audio.

Options

  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero

See FFix.Filter for pipelines, expressions, and output handling.

ainterleave(streams, options \\ [])

@spec ainterleave([FFix.Graph.StreamRef.t()],
  duration: String.t() | atom() | number(),
  n: String.t() | atom() | number(),
  nb_inputs: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Temporally interleave audio inputs.

Options

  • duration (int): how to determine the end-of-stream (from 0 to 2) (default longest)
    • longest (0) — Duration of longest input
    • shortest (1) — Duration of shortest input
    • first (2) — Duration of first input
  • n (int): set number of inputs (from 1 to INT_MAX) (default 2)
  • nb_inputs (int): set number of inputs (from 1 to INT_MAX) (default 2)

See FFix.Filter for pipelines, expressions, and output handling.

alatency(audio_0, options \\ [])

@spec alatency(FFix.Graph.StreamRef.t(),
  enable: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Report audio filtering latency.

Options

  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero

See FFix.Filter for pipelines, expressions, and output handling.

alimiter(audio_0, options \\ [])

@spec alimiter(FFix.Graph.StreamRef.t(),
  asc: String.t() | atom() | number(),
  asc_level: String.t() | atom() | number(),
  attack: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  latency: String.t() | atom() | number(),
  level: String.t() | atom() | number(),
  level_in: String.t() | atom() | number(),
  level_out: String.t() | atom() | number(),
  limit: String.t() | atom() | number(),
  release: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Audio lookahead limiter.

Options

  • asc (boolean): enable asc (default false)
  • asc_level (double): set asc level (from 0 to 1) (default 0.5)
  • attack (double): set attack (from 0.1 to 80) (default 5)
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • latency (boolean): compensate delay (default false)
  • level (boolean): auto level (default true)
  • level_in (double): set input level (from 0.015625 to 64) (default 1)
  • level_out (double): set output level (from 0.015625 to 64) (default 1)
  • limit (double): set limit (from 0.0625 to 1) (default 1)
  • release (double): set release (from 1 to 8000) (default 50)

See FFix.Filter for pipelines, expressions, and output handling.

allpass(audio_0, options \\ [])

@spec allpass(FFix.Graph.StreamRef.t(),
  a: String.t() | atom() | number(),
  c: String.t() | atom() | number(),
  channels: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  f: String.t() | atom() | number(),
  frequency: String.t() | atom() | number(),
  m: String.t() | atom() | number(),
  mix: String.t() | atom() | number(),
  n: String.t() | atom() | number(),
  normalize: String.t() | atom() | number(),
  o: String.t() | atom() | number(),
  order: String.t() | atom() | number(),
  precision: String.t() | atom() | number(),
  r: String.t() | atom() | number(),
  t: String.t() | atom() | number(),
  transform: String.t() | atom() | number(),
  w: String.t() | atom() | number(),
  width: String.t() | atom() | number(),
  width_type: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Apply a two-pole all-pass filter.

Options

  • a (int): set transform type (from 0 to 6) (default di)
    • di (0) — direct form I
    • dii (1) — direct form II
    • tdi (2) — transposed direct form I
    • tdii (3) — transposed direct form II
    • latt (4) — lattice-ladder form
    • svf (5) — state variable filter form
    • zdf (6) — zero-delay filter form
  • c (string): set channels to filter (default "all")
  • channels (string): set channels to filter (default "all")
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • f (double): set central frequency (from 0 to 999999) (default 3000)
  • frequency (double): set central frequency (from 0 to 999999) (default 3000)
  • m (double): set mix (from 0 to 1) (default 1)
  • mix (double): set mix (from 0 to 1) (default 1)
  • n (boolean): normalize coefficients (default false)
  • normalize (boolean): normalize coefficients (default false)
  • o (int): set filter order (from 1 to 2) (default 2)
  • order (int): set filter order (from 1 to 2) (default 2)
  • precision (int): set filtering precision (from -1 to 3) (default auto)
    • auto (-1) — automatic
    • s16 (0) — signed 16-bit
    • s32 (1) — signed 32-bit
    • f32 (2) — floating-point single
    • f64 (3) — floating-point double
  • r (int): set filtering precision (from -1 to 3) (default auto)
    • auto (-1) — automatic
    • s16 (0) — signed 16-bit
    • s32 (1) — signed 32-bit
    • f32 (2) — floating-point single
    • f64 (3) — floating-point double
  • t (int): set filter-width type (from 1 to 5) (default q)
    • h (1) — Hz
    • q (3) — Q-Factor
    • o (2) — octave
    • s (4) — slope
    • k (5) — kHz
  • transform (int): set transform type (from 0 to 6) (default di)
    • di (0) — direct form I
    • dii (1) — direct form II
    • tdi (2) — transposed direct form I
    • tdii (3) — transposed direct form II
    • latt (4) — lattice-ladder form
    • svf (5) — state variable filter form
    • zdf (6) — zero-delay filter form
  • w (double): set width (from 0 to 99999) (default 0.707)
  • width (double): set width (from 0 to 99999) (default 0.707)
  • width_type (int): set filter-width type (from 1 to 5) (default q)
    • h (1) — Hz
    • q (3) — Q-Factor
    • o (2) — octave
    • s (4) — slope
    • k (5) — kHz

See FFix.Filter for pipelines, expressions, and output handling.

aloop(audio_0, options \\ [])

@spec aloop(FFix.Graph.StreamRef.t(),
  loop: String.t() | atom() | number(),
  size: String.t() | atom() | number(),
  start: String.t() | atom() | number(),
  time: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Loop audio samples.

Options

  • loop (int): number of loops (from -1 to INT_MAX) (default 0)
  • size (int64): max number of samples to loop (from 0 to INT_MAX) (default 0)
  • start (int64): set the loop start sample (from -1 to I64_MAX) (default 0)
  • time (duration): set the loop start time (default INT64_MAX)

See FFix.Filter for pipelines, expressions, and output handling.

amerge(streams, options \\ [])

@spec amerge([FFix.Graph.StreamRef.t()],
  inputs: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Merge two or more audio streams into a single multi-channel stream.

Options

  • inputs (int): specify the number of inputs (from 1 to 64) (default 2)

See FFix.Filter for pipelines, expressions, and output handling.

ametadata(audio_0, options \\ [])

@spec ametadata(FFix.Graph.StreamRef.t(),
  direct: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  expr: String.t() | atom() | number(),
  file: String.t() | atom() | number(),
  function: String.t() | atom() | number(),
  key: String.t() | atom() | number(),
  mode: String.t() | atom() | number(),
  value: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Manipulate audio frame metadata.

Options

  • direct (boolean): reduce buffering when printing to user-set file or pipe (default false)
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • expr (string): set expression for expr function
  • file (string): set file where to print metadata information
  • function (int): function for comparing values (from 0 to 6) (default same_str)
    • same_str (0)
    • starts_with (1)
    • less (2)
    • equal (3)
    • greater (4)
    • expr (5)
    • ends_with (6)
  • key (string): set metadata key
  • mode (int): set a mode of operation (from 0 to 4) (default select)
    • select (0) — select frame
    • add (1) — add new metadata
    • modify (2) — modify metadata
    • delete (3) — delete metadata
    • print (4) — print metadata
  • value (string): set metadata value

See FFix.Filter for pipelines, expressions, and output handling.

amix(streams, options \\ [])

@spec amix([FFix.Graph.StreamRef.t()],
  dropout_transition: String.t() | atom() | number(),
  duration: String.t() | atom() | number(),
  inputs: String.t() | atom() | number(),
  normalize: String.t() | atom() | number(),
  weights: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Audio mixing.

Example

FFix.Filter.amix([voice, music], inputs: 2, duration: :shortest)

Options

  • dropout_transition (float): Transition time, in seconds, for volume renormalization when an input stream ends. (from 0 to INT_MAX) (default 2)
  • duration (int): How to determine the end-of-stream. (from 0 to 2) (default longest)
    • longest (0) — Duration of longest input.
    • shortest (1) — Duration of shortest input.
    • first (2) — Duration of first input.
  • inputs (int): Number of inputs. (from 1 to 32767) (default 2)
  • normalize (boolean): Scale inputs (default true)
  • weights (string): Set weight for each input. (default "1 1")

See FFix.Filter for pipelines, expressions, and output handling.

amultiply(audio_0, audio_1, options \\ [])

Multiply two audio streams.

Options

See FFix.Filter for pipelines, expressions, and output handling.

anequalizer(audio_0, options \\ [])

@spec anequalizer(FFix.Graph.StreamRef.t(),
  colors: String.t() | atom() | number(),
  curves: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  fscale: String.t() | atom() | number(),
  mgain: String.t() | atom() | number(),
  params: String.t() | atom() | number(),
  size: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) ::
  FFix.Graph.StreamRef.t()
  | [FFix.Graph.StreamRef.t()]
  | FFix.Graph.Terminal.t()

Apply high-order audio parametric multi band equalizer.

Options

  • colors (string): set channels curves colors (default "red|green|blue|yellow|orange|lime|pink|magenta|brown")
  • curves (boolean): draw frequency response curves (default false)
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • fscale (int): set frequency scale (from 0 to 1) (default log)
    • lin (0) — linear
    • log (1) — logarithmic
  • mgain (double): set max gain (from -900 to 900) (default 60)
  • params (string): (default "")
  • size (image_size): set video size (default "hd720")

See FFix.Filter for pipelines, expressions, and output handling.

anlmdn(audio_0, options \\ [])

@spec anlmdn(FFix.Graph.StreamRef.t(),
  enable: String.t() | atom() | number(),
  m: String.t() | atom() | number(),
  o: String.t() | atom() | number(),
  output: String.t() | atom() | number(),
  p: String.t() | atom() | number(),
  patch: String.t() | atom() | number(),
  r: String.t() | atom() | number(),
  research: String.t() | atom() | number(),
  s: String.t() | atom() | number(),
  smooth: String.t() | atom() | number(),
  strength: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Reduce broadband noise from stream using Non-Local Means.

Options

  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • m (float): set smooth factor (from 1 to 1000) (default 11)
  • o (int): set output mode (from 0 to 2) (default o)
    • i (0) — input
    • o (1) — output
    • n (2) — noise
  • output (int): set output mode (from 0 to 2) (default o)
    • i (0) — input
    • o (1) — output
    • n (2) — noise
  • p (duration): set patch duration (default 0.002)
  • patch (duration): set patch duration (default 0.002)
  • r (duration): set research duration (default 0.006)
  • research (duration): set research duration (default 0.006)
  • s (float): set denoising strength (from 1e-05 to 10000) (default 1e-05)
  • smooth (float): set smooth factor (from 1 to 1000) (default 11)
  • strength (float): set denoising strength (from 1e-05 to 10000) (default 1e-05)

See FFix.Filter for pipelines, expressions, and output handling.

anlmf(audio_0, audio_1, options \\ [])

@spec anlmf(FFix.Graph.StreamRef.t(), FFix.Graph.StreamRef.t(),
  enable: String.t() | atom() | number(),
  eps: String.t() | atom() | number(),
  leakage: String.t() | atom() | number(),
  mu: String.t() | atom() | number(),
  order: String.t() | atom() | number(),
  out_mode: String.t() | atom() | number(),
  precision: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Apply Normalized Least-Mean-Fourth algorithm to first audio stream.

Options

  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • eps (float): set the filter eps (from 0 to 1) (default 1)
  • leakage (float): set the filter leakage (from 0 to 1) (default 0)
  • mu (float): set the filter mu (from 0 to 2) (default 0.75)
  • order (int): set the filter order (from 1 to 32767) (default 256)
  • out_mode (int): set output mode (from 0 to 4) (default o)
    • i (0) — input
    • d (1) — desired
    • o (2) — output
    • n (3) — noise
    • e (4) — error
  • precision (int): set processing precision (from 0 to 2) (default auto)
    • auto (0) — set auto processing precision
    • float (1) — set single-floating point processing precision
    • double (2) — set double-floating point processing precision

See FFix.Filter for pipelines, expressions, and output handling.

anlms(audio_0, audio_1, options \\ [])

@spec anlms(FFix.Graph.StreamRef.t(), FFix.Graph.StreamRef.t(),
  enable: String.t() | atom() | number(),
  eps: String.t() | atom() | number(),
  leakage: String.t() | atom() | number(),
  mu: String.t() | atom() | number(),
  order: String.t() | atom() | number(),
  out_mode: String.t() | atom() | number(),
  precision: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Apply Normalized Least-Mean-Squares algorithm to first audio stream.

Options

  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • eps (float): set the filter eps (from 0 to 1) (default 1)
  • leakage (float): set the filter leakage (from 0 to 1) (default 0)
  • mu (float): set the filter mu (from 0 to 2) (default 0.75)
  • order (int): set the filter order (from 1 to 32767) (default 256)
  • out_mode (int): set output mode (from 0 to 4) (default o)
    • i (0) — input
    • d (1) — desired
    • o (2) — output
    • n (3) — noise
    • e (4) — error
  • precision (int): set processing precision (from 0 to 2) (default auto)
    • auto (0) — set auto processing precision
    • float (1) — set single-floating point processing precision
    • double (2) — set double-floating point processing precision

See FFix.Filter for pipelines, expressions, and output handling.

anull(audio_0, options \\ [])

Pass the source unchanged to the output.

Options

See FFix.Filter for pipelines, expressions, and output handling.

apad(audio_0, options \\ [])

@spec apad(FFix.Graph.StreamRef.t(),
  enable: String.t() | atom() | number(),
  packet_size: String.t() | atom() | number(),
  pad_dur: String.t() | atom() | number(),
  pad_len: String.t() | atom() | number(),
  whole_dur: String.t() | atom() | number(),
  whole_len: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Pad audio with silence.

Options

  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • packet_size (int): set silence packet size (from 0 to INT_MAX) (default 4096)
  • pad_dur (duration): set duration of silence to add (default -0.000001)
  • pad_len (int64): set number of samples of silence to add (from -1 to I64_MAX) (default -1)
  • whole_dur (duration): set minimum target duration in the audio stream (default -0.000001)
  • whole_len (int64): set minimum target number of samples in the audio stream (from -1 to I64_MAX) (default -1)

See FFix.Filter for pipelines, expressions, and output handling.

aperms(audio_0, options \\ [])

@spec aperms(FFix.Graph.StreamRef.t(),
  enable: String.t() | atom() | number(),
  mode: String.t() | atom() | number(),
  seed: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Set permissions for the output audio frame.

Options

  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • mode (int): select permissions mode (from 0 to 4) (default none)
    • none (0) — do nothing
    • ro (1) — set all output frames read-only
    • rw (2) — set all output frames writable
    • toggle (3) — switch permissions
    • random (4) — set permissions randomly
  • seed (int64): set the seed for the random mode (from -1 to UINT32_MAX) (default -1)

See FFix.Filter for pipelines, expressions, and output handling.

aphasemeter(audio_0, options \\ [])

@spec aphasemeter(FFix.Graph.StreamRef.t(),
  a: String.t() | atom() | number(),
  angle: String.t() | atom() | number(),
  bc: String.t() | atom() | number(),
  d: String.t() | atom() | number(),
  duration: String.t() | atom() | number(),
  gc: String.t() | atom() | number(),
  mpc: String.t() | atom() | number(),
  phasing: String.t() | atom() | number(),
  r: String.t() | atom() | number(),
  rate: String.t() | atom() | number(),
  rc: String.t() | atom() | number(),
  s: String.t() | atom() | number(),
  size: String.t() | atom() | number(),
  t: String.t() | atom() | number(),
  tolerance: String.t() | atom() | number(),
  video: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) ::
  FFix.Graph.StreamRef.t()
  | [FFix.Graph.StreamRef.t()]
  | FFix.Graph.Terminal.t()

Convert input audio to phase meter video output.

Options

  • a (float): set angle threshold for out-of-phase detection (from 90 to 180) (default 170)
  • angle (float): set angle threshold for out-of-phase detection (from 90 to 180) (default 170)
  • bc (int): set blue contrast (from 0 to 255) (default 1)
  • d (duration): set minimum mono or out-of-phase duration in seconds (default 2)
  • duration (duration): set minimum mono or out-of-phase duration in seconds (default 2)
  • gc (int): set green contrast (from 0 to 255) (default 7)
  • mpc (string): set median phase color (default "none")
  • phasing (boolean): set mono and out-of-phase detection output (default false)
  • r (video_rate): set video rate (default "25")
  • rate (video_rate): set video rate (default "25")
  • rc (int): set red contrast (from 0 to 255) (default 2)
  • s (image_size): set video size (default "800x400")
  • size (image_size): set video size (default "800x400")
  • t (float): set phase tolerance for mono detection (from 0 to 1) (default 0)
  • tolerance (float): set phase tolerance for mono detection (from 0 to 1) (default 0)
  • video (boolean): set video output (default true)

See FFix.Filter for pipelines, expressions, and output handling.

aphaser(audio_0, options \\ [])

@spec aphaser(FFix.Graph.StreamRef.t(),
  decay: String.t() | atom() | number(),
  delay: String.t() | atom() | number(),
  in_gain: String.t() | atom() | number(),
  out_gain: String.t() | atom() | number(),
  speed: String.t() | atom() | number(),
  type: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Add a phasing effect to the audio.

Options

  • decay (double): set decay (from 0 to 0.99) (default 0.4)
  • delay (double): set delay in milliseconds (from 0 to 5) (default 3)
  • in_gain (double): set input gain (from 0 to 1) (default 0.4)
  • out_gain (double): set output gain (from 0 to 1e+09) (default 0.74)
  • speed (double): set modulation speed (from 0.1 to 2) (default 0.5)
  • type (int): set modulation type (from 0 to 1) (default triangular)
    • triangular (1)
    • t (1)
    • sinusoidal (0)
    • s (0)

See FFix.Filter for pipelines, expressions, and output handling.

aphaseshift(audio_0, options \\ [])

@spec aphaseshift(FFix.Graph.StreamRef.t(),
  enable: String.t() | atom() | number(),
  level: String.t() | atom() | number(),
  order: String.t() | atom() | number(),
  shift: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Apply phase shifting to input audio.

Options

  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • level (double): set output level (from 0 to 1) (default 1)
  • order (int): set filter order (from 1 to 16) (default 8)
  • shift (double): set phase shift (from -1 to 1) (default 0)

See FFix.Filter for pipelines, expressions, and output handling.

apsnr(audio_0, audio_1, options \\ [])

@spec apsnr(FFix.Graph.StreamRef.t(), FFix.Graph.StreamRef.t(),
  enable: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Measure Audio Peak Signal-to-Noise Ratio.

Options

  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero

See FFix.Filter for pipelines, expressions, and output handling.

apsyclip(audio_0, options \\ [])

@spec apsyclip(FFix.Graph.StreamRef.t(),
  adaptive: String.t() | atom() | number(),
  clip: String.t() | atom() | number(),
  diff: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  iterations: String.t() | atom() | number(),
  level: String.t() | atom() | number(),
  level_in: String.t() | atom() | number(),
  level_out: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Audio Psychoacoustic Clipper.

Options

  • adaptive (double): set adaptive distortion (from 0 to 1) (default 0.5)
  • clip (double): set clip level (from 0.015625 to 1) (default 1)
  • diff (boolean): enable difference (default false)
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • iterations (int): set iterations (from 1 to 20) (default 10)
  • level (boolean): set auto level (default false)
  • level_in (double): set input level (from 0.015625 to 64) (default 1)
  • level_out (double): set output level (from 0.015625 to 64) (default 1)

See FFix.Filter for pipelines, expressions, and output handling.

apulsator(audio_0, options \\ [])

@spec apulsator(FFix.Graph.StreamRef.t(),
  amount: String.t() | atom() | number(),
  bpm: String.t() | atom() | number(),
  hz: String.t() | atom() | number(),
  level_in: String.t() | atom() | number(),
  level_out: String.t() | atom() | number(),
  mode: String.t() | atom() | number(),
  ms: String.t() | atom() | number(),
  offset_l: String.t() | atom() | number(),
  offset_r: String.t() | atom() | number(),
  timing: String.t() | atom() | number(),
  width: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Audio pulsator.

Options

  • amount (double): set modulation (from 0 to 1) (default 1)
  • bpm (double): set BPM (from 30 to 300) (default 120)
  • hz (double): set frequency (from 0.01 to 100) (default 2)
  • level_in (double): set input gain (from 0.015625 to 64) (default 1)
  • level_out (double): set output gain (from 0.015625 to 64) (default 1)
  • mode (int): set mode (from 0 to 4) (default sine)
    • sine (0)
    • triangle (1)
    • square (2)
    • sawup (3)
    • sawdown (4)
  • ms (int): set ms (from 10 to 2000) (default 500)
  • offset_l (double): set offset L (from 0 to 1) (default 0)
  • offset_r (double): set offset R (from 0 to 1) (default 0.5)
  • timing (int): set timing (from 0 to 2) (default hz)
    • bpm (0)
    • ms (1)
    • hz (2)
  • width (double): set pulse width (from 0 to 2) (default 1)

See FFix.Filter for pipelines, expressions, and output handling.

arealtime(audio_0, options \\ [])

@spec arealtime(FFix.Graph.StreamRef.t(),
  limit: String.t() | atom() | number(),
  speed: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Slow down filtering to match realtime.

Options

  • limit (duration): sleep time limit (default 2)
  • speed (double): speed factor (from DBL_MIN to DBL_MAX) (default 1)

See FFix.Filter for pipelines, expressions, and output handling.

aresample(audio_0, options \\ [])

@spec aresample(FFix.Graph.StreamRef.t(),
  sample_rate: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Resample audio data.

Options

  • sample_rate (int): (from 0 to INT_MAX) (default 0)

See FFix.Filter for pipelines, expressions, and output handling.

areverse(audio_0, options \\ [])

Reverse an audio clip.

Options

See FFix.Filter for pipelines, expressions, and output handling.

arls(audio_0, audio_1, options \\ [])

@spec arls(FFix.Graph.StreamRef.t(), FFix.Graph.StreamRef.t(),
  delta: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  lambda: String.t() | atom() | number(),
  order: String.t() | atom() | number(),
  out_mode: String.t() | atom() | number(),
  precision: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Apply Recursive Least Squares algorithm to first audio stream.

Options

  • delta (float): set the filter delta (from 0 to 32767) (default 2)
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • lambda (float): set the filter lambda (from 0 to 1) (default 1)
  • order (int): set the filter order (from 1 to 32767) (default 16)
  • out_mode (int): set output mode (from 0 to 4) (default o)
    • i (0) — input
    • d (1) — desired
    • o (2) — output
    • n (3) — noise
    • e (4) — error
  • precision (int): set processing precision (from 0 to 2) (default auto)
    • auto (0) — set auto processing precision
    • float (1) — set single-floating point processing precision
    • double (2) — set double-floating point processing precision

See FFix.Filter for pipelines, expressions, and output handling.

arnndn(audio_0, options \\ [])

@spec arnndn(FFix.Graph.StreamRef.t(),
  enable: String.t() | atom() | number(),
  m: String.t() | atom() | number(),
  mix: String.t() | atom() | number(),
  model: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Reduce noise from speech using Recurrent Neural Networks.

Options

  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • m (string): set model name
  • mix (float): set output vs input mix (from -1 to 1) (default 1)
  • model (string): set model name

See FFix.Filter for pipelines, expressions, and output handling.

asdr(audio_0, audio_1, options \\ [])

@spec asdr(FFix.Graph.StreamRef.t(), FFix.Graph.StreamRef.t(),
  enable: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Measure Audio Signal-to-Distortion Ratio.

Options

  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero

See FFix.Filter for pipelines, expressions, and output handling.

asegment(audio_0, options \\ [])

@spec asegment(FFix.Graph.StreamRef.t(),
  samples: String.t() | atom() | number(),
  timestamps: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) ::
  FFix.Graph.StreamRef.t()
  | [FFix.Graph.StreamRef.t()]
  | FFix.Graph.Terminal.t()

Segment audio stream.

Options

  • samples (string): samples at which to split input
  • timestamps (string): timestamps of input at which to split input

See FFix.Filter for pipelines, expressions, and output handling.

aselect(audio_0, options \\ [])

@spec aselect(FFix.Graph.StreamRef.t(),
  e: String.t() | atom() | number(),
  expr: String.t() | atom() | number(),
  n: String.t() | atom() | number(),
  outputs: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) ::
  FFix.Graph.StreamRef.t()
  | [FFix.Graph.StreamRef.t()]
  | FFix.Graph.Terminal.t()

Select audio frames to pass in output.

Options

  • e (string): set an expression to use for selecting frames (default "1")
  • expr (string): set an expression to use for selecting frames (default "1")
  • n (int): set the number of outputs (from 1 to INT_MAX) (default 1)
  • outputs (int): set the number of outputs (from 1 to INT_MAX) (default 1)

See FFix.Filter for pipelines, expressions, and output handling.

asendcmd(audio_0, options \\ [])

@spec asendcmd(FFix.Graph.StreamRef.t(),
  c: String.t() | atom() | number(),
  commands: String.t() | atom() | number(),
  f: String.t() | atom() | number(),
  filename: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Send commands to filters.

Options

  • c (string): set commands
  • commands (string): set commands
  • f (string): set commands file
  • filename (string): set commands file

See FFix.Filter for pipelines, expressions, and output handling.

asetnsamples(audio_0, options \\ [])

@spec asetnsamples(FFix.Graph.StreamRef.t(),
  enable: String.t() | atom() | number(),
  n: String.t() | atom() | number(),
  nb_out_samples: String.t() | atom() | number(),
  p: String.t() | atom() | number(),
  pad: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Set the number of samples for each output audio frames.

Options

  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • n (int): set the number of per-frame output samples (from 1 to INT_MAX) (default 1024)
  • nb_out_samples (int): set the number of per-frame output samples (from 1 to INT_MAX) (default 1024)
  • p (boolean): pad last frame with zeros (default true)
  • pad (boolean): pad last frame with zeros (default true)

See FFix.Filter for pipelines, expressions, and output handling.

asetpts(audio_0, options \\ [])

@spec asetpts(FFix.Graph.StreamRef.t(),
  expr: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Set PTS for the output audio frame.

Options

  • expr (string): Expression determining the frame timestamp (default "PTS")

See FFix.Filter for pipelines, expressions, and output handling.

asetrate(audio_0, options \\ [])

@spec asetrate(FFix.Graph.StreamRef.t(),
  r: String.t() | atom() | number(),
  sample_rate: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Change the sample rate without altering the data.

Options

  • r (int): set the sample rate (from 1 to INT_MAX) (default 44100)
  • sample_rate (int): set the sample rate (from 1 to INT_MAX) (default 44100)

See FFix.Filter for pipelines, expressions, and output handling.

asettb(audio_0, options \\ [])

@spec asettb(FFix.Graph.StreamRef.t(),
  expr: String.t() | atom() | number(),
  tb: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Set timebase for the audio output link.

Options

  • expr (string): set expression determining the output timebase (default "intb")
  • tb (string): set expression determining the output timebase (default "intb")

See FFix.Filter for pipelines, expressions, and output handling.

ashowinfo(audio_0, options \\ [])

Show textual information for each audio frame.

Options

See FFix.Filter for pipelines, expressions, and output handling.

asidedata(audio_0, options \\ [])

@spec asidedata(FFix.Graph.StreamRef.t(),
  enable: String.t() | atom() | number(),
  mode: String.t() | atom() | number(),
  type: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Manipulate audio frame side data.

Options

  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • mode (int): set a mode of operation (from 0 to 1) (default select)
    • select (0) — select frame
    • delete (1) — delete side data
  • type (int): set side data type (from -1 to INT_MAX) (default -1)
    • PANSCAN (0)
    • A53_CC (1)
    • STEREO3D (2)
    • MATRIXENCODING (3)
    • DOWNMIX_INFO (4)
    • REPLAYGAIN (5)
    • DISPLAYMATRIX (6)
    • AFD (7)
    • MOTION_VECTORS (8)
    • SKIP_SAMPLES (9)
    • AUDIO_SERVICE_TYPE (10)
    • MASTERING_DISPLAY_METADATA (11)
    • GOP_TIMECODE (12)
    • SPHERICAL (13)
    • CONTENT_LIGHT_LEVEL (14)
    • ICC_PROFILE (15)
    • S12M_TIMECOD (16)
    • DYNAMIC_HDR_PLUS (17)
    • REGIONS_OF_INTEREST (18)
    • VIDEO_ENC_PARAMS (19)
    • SEI_UNREGISTERED (20)
    • FILM_GRAIN_PARAMS (21)
    • DETECTION_BOUNDING_BOXES (22)
    • DETECTION_BBOXES (22)
    • DOVI_RPU_BUFFER (23)
    • DOVI_METADATA (24)
    • DYNAMIC_HDR_VIVID (25)
    • AMBIENT_VIEWING_ENVIRONMENT (26)
    • VIDEO_HINT (27)

See FFix.Filter for pipelines, expressions, and output handling.

asisdr(audio_0, audio_1, options \\ [])

@spec asisdr(FFix.Graph.StreamRef.t(), FFix.Graph.StreamRef.t(),
  enable: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Measure Audio Scale-Invariant Signal-to-Distortion Ratio.

Options

  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero

See FFix.Filter for pipelines, expressions, and output handling.

asoftclip(audio_0, options \\ [])

@spec asoftclip(FFix.Graph.StreamRef.t(),
  enable: String.t() | atom() | number(),
  output: String.t() | atom() | number(),
  oversample: String.t() | atom() | number(),
  param: String.t() | atom() | number(),
  threshold: String.t() | atom() | number(),
  type: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Audio Soft Clipper.

Options

  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • output (double): set softclip output gain (from 1e-06 to 16) (default 1)
  • oversample (int): set oversample factor (from 1 to 64) (default 1)
  • param (double): set softclip parameter (from 0.01 to 3) (default 1)
  • threshold (double): set softclip threshold (from 1e-06 to 1) (default 1)
  • type (int): set softclip type (from -1 to 7) (default tanh)
    • hard (-1)
    • tanh (0)
    • atan (1)
    • cubic (2)
    • exp (3)
    • alg (4)
    • quintic (5)
    • sin (6)
    • erf (7)

See FFix.Filter for pipelines, expressions, and output handling.

aspectralstats(audio_0, options \\ [])

@spec aspectralstats(FFix.Graph.StreamRef.t(),
  measure: (String.t() | atom() | number()) | [String.t() | atom() | number()],
  overlap: String.t() | atom() | number(),
  win_func: String.t() | atom() | number(),
  win_size: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Show frequency domain statistics about audio frames.

Options

  • measure (flags): select the parameters which are measured (default all+mean+variance+centroid+spread+skewness+kurtosis+entropy+flatness+crest+flux+slope+decrease+rolloff)
    • none
    • all
    • mean
    • variance
    • centroid
    • spread
    • skewness
    • kurtosis
    • entropy
    • flatness
    • crest
    • flux
    • slope
    • decrease
    • rolloff
  • overlap (float): set window overlap (from 0 to 1) (default 0.5)
  • win_func (int): set window function (from 0 to 20) (default hann)
    • rect (0) — Rectangular
    • bartlett (4) — Bartlett
    • hann (1) — Hann
    • hanning (1) — Hanning
    • hamming (2) — Hamming
    • blackman (3) — Blackman
    • welch (5) — Welch
    • flattop (6) — Flat-top
    • bharris (7) — Blackman-Harris
    • bnuttall (8) — Blackman-Nuttall
    • bhann (11) — Bartlett-Hann
    • sine (9) — Sine
    • nuttall (10) — Nuttall
    • lanczos (12) — Lanczos
    • gauss (13) — Gauss
    • tukey (14) — Tukey
    • dolph (15) — Dolph-Chebyshev
    • cauchy (16) — Cauchy
    • parzen (17) — Parzen
    • poisson (18) — Poisson
    • bohman (19) — Bohman
    • kaiser (20) — Kaiser
  • win_size (int): set the window size (from 32 to 65536) (default 2048)

See FFix.Filter for pipelines, expressions, and output handling.

asplit(audio_0, options \\ [])

Pass on the audio input to N audio outputs.

Options

  • outputs (int): set number of outputs (from 1 to INT_MAX) (default 2)

See FFix.Filter for pipelines, expressions, and output handling.

astats(audio_0, options \\ [])

@spec astats(FFix.Graph.StreamRef.t(),
  length: String.t() | atom() | number(),
  measure_overall:
    (String.t() | atom() | number()) | [String.t() | atom() | number()],
  measure_perchannel:
    (String.t() | atom() | number()) | [String.t() | atom() | number()],
  metadata: String.t() | atom() | number(),
  reset: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Show time domain statistics about audio frames.

Options

  • length (double): set the window length (from 0 to 10) (default 0.05)
  • measure_overall (flags): Select the parameters which are measured overall (default all+Bit_depth+Crest_factor+DC_offset+Dynamic_range+Entropy+Flat_factor+Max_difference+Max_level+Mean_difference+Min_difference+Min_level+Noise_floor+Noise_floor_count+Number_of_Infs+Number_of_NaNs+Number_of_denormals+Number_of_samples+Peak_count+Peak_level+RMS_difference+RMS_level+RMS_peak+RMS_trough+Zero_crossings+Zero_crossings_rate+Abs_Peak_count)
    • none
    • all
    • Bit_depth
    • Crest_factor
    • DC_offset
    • Dynamic_range
    • Entropy
    • Flat_factor
    • Max_difference
    • Max_level
    • Mean_difference
    • Min_difference
    • Min_level
    • Noise_floor
    • Noise_floor_count
    • Number_of_Infs
    • Number_of_NaNs
    • Number_of_denormals
    • Number_of_samples
    • Peak_count
    • Peak_level
    • RMS_difference
    • RMS_level
    • RMS_peak
    • RMS_trough
    • Zero_crossings
    • Zero_crossings_rate
    • Abs_Peak_count
  • measure_perchannel (flags): Select the parameters which are measured per channel (default all+Bit_depth+Crest_factor+DC_offset+Dynamic_range+Entropy+Flat_factor+Max_difference+Max_level+Mean_difference+Min_difference+Min_level+Noise_floor+Noise_floor_count+Number_of_Infs+Number_of_NaNs+Number_of_denormals+Number_of_samples+Peak_count+Peak_level+RMS_difference+RMS_level+RMS_peak+RMS_trough+Zero_crossings+Zero_crossings_rate+Abs_Peak_count)
    • none
    • all
    • Bit_depth
    • Crest_factor
    • DC_offset
    • Dynamic_range
    • Entropy
    • Flat_factor
    • Max_difference
    • Max_level
    • Mean_difference
    • Min_difference
    • Min_level
    • Noise_floor
    • Noise_floor_count
    • Number_of_Infs
    • Number_of_NaNs
    • Number_of_denormals
    • Number_of_samples
    • Peak_count
    • Peak_level
    • RMS_difference
    • RMS_level
    • RMS_peak
    • RMS_trough
    • Zero_crossings
    • Zero_crossings_rate
    • Abs_Peak_count
  • metadata (boolean): inject metadata in the filtergraph (default false)
  • reset (int): Set the number of frames over which cumulative stats are calculated before being reset (from 0 to INT_MAX) (default 0)

See FFix.Filter for pipelines, expressions, and output handling.

asubboost(audio_0, options \\ [])

@spec asubboost(FFix.Graph.StreamRef.t(),
  boost: String.t() | atom() | number(),
  channels: String.t() | atom() | number(),
  cutoff: String.t() | atom() | number(),
  decay: String.t() | atom() | number(),
  delay: String.t() | atom() | number(),
  dry: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  feedback: String.t() | atom() | number(),
  slope: String.t() | atom() | number(),
  wet: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Boost subwoofer frequencies.

Options

  • boost (double): set max boost (from 1 to 12) (default 2)
  • channels (string): set channels to filter (default "all")
  • cutoff (double): set cutoff (from 50 to 900) (default 100)
  • decay (double): set decay (from 0 to 1) (default 0)
  • delay (double): set delay (from 1 to 100) (default 20)
  • dry (double): set dry gain (from 0 to 1) (default 1)
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • feedback (double): set feedback (from 0 to 1) (default 0.9)
  • slope (double): set slope (from 0.0001 to 1) (default 0.5)
  • wet (double): set wet gain (from 0 to 1) (default 1)

See FFix.Filter for pipelines, expressions, and output handling.

asubcut(audio_0, options \\ [])

@spec asubcut(FFix.Graph.StreamRef.t(),
  cutoff: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  level: String.t() | atom() | number(),
  order: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Cut subwoofer frequencies.

Options

  • cutoff (double): set cutoff frequency (from 2 to 200) (default 20)
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • level (double): set input level (from 0 to 1) (default 1)
  • order (int): set filter order (from 3 to 20) (default 10)

See FFix.Filter for pipelines, expressions, and output handling.

asupercut(audio_0, options \\ [])

@spec asupercut(FFix.Graph.StreamRef.t(),
  cutoff: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  level: String.t() | atom() | number(),
  order: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Cut super frequencies.

Options

  • cutoff (double): set cutoff frequency (from 20000 to 192000) (default 20000)
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • level (double): set input level (from 0 to 1) (default 1)
  • order (int): set filter order (from 3 to 20) (default 10)

See FFix.Filter for pipelines, expressions, and output handling.

asuperpass(audio_0, options \\ [])

@spec asuperpass(FFix.Graph.StreamRef.t(),
  centerf: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  level: String.t() | atom() | number(),
  order: String.t() | atom() | number(),
  qfactor: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Apply high order Butterworth band-pass filter.

Options

  • centerf (double): set center frequency (from 2 to 999999) (default 1000)
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • level (double): set input level (from 0 to 2) (default 1)
  • order (int): set filter order (from 4 to 20) (default 4)
  • qfactor (double): set Q-factor (from 0.01 to 100) (default 1)

See FFix.Filter for pipelines, expressions, and output handling.

asuperstop(audio_0, options \\ [])

@spec asuperstop(FFix.Graph.StreamRef.t(),
  centerf: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  level: String.t() | atom() | number(),
  order: String.t() | atom() | number(),
  qfactor: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Apply high order Butterworth band-stop filter.

Options

  • centerf (double): set center frequency (from 2 to 999999) (default 1000)
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • level (double): set input level (from 0 to 2) (default 1)
  • order (int): set filter order (from 4 to 20) (default 4)
  • qfactor (double): set Q-factor (from 0.01 to 100) (default 1)

See FFix.Filter for pipelines, expressions, and output handling.

atempo(audio_0, options \\ [])

@spec atempo(FFix.Graph.StreamRef.t(),
  tempo: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Adjust audio tempo.

Options

  • tempo (double): set tempo scale factor (from 0.5 to 100) (default 1)

See FFix.Filter for pipelines, expressions, and output handling.

atilt(audio_0, options \\ [])

@spec atilt(FFix.Graph.StreamRef.t(),
  enable: String.t() | atom() | number(),
  freq: String.t() | atom() | number(),
  level: String.t() | atom() | number(),
  order: String.t() | atom() | number(),
  slope: String.t() | atom() | number(),
  width: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Apply spectral tilt to audio.

Options

  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • freq (double): set central frequency (from 20 to 192000) (default 10000)
  • level (double): set input level (from 0 to 4) (default 1)
  • order (int): set filter order (from 2 to 30) (default 5)
  • slope (double): set filter slope (from -1 to 1) (default 0)
  • width (double): set filter width (from 100 to 10000) (default 1000)

See FFix.Filter for pipelines, expressions, and output handling.

atrim(audio_0, options \\ [])

@spec atrim(FFix.Graph.StreamRef.t(),
  duration: String.t() | atom() | number(),
  durationi: String.t() | atom() | number(),
  end: String.t() | atom() | number(),
  end_pts: String.t() | atom() | number(),
  end_sample: String.t() | atom() | number(),
  endi: String.t() | atom() | number(),
  start: String.t() | atom() | number(),
  start_pts: String.t() | atom() | number(),
  start_sample: String.t() | atom() | number(),
  starti: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Pick one continuous section from the input, drop the rest.

Options

  • duration (duration): Maximum duration of the output (default 0)
  • durationi (duration): Maximum duration of the output (default 0)
  • end (duration): Timestamp of the first frame that should be dropped again (default INT64_MAX)
  • end_pts (int64): Timestamp of the first frame that should be dropped again (from I64_MIN to I64_MAX) (default I64_MIN)
  • end_sample (int64): Number of the first audio sample that should be dropped again (from 0 to I64_MAX) (default I64_MAX)
  • endi (duration): Timestamp of the first frame that should be dropped again (default INT64_MAX)
  • start (duration): Timestamp of the first frame that should be passed (default INT64_MAX)
  • start_pts (int64): Timestamp of the first frame that should be passed (from I64_MIN to I64_MAX) (default I64_MIN)
  • start_sample (int64): Number of the first audio sample that should be passed to the output (from -1 to I64_MAX) (default -1)
  • starti (duration): Timestamp of the first frame that should be passed (default INT64_MAX)

See FFix.Filter for pipelines, expressions, and output handling.

axcorrelate(audio_0, audio_1, options \\ [])

@spec axcorrelate(FFix.Graph.StreamRef.t(), FFix.Graph.StreamRef.t(),
  algo: String.t() | atom() | number(),
  size: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Cross-correlate two audio streams.

Options

  • algo (int): set the algorithm (from 0 to 2) (default best)
    • slow (0) — slow algorithm
    • fast (1) — fast algorithm
    • best (2) — best algorithm
  • size (int): set the segment size (from 2 to 131072) (default 256)

See FFix.Filter for pipelines, expressions, and output handling.

azmq(audio_0, options \\ [])

@spec azmq(FFix.Graph.StreamRef.t(),
  b: String.t() | atom() | number(),
  bind_address: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Receive commands through ZMQ and broker them to filters.

Options

  • b (string): set bind address (default "tcp://*:5555")
  • bind_address (string): set bind address (default "tcp://*:5555")

See FFix.Filter for pipelines, expressions, and output handling.

bandpass(audio_0, options \\ [])

@spec bandpass(FFix.Graph.StreamRef.t(),
  a: String.t() | atom() | number(),
  b: String.t() | atom() | number(),
  blocksize: String.t() | atom() | number(),
  c: String.t() | atom() | number(),
  channels: String.t() | atom() | number(),
  csg: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  f: String.t() | atom() | number(),
  frequency: String.t() | atom() | number(),
  m: String.t() | atom() | number(),
  mix: String.t() | atom() | number(),
  n: String.t() | atom() | number(),
  normalize: String.t() | atom() | number(),
  precision: String.t() | atom() | number(),
  r: String.t() | atom() | number(),
  t: String.t() | atom() | number(),
  transform: String.t() | atom() | number(),
  w: String.t() | atom() | number(),
  width: String.t() | atom() | number(),
  width_type: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Apply a two-pole Butterworth band-pass filter.

Options

  • a (int): set transform type (from 0 to 6) (default di)
    • di (0) — direct form I
    • dii (1) — direct form II
    • tdi (2) — transposed direct form I
    • tdii (3) — transposed direct form II
    • latt (4) — lattice-ladder form
    • svf (5) — state variable filter form
    • zdf (6) — zero-delay filter form
  • b (int): set the block size (from 0 to 32768) (default 0)
  • blocksize (int): set the block size (from 0 to 32768) (default 0)
  • c (string): set channels to filter (default "all")
  • channels (string): set channels to filter (default "all")
  • csg (boolean): use constant skirt gain (default false)
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • f (double): set central frequency (from 0 to 999999) (default 3000)
  • frequency (double): set central frequency (from 0 to 999999) (default 3000)
  • m (double): set mix (from 0 to 1) (default 1)
  • mix (double): set mix (from 0 to 1) (default 1)
  • n (boolean): normalize coefficients (default false)
  • normalize (boolean): normalize coefficients (default false)
  • precision (int): set filtering precision (from -1 to 3) (default auto)
    • auto (-1) — automatic
    • s16 (0) — signed 16-bit
    • s32 (1) — signed 32-bit
    • f32 (2) — floating-point single
    • f64 (3) — floating-point double
  • r (int): set filtering precision (from -1 to 3) (default auto)
    • auto (-1) — automatic
    • s16 (0) — signed 16-bit
    • s32 (1) — signed 32-bit
    • f32 (2) — floating-point single
    • f64 (3) — floating-point double
  • t (int): set filter-width type (from 1 to 5) (default q)
    • h (1) — Hz
    • q (3) — Q-Factor
    • o (2) — octave
    • s (4) — slope
    • k (5) — kHz
  • transform (int): set transform type (from 0 to 6) (default di)
    • di (0) — direct form I
    • dii (1) — direct form II
    • tdi (2) — transposed direct form I
    • tdii (3) — transposed direct form II
    • latt (4) — lattice-ladder form
    • svf (5) — state variable filter form
    • zdf (6) — zero-delay filter form
  • w (double): set width (from 0 to 99999) (default 0.5)
  • width (double): set width (from 0 to 99999) (default 0.5)
  • width_type (int): set filter-width type (from 1 to 5) (default q)
    • h (1) — Hz
    • q (3) — Q-Factor
    • o (2) — octave
    • s (4) — slope
    • k (5) — kHz

See FFix.Filter for pipelines, expressions, and output handling.

bandreject(audio_0, options \\ [])

@spec bandreject(FFix.Graph.StreamRef.t(),
  a: String.t() | atom() | number(),
  b: String.t() | atom() | number(),
  blocksize: String.t() | atom() | number(),
  c: String.t() | atom() | number(),
  channels: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  f: String.t() | atom() | number(),
  frequency: String.t() | atom() | number(),
  m: String.t() | atom() | number(),
  mix: String.t() | atom() | number(),
  n: String.t() | atom() | number(),
  normalize: String.t() | atom() | number(),
  precision: String.t() | atom() | number(),
  r: String.t() | atom() | number(),
  t: String.t() | atom() | number(),
  transform: String.t() | atom() | number(),
  w: String.t() | atom() | number(),
  width: String.t() | atom() | number(),
  width_type: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Apply a two-pole Butterworth band-reject filter.

Options

  • a (int): set transform type (from 0 to 6) (default di)
    • di (0) — direct form I
    • dii (1) — direct form II
    • tdi (2) — transposed direct form I
    • tdii (3) — transposed direct form II
    • latt (4) — lattice-ladder form
    • svf (5) — state variable filter form
    • zdf (6) — zero-delay filter form
  • b (int): set the block size (from 0 to 32768) (default 0)
  • blocksize (int): set the block size (from 0 to 32768) (default 0)
  • c (string): set channels to filter (default "all")
  • channels (string): set channels to filter (default "all")
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • f (double): set central frequency (from 0 to 999999) (default 3000)
  • frequency (double): set central frequency (from 0 to 999999) (default 3000)
  • m (double): set mix (from 0 to 1) (default 1)
  • mix (double): set mix (from 0 to 1) (default 1)
  • n (boolean): normalize coefficients (default false)
  • normalize (boolean): normalize coefficients (default false)
  • precision (int): set filtering precision (from -1 to 3) (default auto)
    • auto (-1) — automatic
    • s16 (0) — signed 16-bit
    • s32 (1) — signed 32-bit
    • f32 (2) — floating-point single
    • f64 (3) — floating-point double
  • r (int): set filtering precision (from -1 to 3) (default auto)
    • auto (-1) — automatic
    • s16 (0) — signed 16-bit
    • s32 (1) — signed 32-bit
    • f32 (2) — floating-point single
    • f64 (3) — floating-point double
  • t (int): set filter-width type (from 1 to 5) (default q)
    • h (1) — Hz
    • q (3) — Q-Factor
    • o (2) — octave
    • s (4) — slope
    • k (5) — kHz
  • transform (int): set transform type (from 0 to 6) (default di)
    • di (0) — direct form I
    • dii (1) — direct form II
    • tdi (2) — transposed direct form I
    • tdii (3) — transposed direct form II
    • latt (4) — lattice-ladder form
    • svf (5) — state variable filter form
    • zdf (6) — zero-delay filter form
  • w (double): set width (from 0 to 99999) (default 0.5)
  • width (double): set width (from 0 to 99999) (default 0.5)
  • width_type (int): set filter-width type (from 1 to 5) (default q)
    • h (1) — Hz
    • q (3) — Q-Factor
    • o (2) — octave
    • s (4) — slope
    • k (5) — kHz

See FFix.Filter for pipelines, expressions, and output handling.

bass(audio_0, options \\ [])

@spec bass(FFix.Graph.StreamRef.t(),
  a: String.t() | atom() | number(),
  b: String.t() | atom() | number(),
  blocksize: String.t() | atom() | number(),
  c: String.t() | atom() | number(),
  channels: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  f: String.t() | atom() | number(),
  frequency: String.t() | atom() | number(),
  g: String.t() | atom() | number(),
  gain: String.t() | atom() | number(),
  m: String.t() | atom() | number(),
  mix: String.t() | atom() | number(),
  n: String.t() | atom() | number(),
  normalize: String.t() | atom() | number(),
  p: String.t() | atom() | number(),
  poles: String.t() | atom() | number(),
  precision: String.t() | atom() | number(),
  r: String.t() | atom() | number(),
  t: String.t() | atom() | number(),
  transform: String.t() | atom() | number(),
  w: String.t() | atom() | number(),
  width: String.t() | atom() | number(),
  width_type: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Boost or cut lower frequencies.

Options

  • a (int): set transform type (from 0 to 6) (default di)
    • di (0) — direct form I
    • dii (1) — direct form II
    • tdi (2) — transposed direct form I
    • tdii (3) — transposed direct form II
    • latt (4) — lattice-ladder form
    • svf (5) — state variable filter form
    • zdf (6) — zero-delay filter form
  • b (int): set the block size (from 0 to 32768) (default 0)
  • blocksize (int): set the block size (from 0 to 32768) (default 0)
  • c (string): set channels to filter (default "all")
  • channels (string): set channels to filter (default "all")
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • f (double): set central frequency (from 0 to 999999) (default 100)
  • frequency (double): set central frequency (from 0 to 999999) (default 100)
  • g (double): set gain (from -900 to 900) (default 0)
  • gain (double): set gain (from -900 to 900) (default 0)
  • m (double): set mix (from 0 to 1) (default 1)
  • mix (double): set mix (from 0 to 1) (default 1)
  • n (boolean): normalize coefficients (default false)
  • normalize (boolean): normalize coefficients (default false)
  • p (int): set number of poles (from 1 to 2) (default 2)
  • poles (int): set number of poles (from 1 to 2) (default 2)
  • precision (int): set filtering precision (from -1 to 3) (default auto)
    • auto (-1) — automatic
    • s16 (0) — signed 16-bit
    • s32 (1) — signed 32-bit
    • f32 (2) — floating-point single
    • f64 (3) — floating-point double
  • r (int): set filtering precision (from -1 to 3) (default auto)
    • auto (-1) — automatic
    • s16 (0) — signed 16-bit
    • s32 (1) — signed 32-bit
    • f32 (2) — floating-point single
    • f64 (3) — floating-point double
  • t (int): set filter-width type (from 1 to 5) (default q)
    • h (1) — Hz
    • q (3) — Q-Factor
    • o (2) — octave
    • s (4) — slope
    • k (5) — kHz
  • transform (int): set transform type (from 0 to 6) (default di)
    • di (0) — direct form I
    • dii (1) — direct form II
    • tdi (2) — transposed direct form I
    • tdii (3) — transposed direct form II
    • latt (4) — lattice-ladder form
    • svf (5) — state variable filter form
    • zdf (6) — zero-delay filter form
  • w (double): set width (from 0 to 99999) (default 0.5)
  • width (double): set width (from 0 to 99999) (default 0.5)
  • width_type (int): set filter-width type (from 1 to 5) (default q)
    • h (1) — Hz
    • q (3) — Q-Factor
    • o (2) — octave
    • s (4) — slope
    • k (5) — kHz

See FFix.Filter for pipelines, expressions, and output handling.

biquad(audio_0, options \\ [])

@spec biquad(FFix.Graph.StreamRef.t(),
  a: String.t() | atom() | number(),
  a0: String.t() | atom() | number(),
  a1: String.t() | atom() | number(),
  a2: String.t() | atom() | number(),
  b: String.t() | atom() | number(),
  b0: String.t() | atom() | number(),
  b1: String.t() | atom() | number(),
  b2: String.t() | atom() | number(),
  blocksize: String.t() | atom() | number(),
  c: String.t() | atom() | number(),
  channels: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  m: String.t() | atom() | number(),
  mix: String.t() | atom() | number(),
  n: String.t() | atom() | number(),
  normalize: String.t() | atom() | number(),
  precision: String.t() | atom() | number(),
  r: String.t() | atom() | number(),
  transform: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Apply a biquad IIR filter with the given coefficients.

Options

  • a (int): set transform type (from 0 to 6) (default di)
    • di (0) — direct form I
    • dii (1) — direct form II
    • tdi (2) — transposed direct form I
    • tdii (3) — transposed direct form II
    • latt (4) — lattice-ladder form
    • svf (5) — state variable filter form
    • zdf (6) — zero-delay filter form
  • a0 (double): (from INT_MIN to INT_MAX) (default 1)
  • a1 (double): (from INT_MIN to INT_MAX) (default 0)
  • a2 (double): (from INT_MIN to INT_MAX) (default 0)
  • b (int): set the block size (from 0 to 32768) (default 0)
  • b0 (double): (from INT_MIN to INT_MAX) (default 0)
  • b1 (double): (from INT_MIN to INT_MAX) (default 0)
  • b2 (double): (from INT_MIN to INT_MAX) (default 0)
  • blocksize (int): set the block size (from 0 to 32768) (default 0)
  • c (string): set channels to filter (default "all")
  • channels (string): set channels to filter (default "all")
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • m (double): set mix (from 0 to 1) (default 1)
  • mix (double): set mix (from 0 to 1) (default 1)
  • n (boolean): normalize coefficients (default false)
  • normalize (boolean): normalize coefficients (default false)
  • precision (int): set filtering precision (from -1 to 3) (default auto)
    • auto (-1) — automatic
    • s16 (0) — signed 16-bit
    • s32 (1) — signed 32-bit
    • f32 (2) — floating-point single
    • f64 (3) — floating-point double
  • r (int): set filtering precision (from -1 to 3) (default auto)
    • auto (-1) — automatic
    • s16 (0) — signed 16-bit
    • s32 (1) — signed 32-bit
    • f32 (2) — floating-point single
    • f64 (3) — floating-point double
  • transform (int): set transform type (from 0 to 6) (default di)
    • di (0) — direct form I
    • dii (1) — direct form II
    • tdi (2) — transposed direct form I
    • tdii (3) — transposed direct form II
    • latt (4) — lattice-ladder form
    • svf (5) — state variable filter form
    • zdf (6) — zero-delay filter form

See FFix.Filter for pipelines, expressions, and output handling.

bs2b(audio_0, options \\ [])

@spec bs2b(FFix.Graph.StreamRef.t(),
  fcut: String.t() | atom() | number(),
  feed: String.t() | atom() | number(),
  profile: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Bauer stereo-to-binaural filter.

Options

  • fcut (int): Set cut frequency (in Hz) (from 0 to 2000) (default 0)
  • feed (int): Set feed level (in Hz) (from 0 to 150) (default 0)
  • profile (int): Apply a pre-defined crossfeed level (from 0 to INT_MAX) (default default)
    • default (2949820) — default profile
    • cmoy (3932860) — Chu Moy circuit
    • jmeier (6226570) — Jan Meier circuit

See FFix.Filter for pipelines, expressions, and output handling.

channelmap(audio_0, options \\ [])

@spec channelmap(FFix.Graph.StreamRef.t(),
  channel_layout: String.t() | atom() | number(),
  map: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Remap audio channels.

Options

  • channel_layout (channel_layout): Output channel layout.
  • map (string): A comma-separated list of input channel numbers in output order.

See FFix.Filter for pipelines, expressions, and output handling.

channelsplit(audio_0, options \\ [])

@spec channelsplit(FFix.Graph.StreamRef.t(),
  channel_layout: String.t() | atom() | number(),
  channels: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) ::
  FFix.Graph.StreamRef.t()
  | [FFix.Graph.StreamRef.t()]
  | FFix.Graph.Terminal.t()

Split audio into per-channel streams.

Options

  • channel_layout (channel_layout): Input channel layout. (default "stereo")
  • channels (string): Channels to extract. (default "all")

See FFix.Filter for pipelines, expressions, and output handling.

chorus(audio_0, options \\ [])

@spec chorus(FFix.Graph.StreamRef.t(),
  decays: String.t() | atom() | number(),
  delays: String.t() | atom() | number(),
  depths: String.t() | atom() | number(),
  in_gain: String.t() | atom() | number(),
  out_gain: String.t() | atom() | number(),
  speeds: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Add a chorus effect to the audio.

Options

  • decays (string): set decays
  • delays (string): set delays
  • depths (string): set depths
  • in_gain (float): set input gain (from 0 to 1) (default 0.4)
  • out_gain (float): set output gain (from 0 to 1) (default 0.4)
  • speeds (string): set speeds

See FFix.Filter for pipelines, expressions, and output handling.

compand(audio_0, options \\ [])

@spec compand(FFix.Graph.StreamRef.t(),
  attacks: String.t() | atom() | number(),
  decays: String.t() | atom() | number(),
  delay: String.t() | atom() | number(),
  gain: String.t() | atom() | number(),
  points: String.t() | atom() | number(),
  "soft-knee": String.t() | atom() | number(),
  volume: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Compress or expand audio dynamic range.

Options

  • attacks (string): set time over which increase of volume is determined (default "0")
  • decays (string): set time over which decrease of volume is determined (default "0.8")
  • delay (double): set delay for samples before sending them to volume adjuster (from 0 to 20) (default 0)
  • gain (double): set output gain (from -900 to 900) (default 0)
  • points (string): set points of transfer function (default "-70/-70|-60/-20|1/0")
  • soft-knee (double): set soft-knee (from 0.01 to 900) (default 0.01)
  • volume (double): set initial volume (from -900 to 0) (default 0)

See FFix.Filter for pipelines, expressions, and output handling.

compensationdelay(audio_0, options \\ [])

@spec compensationdelay(FFix.Graph.StreamRef.t(),
  cm: String.t() | atom() | number(),
  dry: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  m: String.t() | atom() | number(),
  mm: String.t() | atom() | number(),
  temp: String.t() | atom() | number(),
  wet: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Audio Compensation Delay Line.

Options

  • cm (int): set cm distance (from 0 to 100) (default 0)
  • dry (double): set dry amount (from 0 to 1) (default 0)
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • m (int): set meter distance (from 0 to 100) (default 0)
  • mm (int): set mm distance (from 0 to 10) (default 0)
  • temp (int): set temperature °C (from -50 to 50) (default 20)
  • wet (double): set wet amount (from 0 to 1) (default 1)

See FFix.Filter for pipelines, expressions, and output handling.

crossfeed(audio_0, options \\ [])

@spec crossfeed(FFix.Graph.StreamRef.t(),
  block_size: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  level_in: String.t() | atom() | number(),
  level_out: String.t() | atom() | number(),
  range: String.t() | atom() | number(),
  slope: String.t() | atom() | number(),
  strength: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Apply headphone crossfeed filter.

Options

  • block_size (int): set the block size (from 0 to 32768) (default 0)
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • level_in (double): set level in (from 0 to 1) (default 0.9)
  • level_out (double): set level out (from 0 to 1) (default 1)
  • range (double): set soundstage wideness (from 0 to 1) (default 0.5)
  • slope (double): set curve slope (from 0.01 to 1) (default 0.5)
  • strength (double): set crossfeed strength (from 0 to 1) (default 0.2)

See FFix.Filter for pipelines, expressions, and output handling.

crystalizer(audio_0, options \\ [])

@spec crystalizer(FFix.Graph.StreamRef.t(),
  c: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  i: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Simple audio noise sharpening filter.

Options

  • c (boolean): enable clipping (default true)
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • i (float): set intensity (from -10 to 10) (default 2)

See FFix.Filter for pipelines, expressions, and output handling.

dcshift(audio_0, options \\ [])

@spec dcshift(FFix.Graph.StreamRef.t(),
  enable: String.t() | atom() | number(),
  limitergain: String.t() | atom() | number(),
  shift: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Apply a DC shift to the audio.

Options

  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • limitergain (double): set limiter gain (from 0 to 1) (default 0)
  • shift (double): set DC shift (from -1 to 1) (default 0)

See FFix.Filter for pipelines, expressions, and output handling.

deesser(audio_0, options \\ [])

@spec deesser(FFix.Graph.StreamRef.t(),
  enable: String.t() | atom() | number(),
  f: String.t() | atom() | number(),
  i: String.t() | atom() | number(),
  m: String.t() | atom() | number(),
  s: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Apply de-essing to the audio.

Options

  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • f (double): set frequency (from 0 to 1) (default 0.5)
  • i (double): set intensity (from 0 to 1) (default 0)
  • m (double): set max deessing (from 0 to 1) (default 0.5)
  • s (int): set output mode (from 0 to 2) (default o)
    • i (0) — input
    • o (1) — output
    • e (2) — ess

See FFix.Filter for pipelines, expressions, and output handling.

dialoguenhance(audio_0, options \\ [])

@spec dialoguenhance(FFix.Graph.StreamRef.t(),
  enable: String.t() | atom() | number(),
  enhance: String.t() | atom() | number(),
  original: String.t() | atom() | number(),
  voice: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Audio Dialogue Enhancement.

Options

  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • enhance (double): set dialogue enhance factor (from 0 to 3) (default 1)
  • original (double): set original center factor (from 0 to 1) (default 1)
  • voice (double): set voice detection factor (from 2 to 32) (default 2)

See FFix.Filter for pipelines, expressions, and output handling.

drmeter(audio_0, options \\ [])

@spec drmeter(FFix.Graph.StreamRef.t(),
  length: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Measure audio dynamic range.

Options

  • length (double): set the window length (from 0.01 to 10) (default 3)

See FFix.Filter for pipelines, expressions, and output handling.

dynaudnorm(audio_0, options \\ [])

@spec dynaudnorm(FFix.Graph.StreamRef.t(),
  altboundary: String.t() | atom() | number(),
  b: String.t() | atom() | number(),
  c: String.t() | atom() | number(),
  channels: String.t() | atom() | number(),
  compress: String.t() | atom() | number(),
  correctdc: String.t() | atom() | number(),
  coupling: String.t() | atom() | number(),
  curve: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  f: String.t() | atom() | number(),
  framelen: String.t() | atom() | number(),
  g: String.t() | atom() | number(),
  gausssize: String.t() | atom() | number(),
  h: String.t() | atom() | number(),
  m: String.t() | atom() | number(),
  maxgain: String.t() | atom() | number(),
  n: String.t() | atom() | number(),
  o: String.t() | atom() | number(),
  overlap: String.t() | atom() | number(),
  p: String.t() | atom() | number(),
  peak: String.t() | atom() | number(),
  r: String.t() | atom() | number(),
  s: String.t() | atom() | number(),
  t: String.t() | atom() | number(),
  targetrms: String.t() | atom() | number(),
  threshold: String.t() | atom() | number(),
  v: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Dynamic Audio Normalizer.

Options

  • altboundary (boolean): set alternative boundary mode (default false)
  • b (boolean): set alternative boundary mode (default false)
  • c (boolean): set DC correction (default false)
  • channels (string): set channels to filter (default "all")
  • compress (double): set the compress factor (from 0 to 30) (default 0)
  • correctdc (boolean): set DC correction (default false)
  • coupling (boolean): set channel coupling (default true)
  • curve (string): set the custom peak mapping curve
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • f (int): set the frame length in msec (from 10 to 8000) (default 500)
  • framelen (int): set the frame length in msec (from 10 to 8000) (default 500)
  • g (int): set the filter size (from 3 to 301) (default 31)
  • gausssize (int): set the filter size (from 3 to 301) (default 31)
  • h (string): set channels to filter (default "all")
  • m (double): set the max amplification (from 1 to 100) (default 10)
  • maxgain (double): set the max amplification (from 1 to 100) (default 10)
  • n (boolean): set channel coupling (default true)
  • o (double): set the frame overlap (from 0 to 1) (default 0)
  • overlap (double): set the frame overlap (from 0 to 1) (default 0)
  • p (double): set the peak value (from 0 to 1) (default 0.95)
  • peak (double): set the peak value (from 0 to 1) (default 0.95)
  • r (double): set the target RMS (from 0 to 1) (default 0)
  • s (double): set the compress factor (from 0 to 30) (default 0)
  • t (double): set the threshold value (from 0 to 1) (default 0)
  • targetrms (double): set the target RMS (from 0 to 1) (default 0)
  • threshold (double): set the threshold value (from 0 to 1) (default 0)
  • v (string): set the custom peak mapping curve

See FFix.Filter for pipelines, expressions, and output handling.

earwax(audio_0, options \\ [])

Widen the stereo image.

Options

See FFix.Filter for pipelines, expressions, and output handling.

ebur128(audio_0, options \\ [])

@spec ebur128(FFix.Graph.StreamRef.t(),
  dualmono: String.t() | atom() | number(),
  framelog: String.t() | atom() | number(),
  gauge: String.t() | atom() | number(),
  integrated: String.t() | atom() | number(),
  lra_high: String.t() | atom() | number(),
  lra_low: String.t() | atom() | number(),
  metadata: String.t() | atom() | number(),
  meter: String.t() | atom() | number(),
  panlaw: String.t() | atom() | number(),
  peak: (String.t() | atom() | number()) | [String.t() | atom() | number()],
  range: String.t() | atom() | number(),
  sample_peak: String.t() | atom() | number(),
  scale: String.t() | atom() | number(),
  size: String.t() | atom() | number(),
  target: String.t() | atom() | number(),
  true_peak: String.t() | atom() | number(),
  video: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) ::
  FFix.Graph.StreamRef.t()
  | [FFix.Graph.StreamRef.t()]
  | FFix.Graph.Terminal.t()

EBU R128 scanner.

Example

[meter, audio] = FFix.Filter.ebur128(audio, video: true)

Options

  • dualmono (boolean): treat mono input files as dual-mono (default false)
  • framelog (int): force frame logging level (from INT_MIN to INT_MAX) (default -1)
    • quiet (-8) — logging disabled
    • info (32) — information logging level
    • verbose (40) — verbose logging level
  • gauge (int): set gauge display type (from 0 to 1) (default momentary)
    • momentary (0) — display momentary value
    • m (0) — display momentary value
    • shortterm (1) — display short-term value
    • s (1) — display short-term value
  • integrated (double): integrated loudness (LUFS) (from -DBL_MAX to DBL_MAX) (default 0)
  • lra_high (double): LRA high (LUFS) (from -DBL_MAX to DBL_MAX) (default 0)
  • lra_low (double): LRA low (LUFS) (from -DBL_MAX to DBL_MAX) (default 0)
  • metadata (boolean): inject metadata in the filtergraph (default false)
  • meter (int): set scale meter (+9 to +18) (from 9 to 18) (default 9)
  • panlaw (double): set a specific pan law for dual-mono files (from -10 to 0) (default -3.0103)
  • peak (flags): set peak mode (default 0)
    • none — disable any peak mode
    • sample — enable peak-sample mode
    • true — enable true-peak mode
  • range (double): loudness range (LU) (from -DBL_MAX to DBL_MAX) (default 0)
  • sample_peak (double): sample peak (dBFS) (from -DBL_MAX to DBL_MAX) (default 0)
  • scale (int): sets display method for the stats (from 0 to 1) (default absolute)
    • absolute (0) — display absolute values (LUFS)
    • LUFS (0) — display absolute values (LUFS)
    • relative (1) — display values relative to target (LU)
    • LU (1) — display values relative to target (LU)
  • size (image_size): set video size (default "640x480")
  • target (int): set a specific target level in LUFS (-23 to 0) (from -23 to 0) (default -23)
  • true_peak (double): true peak (dBFS) (from -DBL_MAX to DBL_MAX) (default 0)
  • video (boolean): set video output (default false)

See FFix.Filter for pipelines, expressions, and output handling.

equalizer(audio_0, options \\ [])

@spec equalizer(FFix.Graph.StreamRef.t(),
  a: String.t() | atom() | number(),
  b: String.t() | atom() | number(),
  blocksize: String.t() | atom() | number(),
  c: String.t() | atom() | number(),
  channels: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  f: String.t() | atom() | number(),
  frequency: String.t() | atom() | number(),
  g: String.t() | atom() | number(),
  gain: String.t() | atom() | number(),
  m: String.t() | atom() | number(),
  mix: String.t() | atom() | number(),
  n: String.t() | atom() | number(),
  normalize: String.t() | atom() | number(),
  precision: String.t() | atom() | number(),
  r: String.t() | atom() | number(),
  t: String.t() | atom() | number(),
  transform: String.t() | atom() | number(),
  w: String.t() | atom() | number(),
  width: String.t() | atom() | number(),
  width_type: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Apply two-pole peaking equalization (EQ) filter.

Options

  • a (int): set transform type (from 0 to 6) (default di)
    • di (0) — direct form I
    • dii (1) — direct form II
    • tdi (2) — transposed direct form I
    • tdii (3) — transposed direct form II
    • latt (4) — lattice-ladder form
    • svf (5) — state variable filter form
    • zdf (6) — zero-delay filter form
  • b (int): set the block size (from 0 to 32768) (default 0)
  • blocksize (int): set the block size (from 0 to 32768) (default 0)
  • c (string): set channels to filter (default "all")
  • channels (string): set channels to filter (default "all")
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • f (double): set central frequency (from 0 to 999999) (default 0)
  • frequency (double): set central frequency (from 0 to 999999) (default 0)
  • g (double): set gain (from -900 to 900) (default 0)
  • gain (double): set gain (from -900 to 900) (default 0)
  • m (double): set mix (from 0 to 1) (default 1)
  • mix (double): set mix (from 0 to 1) (default 1)
  • n (boolean): normalize coefficients (default false)
  • normalize (boolean): normalize coefficients (default false)
  • precision (int): set filtering precision (from -1 to 3) (default auto)
    • auto (-1) — automatic
    • s16 (0) — signed 16-bit
    • s32 (1) — signed 32-bit
    • f32 (2) — floating-point single
    • f64 (3) — floating-point double
  • r (int): set filtering precision (from -1 to 3) (default auto)
    • auto (-1) — automatic
    • s16 (0) — signed 16-bit
    • s32 (1) — signed 32-bit
    • f32 (2) — floating-point single
    • f64 (3) — floating-point double
  • t (int): set filter-width type (from 1 to 5) (default q)
    • h (1) — Hz
    • q (3) — Q-Factor
    • o (2) — octave
    • s (4) — slope
    • k (5) — kHz
  • transform (int): set transform type (from 0 to 6) (default di)
    • di (0) — direct form I
    • dii (1) — direct form II
    • tdi (2) — transposed direct form I
    • tdii (3) — transposed direct form II
    • latt (4) — lattice-ladder form
    • svf (5) — state variable filter form
    • zdf (6) — zero-delay filter form
  • w (double): set width (from 0 to 99999) (default 1)
  • width (double): set width (from 0 to 99999) (default 1)
  • width_type (int): set filter-width type (from 1 to 5) (default q)
    • h (1) — Hz
    • q (3) — Q-Factor
    • o (2) — octave
    • s (4) — slope
    • k (5) — kHz

See FFix.Filter for pipelines, expressions, and output handling.

extrastereo(audio_0, options \\ [])

@spec extrastereo(FFix.Graph.StreamRef.t(),
  c: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  m: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Increase difference between stereo audio channels.

Options

  • c (boolean): enable clipping (default true)
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • m (float): set the difference coefficient (from -10 to 10) (default 2.5)

See FFix.Filter for pipelines, expressions, and output handling.

firequalizer(audio_0, options \\ [])

@spec firequalizer(FFix.Graph.StreamRef.t(),
  accuracy: String.t() | atom() | number(),
  delay: String.t() | atom() | number(),
  dumpfile: String.t() | atom() | number(),
  dumpscale: String.t() | atom() | number(),
  fft2: String.t() | atom() | number(),
  fixed: String.t() | atom() | number(),
  gain: String.t() | atom() | number(),
  gain_entry: String.t() | atom() | number(),
  min_phase: String.t() | atom() | number(),
  multi: String.t() | atom() | number(),
  scale: String.t() | atom() | number(),
  wfunc: String.t() | atom() | number(),
  zero_phase: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Finite Impulse Response Equalizer.

Options

  • accuracy (double): set accuracy (from 0 to 1e+10) (default 5)
  • delay (double): set delay (from 0 to 1e+10) (default 0.01)
  • dumpfile (string): set dump file
  • dumpscale (int): set dump scale (from 0 to 3) (default linlog)
    • linlin (0) — linear-freq linear-gain
    • linlog (1) — linear-freq logarithmic-gain
    • loglin (2) — logarithmic-freq linear-gain
    • loglog (3) — logarithmic-freq logarithmic-gain
  • fft2 (boolean): set 2-channels fft (default false)
  • fixed (boolean): set fixed frame samples (default false)
  • gain (string): set gain curve (default "gain_interpolate(f)")
  • gain_entry (string): set gain entry
  • min_phase (boolean): set minimum phase mode (default false)
  • multi (boolean): set multi channels mode (default false)
  • scale (int): set gain scale (from 0 to 3) (default linlog)
    • linlin (0) — linear-freq linear-gain
    • linlog (1) — linear-freq logarithmic-gain
    • loglin (2) — logarithmic-freq linear-gain
    • loglog (3) — logarithmic-freq logarithmic-gain
  • wfunc (int): set window function (from 0 to 9) (default hann)
    • rectangular (0) — rectangular window
    • hann (1) — hann window
    • hamming (2) — hamming window
    • blackman (3) — blackman window
    • nuttall3 (4) — 3-term nuttall window
    • mnuttall3 (5) — minimum 3-term nuttall window
    • nuttall (6) — nuttall window
    • bnuttall (7) — blackman-nuttall window
    • bharris (8) — blackman-harris window
    • tukey (9) — tukey window
  • zero_phase (boolean): set zero phase mode (default false)

See FFix.Filter for pipelines, expressions, and output handling.

flanger(audio_0, options \\ [])

@spec flanger(FFix.Graph.StreamRef.t(),
  delay: String.t() | atom() | number(),
  depth: String.t() | atom() | number(),
  interp: String.t() | atom() | number(),
  phase: String.t() | atom() | number(),
  regen: String.t() | atom() | number(),
  shape: String.t() | atom() | number(),
  speed: String.t() | atom() | number(),
  width: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Apply a flanging effect to the audio.

Options

  • delay (double): base delay in milliseconds (from 0 to 30) (default 0)
  • depth (double): added swept delay in milliseconds (from 0 to 10) (default 2)
  • interp (int): delay-line interpolation (from 0 to 1) (default linear)
    • linear (0)
    • quadratic (1)
  • phase (double): swept wave percentage phase-shift for multi-channel (from 0 to 100) (default 25)
  • regen (double): percentage regeneration (delayed signal feedback) (from -95 to 95) (default 0)
  • shape (int): swept wave shape (from 0 to 1) (default sinusoidal)
    • triangular (1)
    • t (1)
    • sinusoidal (0)
    • s (0)
  • speed (double): sweeps per second (Hz) (from 0.1 to 10) (default 0.5)
  • width (double): percentage of delayed signal mixed with original (from 0 to 100) (default 71)

See FFix.Filter for pipelines, expressions, and output handling.

haas(audio_0, options \\ [])

@spec haas(FFix.Graph.StreamRef.t(),
  left_balance: String.t() | atom() | number(),
  left_delay: String.t() | atom() | number(),
  left_gain: String.t() | atom() | number(),
  left_phase: String.t() | atom() | number(),
  level_in: String.t() | atom() | number(),
  level_out: String.t() | atom() | number(),
  middle_phase: String.t() | atom() | number(),
  middle_source: String.t() | atom() | number(),
  right_balance: String.t() | atom() | number(),
  right_delay: String.t() | atom() | number(),
  right_gain: String.t() | atom() | number(),
  right_phase: String.t() | atom() | number(),
  side_gain: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Apply Haas Stereo Enhancer.

Options

  • left_balance (double): set left balance (from -1 to 1) (default -1)
  • left_delay (double): set left delay (from 0 to 40) (default 2.05)
  • left_gain (double): set left gain (from 0.015625 to 64) (default 1)
  • left_phase (boolean): set left phase (default false)
  • level_in (double): set level in (from 0.015625 to 64) (default 1)
  • level_out (double): set level out (from 0.015625 to 64) (default 1)
  • middle_phase (boolean): set middle phase (default false)
  • middle_source (int): set middle source (from 0 to 3) (default mid)
    • left (0)
    • right (1)
    • mid (2) — L+R
    • side (3) — L-R
  • right_balance (double): set right balance (from -1 to 1) (default 1)
  • right_delay (double): set right delay (from 0 to 40) (default 2.12)
  • right_gain (double): set right gain (from 0.015625 to 64) (default 1)
  • right_phase (boolean): set right phase (default true)
  • side_gain (double): set side gain (from 0.015625 to 64) (default 1)

See FFix.Filter for pipelines, expressions, and output handling.

hdcd(audio_0, options \\ [])

@spec hdcd(FFix.Graph.StreamRef.t(),
  analyze_mode: String.t() | atom() | number(),
  bits_per_sample: String.t() | atom() | number(),
  cdt_ms: String.t() | atom() | number(),
  disable_autoconvert: String.t() | atom() | number(),
  force_pe: String.t() | atom() | number(),
  process_stereo: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Apply High Definition Compatible Digital (HDCD) decoding.

Options

  • analyze_mode (int): Replace audio with solid tone and signal some processing aspect in the amplitude. (from 0 to 4) (default off)
    • off (0) — disabled
    • lle (1) — gain adjustment level at each sample
    • pe (2) — samples where peak extend occurs
    • cdt (3) — samples where the code detect timer is active
    • tgm (4) — samples where the target gain does not match between channels
  • bits_per_sample (int): Valid bits per sample (location of the true LSB). (from 16 to 24) (default 16)
    • 16 (16) — 16-bit (in s32 or s16)
    • 20 (20) — 20-bit (in s32)
    • 24 (24) — 24-bit (in s32)
  • cdt_ms (int): Code detect timer period in ms. (from 100 to 60000) (default 2000)
  • disable_autoconvert (boolean): Disable any format conversion or resampling in the filter graph. (default true)
  • force_pe (boolean): Always extend peaks above -3dBFS even when PE is not signaled. (default false)
  • process_stereo (boolean): Process stereo channels together. Only apply target_gain when both channels match. (default true)

See FFix.Filter for pipelines, expressions, and output handling.

headphone(streams, options \\ [])

@spec headphone([FFix.Graph.StreamRef.t()],
  gain: String.t() | atom() | number(),
  hrir: String.t() | atom() | number(),
  lfe: String.t() | atom() | number(),
  map: String.t() | atom() | number(),
  size: String.t() | atom() | number(),
  type: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Apply headphone binaural spatialization with HRTFs in additional streams.

Options

  • gain (float): set gain in dB (from -20 to 40) (default 0)
  • hrir (int): set hrir format (from 0 to 1) (default stereo)
    • stereo (0) — hrir files have exactly 2 channels
    • multich (1) — single multichannel hrir file
  • lfe (float): set lfe gain in dB (from -20 to 40) (default 0)
  • map (string): set channels convolution mappings
  • size (int): set frame size (from 1024 to 96000) (default 1024)
  • type (int): set processing (from 0 to 1) (default freq)
    • time (0) — time domain
    • freq (1) — frequency domain

See FFix.Filter for pipelines, expressions, and output handling.

highpass(audio_0, options \\ [])

@spec highpass(FFix.Graph.StreamRef.t(),
  a: String.t() | atom() | number(),
  b: String.t() | atom() | number(),
  blocksize: String.t() | atom() | number(),
  c: String.t() | atom() | number(),
  channels: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  f: String.t() | atom() | number(),
  frequency: String.t() | atom() | number(),
  m: String.t() | atom() | number(),
  mix: String.t() | atom() | number(),
  n: String.t() | atom() | number(),
  normalize: String.t() | atom() | number(),
  p: String.t() | atom() | number(),
  poles: String.t() | atom() | number(),
  precision: String.t() | atom() | number(),
  r: String.t() | atom() | number(),
  t: String.t() | atom() | number(),
  transform: String.t() | atom() | number(),
  w: String.t() | atom() | number(),
  width: String.t() | atom() | number(),
  width_type: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Apply a high-pass filter with 3dB point frequency.

Options

  • a (int): set transform type (from 0 to 6) (default di)
    • di (0) — direct form I
    • dii (1) — direct form II
    • tdi (2) — transposed direct form I
    • tdii (3) — transposed direct form II
    • latt (4) — lattice-ladder form
    • svf (5) — state variable filter form
    • zdf (6) — zero-delay filter form
  • b (int): set the block size (from 0 to 32768) (default 0)
  • blocksize (int): set the block size (from 0 to 32768) (default 0)
  • c (string): set channels to filter (default "all")
  • channels (string): set channels to filter (default "all")
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • f (double): set frequency (from 0 to 999999) (default 3000)
  • frequency (double): set frequency (from 0 to 999999) (default 3000)
  • m (double): set mix (from 0 to 1) (default 1)
  • mix (double): set mix (from 0 to 1) (default 1)
  • n (boolean): normalize coefficients (default false)
  • normalize (boolean): normalize coefficients (default false)
  • p (int): set number of poles (from 1 to 2) (default 2)
  • poles (int): set number of poles (from 1 to 2) (default 2)
  • precision (int): set filtering precision (from -1 to 3) (default auto)
    • auto (-1) — automatic
    • s16 (0) — signed 16-bit
    • s32 (1) — signed 32-bit
    • f32 (2) — floating-point single
    • f64 (3) — floating-point double
  • r (int): set filtering precision (from -1 to 3) (default auto)
    • auto (-1) — automatic
    • s16 (0) — signed 16-bit
    • s32 (1) — signed 32-bit
    • f32 (2) — floating-point single
    • f64 (3) — floating-point double
  • t (int): set filter-width type (from 1 to 5) (default q)
    • h (1) — Hz
    • q (3) — Q-Factor
    • o (2) — octave
    • s (4) — slope
    • k (5) — kHz
  • transform (int): set transform type (from 0 to 6) (default di)
    • di (0) — direct form I
    • dii (1) — direct form II
    • tdi (2) — transposed direct form I
    • tdii (3) — transposed direct form II
    • latt (4) — lattice-ladder form
    • svf (5) — state variable filter form
    • zdf (6) — zero-delay filter form
  • w (double): set width (from 0 to 99999) (default 0.707)
  • width (double): set width (from 0 to 99999) (default 0.707)
  • width_type (int): set filter-width type (from 1 to 5) (default q)
    • h (1) — Hz
    • q (3) — Q-Factor
    • o (2) — octave
    • s (4) — slope
    • k (5) — kHz

See FFix.Filter for pipelines, expressions, and output handling.

highshelf(audio_0, options \\ [])

@spec highshelf(FFix.Graph.StreamRef.t(),
  a: String.t() | atom() | number(),
  b: String.t() | atom() | number(),
  blocksize: String.t() | atom() | number(),
  c: String.t() | atom() | number(),
  channels: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  f: String.t() | atom() | number(),
  frequency: String.t() | atom() | number(),
  g: String.t() | atom() | number(),
  gain: String.t() | atom() | number(),
  m: String.t() | atom() | number(),
  mix: String.t() | atom() | number(),
  n: String.t() | atom() | number(),
  normalize: String.t() | atom() | number(),
  p: String.t() | atom() | number(),
  poles: String.t() | atom() | number(),
  precision: String.t() | atom() | number(),
  r: String.t() | atom() | number(),
  t: String.t() | atom() | number(),
  transform: String.t() | atom() | number(),
  w: String.t() | atom() | number(),
  width: String.t() | atom() | number(),
  width_type: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Apply a high shelf filter.

Options

  • a (int): set transform type (from 0 to 6) (default di)
    • di (0) — direct form I
    • dii (1) — direct form II
    • tdi (2) — transposed direct form I
    • tdii (3) — transposed direct form II
    • latt (4) — lattice-ladder form
    • svf (5) — state variable filter form
    • zdf (6) — zero-delay filter form
  • b (int): set the block size (from 0 to 32768) (default 0)
  • blocksize (int): set the block size (from 0 to 32768) (default 0)
  • c (string): set channels to filter (default "all")
  • channels (string): set channels to filter (default "all")
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • f (double): set central frequency (from 0 to 999999) (default 3000)
  • frequency (double): set central frequency (from 0 to 999999) (default 3000)
  • g (double): set gain (from -900 to 900) (default 0)
  • gain (double): set gain (from -900 to 900) (default 0)
  • m (double): set mix (from 0 to 1) (default 1)
  • mix (double): set mix (from 0 to 1) (default 1)
  • n (boolean): normalize coefficients (default false)
  • normalize (boolean): normalize coefficients (default false)
  • p (int): set number of poles (from 1 to 2) (default 2)
  • poles (int): set number of poles (from 1 to 2) (default 2)
  • precision (int): set filtering precision (from -1 to 3) (default auto)
    • auto (-1) — automatic
    • s16 (0) — signed 16-bit
    • s32 (1) — signed 32-bit
    • f32 (2) — floating-point single
    • f64 (3) — floating-point double
  • r (int): set filtering precision (from -1 to 3) (default auto)
    • auto (-1) — automatic
    • s16 (0) — signed 16-bit
    • s32 (1) — signed 32-bit
    • f32 (2) — floating-point single
    • f64 (3) — floating-point double
  • t (int): set filter-width type (from 1 to 5) (default q)
    • h (1) — Hz
    • q (3) — Q-Factor
    • o (2) — octave
    • s (4) — slope
    • k (5) — kHz
  • transform (int): set transform type (from 0 to 6) (default di)
    • di (0) — direct form I
    • dii (1) — direct form II
    • tdi (2) — transposed direct form I
    • tdii (3) — transposed direct form II
    • latt (4) — lattice-ladder form
    • svf (5) — state variable filter form
    • zdf (6) — zero-delay filter form
  • w (double): set width (from 0 to 99999) (default 0.5)
  • width (double): set width (from 0 to 99999) (default 0.5)
  • width_type (int): set filter-width type (from 1 to 5) (default q)
    • h (1) — Hz
    • q (3) — Q-Factor
    • o (2) — octave
    • s (4) — slope
    • k (5) — kHz

See FFix.Filter for pipelines, expressions, and output handling.

join(streams, options \\ [])

@spec join([FFix.Graph.StreamRef.t()],
  channel_layout: String.t() | atom() | number(),
  inputs: String.t() | atom() | number(),
  map: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Join multiple audio streams into multi-channel output.

Options

  • channel_layout (channel_layout): Channel layout of the output stream. (default "stereo")
  • inputs (int): Number of input streams. (from 1 to INT_MAX) (default 2)
  • map (string): A comma-separated list of channels maps in the format 'input_stream.input_channel-output_channel.

See FFix.Filter for pipelines, expressions, and output handling.

ladspa(streams, options \\ [])

@spec ladspa([FFix.Graph.StreamRef.t()],
  c: String.t() | atom() | number(),
  controls: String.t() | atom() | number(),
  d: String.t() | atom() | number(),
  duration: String.t() | atom() | number(),
  f: String.t() | atom() | number(),
  file: String.t() | atom() | number(),
  l: String.t() | atom() | number(),
  latency: String.t() | atom() | number(),
  n: String.t() | atom() | number(),
  nb_samples: String.t() | atom() | number(),
  p: String.t() | atom() | number(),
  plugin: String.t() | atom() | number(),
  s: String.t() | atom() | number(),
  sample_rate: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Apply LADSPA effect.

Options

  • c (string): set plugin options
  • controls (string): set plugin options
  • d (duration): set audio duration (default -0.000001)
  • duration (duration): set audio duration (default -0.000001)
  • f (string): set library name or full path
  • file (string): set library name or full path
  • l (boolean): enable latency compensation (default false)
  • latency (boolean): enable latency compensation (default false)
  • n (int): set the number of samples per requested frame (from 1 to INT_MAX) (default 1024)
  • nb_samples (int): set the number of samples per requested frame (from 1 to INT_MAX) (default 1024)
  • p (string): set plugin name
  • plugin (string): set plugin name
  • s (int): set sample rate (from 1 to INT_MAX) (default 44100)
  • sample_rate (int): set sample rate (from 1 to INT_MAX) (default 44100)

See FFix.Filter for pipelines, expressions, and output handling.

loudnorm(audio_0, options \\ [])

@spec loudnorm(FFix.Graph.StreamRef.t(),
  I: String.t() | atom() | number(),
  LRA: String.t() | atom() | number(),
  TP: String.t() | atom() | number(),
  dual_mono: String.t() | atom() | number(),
  i: String.t() | atom() | number(),
  linear: String.t() | atom() | number(),
  lra: String.t() | atom() | number(),
  measured_I: String.t() | atom() | number(),
  measured_LRA: String.t() | atom() | number(),
  measured_TP: String.t() | atom() | number(),
  measured_i: String.t() | atom() | number(),
  measured_lra: String.t() | atom() | number(),
  measured_thresh: String.t() | atom() | number(),
  measured_tp: String.t() | atom() | number(),
  offset: String.t() | atom() | number(),
  print_format: String.t() | atom() | number(),
  tp: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

EBU R128 loudness normalization

Options

  • I (double): set integrated loudness target (from -70 to -5) (default -24)
  • LRA (double): set loudness range target (from 1 to 50) (default 7)
  • TP (double): set maximum true peak (from -9 to 0) (default -2)
  • dual_mono (boolean): treat mono input as dual-mono (default false)
  • i (double): set integrated loudness target (from -70 to -5) (default -24)
  • linear (boolean): normalize linearly if possible (default true)
  • lra (double): set loudness range target (from 1 to 50) (default 7)
  • measured_I (double): measured IL of input file (from -99 to 0) (default 0)
  • measured_LRA (double): measured LRA of input file (from 0 to 99) (default 0)
  • measured_TP (double): measured true peak of input file (from -99 to 99) (default 99)
  • measured_i (double): measured IL of input file (from -99 to 0) (default 0)
  • measured_lra (double): measured LRA of input file (from 0 to 99) (default 0)
  • measured_thresh (double): measured threshold of input file (from -99 to 0) (default -70)
  • measured_tp (double): measured true peak of input file (from -99 to 99) (default 99)
  • offset (double): set offset gain (from -99 to 99) (default 0)
  • print_format (int): set print format for stats (from 0 to 2) (default none)
    • none (0)
    • json (1)
    • summary (2)
  • tp (double): set maximum true peak (from -9 to 0) (default -2)

See FFix.Filter for pipelines, expressions, and output handling.

lowpass(audio_0, options \\ [])

@spec lowpass(FFix.Graph.StreamRef.t(),
  a: String.t() | atom() | number(),
  b: String.t() | atom() | number(),
  blocksize: String.t() | atom() | number(),
  c: String.t() | atom() | number(),
  channels: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  f: String.t() | atom() | number(),
  frequency: String.t() | atom() | number(),
  m: String.t() | atom() | number(),
  mix: String.t() | atom() | number(),
  n: String.t() | atom() | number(),
  normalize: String.t() | atom() | number(),
  p: String.t() | atom() | number(),
  poles: String.t() | atom() | number(),
  precision: String.t() | atom() | number(),
  r: String.t() | atom() | number(),
  t: String.t() | atom() | number(),
  transform: String.t() | atom() | number(),
  w: String.t() | atom() | number(),
  width: String.t() | atom() | number(),
  width_type: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Apply a low-pass filter with 3dB point frequency.

Options

  • a (int): set transform type (from 0 to 6) (default di)
    • di (0) — direct form I
    • dii (1) — direct form II
    • tdi (2) — transposed direct form I
    • tdii (3) — transposed direct form II
    • latt (4) — lattice-ladder form
    • svf (5) — state variable filter form
    • zdf (6) — zero-delay filter form
  • b (int): set the block size (from 0 to 32768) (default 0)
  • blocksize (int): set the block size (from 0 to 32768) (default 0)
  • c (string): set channels to filter (default "all")
  • channels (string): set channels to filter (default "all")
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • f (double): set frequency (from 0 to 999999) (default 500)
  • frequency (double): set frequency (from 0 to 999999) (default 500)
  • m (double): set mix (from 0 to 1) (default 1)
  • mix (double): set mix (from 0 to 1) (default 1)
  • n (boolean): normalize coefficients (default false)
  • normalize (boolean): normalize coefficients (default false)
  • p (int): set number of poles (from 1 to 2) (default 2)
  • poles (int): set number of poles (from 1 to 2) (default 2)
  • precision (int): set filtering precision (from -1 to 3) (default auto)
    • auto (-1) — automatic
    • s16 (0) — signed 16-bit
    • s32 (1) — signed 32-bit
    • f32 (2) — floating-point single
    • f64 (3) — floating-point double
  • r (int): set filtering precision (from -1 to 3) (default auto)
    • auto (-1) — automatic
    • s16 (0) — signed 16-bit
    • s32 (1) — signed 32-bit
    • f32 (2) — floating-point single
    • f64 (3) — floating-point double
  • t (int): set filter-width type (from 1 to 5) (default q)
    • h (1) — Hz
    • q (3) — Q-Factor
    • o (2) — octave
    • s (4) — slope
    • k (5) — kHz
  • transform (int): set transform type (from 0 to 6) (default di)
    • di (0) — direct form I
    • dii (1) — direct form II
    • tdi (2) — transposed direct form I
    • tdii (3) — transposed direct form II
    • latt (4) — lattice-ladder form
    • svf (5) — state variable filter form
    • zdf (6) — zero-delay filter form
  • w (double): set width (from 0 to 99999) (default 0.707)
  • width (double): set width (from 0 to 99999) (default 0.707)
  • width_type (int): set filter-width type (from 1 to 5) (default q)
    • h (1) — Hz
    • q (3) — Q-Factor
    • o (2) — octave
    • s (4) — slope
    • k (5) — kHz

See FFix.Filter for pipelines, expressions, and output handling.

lowshelf(audio_0, options \\ [])

@spec lowshelf(FFix.Graph.StreamRef.t(),
  a: String.t() | atom() | number(),
  b: String.t() | atom() | number(),
  blocksize: String.t() | atom() | number(),
  c: String.t() | atom() | number(),
  channels: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  f: String.t() | atom() | number(),
  frequency: String.t() | atom() | number(),
  g: String.t() | atom() | number(),
  gain: String.t() | atom() | number(),
  m: String.t() | atom() | number(),
  mix: String.t() | atom() | number(),
  n: String.t() | atom() | number(),
  normalize: String.t() | atom() | number(),
  p: String.t() | atom() | number(),
  poles: String.t() | atom() | number(),
  precision: String.t() | atom() | number(),
  r: String.t() | atom() | number(),
  t: String.t() | atom() | number(),
  transform: String.t() | atom() | number(),
  w: String.t() | atom() | number(),
  width: String.t() | atom() | number(),
  width_type: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Apply a low shelf filter.

Options

  • a (int): set transform type (from 0 to 6) (default di)
    • di (0) — direct form I
    • dii (1) — direct form II
    • tdi (2) — transposed direct form I
    • tdii (3) — transposed direct form II
    • latt (4) — lattice-ladder form
    • svf (5) — state variable filter form
    • zdf (6) — zero-delay filter form
  • b (int): set the block size (from 0 to 32768) (default 0)
  • blocksize (int): set the block size (from 0 to 32768) (default 0)
  • c (string): set channels to filter (default "all")
  • channels (string): set channels to filter (default "all")
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • f (double): set central frequency (from 0 to 999999) (default 100)
  • frequency (double): set central frequency (from 0 to 999999) (default 100)
  • g (double): set gain (from -900 to 900) (default 0)
  • gain (double): set gain (from -900 to 900) (default 0)
  • m (double): set mix (from 0 to 1) (default 1)
  • mix (double): set mix (from 0 to 1) (default 1)
  • n (boolean): normalize coefficients (default false)
  • normalize (boolean): normalize coefficients (default false)
  • p (int): set number of poles (from 1 to 2) (default 2)
  • poles (int): set number of poles (from 1 to 2) (default 2)
  • precision (int): set filtering precision (from -1 to 3) (default auto)
    • auto (-1) — automatic
    • s16 (0) — signed 16-bit
    • s32 (1) — signed 32-bit
    • f32 (2) — floating-point single
    • f64 (3) — floating-point double
  • r (int): set filtering precision (from -1 to 3) (default auto)
    • auto (-1) — automatic
    • s16 (0) — signed 16-bit
    • s32 (1) — signed 32-bit
    • f32 (2) — floating-point single
    • f64 (3) — floating-point double
  • t (int): set filter-width type (from 1 to 5) (default q)
    • h (1) — Hz
    • q (3) — Q-Factor
    • o (2) — octave
    • s (4) — slope
    • k (5) — kHz
  • transform (int): set transform type (from 0 to 6) (default di)
    • di (0) — direct form I
    • dii (1) — direct form II
    • tdi (2) — transposed direct form I
    • tdii (3) — transposed direct form II
    • latt (4) — lattice-ladder form
    • svf (5) — state variable filter form
    • zdf (6) — zero-delay filter form
  • w (double): set width (from 0 to 99999) (default 0.5)
  • width (double): set width (from 0 to 99999) (default 0.5)
  • width_type (int): set filter-width type (from 1 to 5) (default q)
    • h (1) — Hz
    • q (3) — Q-Factor
    • o (2) — octave
    • s (4) — slope
    • k (5) — kHz

See FFix.Filter for pipelines, expressions, and output handling.

lv2(streams, options \\ [])

@spec lv2([FFix.Graph.StreamRef.t()],
  c: String.t() | atom() | number(),
  controls: String.t() | atom() | number(),
  d: String.t() | atom() | number(),
  duration: String.t() | atom() | number(),
  n: String.t() | atom() | number(),
  nb_samples: String.t() | atom() | number(),
  p: String.t() | atom() | number(),
  plugin: String.t() | atom() | number(),
  s: String.t() | atom() | number(),
  sample_rate: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Apply LV2 effect.

Options

  • c (string): set plugin options
  • controls (string): set plugin options
  • d (duration): set audio duration (default -0.000001)
  • duration (duration): set audio duration (default -0.000001)
  • n (int): set the number of samples per requested frame (from 1 to INT_MAX) (default 1024)
  • nb_samples (int): set the number of samples per requested frame (from 1 to INT_MAX) (default 1024)
  • p (string): set plugin uri
  • plugin (string): set plugin uri
  • s (int): set sample rate (from 1 to INT_MAX) (default 44100)
  • sample_rate (int): set sample rate (from 1 to INT_MAX) (default 44100)

See FFix.Filter for pipelines, expressions, and output handling.

mcompand(audio_0, options \\ [])

@spec mcompand(FFix.Graph.StreamRef.t(),
  args: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Multiband Compress or expand audio dynamic range.

Options

  • args (string): set parameters for each band (default "0.005,0.1 6 -47/-40,-34/-34,-17/-33 100 | 0.003,0.05 6 -47/-40,-34/-34,-17/-33 400 | 0.000625,0.0125 6 -47/-40,-34/-34,-15/-33 1600 | 0.0001,0.025 6 -47/-40,-34/-34,-31/-31,-0/-30 6400 | 0,0.025 6 -38/-31,-28/-28,-0/-25 22000")

See FFix.Filter for pipelines, expressions, and output handling.

pan(audio_0, options \\ [])

@spec pan(FFix.Graph.StreamRef.t(),
  args: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Remix channels with coefficients (panning).

Options

  • args (string)

See FFix.Filter for pipelines, expressions, and output handling.

replaygain(audio_0, options \\ [])

@spec replaygain(FFix.Graph.StreamRef.t(),
  track_gain: String.t() | atom() | number(),
  track_peak: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

ReplayGain scanner.

Options

  • track_gain (float): track gain (dB) (from -FLT_MAX to FLT_MAX) (default 0)
  • track_peak (float): track peak (from -FLT_MAX to FLT_MAX) (default 0)

See FFix.Filter for pipelines, expressions, and output handling.

rubberband(audio_0, options \\ [])

@spec rubberband(FFix.Graph.StreamRef.t(),
  channels: String.t() | atom() | number(),
  detector: String.t() | atom() | number(),
  formant: String.t() | atom() | number(),
  phase: String.t() | atom() | number(),
  pitch: String.t() | atom() | number(),
  pitchq: String.t() | atom() | number(),
  smoothing: String.t() | atom() | number(),
  tempo: String.t() | atom() | number(),
  transients: String.t() | atom() | number(),
  window: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Apply time-stretching and pitch-shifting.

Options

  • channels (int): set channels (from 0 to INT_MAX) (default apart)
    • apart (0)
    • together (268435456)
  • detector (int): set detector (from 0 to INT_MAX) (default compound)
    • compound (0)
    • percussive (1024)
    • soft (2048)
  • formant (int): set formant (from 0 to INT_MAX) (default shifted)
    • shifted (0)
    • preserved (16777216)
  • phase (int): set phase (from 0 to INT_MAX) (default laminar)
    • laminar (0)
    • independent (8192)
  • pitch (double): set pitch scale factor (from 0.01 to 100) (default 1)
  • pitchq (int): set pitch quality (from 0 to INT_MAX) (default speed)
    • quality (33554432)
    • speed (0)
    • consistency (67108864)
  • smoothing (int): set smoothing (from 0 to INT_MAX) (default off)
    • off (0)
    • on (8388608)
  • tempo (double): set tempo scale factor (from 0.01 to 100) (default 1)
  • transients (int): set transients (from 0 to INT_MAX) (default crisp)
    • crisp (0)
    • mixed (256)
    • smooth (512)
  • window (int): set window (from 0 to INT_MAX) (default standard)
    • standard (0)
    • short (1048576)
    • long (2097152)

See FFix.Filter for pipelines, expressions, and output handling.

sidechaincompress(audio_0, audio_1, options \\ [])

@spec sidechaincompress(FFix.Graph.StreamRef.t(), FFix.Graph.StreamRef.t(),
  attack: String.t() | atom() | number(),
  detection: String.t() | atom() | number(),
  knee: String.t() | atom() | number(),
  level_in: String.t() | atom() | number(),
  level_sc: String.t() | atom() | number(),
  link: String.t() | atom() | number(),
  makeup: String.t() | atom() | number(),
  mix: String.t() | atom() | number(),
  mode: String.t() | atom() | number(),
  ratio: String.t() | atom() | number(),
  release: String.t() | atom() | number(),
  threshold: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Sidechain compressor.

Options

  • attack (double): set attack (from 0.01 to 2000) (default 20)
  • detection (int): set detection (from 0 to 1) (default rms)
    • peak (0)
    • rms (1)
  • knee (double): set knee (from 1 to 8) (default 2.82843)
  • level_in (double): set input gain (from 0.015625 to 64) (default 1)
  • level_sc (double): set sidechain gain (from 0.015625 to 64) (default 1)
  • link (int): set link type (from 0 to 1) (default average)
    • average (0)
    • maximum (1)
  • makeup (double): set make up gain (from 1 to 64) (default 1)
  • mix (double): set mix (from 0 to 1) (default 1)
  • mode (int): set mode (from 0 to 1) (default downward)
    • downward (0)
    • upward (1)
  • ratio (double): set ratio (from 1 to 20) (default 2)
  • release (double): set release (from 0.01 to 9000) (default 250)
  • threshold (double): set threshold (from 0.000976563 to 1) (default 0.125)

See FFix.Filter for pipelines, expressions, and output handling.

sidechaingate(audio_0, audio_1, options \\ [])

@spec sidechaingate(FFix.Graph.StreamRef.t(), FFix.Graph.StreamRef.t(),
  attack: String.t() | atom() | number(),
  detection: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  knee: String.t() | atom() | number(),
  level_in: String.t() | atom() | number(),
  level_sc: String.t() | atom() | number(),
  link: String.t() | atom() | number(),
  makeup: String.t() | atom() | number(),
  mode: String.t() | atom() | number(),
  range: String.t() | atom() | number(),
  ratio: String.t() | atom() | number(),
  release: String.t() | atom() | number(),
  threshold: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Audio sidechain gate.

Options

  • attack (double): set attack (from 0.01 to 9000) (default 20)
  • detection (int): set detection (from 0 to 1) (default rms)
    • peak (0)
    • rms (1)
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • knee (double): set knee (from 1 to 8) (default 2.82843)
  • level_in (double): set input level (from 0.015625 to 64) (default 1)
  • level_sc (double): set sidechain gain (from 0.015625 to 64) (default 1)
  • link (int): set link (from 0 to 1) (default average)
    • average (0)
    • maximum (1)
  • makeup (double): set makeup gain (from 1 to 64) (default 1)
  • mode (int): set mode (from 0 to 1) (default downward)
    • downward (0)
    • upward (1)
  • range (double): set max gain reduction (from 0 to 1) (default 0.06125)
  • ratio (double): set ratio (from 1 to 9000) (default 2)
  • release (double): set release (from 0.01 to 9000) (default 250)
  • threshold (double): set threshold (from 0 to 1) (default 0.125)

See FFix.Filter for pipelines, expressions, and output handling.

silencedetect(audio_0, options \\ [])

@spec silencedetect(FFix.Graph.StreamRef.t(),
  d: String.t() | atom() | number(),
  duration: String.t() | atom() | number(),
  m: String.t() | atom() | number(),
  mono: String.t() | atom() | number(),
  n: String.t() | atom() | number(),
  noise: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Detect silence.

Options

  • d (duration): set minimum duration in seconds (default 2)
  • duration (duration): set minimum duration in seconds (default 2)
  • m (boolean): check each channel separately (default false)
  • mono (boolean): check each channel separately (default false)
  • n (double): set noise tolerance (from 0 to DBL_MAX) (default 0.001)
  • noise (double): set noise tolerance (from 0 to DBL_MAX) (default 0.001)

See FFix.Filter for pipelines, expressions, and output handling.

silenceremove(audio_0, options \\ [])

@spec silenceremove(FFix.Graph.StreamRef.t(),
  detection: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  start_duration: String.t() | atom() | number(),
  start_mode: String.t() | atom() | number(),
  start_periods: String.t() | atom() | number(),
  start_silence: String.t() | atom() | number(),
  start_threshold: String.t() | atom() | number(),
  stop_duration: String.t() | atom() | number(),
  stop_mode: String.t() | atom() | number(),
  stop_periods: String.t() | atom() | number(),
  stop_silence: String.t() | atom() | number(),
  stop_threshold: String.t() | atom() | number(),
  timestamp: String.t() | atom() | number(),
  window: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Remove silence.

Options

  • detection (int): set how silence is detected (from 0 to 5) (default rms)
    • avg (0) — use mean absolute values of samples
    • rms (1) — use root mean squared values of samples
    • peak (2) — use max absolute values of samples
    • median (3) — use median of absolute values of samples
    • ptp (4) — use absolute of max peak to min peak difference
    • dev (5) — use standard deviation from values of samples
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • start_duration (duration): set start duration of non-silence part (default 0)
  • start_mode (int): set which channel will trigger trimming from start (from 0 to 1) (default any)
    • any (0)
    • all (1)
  • start_periods (int): set periods of silence parts to skip from start (from 0 to 9000) (default 0)
  • start_silence (duration): set start duration of silence part to keep (default 0)
  • start_threshold (double): set threshold for start silence detection (from 0 to DBL_MAX) (default 0)
  • stop_duration (duration): set stop duration of silence part (default 0)
  • stop_mode (int): set which channel will trigger trimming from end (from 0 to 1) (default all)
    • any (0)
    • all (1)
  • stop_periods (int): set periods of silence parts to skip from end (from -9000 to 9000) (default 0)
  • stop_silence (duration): set stop duration of silence part to keep (default 0)
  • stop_threshold (double): set threshold for stop silence detection (from 0 to DBL_MAX) (default 0)
  • timestamp (int): set how every output frame timestamp is processed (from 0 to 1) (default write)
    • write (0) — full timestamps rewrite, keep only the start time
    • copy (1) — non-dropped frames are left with same timestamp
  • window (duration): set duration of window for silence detection (default 0.02)

See FFix.Filter for pipelines, expressions, and output handling.

sofalizer(audio_0, options \\ [])

@spec sofalizer(FFix.Graph.StreamRef.t(),
  anglestep: String.t() | atom() | number(),
  elevation: String.t() | atom() | number(),
  framesize: String.t() | atom() | number(),
  gain: String.t() | atom() | number(),
  interpolate: String.t() | atom() | number(),
  lfegain: String.t() | atom() | number(),
  minphase: String.t() | atom() | number(),
  normalize: String.t() | atom() | number(),
  radius: String.t() | atom() | number(),
  radstep: String.t() | atom() | number(),
  rotation: String.t() | atom() | number(),
  sofa: String.t() | atom() | number(),
  speakers: String.t() | atom() | number(),
  type: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

SOFAlizer (Spatially Oriented Format for Acoustics).

Options

  • anglestep (float): set neighbor search angle step (from 0.01 to 10) (default 0.5)
  • elevation (float): set elevation (from -90 to 90) (default 0)
  • framesize (int): set frame size (from 1024 to 96000) (default 1024)
  • gain (float): set gain in dB (from -20 to 40) (default 0)
  • interpolate (boolean): interpolate IRs from neighbors (default false)
  • lfegain (float): set lfe gain (from -20 to 40) (default 0)
  • minphase (boolean): minphase IRs (default false)
  • normalize (boolean): normalize IRs (default true)
  • radius (float): set radius (from 0 to 5) (default 1)
  • radstep (float): set neighbor search radius step (from 0.01 to 1) (default 0.01)
  • rotation (float): set rotation (from -360 to 360) (default 0)
  • sofa (string): sofa filename
  • speakers (string): set speaker custom positions
  • type (int): set processing (from 0 to 1) (default freq)
    • time (0) — time domain
    • freq (1) — frequency domain

See FFix.Filter for pipelines, expressions, and output handling.

speechnorm(audio_0, options \\ [])

@spec speechnorm(FFix.Graph.StreamRef.t(),
  c: String.t() | atom() | number(),
  channels: String.t() | atom() | number(),
  compression: String.t() | atom() | number(),
  e: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  expansion: String.t() | atom() | number(),
  f: String.t() | atom() | number(),
  fall: String.t() | atom() | number(),
  h: String.t() | atom() | number(),
  i: String.t() | atom() | number(),
  invert: String.t() | atom() | number(),
  l: String.t() | atom() | number(),
  link: String.t() | atom() | number(),
  m: String.t() | atom() | number(),
  p: String.t() | atom() | number(),
  peak: String.t() | atom() | number(),
  r: String.t() | atom() | number(),
  raise: String.t() | atom() | number(),
  rms: String.t() | atom() | number(),
  t: String.t() | atom() | number(),
  threshold: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Speech Normalizer.

Options

  • c (double): set the max compression factor (from 1 to 50) (default 2)
  • channels (string): set channels to filter (default "all")
  • compression (double): set the max compression factor (from 1 to 50) (default 2)
  • e (double): set the max expansion factor (from 1 to 50) (default 2)
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • expansion (double): set the max expansion factor (from 1 to 50) (default 2)
  • f (double): set the compression raising amount (from 0 to 1) (default 0.001)
  • fall (double): set the compression raising amount (from 0 to 1) (default 0.001)
  • h (string): set channels to filter (default "all")
  • i (boolean): set inverted filtering (default false)
  • invert (boolean): set inverted filtering (default false)
  • l (boolean): set linked channels filtering (default false)
  • link (boolean): set linked channels filtering (default false)
  • m (double): set the RMS value (from 0 to 1) (default 0)
  • p (double): set the peak value (from 0 to 1) (default 0.95)
  • peak (double): set the peak value (from 0 to 1) (default 0.95)
  • r (double): set the expansion raising amount (from 0 to 1) (default 0.001)
  • raise (double): set the expansion raising amount (from 0 to 1) (default 0.001)
  • rms (double): set the RMS value (from 0 to 1) (default 0)
  • t (double): set the threshold value (from 0 to 1) (default 0)
  • threshold (double): set the threshold value (from 0 to 1) (default 0)

See FFix.Filter for pipelines, expressions, and output handling.

stereotools(audio_0, options \\ [])

@spec stereotools(FFix.Graph.StreamRef.t(),
  balance_in: String.t() | atom() | number(),
  balance_out: String.t() | atom() | number(),
  base: String.t() | atom() | number(),
  bmode_in: String.t() | atom() | number(),
  bmode_out: String.t() | atom() | number(),
  delay: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  level_in: String.t() | atom() | number(),
  level_out: String.t() | atom() | number(),
  mlev: String.t() | atom() | number(),
  mode: String.t() | atom() | number(),
  mpan: String.t() | atom() | number(),
  mutel: String.t() | atom() | number(),
  muter: String.t() | atom() | number(),
  phase: String.t() | atom() | number(),
  phasel: String.t() | atom() | number(),
  phaser: String.t() | atom() | number(),
  sbal: String.t() | atom() | number(),
  sclevel: String.t() | atom() | number(),
  slev: String.t() | atom() | number(),
  softclip: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Apply various stereo tools.

Options

  • balance_in (double): set balance in (from -1 to 1) (default 0)
  • balance_out (double): set balance out (from -1 to 1) (default 0)
  • base (double): set stereo base (from -1 to 1) (default 0)
  • bmode_in (int): set balance in mode (from 0 to 2) (default balance)
    • balance (0)
    • amplitude (1)
    • power (2)
  • bmode_out (int): set balance out mode (from 0 to 2) (default balance)
    • balance (0)
    • amplitude (1)
    • power (2)
  • delay (double): set delay (from -20 to 20) (default 0)
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • level_in (double): set level in (from 0.015625 to 64) (default 1)
  • level_out (double): set level out (from 0.015625 to 64) (default 1)
  • mlev (double): set middle level (from 0.015625 to 64) (default 1)
  • mode (int): set stereo mode (from 0 to 10) (default lr>lr)
    • lr>lr (0)
    • lr>ms (1)
    • ms>lr (2)
    • lr>ll (3)
    • lr>rr (4)
    • lr>l+r (5)
    • lr>rl (6)
    • ms>ll (7)
    • ms>rr (8)
    • ms>rl (9)
    • lr>l-r (10)
  • mpan (double): set middle pan (from -1 to 1) (default 0)
  • mutel (boolean): mute L (default false)
  • muter (boolean): mute R (default false)
  • phase (double): set stereo phase (from 0 to 360) (default 0)
  • phasel (boolean): phase L (default false)
  • phaser (boolean): phase R (default false)
  • sbal (double): set side balance (from -1 to 1) (default 0)
  • sclevel (double): set S/C level (from 1 to 100) (default 1)
  • slev (double): set side level (from 0.015625 to 64) (default 1)
  • softclip (boolean): enable softclip (default false)

See FFix.Filter for pipelines, expressions, and output handling.

stereowiden(audio_0, options \\ [])

@spec stereowiden(FFix.Graph.StreamRef.t(),
  crossfeed: String.t() | atom() | number(),
  delay: String.t() | atom() | number(),
  drymix: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  feedback: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Apply stereo widening effect.

Options

  • crossfeed (float): set cross feed (from 0 to 0.8) (default 0.3)
  • delay (float): set delay time (from 1 to 100) (default 20)
  • drymix (float): set dry-mix (from 0 to 1) (default 0.8)
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • feedback (float): set feedback gain (from 0 to 0.9) (default 0.3)

See FFix.Filter for pipelines, expressions, and output handling.

superequalizer(audio_0, options \\ [])

@spec superequalizer(FFix.Graph.StreamRef.t(),
  "10b": String.t() | atom() | number(),
  "11b": String.t() | atom() | number(),
  "12b": String.t() | atom() | number(),
  "13b": String.t() | atom() | number(),
  "14b": String.t() | atom() | number(),
  "15b": String.t() | atom() | number(),
  "16b": String.t() | atom() | number(),
  "17b": String.t() | atom() | number(),
  "18b": String.t() | atom() | number(),
  "1b": String.t() | atom() | number(),
  "2b": String.t() | atom() | number(),
  "3b": String.t() | atom() | number(),
  "4b": String.t() | atom() | number(),
  "5b": String.t() | atom() | number(),
  "6b": String.t() | atom() | number(),
  "7b": String.t() | atom() | number(),
  "8b": String.t() | atom() | number(),
  "9b": String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Apply 18 band equalization filter.

Options

  • 10b (float): set 1480Hz band gain (from 0 to 20) (default 1)
  • 11b (float): set 2093Hz band gain (from 0 to 20) (default 1)
  • 12b (float): set 2960Hz band gain (from 0 to 20) (default 1)
  • 13b (float): set 4186Hz band gain (from 0 to 20) (default 1)
  • 14b (float): set 5920Hz band gain (from 0 to 20) (default 1)
  • 15b (float): set 8372Hz band gain (from 0 to 20) (default 1)
  • 16b (float): set 11840Hz band gain (from 0 to 20) (default 1)
  • 17b (float): set 16744Hz band gain (from 0 to 20) (default 1)
  • 18b (float): set 20000Hz band gain (from 0 to 20) (default 1)
  • 1b (float): set 65Hz band gain (from 0 to 20) (default 1)
  • 2b (float): set 92Hz band gain (from 0 to 20) (default 1)
  • 3b (float): set 131Hz band gain (from 0 to 20) (default 1)
  • 4b (float): set 185Hz band gain (from 0 to 20) (default 1)
  • 5b (float): set 262Hz band gain (from 0 to 20) (default 1)
  • 6b (float): set 370Hz band gain (from 0 to 20) (default 1)
  • 7b (float): set 523Hz band gain (from 0 to 20) (default 1)
  • 8b (float): set 740Hz band gain (from 0 to 20) (default 1)
  • 9b (float): set 1047Hz band gain (from 0 to 20) (default 1)

See FFix.Filter for pipelines, expressions, and output handling.

surround(audio_0, options \\ [])

@spec surround(FFix.Graph.StreamRef.t(),
  allx: String.t() | atom() | number(),
  ally: String.t() | atom() | number(),
  angle: String.t() | atom() | number(),
  bc_in: String.t() | atom() | number(),
  bc_out: String.t() | atom() | number(),
  bcx: String.t() | atom() | number(),
  bcy: String.t() | atom() | number(),
  bl_in: String.t() | atom() | number(),
  bl_out: String.t() | atom() | number(),
  blx: String.t() | atom() | number(),
  bly: String.t() | atom() | number(),
  br_in: String.t() | atom() | number(),
  br_out: String.t() | atom() | number(),
  brx: String.t() | atom() | number(),
  bry: String.t() | atom() | number(),
  chl_in: String.t() | atom() | number(),
  chl_out: String.t() | atom() | number(),
  fc_in: String.t() | atom() | number(),
  fc_out: String.t() | atom() | number(),
  fcx: String.t() | atom() | number(),
  fcy: String.t() | atom() | number(),
  fl_in: String.t() | atom() | number(),
  fl_out: String.t() | atom() | number(),
  flx: String.t() | atom() | number(),
  fly: String.t() | atom() | number(),
  focus: String.t() | atom() | number(),
  fr_in: String.t() | atom() | number(),
  fr_out: String.t() | atom() | number(),
  frx: String.t() | atom() | number(),
  fry: String.t() | atom() | number(),
  level_in: String.t() | atom() | number(),
  level_out: String.t() | atom() | number(),
  lfe: String.t() | atom() | number(),
  lfe_high: String.t() | atom() | number(),
  lfe_in: String.t() | atom() | number(),
  lfe_low: String.t() | atom() | number(),
  lfe_mode: String.t() | atom() | number(),
  lfe_out: String.t() | atom() | number(),
  overlap: String.t() | atom() | number(),
  sl_in: String.t() | atom() | number(),
  sl_out: String.t() | atom() | number(),
  slx: String.t() | atom() | number(),
  sly: String.t() | atom() | number(),
  smooth: String.t() | atom() | number(),
  sr_in: String.t() | atom() | number(),
  sr_out: String.t() | atom() | number(),
  srx: String.t() | atom() | number(),
  sry: String.t() | atom() | number(),
  win_func: String.t() | atom() | number(),
  win_size: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Apply audio surround upmix filter.

Options

  • allx (float): set all channel's x spread (from -1 to 15) (default -1)
  • ally (float): set all channel's y spread (from -1 to 15) (default -1)
  • angle (float): set soundfield transform angle (from 0 to 360) (default 90)
  • bc_in (float): set back center channel input level (from 0 to 10) (default 1)
  • bc_out (float): set back center channel output level (from 0 to 10) (default 1)
  • bcx (float): set back center channel x spread (from 0.06 to 15) (default 0.5)
  • bcy (float): set back center channel y spread (from 0.06 to 15) (default 0.5)
  • bl_in (float): set back left channel input level (from 0 to 10) (default 1)
  • bl_out (float): set back left channel output level (from 0 to 10) (default 1)
  • blx (float): set back left channel x spread (from 0.06 to 15) (default 0.5)
  • bly (float): set back left channel y spread (from 0.06 to 15) (default 0.5)
  • br_in (float): set back right channel input level (from 0 to 10) (default 1)
  • br_out (float): set back right channel output level (from 0 to 10) (default 1)
  • brx (float): set back right channel x spread (from 0.06 to 15) (default 0.5)
  • bry (float): set back right channel y spread (from 0.06 to 15) (default 0.5)
  • chl_in (channel_layout): set input channel layout (default "stereo")
  • chl_out (channel_layout): set output channel layout (default "5.1")
  • fc_in (float): set front center channel input level (from 0 to 10) (default 1)
  • fc_out (float): set front center channel output level (from 0 to 10) (default 1)
  • fcx (float): set front center channel x spread (from 0.06 to 15) (default 0.5)
  • fcy (float): set front center channel y spread (from 0.06 to 15) (default 0.5)
  • fl_in (float): set front left channel input level (from 0 to 10) (default 1)
  • fl_out (float): set front left channel output level (from 0 to 10) (default 1)
  • flx (float): set front left channel x spread (from 0.06 to 15) (default 0.5)
  • fly (float): set front left channel y spread (from 0.06 to 15) (default 0.5)
  • focus (float): set soundfield transform focus (from -1 to 1) (default 0)
  • fr_in (float): set front right channel input level (from 0 to 10) (default 1)
  • fr_out (float): set front right channel output level (from 0 to 10) (default 1)
  • frx (float): set front right channel x spread (from 0.06 to 15) (default 0.5)
  • fry (float): set front right channel y spread (from 0.06 to 15) (default 0.5)
  • level_in (float): set input level (from 0 to 10) (default 1)
  • level_out (float): set output level (from 0 to 10) (default 1)
  • lfe (boolean): output LFE (default true)
  • lfe_high (int): LFE high cut off (from 0 to 512) (default 256)
  • lfe_in (float): set lfe channel input level (from 0 to 10) (default 1)
  • lfe_low (int): LFE low cut off (from 0 to 256) (default 128)
  • lfe_mode (int): set LFE channel mode (from 0 to 1) (default add)
    • add (0) — just add LFE channel
    • sub (1) — subtract LFE channel with others
  • lfe_out (float): set lfe channel output level (from 0 to 10) (default 1)
  • overlap (float): set window overlap (from 0 to 1) (default 0.5)
  • sl_in (float): set side left channel input level (from 0 to 10) (default 1)
  • sl_out (float): set side left channel output level (from 0 to 10) (default 1)
  • slx (float): set side left channel x spread (from 0.06 to 15) (default 0.5)
  • sly (float): set side left channel y spread (from 0.06 to 15) (default 0.5)
  • smooth (float): set temporal smoothness strength (from 0 to 1) (default 0)
  • sr_in (float): set side right channel input level (from 0 to 10) (default 1)
  • sr_out (float): set side right channel output level (from 0 to 10) (default 1)
  • srx (float): set side right channel x spread (from 0.06 to 15) (default 0.5)
  • sry (float): set side right channel y spread (from 0.06 to 15) (default 0.5)
  • win_func (int): set window function (from 0 to 20) (default hann)
    • rect (0) — Rectangular
    • bartlett (4) — Bartlett
    • hann (1) — Hann
    • hanning (1) — Hanning
    • hamming (2) — Hamming
    • blackman (3) — Blackman
    • welch (5) — Welch
    • flattop (6) — Flat-top
    • bharris (7) — Blackman-Harris
    • bnuttall (8) — Blackman-Nuttall
    • bhann (11) — Bartlett-Hann
    • sine (9) — Sine
    • nuttall (10) — Nuttall
    • lanczos (12) — Lanczos
    • gauss (13) — Gauss
    • tukey (14) — Tukey
    • dolph (15) — Dolph-Chebyshev
    • cauchy (16) — Cauchy
    • parzen (17) — Parzen
    • poisson (18) — Poisson
    • bohman (19) — Bohman
    • kaiser (20) — Kaiser
  • win_size (int): set window size (from 1024 to 65536) (default 4096)

See FFix.Filter for pipelines, expressions, and output handling.

tiltshelf(audio_0, options \\ [])

@spec tiltshelf(FFix.Graph.StreamRef.t(),
  a: String.t() | atom() | number(),
  b: String.t() | atom() | number(),
  blocksize: String.t() | atom() | number(),
  c: String.t() | atom() | number(),
  channels: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  f: String.t() | atom() | number(),
  frequency: String.t() | atom() | number(),
  g: String.t() | atom() | number(),
  gain: String.t() | atom() | number(),
  m: String.t() | atom() | number(),
  mix: String.t() | atom() | number(),
  n: String.t() | atom() | number(),
  normalize: String.t() | atom() | number(),
  p: String.t() | atom() | number(),
  poles: String.t() | atom() | number(),
  precision: String.t() | atom() | number(),
  r: String.t() | atom() | number(),
  t: String.t() | atom() | number(),
  transform: String.t() | atom() | number(),
  w: String.t() | atom() | number(),
  width: String.t() | atom() | number(),
  width_type: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Apply a tilt shelf filter.

Options

  • a (int): set transform type (from 0 to 6) (default di)
    • di (0) — direct form I
    • dii (1) — direct form II
    • tdi (2) — transposed direct form I
    • tdii (3) — transposed direct form II
    • latt (4) — lattice-ladder form
    • svf (5) — state variable filter form
    • zdf (6) — zero-delay filter form
  • b (int): set the block size (from 0 to 32768) (default 0)
  • blocksize (int): set the block size (from 0 to 32768) (default 0)
  • c (string): set channels to filter (default "all")
  • channels (string): set channels to filter (default "all")
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • f (double): set central frequency (from 0 to 999999) (default 3000)
  • frequency (double): set central frequency (from 0 to 999999) (default 3000)
  • g (double): set gain (from -900 to 900) (default 0)
  • gain (double): set gain (from -900 to 900) (default 0)
  • m (double): set mix (from 0 to 1) (default 1)
  • mix (double): set mix (from 0 to 1) (default 1)
  • n (boolean): normalize coefficients (default false)
  • normalize (boolean): normalize coefficients (default false)
  • p (int): set number of poles (from 1 to 2) (default 2)
  • poles (int): set number of poles (from 1 to 2) (default 2)
  • precision (int): set filtering precision (from -1 to 3) (default auto)
    • auto (-1) — automatic
    • s16 (0) — signed 16-bit
    • s32 (1) — signed 32-bit
    • f32 (2) — floating-point single
    • f64 (3) — floating-point double
  • r (int): set filtering precision (from -1 to 3) (default auto)
    • auto (-1) — automatic
    • s16 (0) — signed 16-bit
    • s32 (1) — signed 32-bit
    • f32 (2) — floating-point single
    • f64 (3) — floating-point double
  • t (int): set filter-width type (from 1 to 5) (default q)
    • h (1) — Hz
    • q (3) — Q-Factor
    • o (2) — octave
    • s (4) — slope
    • k (5) — kHz
  • transform (int): set transform type (from 0 to 6) (default di)
    • di (0) — direct form I
    • dii (1) — direct form II
    • tdi (2) — transposed direct form I
    • tdii (3) — transposed direct form II
    • latt (4) — lattice-ladder form
    • svf (5) — state variable filter form
    • zdf (6) — zero-delay filter form
  • w (double): set width (from 0 to 99999) (default 0.5)
  • width (double): set width (from 0 to 99999) (default 0.5)
  • width_type (int): set filter-width type (from 1 to 5) (default q)
    • h (1) — Hz
    • q (3) — Q-Factor
    • o (2) — octave
    • s (4) — slope
    • k (5) — kHz

See FFix.Filter for pipelines, expressions, and output handling.

treble(audio_0, options \\ [])

@spec treble(FFix.Graph.StreamRef.t(),
  a: String.t() | atom() | number(),
  b: String.t() | atom() | number(),
  blocksize: String.t() | atom() | number(),
  c: String.t() | atom() | number(),
  channels: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  f: String.t() | atom() | number(),
  frequency: String.t() | atom() | number(),
  g: String.t() | atom() | number(),
  gain: String.t() | atom() | number(),
  m: String.t() | atom() | number(),
  mix: String.t() | atom() | number(),
  n: String.t() | atom() | number(),
  normalize: String.t() | atom() | number(),
  p: String.t() | atom() | number(),
  poles: String.t() | atom() | number(),
  precision: String.t() | atom() | number(),
  r: String.t() | atom() | number(),
  t: String.t() | atom() | number(),
  transform: String.t() | atom() | number(),
  w: String.t() | atom() | number(),
  width: String.t() | atom() | number(),
  width_type: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Boost or cut upper frequencies.

Options

  • a (int): set transform type (from 0 to 6) (default di)
    • di (0) — direct form I
    • dii (1) — direct form II
    • tdi (2) — transposed direct form I
    • tdii (3) — transposed direct form II
    • latt (4) — lattice-ladder form
    • svf (5) — state variable filter form
    • zdf (6) — zero-delay filter form
  • b (int): set the block size (from 0 to 32768) (default 0)
  • blocksize (int): set the block size (from 0 to 32768) (default 0)
  • c (string): set channels to filter (default "all")
  • channels (string): set channels to filter (default "all")
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • f (double): set central frequency (from 0 to 999999) (default 3000)
  • frequency (double): set central frequency (from 0 to 999999) (default 3000)
  • g (double): set gain (from -900 to 900) (default 0)
  • gain (double): set gain (from -900 to 900) (default 0)
  • m (double): set mix (from 0 to 1) (default 1)
  • mix (double): set mix (from 0 to 1) (default 1)
  • n (boolean): normalize coefficients (default false)
  • normalize (boolean): normalize coefficients (default false)
  • p (int): set number of poles (from 1 to 2) (default 2)
  • poles (int): set number of poles (from 1 to 2) (default 2)
  • precision (int): set filtering precision (from -1 to 3) (default auto)
    • auto (-1) — automatic
    • s16 (0) — signed 16-bit
    • s32 (1) — signed 32-bit
    • f32 (2) — floating-point single
    • f64 (3) — floating-point double
  • r (int): set filtering precision (from -1 to 3) (default auto)
    • auto (-1) — automatic
    • s16 (0) — signed 16-bit
    • s32 (1) — signed 32-bit
    • f32 (2) — floating-point single
    • f64 (3) — floating-point double
  • t (int): set filter-width type (from 1 to 5) (default q)
    • h (1) — Hz
    • q (3) — Q-Factor
    • o (2) — octave
    • s (4) — slope
    • k (5) — kHz
  • transform (int): set transform type (from 0 to 6) (default di)
    • di (0) — direct form I
    • dii (1) — direct form II
    • tdi (2) — transposed direct form I
    • tdii (3) — transposed direct form II
    • latt (4) — lattice-ladder form
    • svf (5) — state variable filter form
    • zdf (6) — zero-delay filter form
  • w (double): set width (from 0 to 99999) (default 0.5)
  • width (double): set width (from 0 to 99999) (default 0.5)
  • width_type (int): set filter-width type (from 1 to 5) (default q)
    • h (1) — Hz
    • q (3) — Q-Factor
    • o (2) — octave
    • s (4) — slope
    • k (5) — kHz

See FFix.Filter for pipelines, expressions, and output handling.

tremolo(audio_0, options \\ [])

@spec tremolo(FFix.Graph.StreamRef.t(),
  d: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  f: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Apply tremolo effect.

Options

  • d (double): set depth as percentage (from 0 to 1) (default 0.5)
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • f (double): set frequency in hertz (from 0.1 to 20000) (default 5)

See FFix.Filter for pipelines, expressions, and output handling.

vibrato(audio_0, options \\ [])

@spec vibrato(FFix.Graph.StreamRef.t(),
  d: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  f: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Apply vibrato effect.

Options

  • d (double): set depth as percentage (from 0 to 1) (default 0.5)
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • f (double): set frequency in hertz (from 0.1 to 20000) (default 5)

See FFix.Filter for pipelines, expressions, and output handling.

virtualbass(audio_0, options \\ [])

@spec virtualbass(FFix.Graph.StreamRef.t(),
  cutoff: String.t() | atom() | number(),
  enable: String.t() | atom() | number(),
  strength: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Audio Virtual Bass.

Options

  • cutoff (double): set virtual bass cutoff (from 100 to 500) (default 250)
  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • strength (double): set virtual bass strength (from 0.5 to 3) (default 3)

See FFix.Filter for pipelines, expressions, and output handling.

volume(audio_0, options \\ [])

@spec volume(FFix.Graph.StreamRef.t(),
  enable: String.t() | atom() | number(),
  eval: String.t() | atom() | number(),
  precision: String.t() | atom() | number(),
  replaygain: String.t() | atom() | number(),
  replaygain_noclip: String.t() | atom() | number(),
  replaygain_preamp: String.t() | atom() | number(),
  volume: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Change input volume.

Example

FFix.Filter.volume(audio, volume: 0.5)

Options

  • enable (string): timeline expression evaluated before each frame; the filter is enabled when non-zero
  • eval (int): specify when to evaluate expressions (from 0 to 1) (default once)
    • once (0) — eval volume expression once
    • frame (1) — eval volume expression per-frame
  • precision (int): select mathematical precision (from 0 to 2) (default float)
    • fixed (0) — select 8-bit fixed-point
    • float (1) — select 32-bit floating-point
    • double (2) — select 64-bit floating-point
  • replaygain (int): Apply replaygain side data when present (from 0 to 3) (default drop)
    • drop (0) — replaygain side data is dropped
    • ignore (1) — replaygain side data is ignored
    • track (2) — track gain is preferred
    • album (3) — album gain is preferred
  • replaygain_noclip (boolean): Apply replaygain clipping prevention (default true)
  • replaygain_preamp (double): Apply replaygain pre-amplification (from -15 to 15) (default 0)
  • volume (string): set volume adjustment expression (default "1.0")

See FFix.Filter for pipelines, expressions, and output handling.

volumedetect(audio_0, options \\ [])

@spec volumedetect(FFix.Graph.StreamRef.t(), keyword()) :: FFix.Graph.StreamRef.t()

Detect audio volume.

Options

See FFix.Filter for pipelines, expressions, and output handling.

Sources and sinks

abuffer(options \\ [])

@spec abuffer(
  channel_layout: String.t() | atom() | number(),
  channels: String.t() | atom() | number(),
  sample_fmt: String.t() | atom() | number(),
  sample_rate: String.t() | atom() | number(),
  time_base: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Buffer audio frames, and make them accessible to the filterchain.

Options

  • channel_layout (string)
  • channels (int): (from 0 to INT_MAX) (default 0)
  • sample_fmt (sample_fmt): (default none)
  • sample_rate (int): (from 0 to INT_MAX) (default 0)
  • time_base (rational): (from 0 to INT_MAX) (default 0/1)

See FFix.Filter for pipelines, expressions, and output handling.

abuffersink(audio_0, options \\ [])

@spec abuffersink(FFix.Graph.StreamRef.t(),
  all_channel_counts: String.t() | atom() | number(),
  ch_layouts: String.t() | atom() | number(),
  sample_fmts: String.t() | atom() | number(),
  sample_rates: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.Terminal.t()

Buffer audio frames, and make them available to the end of the filter graph.

Options

  • all_channel_counts (boolean): accept all channel counts (default false)
  • ch_layouts (string): set a '|'-separated list of supported channel layouts
  • sample_fmts (binary): set the supported sample formats
  • sample_rates (binary): set the supported sample rates

See FFix.Filter for pipelines, expressions, and output handling.

aevalsrc(options \\ [])

@spec aevalsrc(
  c: String.t() | atom() | number(),
  channel_layout: String.t() | atom() | number(),
  d: String.t() | atom() | number(),
  duration: String.t() | atom() | number(),
  exprs: String.t() | atom() | number(),
  n: String.t() | atom() | number(),
  nb_samples: String.t() | atom() | number(),
  s: String.t() | atom() | number(),
  sample_rate: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Generate an audio signal generated by an expression.

Options

  • c (string): set channel layout
  • channel_layout (string): set channel layout
  • d (duration): set audio duration (default -0.000001)
  • duration (duration): set audio duration (default -0.000001)
  • exprs (string): set the '|'-separated list of channels expressions
  • n (int): set the number of samples per requested frame (from 0 to INT_MAX) (default 1024)
  • nb_samples (int): set the number of samples per requested frame (from 0 to INT_MAX) (default 1024)
  • s (string): set the sample rate (default "44100")
  • sample_rate (string): set the sample rate (default "44100")

See FFix.Filter for pipelines, expressions, and output handling.

afdelaysrc(options \\ [])

@spec afdelaysrc(
  c: String.t() | atom() | number(),
  channel_layout: String.t() | atom() | number(),
  d: String.t() | atom() | number(),
  delay: String.t() | atom() | number(),
  n: String.t() | atom() | number(),
  nb_samples: String.t() | atom() | number(),
  r: String.t() | atom() | number(),
  sample_rate: String.t() | atom() | number(),
  t: String.t() | atom() | number(),
  taps: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Generate a Fractional delay FIR coefficients.

Options

  • c (channel_layout): set channel layout (default "stereo")
  • channel_layout (channel_layout): set channel layout (default "stereo")
  • d (double): set fractional delay (from 0 to 32767) (default 0)
  • delay (double): set fractional delay (from 0 to 32767) (default 0)
  • n (int): set the number of samples per requested frame (from 1 to INT_MAX) (default 1024)
  • nb_samples (int): set the number of samples per requested frame (from 1 to INT_MAX) (default 1024)
  • r (int): set sample rate (from 1 to INT_MAX) (default 44100)
  • sample_rate (int): set sample rate (from 1 to INT_MAX) (default 44100)
  • t (int): set number of taps for delay filter (from 0 to 32768) (default 0)
  • taps (int): set number of taps for delay filter (from 0 to 32768) (default 0)

See FFix.Filter for pipelines, expressions, and output handling.

afireqsrc(options \\ [])

@spec afireqsrc(
  b: String.t() | atom() | number(),
  bands: String.t() | atom() | number(),
  g: String.t() | atom() | number(),
  gains: String.t() | atom() | number(),
  h: String.t() | atom() | number(),
  i: String.t() | atom() | number(),
  interp: String.t() | atom() | number(),
  n: String.t() | atom() | number(),
  nb_samples: String.t() | atom() | number(),
  p: String.t() | atom() | number(),
  phase: String.t() | atom() | number(),
  preset: String.t() | atom() | number(),
  r: String.t() | atom() | number(),
  sample_rate: String.t() | atom() | number(),
  t: String.t() | atom() | number(),
  taps: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Generate a FIR equalizer coefficients audio stream.

Options

  • b (string): set central frequency values per band (default "25 40 63 100 160 250 400 630 1000 1600 2500 4000 6300 10000 16000 24000")
  • bands (string): set central frequency values per band (default "25 40 63 100 160 250 400 630 1000 1600 2500 4000 6300 10000 16000 24000")
  • g (string): set gain values per band (default "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0")
  • gains (string): set gain values per band (default "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0")
  • h (int): set the phase (from 0 to 1) (default min)
    • linear (0) — linear phase
    • min (1) — minimum phase
  • i (int): set the interpolation (from 0 to 1) (default linear)
    • linear (0)
    • cubic (1)
  • interp (int): set the interpolation (from 0 to 1) (default linear)
    • linear (0)
    • cubic (1)
  • n (int): set the number of samples per requested frame (from 1 to INT_MAX) (default 1024)
  • nb_samples (int): set the number of samples per requested frame (from 1 to INT_MAX) (default 1024)
  • p (int): set equalizer preset (from -1 to 17) (default flat)
    • custom (-1)
    • flat (0)
    • acoustic (1)
    • bass (2)
    • beats (3)
    • classic (4)
    • clear (5)
    • deep bass (6)
    • dubstep (7)
    • electronic (8)
    • hardstyle (9)
    • hip-hop (10)
    • jazz (11)
    • metal (12)
    • movie (13)
    • pop (14)
    • r&b (15)
    • rock (16)
    • vocal booster (17)
  • phase (int): set the phase (from 0 to 1) (default min)
    • linear (0) — linear phase
    • min (1) — minimum phase
  • preset (int): set equalizer preset (from -1 to 17) (default flat)
    • custom (-1)
    • flat (0)
    • acoustic (1)
    • bass (2)
    • beats (3)
    • classic (4)
    • clear (5)
    • deep bass (6)
    • dubstep (7)
    • electronic (8)
    • hardstyle (9)
    • hip-hop (10)
    • jazz (11)
    • metal (12)
    • movie (13)
    • pop (14)
    • r&b (15)
    • rock (16)
    • vocal booster (17)
  • r (int): set sample rate (from 1 to INT_MAX) (default 44100)
  • sample_rate (int): set sample rate (from 1 to INT_MAX) (default 44100)
  • t (int): set number of taps (from 16 to 65535) (default 4096)
  • taps (int): set number of taps (from 16 to 65535) (default 4096)

See FFix.Filter for pipelines, expressions, and output handling.

afirsrc(options \\ [])

@spec afirsrc(
  f: String.t() | atom() | number(),
  frequency: String.t() | atom() | number(),
  m: String.t() | atom() | number(),
  magnitude: String.t() | atom() | number(),
  n: String.t() | atom() | number(),
  nb_samples: String.t() | atom() | number(),
  p: String.t() | atom() | number(),
  phase: String.t() | atom() | number(),
  r: String.t() | atom() | number(),
  sample_rate: String.t() | atom() | number(),
  t: String.t() | atom() | number(),
  taps: String.t() | atom() | number(),
  w: String.t() | atom() | number(),
  win_func: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Generate a FIR coefficients audio stream.

Options

  • f (string): set frequency points (default "0 1")
  • frequency (string): set frequency points (default "0 1")
  • m (string): set magnitude values (default "1 1")
  • magnitude (string): set magnitude values (default "1 1")
  • n (int): set the number of samples per requested frame (from 1 to INT_MAX) (default 1024)
  • nb_samples (int): set the number of samples per requested frame (from 1 to INT_MAX) (default 1024)
  • p (string): set phase values (default "0 0")
  • phase (string): set phase values (default "0 0")
  • r (int): set sample rate (from 1 to INT_MAX) (default 44100)
  • sample_rate (int): set sample rate (from 1 to INT_MAX) (default 44100)
  • t (int): set number of taps (from 9 to 65535) (default 1025)
  • taps (int): set number of taps (from 9 to 65535) (default 1025)
  • w (int): set window function (from 0 to 20) (default blackman)
    • rect (0) — Rectangular
    • bartlett (4) — Bartlett
    • hann (1) — Hann
    • hanning (1) — Hanning
    • hamming (2) — Hamming
    • blackman (3) — Blackman
    • welch (5) — Welch
    • flattop (6) — Flat-top
    • bharris (7) — Blackman-Harris
    • bnuttall (8) — Blackman-Nuttall
    • bhann (11) — Bartlett-Hann
    • sine (9) — Sine
    • nuttall (10) — Nuttall
    • lanczos (12) — Lanczos
    • gauss (13) — Gauss
    • tukey (14) — Tukey
    • dolph (15) — Dolph-Chebyshev
    • cauchy (16) — Cauchy
    • parzen (17) — Parzen
    • poisson (18) — Poisson
    • bohman (19) — Bohman
    • kaiser (20) — Kaiser
    • rect (0) — Rectangular
    • bartlett (4) — Bartlett
    • hann (1) — Hann
    • hanning (1) — Hanning
    • hamming (2) — Hamming
    • blackman (3) — Blackman
    • welch (5) — Welch
    • flattop (6) — Flat-top
    • bharris (7) — Blackman-Harris
    • bnuttall (8) — Blackman-Nuttall
    • bhann (11) — Bartlett-Hann
    • sine (9) — Sine
    • nuttall (10) — Nuttall
    • lanczos (12) — Lanczos
    • gauss (13) — Gauss
    • tukey (14) — Tukey
    • dolph (15) — Dolph-Chebyshev
    • cauchy (16) — Cauchy
    • parzen (17) — Parzen
    • poisson (18) — Poisson
    • bohman (19) — Bohman
    • kaiser (20) — Kaiser
  • win_func (int): set window function (from 0 to 20) (default blackman)
    • rect (0) — Rectangular
    • bartlett (4) — Bartlett
    • hann (1) — Hann
    • hanning (1) — Hanning
    • hamming (2) — Hamming
    • blackman (3) — Blackman
    • welch (5) — Welch
    • flattop (6) — Flat-top
    • bharris (7) — Blackman-Harris
    • bnuttall (8) — Blackman-Nuttall
    • bhann (11) — Bartlett-Hann
    • sine (9) — Sine
    • nuttall (10) — Nuttall
    • lanczos (12) — Lanczos
    • gauss (13) — Gauss
    • tukey (14) — Tukey
    • dolph (15) — Dolph-Chebyshev
    • cauchy (16) — Cauchy
    • parzen (17) — Parzen
    • poisson (18) — Poisson
    • bohman (19) — Bohman
    • kaiser (20) — Kaiser
    • rect (0) — Rectangular
    • bartlett (4) — Bartlett
    • hann (1) — Hann
    • hanning (1) — Hanning
    • hamming (2) — Hamming
    • blackman (3) — Blackman
    • welch (5) — Welch
    • flattop (6) — Flat-top
    • bharris (7) — Blackman-Harris
    • bnuttall (8) — Blackman-Nuttall
    • bhann (11) — Bartlett-Hann
    • sine (9) — Sine
    • nuttall (10) — Nuttall
    • lanczos (12) — Lanczos
    • gauss (13) — Gauss
    • tukey (14) — Tukey
    • dolph (15) — Dolph-Chebyshev
    • cauchy (16) — Cauchy
    • parzen (17) — Parzen
    • poisson (18) — Poisson
    • bohman (19) — Bohman
    • kaiser (20) — Kaiser

See FFix.Filter for pipelines, expressions, and output handling.

allrgb(options \\ [])

@spec allrgb(
  d: String.t() | atom() | number(),
  duration: String.t() | atom() | number(),
  r: String.t() | atom() | number(),
  rate: String.t() | atom() | number(),
  sar: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Generate all RGB colors.

Options

  • d (duration): set video duration (default -0.000001)
  • duration (duration): set video duration (default -0.000001)
  • r (video_rate): set video rate (default "25")
  • rate (video_rate): set video rate (default "25")
  • sar (rational): set video sample aspect ratio (from 0 to INT_MAX) (default 1/1)

See FFix.Filter for pipelines, expressions, and output handling.

allyuv(options \\ [])

@spec allyuv(
  d: String.t() | atom() | number(),
  duration: String.t() | atom() | number(),
  r: String.t() | atom() | number(),
  rate: String.t() | atom() | number(),
  sar: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Generate all yuv colors.

Options

  • d (duration): set video duration (default -0.000001)
  • duration (duration): set video duration (default -0.000001)
  • r (video_rate): set video rate (default "25")
  • rate (video_rate): set video rate (default "25")
  • sar (rational): set video sample aspect ratio (from 0 to INT_MAX) (default 1/1)

See FFix.Filter for pipelines, expressions, and output handling.

amovie(options \\ [])

@spec amovie(
  dec_threads: String.t() | atom() | number(),
  discontinuity: String.t() | atom() | number(),
  f: String.t() | atom() | number(),
  filename: String.t() | atom() | number(),
  format_name: String.t() | atom() | number(),
  format_opts: String.t() | atom() | number(),
  loop: String.t() | atom() | number(),
  s: String.t() | atom() | number(),
  seek_point: String.t() | atom() | number(),
  si: String.t() | atom() | number(),
  sp: String.t() | atom() | number(),
  stream_index: String.t() | atom() | number(),
  streams: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) ::
  FFix.Graph.StreamRef.t()
  | [FFix.Graph.StreamRef.t()]
  | FFix.Graph.Terminal.t()

Read audio from a movie source.

Options

  • dec_threads (int): set the number of threads for decoding (from 0 to INT_MAX) (default 0)
  • discontinuity (duration): set discontinuity threshold (default 0)
  • f (string): set format name
  • filename (string)
  • format_name (string): set format name
  • format_opts (dictionary): set format options for the opened file
  • loop (int): set loop count (from 0 to INT_MAX) (default 1)
  • s (string): set streams
  • seek_point (double): set seekpoint (seconds) (from 0 to 9.22337e+12) (default 0)
  • si (int): set stream index (from -1 to INT_MAX) (default -1)
  • sp (double): set seekpoint (seconds) (from 0 to 9.22337e+12) (default 0)
  • stream_index (int): set stream index (from -1 to INT_MAX) (default -1)
  • streams (string): set streams

See FFix.Filter for pipelines, expressions, and output handling.

anoisesrc(options \\ [])

@spec anoisesrc(
  a: String.t() | atom() | number(),
  amplitude: String.t() | atom() | number(),
  c: String.t() | atom() | number(),
  color: String.t() | atom() | number(),
  colour: String.t() | atom() | number(),
  d: String.t() | atom() | number(),
  density: String.t() | atom() | number(),
  duration: String.t() | atom() | number(),
  n: String.t() | atom() | number(),
  nb_samples: String.t() | atom() | number(),
  r: String.t() | atom() | number(),
  s: String.t() | atom() | number(),
  sample_rate: String.t() | atom() | number(),
  seed: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Generate a noise audio signal.

Options

  • a (double): set amplitude (from 0 to 1) (default 1)
  • amplitude (double): set amplitude (from 0 to 1) (default 1)
  • c (int): set noise color (from 0 to 5) (default white)
    • white (0)
    • pink (1)
    • brown (2)
    • blue (3)
    • violet (4)
    • velvet (5)
  • color (int): set noise color (from 0 to 5) (default white)
    • white (0)
    • pink (1)
    • brown (2)
    • blue (3)
    • violet (4)
    • velvet (5)
  • colour (int): set noise color (from 0 to 5) (default white)
    • white (0)
    • pink (1)
    • brown (2)
    • blue (3)
    • violet (4)
    • velvet (5)
  • d (duration): set duration (default 0)
  • density (double): set density (from 0 to 1) (default 0.05)
  • duration (duration): set duration (default 0)
  • n (int): set the number of samples per requested frame (from 1 to INT_MAX) (default 1024)
  • nb_samples (int): set the number of samples per requested frame (from 1 to INT_MAX) (default 1024)
  • r (int): set sample rate (from 15 to INT_MAX) (default 48000)
  • s (int64): set random seed (from -1 to UINT32_MAX) (default -1)
  • sample_rate (int): set sample rate (from 15 to INT_MAX) (default 48000)
  • seed (int64): set random seed (from -1 to UINT32_MAX) (default -1)

See FFix.Filter for pipelines, expressions, and output handling.

anullsink(audio_0, options \\ [])

Do absolutely nothing with the input audio.

Options

See FFix.Filter for pipelines, expressions, and output handling.

anullsrc(options \\ [])

@spec anullsrc(
  channel_layout: String.t() | atom() | number(),
  cl: String.t() | atom() | number(),
  d: String.t() | atom() | number(),
  duration: String.t() | atom() | number(),
  n: String.t() | atom() | number(),
  nb_samples: String.t() | atom() | number(),
  r: String.t() | atom() | number(),
  sample_rate: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Null audio source, return empty audio frames.

Options

  • channel_layout (channel_layout): set channel_layout (default "stereo")
  • cl (channel_layout): set channel_layout (default "stereo")
  • d (duration): set the audio duration (default -0.000001)
  • duration (duration): set the audio duration (default -0.000001)
  • n (int): set the number of samples per requested frame (from 1 to 65535) (default 1024)
  • nb_samples (int): set the number of samples per requested frame (from 1 to 65535) (default 1024)
  • r (int): set sample rate (from 1 to INT_MAX) (default 44100)
  • sample_rate (int): set sample rate (from 1 to INT_MAX) (default 44100)

See FFix.Filter for pipelines, expressions, and output handling.

avsynctest(options \\ [])

@spec avsynctest(
  a: String.t() | atom() | number(),
  ag: String.t() | atom() | number(),
  amplitude: String.t() | atom() | number(),
  bg: String.t() | atom() | number(),
  c: String.t() | atom() | number(),
  cycle: String.t() | atom() | number(),
  d: String.t() | atom() | number(),
  delay: String.t() | atom() | number(),
  dl: String.t() | atom() | number(),
  duration: String.t() | atom() | number(),
  fg: String.t() | atom() | number(),
  fr: String.t() | atom() | number(),
  framerate: String.t() | atom() | number(),
  p: String.t() | atom() | number(),
  period: String.t() | atom() | number(),
  s: String.t() | atom() | number(),
  samplerate: String.t() | atom() | number(),
  size: String.t() | atom() | number(),
  sr: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: [FFix.Graph.StreamRef.t()]

Generate an Audio Video Sync Test.

Options

  • a (float): set beep amplitude (from 0 to 1) (default 0.7)
  • ag (color): set additional color (default "gray")
  • amplitude (float): set beep amplitude (from 0 to 1) (default 0.7)
  • bg (color): set background color (default "black")
  • c (boolean): set delay cycle (default false)
  • cycle (boolean): set delay cycle (default false)
  • d (duration): set duration (default 0)
  • delay (int): set flash delay (from -30 to 30) (default 0)
  • dl (int): set flash delay (from -30 to 30) (default 0)
  • duration (duration): set duration (default 0)
  • fg (color): set foreground color (default "white")
  • fr (video_rate): set frame rate (default "30")
  • framerate (video_rate): set frame rate (default "30")
  • p (int): set beep period (from 1 to 99) (default 3)
  • period (int): set beep period (from 1 to 99) (default 3)
  • s (image_size): set frame size (default "hd720")
  • samplerate (int): set sample rate (from 8000 to 384000) (default 44100)
  • size (image_size): set frame size (default "hd720")
  • sr (int): set sample rate (from 8000 to 384000) (default 44100)

See FFix.Filter for pipelines, expressions, and output handling.

buffer(options \\ [])

@spec buffer(
  colorspace: String.t() | atom() | number(),
  frame_rate: String.t() | atom() | number(),
  height: String.t() | atom() | number(),
  pix_fmt: String.t() | atom() | number(),
  pixel_aspect: String.t() | atom() | number(),
  range: String.t() | atom() | number(),
  sar: String.t() | atom() | number(),
  time_base: String.t() | atom() | number(),
  video_size: String.t() | atom() | number(),
  width: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Buffer video frames, and make them accessible to the filterchain.

Options

  • colorspace (int): select colorspace (from 0 to 17) (default unknown)
    • gbr (0)
    • bt709 (1)
    • unknown (2)
    • fcc (4)
    • bt470bg (5)
    • smpte170m (6)
    • smpte240m (7)
    • ycgco (8)
    • ycgco-re (16)
    • ycgco-ro (17)
    • bt2020nc (9)
    • bt2020c (10)
    • smpte2085 (11)
    • chroma-derived-nc (12)
    • chroma-derived-c (13)
    • ictcp (14)
    • ipt-c2 (15)
  • frame_rate (rational): (from 0 to DBL_MAX) (default 0/1)
  • height (int): (from 0 to INT_MAX) (default 0)
  • pix_fmt (pix_fmt): (default none)
  • pixel_aspect (rational): sample aspect ratio (from 0 to DBL_MAX) (default 0/1)
  • range (int): select color range (from 0 to 2) (default unspecified)
    • unspecified (0)
    • unknown (0)
    • limited (1)
    • tv (1)
    • mpeg (1)
    • full (2)
    • pc (2)
    • jpeg (2)
  • sar (rational): sample aspect ratio (from 0 to DBL_MAX) (default 0/1)
  • time_base (rational): (from 0 to DBL_MAX) (default 0/1)
  • video_size (image_size)
  • width (int): (from 0 to INT_MAX) (default 0)

See FFix.Filter for pipelines, expressions, and output handling.

buffersink(video_0, options \\ [])

@spec buffersink(FFix.Graph.StreamRef.t(),
  color_ranges: String.t() | atom() | number(),
  color_spaces: String.t() | atom() | number(),
  pix_fmts: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.Terminal.t()

Buffer video frames, and make them available to the end of the filter graph.

Options

  • color_ranges (binary): set the supported color ranges
  • color_spaces (binary): set the supported color spaces
  • pix_fmts (binary): set the supported pixel formats

See FFix.Filter for pipelines, expressions, and output handling.

cellauto(options \\ [])

@spec cellauto(
  f: String.t() | atom() | number(),
  filename: String.t() | atom() | number(),
  full: String.t() | atom() | number(),
  p: String.t() | atom() | number(),
  pattern: String.t() | atom() | number(),
  r: String.t() | atom() | number(),
  random_fill_ratio: String.t() | atom() | number(),
  random_seed: String.t() | atom() | number(),
  rate: String.t() | atom() | number(),
  ratio: String.t() | atom() | number(),
  rule: String.t() | atom() | number(),
  s: String.t() | atom() | number(),
  scroll: String.t() | atom() | number(),
  seed: String.t() | atom() | number(),
  size: String.t() | atom() | number(),
  start_full: String.t() | atom() | number(),
  stitch: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Create pattern generated by an elementary cellular automaton.

Options

  • f (string): read initial pattern from file
  • filename (string): read initial pattern from file
  • full (boolean): start filling the whole video (default true)
  • p (string): set initial pattern
  • pattern (string): set initial pattern
  • r (video_rate): set video rate (default "25")
  • random_fill_ratio (double): set fill ratio for filling initial grid randomly (from 0 to 1) (default 0.618034)
  • random_seed (int64): set the seed for filling the initial grid randomly (from -1 to UINT32_MAX) (default -1)
  • rate (video_rate): set video rate (default "25")
  • ratio (double): set fill ratio for filling initial grid randomly (from 0 to 1) (default 0.618034)
  • rule (int): set rule (from 0 to 255) (default 110)
  • s (image_size): set video size
  • scroll (boolean): scroll pattern downward (default true)
  • seed (int64): set the seed for filling the initial grid randomly (from -1 to UINT32_MAX) (default -1)
  • size (image_size): set video size
  • start_full (boolean): start filling the whole video (default false)
  • stitch (boolean): stitch boundaries (default true)

See FFix.Filter for pipelines, expressions, and output handling.

color(options \\ [])

@spec color(
  c: String.t() | atom() | number(),
  color: String.t() | atom() | number(),
  d: String.t() | atom() | number(),
  duration: String.t() | atom() | number(),
  r: String.t() | atom() | number(),
  rate: String.t() | atom() | number(),
  s: String.t() | atom() | number(),
  sar: String.t() | atom() | number(),
  size: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Provide an uniformly colored input.

Options

  • c (color): set color (default "black")
  • color (color): set color (default "black")
  • d (duration): set video duration (default -0.000001)
  • duration (duration): set video duration (default -0.000001)
  • r (video_rate): set video rate (default "25")
  • rate (video_rate): set video rate (default "25")
  • s (image_size): set video size (default "320x240")
  • sar (rational): set video sample aspect ratio (from 0 to INT_MAX) (default 1/1)
  • size (image_size): set video size (default "320x240")

See FFix.Filter for pipelines, expressions, and output handling.

color_vulkan(options \\ [])

@spec color_vulkan(
  c: String.t() | atom() | number(),
  color: String.t() | atom() | number(),
  d: String.t() | atom() | number(),
  duration: String.t() | atom() | number(),
  format: String.t() | atom() | number(),
  out_range: String.t() | atom() | number(),
  r: String.t() | atom() | number(),
  rate: String.t() | atom() | number(),
  s: String.t() | atom() | number(),
  sar: String.t() | atom() | number(),
  size: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Generate a constant color (Vulkan)

Options

  • c (color): set color (default "black")
  • color (color): set color (default "black")
  • d (duration): set video duration (default -0.000001)
  • duration (duration): set video duration (default -0.000001)
  • format (string): Output video format (software format of hardware frames)
  • out_range (int): Output colour range (from 0 to 2) (default 0) (from 0 to 2) (default 0)
    • full (2) — Full range
    • limited (1) — Limited range
    • jpeg (2) — Full range
    • mpeg (1) — Limited range
    • tv (1) — Limited range
    • pc (2) — Full range
  • r (video_rate): set video rate (default "60")
  • rate (video_rate): set video rate (default "60")
  • s (image_size): set video size (default "1920x1080")
  • sar (rational): set video sample aspect ratio (from 0 to INT_MAX) (default 1/1)
  • size (image_size): set video size (default "1920x1080")

See FFix.Filter for pipelines, expressions, and output handling.

colorchart(options \\ [])

@spec colorchart(
  d: String.t() | atom() | number(),
  duration: String.t() | atom() | number(),
  patch_size: String.t() | atom() | number(),
  preset: String.t() | atom() | number(),
  r: String.t() | atom() | number(),
  rate: String.t() | atom() | number(),
  sar: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Generate color checker chart.

Options

  • d (duration): set video duration (default -0.000001)
  • duration (duration): set video duration (default -0.000001)
  • patch_size (image_size): set the single patch size (default "64x64")
  • preset (int): set the color checker chart preset (from 0 to 1) (default reference)
    • reference (0) — reference
    • skintones (1) — skintones
  • r (video_rate): set video rate (default "25")
  • rate (video_rate): set video rate (default "25")
  • sar (rational): set video sample aspect ratio (from 0 to INT_MAX) (default 1/1)

See FFix.Filter for pipelines, expressions, and output handling.

colorspectrum(options \\ [])

@spec colorspectrum(
  d: String.t() | atom() | number(),
  duration: String.t() | atom() | number(),
  r: String.t() | atom() | number(),
  rate: String.t() | atom() | number(),
  s: String.t() | atom() | number(),
  sar: String.t() | atom() | number(),
  size: String.t() | atom() | number(),
  type: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Generate colors spectrum.

Options

  • d (duration): set video duration (default -0.000001)
  • duration (duration): set video duration (default -0.000001)
  • r (video_rate): set video rate (default "25")
  • rate (video_rate): set video rate (default "25")
  • s (image_size): set video size (default "320x240")
  • sar (rational): set video sample aspect ratio (from 0 to INT_MAX) (default 1/1)
  • size (image_size): set video size (default "320x240")
  • type (int): set the color spectrum type (from 0 to 2) (default black)
    • black (0) — fade to black
    • white (1) — fade to white
    • all (2) — white to black

See FFix.Filter for pipelines, expressions, and output handling.

frei0r_src(options \\ [])

@spec frei0r_src(
  filter_name: String.t() | atom() | number(),
  filter_params: String.t() | atom() | number(),
  framerate: String.t() | atom() | number(),
  size: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Generate a frei0r source.

Options

  • filter_name (string)
  • filter_params (string)
  • framerate (video_rate): (default "25")
  • size (image_size): Dimensions of the generated video. (default "320x240")

See FFix.Filter for pipelines, expressions, and output handling.

gradients(options \\ [])

@spec gradients(
  c0: String.t() | atom() | number(),
  c1: String.t() | atom() | number(),
  c2: String.t() | atom() | number(),
  c3: String.t() | atom() | number(),
  c4: String.t() | atom() | number(),
  c5: String.t() | atom() | number(),
  c6: String.t() | atom() | number(),
  c7: String.t() | atom() | number(),
  d: String.t() | atom() | number(),
  duration: String.t() | atom() | number(),
  n: String.t() | atom() | number(),
  nb_colors: String.t() | atom() | number(),
  r: String.t() | atom() | number(),
  rate: String.t() | atom() | number(),
  s: String.t() | atom() | number(),
  seed: String.t() | atom() | number(),
  size: String.t() | atom() | number(),
  speed: String.t() | atom() | number(),
  t: String.t() | atom() | number(),
  type: String.t() | atom() | number(),
  x0: String.t() | atom() | number(),
  x1: String.t() | atom() | number(),
  y0: String.t() | atom() | number(),
  y1: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Draw a gradients.

Options

  • c0 (color): set 1st color (default "random")
  • c1 (color): set 2nd color (default "random")
  • c2 (color): set 3rd color (default "random")
  • c3 (color): set 4th color (default "random")
  • c4 (color): set 5th color (default "random")
  • c5 (color): set 6th color (default "random")
  • c6 (color): set 7th color (default "random")
  • c7 (color): set 8th color (default "random")
  • d (duration): set video duration (default -0.000001)
  • duration (duration): set video duration (default -0.000001)
  • n (int): set the number of colors (from 2 to 8) (default 2)
  • nb_colors (int): set the number of colors (from 2 to 8) (default 2)
  • r (video_rate): set frame rate (default "25")
  • rate (video_rate): set frame rate (default "25")
  • s (image_size): set frame size (default "640x480")
  • seed (int64): set the seed (from -1 to UINT32_MAX) (default -1)
  • size (image_size): set frame size (default "640x480")
  • speed (float): set gradients rotation speed (from 0 to 1) (default 0.01)
  • t (int): set gradient type (from 0 to 4) (default linear)
    • linear (0) — set linear gradient
    • radial (1) — set radial gradient
    • circular (2) — set circular gradient
    • spiral (3) — set spiral gradient
    • square (4) — set square gradient
  • type (int): set gradient type (from 0 to 4) (default linear)
    • linear (0) — set linear gradient
    • radial (1) — set radial gradient
    • circular (2) — set circular gradient
    • spiral (3) — set spiral gradient
    • square (4) — set square gradient
  • x0 (int): set gradient line source x0 (from -1 to INT_MAX) (default -1)
  • x1 (int): set gradient line destination x1 (from -1 to INT_MAX) (default -1)
  • y0 (int): set gradient line source y0 (from -1 to INT_MAX) (default -1)
  • y1 (int): set gradient line destination y1 (from -1 to INT_MAX) (default -1)

See FFix.Filter for pipelines, expressions, and output handling.

haldclutsrc(options \\ [])

@spec haldclutsrc(
  d: String.t() | atom() | number(),
  duration: String.t() | atom() | number(),
  level: String.t() | atom() | number(),
  r: String.t() | atom() | number(),
  rate: String.t() | atom() | number(),
  sar: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Provide an identity Hald CLUT.

Options

  • d (duration): set video duration (default -0.000001)
  • duration (duration): set video duration (default -0.000001)
  • level (int): set level (from 2 to 16) (default 6)
  • r (video_rate): set video rate (default "25")
  • rate (video_rate): set video rate (default "25")
  • sar (rational): set video sample aspect ratio (from 0 to INT_MAX) (default 1/1)

See FFix.Filter for pipelines, expressions, and output handling.

hilbert(options \\ [])

@spec hilbert(
  n: String.t() | atom() | number(),
  nb_samples: String.t() | atom() | number(),
  r: String.t() | atom() | number(),
  sample_rate: String.t() | atom() | number(),
  t: String.t() | atom() | number(),
  taps: String.t() | atom() | number(),
  w: String.t() | atom() | number(),
  win_func: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Generate a Hilbert transform FIR coefficients.

Options

  • n (int): set the number of samples per requested frame (from 1 to INT_MAX) (default 1024)
  • nb_samples (int): set the number of samples per requested frame (from 1 to INT_MAX) (default 1024)
  • r (int): set sample rate (from 1 to INT_MAX) (default 44100)
  • sample_rate (int): set sample rate (from 1 to INT_MAX) (default 44100)
  • t (int): set number of taps (from 11 to 65535) (default 22051)
  • taps (int): set number of taps (from 11 to 65535) (default 22051)
  • w (int): set window function (from 0 to 20) (default blackman)
    • rect (0) — Rectangular
    • bartlett (4) — Bartlett
    • hann (1) — Hann
    • hanning (1) — Hanning
    • hamming (2) — Hamming
    • blackman (3) — Blackman
    • welch (5) — Welch
    • flattop (6) — Flat-top
    • bharris (7) — Blackman-Harris
    • bnuttall (8) — Blackman-Nuttall
    • bhann (11) — Bartlett-Hann
    • sine (9) — Sine
    • nuttall (10) — Nuttall
    • lanczos (12) — Lanczos
    • gauss (13) — Gauss
    • tukey (14) — Tukey
    • dolph (15) — Dolph-Chebyshev
    • cauchy (16) — Cauchy
    • parzen (17) — Parzen
    • poisson (18) — Poisson
    • bohman (19) — Bohman
    • kaiser (20) — Kaiser
    • rect (0) — Rectangular
    • bartlett (4) — Bartlett
    • hann (1) — Hann
    • hanning (1) — Hanning
    • hamming (2) — Hamming
    • blackman (3) — Blackman
    • welch (5) — Welch
    • flattop (6) — Flat-top
    • bharris (7) — Blackman-Harris
    • bnuttall (8) — Blackman-Nuttall
    • bhann (11) — Bartlett-Hann
    • sine (9) — Sine
    • nuttall (10) — Nuttall
    • lanczos (12) — Lanczos
    • gauss (13) — Gauss
    • tukey (14) — Tukey
    • dolph (15) — Dolph-Chebyshev
    • cauchy (16) — Cauchy
    • parzen (17) — Parzen
    • poisson (18) — Poisson
    • bohman (19) — Bohman
    • kaiser (20) — Kaiser
  • win_func (int): set window function (from 0 to 20) (default blackman)
    • rect (0) — Rectangular
    • bartlett (4) — Bartlett
    • hann (1) — Hann
    • hanning (1) — Hanning
    • hamming (2) — Hamming
    • blackman (3) — Blackman
    • welch (5) — Welch
    • flattop (6) — Flat-top
    • bharris (7) — Blackman-Harris
    • bnuttall (8) — Blackman-Nuttall
    • bhann (11) — Bartlett-Hann
    • sine (9) — Sine
    • nuttall (10) — Nuttall
    • lanczos (12) — Lanczos
    • gauss (13) — Gauss
    • tukey (14) — Tukey
    • dolph (15) — Dolph-Chebyshev
    • cauchy (16) — Cauchy
    • parzen (17) — Parzen
    • poisson (18) — Poisson
    • bohman (19) — Bohman
    • kaiser (20) — Kaiser
    • rect (0) — Rectangular
    • bartlett (4) — Bartlett
    • hann (1) — Hann
    • hanning (1) — Hanning
    • hamming (2) — Hamming
    • blackman (3) — Blackman
    • welch (5) — Welch
    • flattop (6) — Flat-top
    • bharris (7) — Blackman-Harris
    • bnuttall (8) — Blackman-Nuttall
    • bhann (11) — Bartlett-Hann
    • sine (9) — Sine
    • nuttall (10) — Nuttall
    • lanczos (12) — Lanczos
    • gauss (13) — Gauss
    • tukey (14) — Tukey
    • dolph (15) — Dolph-Chebyshev
    • cauchy (16) — Cauchy
    • parzen (17) — Parzen
    • poisson (18) — Poisson
    • bohman (19) — Bohman
    • kaiser (20) — Kaiser

See FFix.Filter for pipelines, expressions, and output handling.

life(options \\ [])

@spec life(
  death_color: String.t() | atom() | number(),
  f: String.t() | atom() | number(),
  filename: String.t() | atom() | number(),
  life_color: String.t() | atom() | number(),
  mold: String.t() | atom() | number(),
  mold_color: String.t() | atom() | number(),
  r: String.t() | atom() | number(),
  random_fill_ratio: String.t() | atom() | number(),
  random_seed: String.t() | atom() | number(),
  rate: String.t() | atom() | number(),
  ratio: String.t() | atom() | number(),
  rule: String.t() | atom() | number(),
  s: String.t() | atom() | number(),
  seed: String.t() | atom() | number(),
  size: String.t() | atom() | number(),
  stitch: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Create life.

Options

  • death_color (color): set death color (default "black")
  • f (string): set source file
  • filename (string): set source file
  • life_color (color): set life color (default "white")
  • mold (int): set mold speed for dead cells (from 0 to 255) (default 0)
  • mold_color (color): set mold color (default "black")
  • r (video_rate): set video rate (default "25")
  • random_fill_ratio (double): set fill ratio for filling initial grid randomly (from 0 to 1) (default 0.618034)
  • random_seed (int64): set the seed for filling the initial grid randomly (from -1 to UINT32_MAX) (default -1)
  • rate (video_rate): set video rate (default "25")
  • ratio (double): set fill ratio for filling initial grid randomly (from 0 to 1) (default 0.618034)
  • rule (string): set rule (default "B3/S23")
  • s (image_size): set video size
  • seed (int64): set the seed for filling the initial grid randomly (from -1 to UINT32_MAX) (default -1)
  • size (image_size): set video size
  • stitch (boolean): stitch boundaries (default true)

See FFix.Filter for pipelines, expressions, and output handling.

mandelbrot(options \\ [])

@spec mandelbrot(
  bailout: String.t() | atom() | number(),
  end_pts: String.t() | atom() | number(),
  end_scale: String.t() | atom() | number(),
  inner: String.t() | atom() | number(),
  maxiter: String.t() | atom() | number(),
  morphamp: String.t() | atom() | number(),
  morphxf: String.t() | atom() | number(),
  morphyf: String.t() | atom() | number(),
  outer: String.t() | atom() | number(),
  r: String.t() | atom() | number(),
  rate: String.t() | atom() | number(),
  s: String.t() | atom() | number(),
  size: String.t() | atom() | number(),
  start_scale: String.t() | atom() | number(),
  start_x: String.t() | atom() | number(),
  start_y: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Render a Mandelbrot fractal.

Options

  • bailout (double): set the bailout value (from 0 to FLT_MAX) (default 10)
  • end_pts (double): set the terminal pts value (from 0 to I64_MAX) (default 400)
  • end_scale (double): set the terminal scale value (from 0 to FLT_MAX) (default 0.3)
  • inner (int): set inner coloring mode (from 0 to INT_MAX) (default mincol)
    • black (0) — set black mode
    • period (1) — set period mode
    • convergence (2) — show time until convergence
    • mincol (3) — color based on point closest to the origin of the iterations
  • maxiter (int): set max iterations number (from 1 to INT_MAX) (default 7189)
  • morphamp (double): set morph amplitude (from -FLT_MAX to FLT_MAX) (default 0)
  • morphxf (double): set morph x frequency (from -FLT_MAX to FLT_MAX) (default 0.01)
  • morphyf (double): set morph y frequency (from -FLT_MAX to FLT_MAX) (default 0.0123)
  • outer (int): set outer coloring mode (from 0 to INT_MAX) (default normalized_iteration_count)
    • iteration_count (0) — set iteration count mode
    • normalized_iteration_count (1) — set normalized iteration count mode
    • white (2) — set white mode
    • outz (3) — set outz mode
  • r (video_rate): set frame rate (default "25")
  • rate (video_rate): set frame rate (default "25")
  • s (image_size): set frame size (default "640x480")
  • size (image_size): set frame size (default "640x480")
  • start_scale (double): set the initial scale value (from 0 to FLT_MAX) (default 3)
  • start_x (double): set the initial x position (from -100 to 100) (default -0.743644)
  • start_y (double): set the initial y position (from -100 to 100) (default -0.131826)

See FFix.Filter for pipelines, expressions, and output handling.

movie(options \\ [])

@spec movie(
  dec_threads: String.t() | atom() | number(),
  discontinuity: String.t() | atom() | number(),
  f: String.t() | atom() | number(),
  filename: String.t() | atom() | number(),
  format_name: String.t() | atom() | number(),
  format_opts: String.t() | atom() | number(),
  loop: String.t() | atom() | number(),
  s: String.t() | atom() | number(),
  seek_point: String.t() | atom() | number(),
  si: String.t() | atom() | number(),
  sp: String.t() | atom() | number(),
  stream_index: String.t() | atom() | number(),
  streams: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) ::
  FFix.Graph.StreamRef.t()
  | [FFix.Graph.StreamRef.t()]
  | FFix.Graph.Terminal.t()

Read from a movie source.

Options

  • dec_threads (int): set the number of threads for decoding (from 0 to INT_MAX) (default 0)
  • discontinuity (duration): set discontinuity threshold (default 0)
  • f (string): set format name
  • filename (string)
  • format_name (string): set format name
  • format_opts (dictionary): set format options for the opened file
  • loop (int): set loop count (from 0 to INT_MAX) (default 1)
  • s (string): set streams
  • seek_point (double): set seekpoint (seconds) (from 0 to 9.22337e+12) (default 0)
  • si (int): set stream index (from -1 to INT_MAX) (default -1)
  • sp (double): set seekpoint (seconds) (from 0 to 9.22337e+12) (default 0)
  • stream_index (int): set stream index (from -1 to INT_MAX) (default -1)
  • streams (string): set streams

See FFix.Filter for pipelines, expressions, and output handling.

mptestsrc(options \\ [])

@spec mptestsrc(
  d: String.t() | atom() | number(),
  duration: String.t() | atom() | number(),
  m: String.t() | atom() | number(),
  max_frames: String.t() | atom() | number(),
  r: String.t() | atom() | number(),
  rate: String.t() | atom() | number(),
  t: String.t() | atom() | number(),
  test: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Generate various test pattern.

Options

  • d (duration): set video duration (default -0.000001)
  • duration (duration): set video duration (default -0.000001)
  • m (int64): Set the maximum number of frames generated for each test (from 1 to I64_MAX) (default 30)
  • max_frames (int64): Set the maximum number of frames generated for each test (from 1 to I64_MAX) (default 30)
  • r (video_rate): set video rate (default "25")
  • rate (video_rate): set video rate (default "25")
  • t (int): set test to perform (from 0 to INT_MAX) (default all)
    • dc_luma (0)
    • dc_chroma (1)
    • freq_luma (2)
    • freq_chroma (3)
    • amp_luma (4)
    • amp_chroma (5)
    • cbp (6)
    • mv (7)
    • ring1 (8)
    • ring2 (9)
    • all (10)
  • test (int): set test to perform (from 0 to INT_MAX) (default all)
    • dc_luma (0)
    • dc_chroma (1)
    • freq_luma (2)
    • freq_chroma (3)
    • amp_luma (4)
    • amp_chroma (5)
    • cbp (6)
    • mv (7)
    • ring1 (8)
    • ring2 (9)
    • all (10)

See FFix.Filter for pipelines, expressions, and output handling.

nullsink(video_0, options \\ [])

Do absolutely nothing with the input video.

Options

See FFix.Filter for pipelines, expressions, and output handling.

nullsrc(options \\ [])

@spec nullsrc(
  d: String.t() | atom() | number(),
  duration: String.t() | atom() | number(),
  r: String.t() | atom() | number(),
  rate: String.t() | atom() | number(),
  s: String.t() | atom() | number(),
  sar: String.t() | atom() | number(),
  size: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Null video source, return unprocessed video frames.

Options

  • d (duration): set video duration (default -0.000001)
  • duration (duration): set video duration (default -0.000001)
  • r (video_rate): set video rate (default "25")
  • rate (video_rate): set video rate (default "25")
  • s (image_size): set video size (default "320x240")
  • sar (rational): set video sample aspect ratio (from 0 to INT_MAX) (default 1/1)
  • size (image_size): set video size (default "320x240")

See FFix.Filter for pipelines, expressions, and output handling.

openclsrc(options \\ [])

@spec openclsrc(
  format: String.t() | atom() | number(),
  kernel: String.t() | atom() | number(),
  r: String.t() | atom() | number(),
  rate: String.t() | atom() | number(),
  s: String.t() | atom() | number(),
  size: String.t() | atom() | number(),
  source: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Generate video using an OpenCL program

Options

  • format (pix_fmt): Video format (default none)
  • kernel (string): Kernel name in program
  • r (video_rate): Video frame rate (default "25")
  • rate (video_rate): Video frame rate (default "25")
  • s (image_size): Video size
  • size (image_size): Video size
  • source (string): OpenCL program source file

See FFix.Filter for pipelines, expressions, and output handling.

pal75bars(options \\ [])

@spec pal75bars(
  d: String.t() | atom() | number(),
  duration: String.t() | atom() | number(),
  r: String.t() | atom() | number(),
  rate: String.t() | atom() | number(),
  s: String.t() | atom() | number(),
  sar: String.t() | atom() | number(),
  size: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Generate PAL 75% color bars.

Options

  • d (duration): set video duration (default -0.000001)
  • duration (duration): set video duration (default -0.000001)
  • r (video_rate): set video rate (default "25")
  • rate (video_rate): set video rate (default "25")
  • s (image_size): set video size (default "320x240")
  • sar (rational): set video sample aspect ratio (from 0 to INT_MAX) (default 1/1)
  • size (image_size): set video size (default "320x240")

See FFix.Filter for pipelines, expressions, and output handling.

pal100bars(options \\ [])

@spec pal100bars(
  d: String.t() | atom() | number(),
  duration: String.t() | atom() | number(),
  r: String.t() | atom() | number(),
  rate: String.t() | atom() | number(),
  s: String.t() | atom() | number(),
  sar: String.t() | atom() | number(),
  size: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Generate PAL 100% color bars.

Options

  • d (duration): set video duration (default -0.000001)
  • duration (duration): set video duration (default -0.000001)
  • r (video_rate): set video rate (default "25")
  • rate (video_rate): set video rate (default "25")
  • s (image_size): set video size (default "320x240")
  • sar (rational): set video sample aspect ratio (from 0 to INT_MAX) (default 1/1)
  • size (image_size): set video size (default "320x240")

See FFix.Filter for pipelines, expressions, and output handling.

perlin(options \\ [])

@spec perlin(
  octaves: String.t() | atom() | number(),
  persistence: String.t() | atom() | number(),
  r: String.t() | atom() | number(),
  random_mode: String.t() | atom() | number(),
  random_seed: String.t() | atom() | number(),
  rate: String.t() | atom() | number(),
  s: String.t() | atom() | number(),
  seed: String.t() | atom() | number(),
  size: String.t() | atom() | number(),
  tscale: String.t() | atom() | number(),
  xscale: String.t() | atom() | number(),
  yscale: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Generate Perlin noise

Options

  • octaves (int): set the number of components to use to generate the noise (from 1 to INT_MAX) (default 1)
  • persistence (double): set the octaves persistence (from 0 to DBL_MAX) (default 1)
  • r (video_rate): set video rate (default "25")
  • random_mode (int): set random mode used to compute initial pattern (from 0 to 2) (default random)
    • random (0) — compute and use random seed
    • ken (1) — use the predefined initial pattern defined by Ken Perlin in the original article
    • seed (2) — use the value specified by random_seed
  • random_seed (unsigned): set the seed for filling the initial pattern (from 0 to UINT32_MAX) (default 0)
  • rate (video_rate): set video rate (default "25")
  • s (image_size): set video size (default "320x240")
  • seed (unsigned): set the seed for filling the initial pattern (from 0 to UINT32_MAX) (default 0)
  • size (image_size): set video size (default "320x240")
  • tscale (double): set t-scale factor (from 0 to DBL_MAX) (default 1)
  • xscale (double): set x-scale factor (from 0 to DBL_MAX) (default 1)
  • yscale (double): set y-scale factor (from 0 to DBL_MAX) (default 1)

See FFix.Filter for pipelines, expressions, and output handling.

qrencodesrc(options \\ [])

@spec qrencodesrc(
  Q: String.t() | atom() | number(),
  background_color: String.t() | atom() | number(),
  bc: String.t() | atom() | number(),
  case_sensitive: String.t() | atom() | number(),
  cs: String.t() | atom() | number(),
  expansion: String.t() | atom() | number(),
  fc: String.t() | atom() | number(),
  foreground_color: String.t() | atom() | number(),
  l: String.t() | atom() | number(),
  level: String.t() | atom() | number(),
  padded_qrcode_width: String.t() | atom() | number(),
  q: String.t() | atom() | number(),
  qrcode_width: String.t() | atom() | number(),
  r: String.t() | atom() | number(),
  rate: String.t() | atom() | number(),
  text: String.t() | atom() | number(),
  textfile: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Generate a QR code.

Options

  • Q (string): set rendered padded QR code width expression (default "q")
  • background_color (color): set QR background color (default "white")
  • bc (color): set QR background color (default "white")
  • case_sensitive (boolean): generate code which is case sensitive (default true)
  • cs (boolean): generate code which is case sensitive (default true)
  • expansion (int): set the expansion mode (from 0 to 2) (default normal)
    • none (0) — set no expansion
    • normal (1) — set normal expansion
  • fc (color): set QR foreground color (default "black")
  • foreground_color (color): set QR foreground color (default "black")
  • l (int): error correction level, lowest is L (from 0 to 3) (default Q)
    • L (0)
    • M (1)
    • Q (2)
    • H (3)
  • level (int): error correction level, lowest is L (from 0 to 3) (default Q)
    • L (0)
    • M (1)
    • Q (2)
    • H (3)
  • padded_qrcode_width (string): set rendered padded QR code width expression (default "q")
  • q (string): set rendered QR code width expression (default "64")
  • qrcode_width (string): set rendered QR code width expression (default "64")
  • r (video_rate): set video rate (default "25")
  • rate (video_rate): set video rate (default "25")
  • text (string): set text to encode
  • textfile (string): set text file to encode

See FFix.Filter for pipelines, expressions, and output handling.

rgbtestsrc(options \\ [])

@spec rgbtestsrc(
  co: String.t() | atom() | number(),
  complement: String.t() | atom() | number(),
  d: String.t() | atom() | number(),
  duration: String.t() | atom() | number(),
  r: String.t() | atom() | number(),
  rate: String.t() | atom() | number(),
  s: String.t() | atom() | number(),
  sar: String.t() | atom() | number(),
  size: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Generate RGB test pattern.

Options

  • co (boolean): set complement colors (default false)
  • complement (boolean): set complement colors (default false)
  • d (duration): set video duration (default -0.000001)
  • duration (duration): set video duration (default -0.000001)
  • r (video_rate): set video rate (default "25")
  • rate (video_rate): set video rate (default "25")
  • s (image_size): set video size (default "320x240")
  • sar (rational): set video sample aspect ratio (from 0 to INT_MAX) (default 1/1)
  • size (image_size): set video size (default "320x240")

See FFix.Filter for pipelines, expressions, and output handling.

sierpinski(options \\ [])

@spec sierpinski(
  jump: String.t() | atom() | number(),
  r: String.t() | atom() | number(),
  rate: String.t() | atom() | number(),
  s: String.t() | atom() | number(),
  seed: String.t() | atom() | number(),
  size: String.t() | atom() | number(),
  type: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Render a Sierpinski fractal.

Options

  • jump (int): set the jump (from 1 to 10000) (default 100)
  • r (video_rate): set frame rate (default "25")
  • rate (video_rate): set frame rate (default "25")
  • s (image_size): set frame size (default "640x480")
  • seed (int64): set the seed (from -1 to UINT32_MAX) (default -1)
  • size (image_size): set frame size (default "640x480")
  • type (int): set fractal type (from 0 to 1) (default carpet)
    • carpet (0) — sierpinski carpet
    • triangle (1) — sierpinski triangle

See FFix.Filter for pipelines, expressions, and output handling.

sinc(options \\ [])

@spec sinc(
  att: String.t() | atom() | number(),
  beta: String.t() | atom() | number(),
  hp: String.t() | atom() | number(),
  hptaps: String.t() | atom() | number(),
  lp: String.t() | atom() | number(),
  lptaps: String.t() | atom() | number(),
  n: String.t() | atom() | number(),
  nb_samples: String.t() | atom() | number(),
  phase: String.t() | atom() | number(),
  r: String.t() | atom() | number(),
  round: String.t() | atom() | number(),
  sample_rate: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Generate a sinc kaiser-windowed low-pass, high-pass, band-pass, or band-reject FIR coefficients.

Options

  • att (float): set stop-band attenuation (from 40 to 180) (default 120)
  • beta (float): set kaiser window beta (from -1 to 256) (default -1)
  • hp (float): set high-pass filter frequency (from 0 to INT_MAX) (default 0)
  • hptaps (int): set number of taps for high-pass filter (from 0 to 32768) (default 0)
  • lp (float): set low-pass filter frequency (from 0 to INT_MAX) (default 0)
  • lptaps (int): set number of taps for low-pass filter (from 0 to 32768) (default 0)
  • n (int): set the number of samples per requested frame (from 1 to INT_MAX) (default 1024)
  • nb_samples (int): set the number of samples per requested frame (from 1 to INT_MAX) (default 1024)
  • phase (float): set filter phase response (from 0 to 100) (default 50)
  • r (int): set sample rate (from 1 to INT_MAX) (default 44100)
  • round (boolean): enable rounding (default false)
  • sample_rate (int): set sample rate (from 1 to INT_MAX) (default 44100)

See FFix.Filter for pipelines, expressions, and output handling.

sine(options \\ [])

@spec sine(
  b: String.t() | atom() | number(),
  beep_factor: String.t() | atom() | number(),
  d: String.t() | atom() | number(),
  duration: String.t() | atom() | number(),
  f: String.t() | atom() | number(),
  frequency: String.t() | atom() | number(),
  r: String.t() | atom() | number(),
  sample_rate: String.t() | atom() | number(),
  samples_per_frame: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Generate sine wave audio signal.

Example

FFix.Filter.sine(frequency: 440, duration: 2)

Options

  • b (double): set the beep frequency factor (from 0 to DBL_MAX) (default 0)
  • beep_factor (double): set the beep frequency factor (from 0 to DBL_MAX) (default 0)
  • d (duration): set the audio duration (default 0)
  • duration (duration): set the audio duration (default 0)
  • f (double): set the sine frequency (from 0 to DBL_MAX) (default 440)
  • frequency (double): set the sine frequency (from 0 to DBL_MAX) (default 440)
  • r (int): set the sample rate (from 1 to INT_MAX) (default 44100)
  • sample_rate (int): set the sample rate (from 1 to INT_MAX) (default 44100)
  • samples_per_frame (string): set the number of samples per frame (default "1024")

See FFix.Filter for pipelines, expressions, and output handling.

smptebars(options \\ [])

@spec smptebars(
  d: String.t() | atom() | number(),
  duration: String.t() | atom() | number(),
  r: String.t() | atom() | number(),
  rate: String.t() | atom() | number(),
  s: String.t() | atom() | number(),
  sar: String.t() | atom() | number(),
  size: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Generate SMPTE color bars.

Options

  • d (duration): set video duration (default -0.000001)
  • duration (duration): set video duration (default -0.000001)
  • r (video_rate): set video rate (default "25")
  • rate (video_rate): set video rate (default "25")
  • s (image_size): set video size (default "320x240")
  • sar (rational): set video sample aspect ratio (from 0 to INT_MAX) (default 1/1)
  • size (image_size): set video size (default "320x240")

See FFix.Filter for pipelines, expressions, and output handling.

smptehdbars(options \\ [])

@spec smptehdbars(
  d: String.t() | atom() | number(),
  duration: String.t() | atom() | number(),
  r: String.t() | atom() | number(),
  rate: String.t() | atom() | number(),
  s: String.t() | atom() | number(),
  sar: String.t() | atom() | number(),
  size: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Generate SMPTE HD color bars.

Options

  • d (duration): set video duration (default -0.000001)
  • duration (duration): set video duration (default -0.000001)
  • r (video_rate): set video rate (default "25")
  • rate (video_rate): set video rate (default "25")
  • s (image_size): set video size (default "320x240")
  • sar (rational): set video sample aspect ratio (from 0 to INT_MAX) (default 1/1)
  • size (image_size): set video size (default "320x240")

See FFix.Filter for pipelines, expressions, and output handling.

testsrc2(options \\ [])

@spec testsrc2(
  alpha: String.t() | atom() | number(),
  d: String.t() | atom() | number(),
  duration: String.t() | atom() | number(),
  r: String.t() | atom() | number(),
  rate: String.t() | atom() | number(),
  s: String.t() | atom() | number(),
  sar: String.t() | atom() | number(),
  size: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Generate another test pattern.

Example

FFix.Filter.testsrc2(size: "640x360", rate: 30, duration: 2)

Options

  • alpha (int): set global alpha (opacity) (from 0 to 255) (default 255)
  • d (duration): set video duration (default -0.000001)
  • duration (duration): set video duration (default -0.000001)
  • r (video_rate): set video rate (default "25")
  • rate (video_rate): set video rate (default "25")
  • s (image_size): set video size (default "320x240")
  • sar (rational): set video sample aspect ratio (from 0 to INT_MAX) (default 1/1)
  • size (image_size): set video size (default "320x240")

See FFix.Filter for pipelines, expressions, and output handling.

testsrc(options \\ [])

@spec testsrc(
  d: String.t() | atom() | number(),
  decimals: String.t() | atom() | number(),
  duration: String.t() | atom() | number(),
  n: String.t() | atom() | number(),
  r: String.t() | atom() | number(),
  rate: String.t() | atom() | number(),
  s: String.t() | atom() | number(),
  sar: String.t() | atom() | number(),
  size: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Generate test pattern.

Options

  • d (duration): set video duration (default -0.000001)
  • decimals (int): set number of decimals to show (from 0 to 17) (default 0)
  • duration (duration): set video duration (default -0.000001)
  • n (int): set number of decimals to show (from 0 to 17) (default 0)
  • r (video_rate): set video rate (default "25")
  • rate (video_rate): set video rate (default "25")
  • s (image_size): set video size (default "320x240")
  • sar (rational): set video sample aspect ratio (from 0 to INT_MAX) (default 1/1)
  • size (image_size): set video size (default "320x240")

See FFix.Filter for pipelines, expressions, and output handling.

yuvtestsrc(options \\ [])

@spec yuvtestsrc(
  d: String.t() | atom() | number(),
  duration: String.t() | atom() | number(),
  r: String.t() | atom() | number(),
  rate: String.t() | atom() | number(),
  s: String.t() | atom() | number(),
  sar: String.t() | atom() | number(),
  size: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Generate YUV test pattern.

Options

  • d (duration): set video duration (default -0.000001)
  • duration (duration): set video duration (default -0.000001)
  • r (video_rate): set video rate (default "25")
  • rate (video_rate): set video rate (default "25")
  • s (image_size): set video size (default "320x240")
  • sar (rational): set video sample aspect ratio (from 0 to INT_MAX) (default 1/1)
  • size (image_size): set video size (default "320x240")

See FFix.Filter for pipelines, expressions, and output handling.

zoneplate(options \\ [])

@spec zoneplate(
  d: String.t() | atom() | number(),
  duration: String.t() | atom() | number(),
  k0: String.t() | atom() | number(),
  kt: String.t() | atom() | number(),
  kt2: String.t() | atom() | number(),
  ku: String.t() | atom() | number(),
  kv: String.t() | atom() | number(),
  kx: String.t() | atom() | number(),
  kx2: String.t() | atom() | number(),
  kxt: String.t() | atom() | number(),
  kxy: String.t() | atom() | number(),
  ky: String.t() | atom() | number(),
  ky2: String.t() | atom() | number(),
  kyt: String.t() | atom() | number(),
  precision: String.t() | atom() | number(),
  r: String.t() | atom() | number(),
  rate: String.t() | atom() | number(),
  s: String.t() | atom() | number(),
  sar: String.t() | atom() | number(),
  size: String.t() | atom() | number(),
  to: String.t() | atom() | number(),
  xo: String.t() | atom() | number(),
  yo: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Generate zone-plate.

Options

  • d (duration): set video duration (default -0.000001)
  • duration (duration): set video duration (default -0.000001)
  • k0 (int): set 0-order phase (from INT_MIN to INT_MAX) (default 0)
  • kt (int): set 1-order T-axis phase (from INT_MIN to INT_MAX) (default 0)
  • kt2 (int): set 2-order T-axis phase (from INT_MIN to INT_MAX) (default 0)
  • ku (int): set 0-order U-color phase (from INT_MIN to INT_MAX) (default 0)
  • kv (int): set 0-order V-color phase (from INT_MIN to INT_MAX) (default 0)
  • kx (int): set 1-order X-axis phase (from INT_MIN to INT_MAX) (default 0)
  • kx2 (int): set 2-order X-axis phase (from INT_MIN to INT_MAX) (default 0)
  • kxt (int): set X-axis*T-axis product phase (from INT_MIN to INT_MAX) (default 0)
  • kxy (int): set X-axis*Y-axis product phase (from INT_MIN to INT_MAX) (default 0)
  • ky (int): set 1-order Y-axis phase (from INT_MIN to INT_MAX) (default 0)
  • ky2 (int): set 2-order Y-axis phase (from INT_MIN to INT_MAX) (default 0)
  • kyt (int): set Y-axis*T-axis product phase (from INT_MIN to INT_MAX) (default 0)
  • precision (int): set LUT precision (from 4 to 16) (default 10)
  • r (video_rate): set video rate (default "25")
  • rate (video_rate): set video rate (default "25")
  • s (image_size): set video size (default "320x240")
  • sar (rational): set video sample aspect ratio (from 0 to INT_MAX) (default 1/1)
  • size (image_size): set video size (default "320x240")
  • to (int): set T-axis offset (from INT_MIN to INT_MAX) (default 0)
  • xo (int): set X-axis offset (from INT_MIN to INT_MAX) (default 0)
  • yo (int): set Y-axis offset (from INT_MIN to INT_MAX) (default 0)

See FFix.Filter for pipelines, expressions, and output handling.

Other filters

a3dscope(audio_0, options \\ [])

@spec a3dscope(FFix.Graph.StreamRef.t(),
  fov: String.t() | atom() | number(),
  length: String.t() | atom() | number(),
  pitch: String.t() | atom() | number(),
  r: String.t() | atom() | number(),
  rate: String.t() | atom() | number(),
  roll: String.t() | atom() | number(),
  s: String.t() | atom() | number(),
  size: String.t() | atom() | number(),
  xpos: String.t() | atom() | number(),
  xzoom: String.t() | atom() | number(),
  yaw: String.t() | atom() | number(),
  ypos: String.t() | atom() | number(),
  yzoom: String.t() | atom() | number(),
  zpos: String.t() | atom() | number(),
  zzoom: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Convert input audio to 3d scope video output.

Options

  • fov (float): set camera FoV (from 40 to 150) (default 90)
  • length (int): set length (from 1 to 60) (default 15)
  • pitch (float): set camera pitch (from -180 to 180) (default 0)
  • r (video_rate): set video rate (default "25")
  • rate (video_rate): set video rate (default "25")
  • roll (float): set camera roll (from -180 to 180) (default 0)
  • s (image_size): set video size (default "hd720")
  • size (image_size): set video size (default "hd720")
  • xpos (float): set camera position (from -60 to 60) (default 0)
  • xzoom (float): set camera zoom (from 0.01 to 10) (default 1)
  • yaw (float): set camera yaw (from -180 to 180) (default 0)
  • ypos (float): set camera position (from -60 to 60) (default 0)
  • yzoom (float): set camera zoom (from 0.01 to 10) (default 1)
  • zpos (float): set camera position (from -60 to 60) (default 0)
  • zzoom (float): set camera zoom (from 0.01 to 10) (default 1)

See FFix.Filter for pipelines, expressions, and output handling.

abitscope(audio_0, options \\ [])

@spec abitscope(FFix.Graph.StreamRef.t(),
  colors: String.t() | atom() | number(),
  m: String.t() | atom() | number(),
  mode: String.t() | atom() | number(),
  r: String.t() | atom() | number(),
  rate: String.t() | atom() | number(),
  s: String.t() | atom() | number(),
  size: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Convert input audio to audio bit scope video output.

Options

  • colors (string): set channels colors (default "red|green|blue|yellow|orange|lime|pink|magenta|brown")
  • m (int): set output mode (from 0 to 1) (default bars)
    • bars (0)
    • trace (1)
  • mode (int): set output mode (from 0 to 1) (default bars)
    • bars (0)
    • trace (1)
  • r (video_rate): set video rate (default "25")
  • rate (video_rate): set video rate (default "25")
  • s (image_size): set video size (default "1024x256")
  • size (image_size): set video size (default "1024x256")

See FFix.Filter for pipelines, expressions, and output handling.

adrawgraph(audio_0, options \\ [])

@spec adrawgraph(FFix.Graph.StreamRef.t(),
  bg: String.t() | atom() | number(),
  fg1: String.t() | atom() | number(),
  fg2: String.t() | atom() | number(),
  fg3: String.t() | atom() | number(),
  fg4: String.t() | atom() | number(),
  m1: String.t() | atom() | number(),
  m2: String.t() | atom() | number(),
  m3: String.t() | atom() | number(),
  m4: String.t() | atom() | number(),
  max: String.t() | atom() | number(),
  min: String.t() | atom() | number(),
  mode: String.t() | atom() | number(),
  r: String.t() | atom() | number(),
  rate: String.t() | atom() | number(),
  s: String.t() | atom() | number(),
  size: String.t() | atom() | number(),
  slide: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Draw a graph using input audio metadata.

Options

  • bg (color): set background color (default "white")
  • fg1 (string): set 1st foreground color expression (default "0xffff0000")
  • fg2 (string): set 2nd foreground color expression (default "0xff00ff00")
  • fg3 (string): set 3rd foreground color expression (default "0xffff00ff")
  • fg4 (string): set 4th foreground color expression (default "0xffffff00")
  • m1 (string): set 1st metadata key (default "")
  • m2 (string): set 2nd metadata key (default "")
  • m3 (string): set 3rd metadata key (default "")
  • m4 (string): set 4th metadata key (default "")
  • max (float): set maximal value (from INT_MIN to INT_MAX) (default 1)
  • min (float): set minimal value (from INT_MIN to INT_MAX) (default -1)
  • mode (int): set graph mode (from 0 to 2) (default line)
    • bar (0) — draw bars
    • dot (1) — draw dots
    • line (2) — draw lines
  • r (video_rate): set video rate (default "25")
  • rate (video_rate): set video rate (default "25")
  • s (image_size): set graph size (default "900x256")
  • size (image_size): set graph size (default "900x256")
  • slide (int): set slide mode (from 0 to 4) (default frame)
    • frame (0) — draw new frames
    • replace (1) — replace old columns with new
    • scroll (2) — scroll from right to left
    • rscroll (3) — scroll from left to right
    • picture (4) — display graph in single frame

See FFix.Filter for pipelines, expressions, and output handling.

agraphmonitor(audio_0, options \\ [])

@spec agraphmonitor(FFix.Graph.StreamRef.t(),
  f: (String.t() | atom() | number()) | [String.t() | atom() | number()],
  flags: (String.t() | atom() | number()) | [String.t() | atom() | number()],
  m: (String.t() | atom() | number()) | [String.t() | atom() | number()],
  mode: (String.t() | atom() | number()) | [String.t() | atom() | number()],
  o: String.t() | atom() | number(),
  opacity: String.t() | atom() | number(),
  r: String.t() | atom() | number(),
  rate: String.t() | atom() | number(),
  s: String.t() | atom() | number(),
  size: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Show various filtergraph stats.

Options

  • f (flags): set flags (default all+queue)
    • none
    • all
    • queue
    • frame_count_in
    • frame_count_out
    • frame_count_delta
    • pts
    • pts_delta
    • time
    • time_delta
    • timebase
    • format
    • size
    • rate
    • eof
    • sample_count_in
    • sample_count_out
    • sample_count_delta
    • disabled
  • flags (flags): set flags (default all+queue)
    • none
    • all
    • queue
    • frame_count_in
    • frame_count_out
    • frame_count_delta
    • pts
    • pts_delta
    • time
    • time_delta
    • timebase
    • format
    • size
    • rate
    • eof
    • sample_count_in
    • sample_count_out
    • sample_count_delta
    • disabled
  • m (flags): set mode (default 0)
    • full
    • compact
    • nozero
    • noeof
    • nodisabled
  • mode (flags): set mode (default 0)
    • full
    • compact
    • nozero
    • noeof
    • nodisabled
  • o (float): set video opacity (from 0 to 1) (default 0.9)
  • opacity (float): set video opacity (from 0 to 1) (default 0.9)
  • r (video_rate): set video rate (default "25")
  • rate (video_rate): set video rate (default "25")
  • s (image_size): set monitor size (default "hd720")
  • size (image_size): set monitor size (default "hd720")

See FFix.Filter for pipelines, expressions, and output handling.

ahistogram(audio_0, options \\ [])

@spec ahistogram(FFix.Graph.StreamRef.t(),
  acount: String.t() | atom() | number(),
  ascale: String.t() | atom() | number(),
  dmode: String.t() | atom() | number(),
  hmode: String.t() | atom() | number(),
  r: String.t() | atom() | number(),
  rate: String.t() | atom() | number(),
  rheight: String.t() | atom() | number(),
  s: String.t() | atom() | number(),
  scale: String.t() | atom() | number(),
  size: String.t() | atom() | number(),
  slide: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Convert input audio to histogram video output.

Options

  • acount (int): how much frames to accumulate (from -1 to 100) (default 1)
  • ascale (int): set amplitude scale (from 0 to 1) (default log)
    • log (1) — logarithmic
    • lin (0) — linear
  • dmode (int): set method to display channels (from 0 to 1) (default single)
    • single (0) — all channels use single histogram
    • separate (1) — each channel have own histogram
  • hmode (int): set histograms mode (from 0 to 1) (default abs)
    • abs (0) — use absolute samples
    • sign (1) — use unchanged samples
  • r (video_rate): set video rate (default "25")
  • rate (video_rate): set video rate (default "25")
  • rheight (float): set histogram ratio of window height (from 0 to 1) (default 0.1)
  • s (image_size): set video size (default "hd720")
  • scale (int): set display scale (from 0 to 4) (default log)
    • log (3) — logarithmic
    • sqrt (1) — square root
    • cbrt (2) — cubic root
    • lin (0) — linear
    • rlog (4) — reverse logarithmic
  • size (image_size): set video size (default "hd720")
  • slide (int): set sonogram sliding (from 0 to 1) (default replace)
    • replace (0) — replace old rows with new
    • scroll (1) — scroll from top to bottom

See FFix.Filter for pipelines, expressions, and output handling.

astreamselect(streams, options \\ [])

@spec astreamselect([FFix.Graph.StreamRef.t()],
  inputs: String.t() | atom() | number(),
  map: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) ::
  FFix.Graph.StreamRef.t()
  | [FFix.Graph.StreamRef.t()]
  | FFix.Graph.Terminal.t()

Select audio streams

Options

  • inputs (int): number of input streams (from 2 to INT_MAX) (default 2)
  • map (string): input indexes to remap to outputs

See FFix.Filter for pipelines, expressions, and output handling.

avectorscope(audio_0, options \\ [])

@spec avectorscope(FFix.Graph.StreamRef.t(),
  ac: String.t() | atom() | number(),
  af: String.t() | atom() | number(),
  bc: String.t() | atom() | number(),
  bf: String.t() | atom() | number(),
  draw: String.t() | atom() | number(),
  gc: String.t() | atom() | number(),
  gf: String.t() | atom() | number(),
  m: String.t() | atom() | number(),
  mirror: String.t() | atom() | number(),
  mode: String.t() | atom() | number(),
  r: String.t() | atom() | number(),
  rate: String.t() | atom() | number(),
  rc: String.t() | atom() | number(),
  rf: String.t() | atom() | number(),
  s: String.t() | atom() | number(),
  scale: String.t() | atom() | number(),
  size: String.t() | atom() | number(),
  swap: String.t() | atom() | number(),
  zoom: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Convert input audio to vectorscope video output.

Options

  • ac (int): set alpha contrast (from 0 to 255) (default 255)
  • af (int): set alpha fade (from 0 to 255) (default 5)
  • bc (int): set blue contrast (from 0 to 255) (default 80)
  • bf (int): set blue fade (from 0 to 255) (default 5)
  • draw (int): set draw mode (from 0 to 2) (default dot)
    • dot (0) — draw dots
    • line (1) — draw lines
    • aaline (2) — draw anti-aliased lines
  • gc (int): set green contrast (from 0 to 255) (default 160)
  • gf (int): set green fade (from 0 to 255) (default 10)
  • m (int): set mode (from 0 to 2) (default lissajous)
    • lissajous (0)
    • lissajous_xy (1)
    • polar (2)
  • mirror (int): mirror axis (from 0 to 3) (default none)
    • none (0) — no mirror
    • x (1) — mirror x
    • y (2) — mirror y
    • xy (3) — mirror both
  • mode (int): set mode (from 0 to 2) (default lissajous)
    • lissajous (0)
    • lissajous_xy (1)
    • polar (2)
  • r (video_rate): set video rate (default "25")
  • rate (video_rate): set video rate (default "25")
  • rc (int): set red contrast (from 0 to 255) (default 40)
  • rf (int): set red fade (from 0 to 255) (default 15)
  • s (image_size): set video size (default "400x400")
  • scale (int): set amplitude scale mode (from 0 to 3) (default lin)
    • lin (0) — linear
    • sqrt (1) — square root
    • cbrt (2) — cube root
    • log (3) — logarithmic
  • size (image_size): set video size (default "400x400")
  • swap (boolean): swap x axis with y axis (default true)
  • zoom (double): set zoom factor (from 0 to 10) (default 1)

See FFix.Filter for pipelines, expressions, and output handling.

concat(streams, options \\ [])

@spec concat([FFix.Graph.StreamRef.t()],
  a: String.t() | atom() | number(),
  n: String.t() | atom() | number(),
  unsafe: String.t() | atom() | number(),
  v: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) ::
  FFix.Graph.StreamRef.t()
  | [FFix.Graph.StreamRef.t()]
  | FFix.Graph.Terminal.t()

Concatenate audio and video streams.

Options

  • a (int): specify the number of audio streams (from 0 to INT_MAX) (default 0)
  • n (int): specify the number of segments (from 1 to INT_MAX) (default 2)
  • unsafe (boolean): enable unsafe mode (default false)
  • v (int): specify the number of video streams (from 0 to INT_MAX) (default 1)

See FFix.Filter for pipelines, expressions, and output handling.

filter(inputs, name, output_media, options \\ [])

Builds a filter using its FFmpeg name, explicit output media, and options.

FFix.Filter.filter(video, "scale", [:video], w: 1280, h: -2)
FFix.Filter.filter([background, foreground], "overlay", [:video], x: 10)
FFix.Filter.filter([], "sine", [:audio], frequency: 440, duration: 2)
FFix.Filter.filter(video, "nullsink", [])

Inputs are one stream or a flat ordered list. Use [] for a source filter. Output media lists :video, :audio, or :unknown for each produced stream. An empty list returns a terminal, one element returns a stream, and several elements return an ordered stream list.

This explicit layout lets FFix connect filters whose output count or media cannot be determined from the named helper. It must agree with the actual FFmpeg options. For example, a two-output split needs both declarations:

FFix.Filter.filter(video, "split", [:video, :video], outputs: 2)

Names and option values go directly to FFmpeg, including for known filters. Use strings for compound syntax; repeated :pos pairs supply positional arguments. Escaping is handled during serialization.

Text filtergraphs do not carry this output-media information, so FFix.Graph.parse!/1 requires filters and layouts it can recognize.

showcqt(audio_0, options \\ [])

@spec showcqt(FFix.Graph.StreamRef.t(),
  attack: String.t() | atom() | number(),
  axis: String.t() | atom() | number(),
  axis_h: String.t() | atom() | number(),
  axisfile: String.t() | atom() | number(),
  bar_g: String.t() | atom() | number(),
  bar_h: String.t() | atom() | number(),
  bar_t: String.t() | atom() | number(),
  bar_v: String.t() | atom() | number(),
  basefreq: String.t() | atom() | number(),
  coeffclamp: String.t() | atom() | number(),
  count: String.t() | atom() | number(),
  cscheme: String.t() | atom() | number(),
  csp: String.t() | atom() | number(),
  endfreq: String.t() | atom() | number(),
  fcount: String.t() | atom() | number(),
  font: String.t() | atom() | number(),
  fontcolor: String.t() | atom() | number(),
  fontfile: String.t() | atom() | number(),
  fps: String.t() | atom() | number(),
  fullhd: String.t() | atom() | number(),
  gamma: String.t() | atom() | number(),
  gamma2: String.t() | atom() | number(),
  r: String.t() | atom() | number(),
  rate: String.t() | atom() | number(),
  s: String.t() | atom() | number(),
  size: String.t() | atom() | number(),
  sono_g: String.t() | atom() | number(),
  sono_h: String.t() | atom() | number(),
  sono_v: String.t() | atom() | number(),
  tc: String.t() | atom() | number(),
  text: String.t() | atom() | number(),
  timeclamp: String.t() | atom() | number(),
  tlength: String.t() | atom() | number(),
  volume: String.t() | atom() | number(),
  volume2: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Convert input audio to a CQT (Constant/Clamped Q Transform) spectrum video output.

Options

  • attack (double): set attack time (from 0 to 1) (default 0)
  • axis (boolean): draw axis (default true)
  • axis_h (int): set axis height (from -1 to INT_MAX) (default -1)
  • axisfile (string): set axis image
  • bar_g (float): set bargraph gamma (from 1 to 7) (default 1)
  • bar_h (int): set bargraph height (from -1 to INT_MAX) (default -1)
  • bar_t (float): set bar transparency (from 0 to 1) (default 1)
  • bar_v (string): set bargraph volume (default "sono_v")
  • basefreq (double): set base frequency (from 10 to 100000) (default 20.0152)
  • coeffclamp (float): set coeffclamp (from 0.1 to 10) (default 1)
  • count (int): set transform count (from 1 to 30) (default 6)
  • cscheme (string): set color scheme (default "1|0.5|0|0|0.5|1")
  • csp (int): set color space (from 0 to INT_MAX) (default unspecified)
    • unspecified (2) — unspecified
    • bt709 (1) — bt709
    • fcc (4) — fcc
    • bt470bg (5) — bt470bg
    • smpte170m (6) — smpte170m
    • smpte240m (7) — smpte240m
    • bt2020ncl (9) — bt2020ncl
  • endfreq (double): set end frequency (from 10 to 100000) (default 20495.6)
  • fcount (int): set frequency count (from 0 to 10) (default 0)
  • font (string): set axis font
  • fontcolor (string): set font color (default "st(0, (midi(f)-59.5)/12);st(1, if(between(ld(0),0,1), 0.5-0.5cos(2PI*ld(0)), 0));r(1-ld(1)) + b(ld(1))")
  • fontfile (string): set axis font file
  • fps (video_rate): set video rate (default "25")
  • fullhd (boolean): set fullhd size (default true)
  • gamma (float): set sonogram gamma (from 1 to 7) (default 3)
  • gamma2 (float): set bargraph gamma (from 1 to 7) (default 1)
  • r (video_rate): set video rate (default "25")
  • rate (video_rate): set video rate (default "25")
  • s (image_size): set video size (default "1920x1080")
  • size (image_size): set video size (default "1920x1080")
  • sono_g (float): set sonogram gamma (from 1 to 7) (default 3)
  • sono_h (int): set sonogram height (from -1 to INT_MAX) (default -1)
  • sono_v (string): set sonogram volume (default "16")
  • tc (double): set timeclamp (from 0.002 to 1) (default 0.17)
  • text (boolean): draw axis (default true)
  • timeclamp (double): set timeclamp (from 0.002 to 1) (default 0.17)
  • tlength (string): set tlength (default "384tc/(384+tcf)")
  • volume (string): set sonogram volume (default "16")
  • volume2 (string): set bargraph volume (default "sono_v")

See FFix.Filter for pipelines, expressions, and output handling.

showcwt(audio_0, options \\ [])

@spec showcwt(FFix.Graph.StreamRef.t(),
  bar: String.t() | atom() | number(),
  deviation: String.t() | atom() | number(),
  direction: String.t() | atom() | number(),
  imax: String.t() | atom() | number(),
  imin: String.t() | atom() | number(),
  iscale: String.t() | atom() | number(),
  logb: String.t() | atom() | number(),
  max: String.t() | atom() | number(),
  min: String.t() | atom() | number(),
  mode: String.t() | atom() | number(),
  pps: String.t() | atom() | number(),
  r: String.t() | atom() | number(),
  rate: String.t() | atom() | number(),
  rotation: String.t() | atom() | number(),
  s: String.t() | atom() | number(),
  scale: String.t() | atom() | number(),
  size: String.t() | atom() | number(),
  slide: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Convert input audio to a CWT (Continuous Wavelet Transform) spectrum video output.

Options

  • bar (float): set bargraph ratio (from 0 to 1) (default 0)
  • deviation (float): set frequency deviation (from 0 to 100) (default 1)
  • direction (int): set direction mode (from 0 to 3) (default lr)
    • lr (0) — left to right
    • rl (1) — right to left
    • ud (2) — up to down
    • du (3) — down to up
  • imax (float): set maximum intensity (from 0 to 1) (default 1)
  • imin (float): set minimum intensity (from 0 to 1) (default 0)
  • iscale (int): set intensity scale (from 0 to 4) (default log)
    • linear (1) — linear
    • log (0) — logarithmic
    • sqrt (2) — sqrt
    • cbrt (3) — cbrt
    • qdrt (4) — qdrt
  • logb (float): set logarithmic basis (from 0 to 1) (default 0.0001)
  • max (float): set maximum frequency (from 1 to 192000) (default 20000)
  • min (float): set minimum frequency (from 1 to 192000) (default 20)
  • mode (int): set output mode (from 0 to 4) (default magnitude)
    • magnitude (0) — magnitude
    • phase (1) — phase
    • magphase (2) — magnitude+phase
    • channel (3) — color per channel
    • stereo (4) — stereo difference
  • pps (int): set pixels per second (from 1 to 1024) (default 64)
  • r (string): set video rate (default "25")
  • rate (string): set video rate (default "25")
  • rotation (float): set color rotation (from -1 to 1) (default 0)
  • s (image_size): set video size (default "640x512")
  • scale (int): set frequency scale (from 0 to 8) (default linear)
    • linear (0) — linear
    • log (1) — logarithmic
    • bark (2) — bark
    • mel (3) — mel
    • erbs (4) — erbs
    • sqrt (5) — sqrt
    • cbrt (6) — cbrt
    • qdrt (7) — qdrt
    • fm (8) — fm
  • size (image_size): set video size (default "640x512")
  • slide (int): set slide mode (from 0 to 2) (default replace)
    • replace (0) — replace
    • scroll (1) — scroll
    • frame (2) — frame

See FFix.Filter for pipelines, expressions, and output handling.

showfreqs(audio_0, options \\ [])

@spec showfreqs(FFix.Graph.StreamRef.t(),
  ascale: String.t() | atom() | number(),
  averaging: String.t() | atom() | number(),
  channels: String.t() | atom() | number(),
  cmode: String.t() | atom() | number(),
  colors: String.t() | atom() | number(),
  data: String.t() | atom() | number(),
  fscale: String.t() | atom() | number(),
  minamp: String.t() | atom() | number(),
  mode: String.t() | atom() | number(),
  overlap: String.t() | atom() | number(),
  r: String.t() | atom() | number(),
  rate: String.t() | atom() | number(),
  s: String.t() | atom() | number(),
  size: String.t() | atom() | number(),
  win_func: String.t() | atom() | number(),
  win_size: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Convert input audio to a frequencies video output.

Options

  • ascale (int): set amplitude scale (from 0 to 3) (default log)
    • lin (0) — linear
    • sqrt (1) — square root
    • cbrt (2) — cubic root
    • log (3) — logarithmic
  • averaging (int): set time averaging (from 0 to INT_MAX) (default 1)
  • channels (string): set channels to draw (default "all")
  • cmode (int): set channel mode (from 0 to 1) (default combined)
    • combined (0) — show all channels in same window
    • separate (1) — show each channel in own window
  • colors (string): set channels colors (default "red|green|blue|yellow|orange|lime|pink|magenta|brown")
  • data (int): set data mode (from 0 to 2) (default magnitude)
    • magnitude (0) — show magnitude
    • phase (1) — show phase
    • delay (2) — show group delay
  • fscale (int): set frequency scale (from 0 to 2) (default lin)
    • lin (0) — linear
    • log (1) — logarithmic
    • rlog (2) — reverse logarithmic
  • minamp (float): set minimum amplitude (from FLT_MIN to 1e-06) (default 1e-06)
  • mode (int): set display mode (from 0 to 2) (default bar)
    • line (0) — show lines
    • bar (1) — show bars
    • dot (2) — show dots
  • overlap (float): set window overlap (from 0 to 1) (default 1)
  • r (video_rate): set video rate (default "25")
  • rate (video_rate): set video rate (default "25")
  • s (image_size): set video size (default "1024x512")
  • size (image_size): set video size (default "1024x512")
  • win_func (int): set window function (from 0 to 20) (default hann)
    • rect (0) — Rectangular
    • bartlett (4) — Bartlett
    • hann (1) — Hann
    • hanning (1) — Hanning
    • hamming (2) — Hamming
    • blackman (3) — Blackman
    • welch (5) — Welch
    • flattop (6) — Flat-top
    • bharris (7) — Blackman-Harris
    • bnuttall (8) — Blackman-Nuttall
    • bhann (11) — Bartlett-Hann
    • sine (9) — Sine
    • nuttall (10) — Nuttall
    • lanczos (12) — Lanczos
    • gauss (13) — Gauss
    • tukey (14) — Tukey
    • dolph (15) — Dolph-Chebyshev
    • cauchy (16) — Cauchy
    • parzen (17) — Parzen
    • poisson (18) — Poisson
    • bohman (19) — Bohman
    • kaiser (20) — Kaiser
  • win_size (int): set window size (from 16 to 65536) (default 2048)

See FFix.Filter for pipelines, expressions, and output handling.

showspatial(audio_0, options \\ [])

@spec showspatial(FFix.Graph.StreamRef.t(),
  r: String.t() | atom() | number(),
  rate: String.t() | atom() | number(),
  s: String.t() | atom() | number(),
  size: String.t() | atom() | number(),
  win_func: String.t() | atom() | number(),
  win_size: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Convert input audio to a spatial video output.

Options

  • r (video_rate): set video rate (default "25")
  • rate (video_rate): set video rate (default "25")
  • s (image_size): set video size (default "512x512")
  • size (image_size): set video size (default "512x512")
  • win_func (int): set window function (from 0 to 20) (default hann)
    • rect (0) — Rectangular
    • bartlett (4) — Bartlett
    • hann (1) — Hann
    • hanning (1) — Hanning
    • hamming (2) — Hamming
    • blackman (3) — Blackman
    • welch (5) — Welch
    • flattop (6) — Flat-top
    • bharris (7) — Blackman-Harris
    • bnuttall (8) — Blackman-Nuttall
    • bhann (11) — Bartlett-Hann
    • sine (9) — Sine
    • nuttall (10) — Nuttall
    • lanczos (12) — Lanczos
    • gauss (13) — Gauss
    • tukey (14) — Tukey
    • dolph (15) — Dolph-Chebyshev
    • cauchy (16) — Cauchy
    • parzen (17) — Parzen
    • poisson (18) — Poisson
    • bohman (19) — Bohman
    • kaiser (20) — Kaiser
  • win_size (int): set window size (from 1024 to 65536) (default 4096)

See FFix.Filter for pipelines, expressions, and output handling.

showspectrum(audio_0, options \\ [])

@spec showspectrum(FFix.Graph.StreamRef.t(),
  color: String.t() | atom() | number(),
  data: String.t() | atom() | number(),
  drange: String.t() | atom() | number(),
  fps: String.t() | atom() | number(),
  fscale: String.t() | atom() | number(),
  gain: String.t() | atom() | number(),
  legend: String.t() | atom() | number(),
  limit: String.t() | atom() | number(),
  mode: String.t() | atom() | number(),
  opacity: String.t() | atom() | number(),
  orientation: String.t() | atom() | number(),
  overlap: String.t() | atom() | number(),
  rotation: String.t() | atom() | number(),
  s: String.t() | atom() | number(),
  saturation: String.t() | atom() | number(),
  scale: String.t() | atom() | number(),
  size: String.t() | atom() | number(),
  slide: String.t() | atom() | number(),
  start: String.t() | atom() | number(),
  stop: String.t() | atom() | number(),
  win_func: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Convert input audio to a spectrum video output.

Options

  • color (int): set channel coloring (from 0 to 14) (default channel)
    • channel (0) — separate color for each channel
    • intensity (1) — intensity based coloring
    • rainbow (2) — rainbow based coloring
    • moreland (3) — moreland based coloring
    • nebulae (4) — nebulae based coloring
    • fire (5) — fire based coloring
    • fiery (6) — fiery based coloring
    • fruit (7) — fruit based coloring
    • cool (8) — cool based coloring
    • magma (9) — magma based coloring
    • green (10) — green based coloring
    • viridis (11) — viridis based coloring
    • plasma (12) — plasma based coloring
    • cividis (13) — cividis based coloring
    • terrain (14) — terrain based coloring
  • data (int): set data mode (from 0 to 2) (default magnitude)
    • magnitude (0)
    • phase (1)
    • uphase (2)
  • drange (float): set dynamic range in dBFS (from 10 to 200) (default 120)
  • fps (string): set video rate (default "auto")
  • fscale (int): set frequency scale (from 0 to 1) (default lin)
    • lin (0) — linear
    • log (1) — logarithmic
  • gain (float): set scale gain (from 0 to 128) (default 1)
  • legend (boolean): draw legend (default false)
  • limit (float): set upper limit in dBFS (from -100 to 100) (default 0)
  • mode (int): set channel display mode (from 0 to 1) (default combined)
    • combined (0) — combined mode
    • separate (1) — separate mode
  • opacity (float): set opacity strength (from 0 to 10) (default 1)
  • orientation (int): set orientation (from 0 to 1) (default vertical)
    • vertical (0)
    • horizontal (1)
  • overlap (float): set window overlap (from 0 to 1) (default 0)
  • rotation (float): color rotation (from -1 to 1) (default 0)
  • s (image_size): set video size (default "640x512")
  • saturation (float): color saturation multiplier (from -10 to 10) (default 1)
  • scale (int): set display scale (from 0 to 5) (default sqrt)
    • lin (0) — linear
    • sqrt (1) — square root
    • cbrt (2) — cubic root
    • log (3) — logarithmic
    • 4thrt (4) — 4th root
    • 5thrt (5) — 5th root
  • size (image_size): set video size (default "640x512")
  • slide (int): set sliding mode (from 0 to 4) (default replace)
    • replace (0) — replace old columns with new
    • scroll (1) — scroll from right to left
    • fullframe (2) — return full frames
    • rscroll (3) — scroll from left to right
    • lreplace (4) — replace from right to left
  • start (int): start frequency (from 0 to INT_MAX) (default 0)
  • stop (int): stop frequency (from 0 to INT_MAX) (default 0)
  • win_func (int): set window function (from 0 to 20) (default hann)
    • rect (0) — Rectangular
    • bartlett (4) — Bartlett
    • hann (1) — Hann
    • hanning (1) — Hanning
    • hamming (2) — Hamming
    • blackman (3) — Blackman
    • welch (5) — Welch
    • flattop (6) — Flat-top
    • bharris (7) — Blackman-Harris
    • bnuttall (8) — Blackman-Nuttall
    • bhann (11) — Bartlett-Hann
    • sine (9) — Sine
    • nuttall (10) — Nuttall
    • lanczos (12) — Lanczos
    • gauss (13) — Gauss
    • tukey (14) — Tukey
    • dolph (15) — Dolph-Chebyshev
    • cauchy (16) — Cauchy
    • parzen (17) — Parzen
    • poisson (18) — Poisson
    • bohman (19) — Bohman
    • kaiser (20) — Kaiser

See FFix.Filter for pipelines, expressions, and output handling.

showspectrumpic(audio_0, options \\ [])

@spec showspectrumpic(FFix.Graph.StreamRef.t(),
  color: String.t() | atom() | number(),
  drange: String.t() | atom() | number(),
  fscale: String.t() | atom() | number(),
  gain: String.t() | atom() | number(),
  legend: String.t() | atom() | number(),
  limit: String.t() | atom() | number(),
  mode: String.t() | atom() | number(),
  opacity: String.t() | atom() | number(),
  orientation: String.t() | atom() | number(),
  rotation: String.t() | atom() | number(),
  s: String.t() | atom() | number(),
  saturation: String.t() | atom() | number(),
  scale: String.t() | atom() | number(),
  size: String.t() | atom() | number(),
  start: String.t() | atom() | number(),
  stop: String.t() | atom() | number(),
  win_func: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Convert input audio to a spectrum video output single picture.

Options

  • color (int): set channel coloring (from 0 to 14) (default intensity)
    • channel (0) — separate color for each channel
    • intensity (1) — intensity based coloring
    • rainbow (2) — rainbow based coloring
    • moreland (3) — moreland based coloring
    • nebulae (4) — nebulae based coloring
    • fire (5) — fire based coloring
    • fiery (6) — fiery based coloring
    • fruit (7) — fruit based coloring
    • cool (8) — cool based coloring
    • magma (9) — magma based coloring
    • green (10) — green based coloring
    • viridis (11) — viridis based coloring
    • plasma (12) — plasma based coloring
    • cividis (13) — cividis based coloring
    • terrain (14) — terrain based coloring
  • drange (float): set dynamic range in dBFS (from 10 to 200) (default 120)
  • fscale (int): set frequency scale (from 0 to 1) (default lin)
    • lin (0) — linear
    • log (1) — logarithmic
  • gain (float): set scale gain (from 0 to 128) (default 1)
  • legend (boolean): draw legend (default true)
  • limit (float): set upper limit in dBFS (from -100 to 100) (default 0)
  • mode (int): set channel display mode (from 0 to 1) (default combined)
    • combined (0) — combined mode
    • separate (1) — separate mode
  • opacity (float): set opacity strength (from 0 to 10) (default 1)
  • orientation (int): set orientation (from 0 to 1) (default vertical)
    • vertical (0)
    • horizontal (1)
  • rotation (float): color rotation (from -1 to 1) (default 0)
  • s (image_size): set video size (default "4096x2048")
  • saturation (float): color saturation multiplier (from -10 to 10) (default 1)
  • scale (int): set display scale (from 0 to 5) (default log)
    • lin (0) — linear
    • sqrt (1) — square root
    • cbrt (2) — cubic root
    • log (3) — logarithmic
    • 4thrt (4) — 4th root
    • 5thrt (5) — 5th root
  • size (image_size): set video size (default "4096x2048")
  • start (int): start frequency (from 0 to INT_MAX) (default 0)
  • stop (int): stop frequency (from 0 to INT_MAX) (default 0)
  • win_func (int): set window function (from 0 to 20) (default hann)
    • rect (0) — Rectangular
    • bartlett (4) — Bartlett
    • hann (1) — Hann
    • hanning (1) — Hanning
    • hamming (2) — Hamming
    • blackman (3) — Blackman
    • welch (5) — Welch
    • flattop (6) — Flat-top
    • bharris (7) — Blackman-Harris
    • bnuttall (8) — Blackman-Nuttall
    • bhann (11) — Bartlett-Hann
    • sine (9) — Sine
    • nuttall (10) — Nuttall
    • lanczos (12) — Lanczos
    • gauss (13) — Gauss
    • tukey (14) — Tukey
    • dolph (15) — Dolph-Chebyshev
    • cauchy (16) — Cauchy
    • parzen (17) — Parzen
    • poisson (18) — Poisson
    • bohman (19) — Bohman
    • kaiser (20) — Kaiser

See FFix.Filter for pipelines, expressions, and output handling.

showvolume(audio_0, options \\ [])

@spec showvolume(FFix.Graph.StreamRef.t(),
  b: String.t() | atom() | number(),
  c: String.t() | atom() | number(),
  dm: String.t() | atom() | number(),
  dmc: String.t() | atom() | number(),
  ds: String.t() | atom() | number(),
  f: String.t() | atom() | number(),
  h: String.t() | atom() | number(),
  m: String.t() | atom() | number(),
  o: String.t() | atom() | number(),
  p: String.t() | atom() | number(),
  r: String.t() | atom() | number(),
  rate: String.t() | atom() | number(),
  s: String.t() | atom() | number(),
  t: String.t() | atom() | number(),
  v: String.t() | atom() | number(),
  w: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Convert input audio volume to video output.

Options

  • b (int): set border width (from 0 to 5) (default 1)
  • c (string): set volume color expression (default "PEAK255+floor((1-PEAK)255)*256+0xff000000")
  • dm (double): duration for max value display (from 0 to 9000) (default 0)
  • dmc (color): set color of the max value line (default "orange")
  • ds (int): set display scale (from 0 to 1) (default lin)
    • lin (0) — linear
    • log (1) — log
  • f (double): set fade (from 0 to 1) (default 0.95)
  • h (int): set channel height (from 1 to 900) (default 20)
  • m (int): set mode (from 0 to 1) (default p)
    • p (0) — peak
    • r (1) — rms
  • o (int): set orientation (from 0 to 1) (default h)
    • h (0) — horizontal
    • v (1) — vertical
  • p (float): set background opacity (from 0 to 1) (default 0)
  • r (video_rate): set video rate (default "25")
  • rate (video_rate): set video rate (default "25")
  • s (int): set step size (from 0 to 5) (default 0)
  • t (boolean): display channel names (default true)
  • v (boolean): display volume value (default true)
  • w (int): set channel width (from 80 to 8192) (default 400)

See FFix.Filter for pipelines, expressions, and output handling.

showwaves(audio_0, options \\ [])

@spec showwaves(FFix.Graph.StreamRef.t(),
  colors: String.t() | atom() | number(),
  draw: String.t() | atom() | number(),
  mode: String.t() | atom() | number(),
  n: String.t() | atom() | number(),
  r: String.t() | atom() | number(),
  rate: String.t() | atom() | number(),
  s: String.t() | atom() | number(),
  scale: String.t() | atom() | number(),
  size: String.t() | atom() | number(),
  split_channels: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Convert input audio to a video output.

Options

  • colors (string): set channels colors (default "red|green|blue|yellow|orange|lime|pink|magenta|brown")
  • draw (int): set draw mode (from 0 to 1) (default scale)
    • scale (0) — scale pixel values for each drawn sample
    • full (1) — draw every pixel for sample directly
  • mode (int): select display mode (from 0 to 3) (default point)
    • point (0) — draw a point for each sample
    • line (1) — draw a line for each sample
    • p2p (2) — draw a line between samples
    • cline (3) — draw a centered line for each sample
  • n (rational): set how many samples to show in the same point (from 0 to INT_MAX) (default 0/1)
  • r (video_rate): set video rate (default "25")
  • rate (video_rate): set video rate (default "25")
  • s (image_size): set video size (default "600x240")
  • scale (int): set amplitude scale (from 0 to 3) (default lin)
    • lin (0) — linear
    • log (1) — logarithmic
    • sqrt (2) — square root
    • cbrt (3) — cubic root
  • size (image_size): set video size (default "600x240")
  • split_channels (boolean): draw channels separately (default false)

See FFix.Filter for pipelines, expressions, and output handling.

showwavespic(audio_0, options \\ [])

@spec showwavespic(FFix.Graph.StreamRef.t(),
  colors: String.t() | atom() | number(),
  draw: String.t() | atom() | number(),
  filter: String.t() | atom() | number(),
  s: String.t() | atom() | number(),
  scale: String.t() | atom() | number(),
  size: String.t() | atom() | number(),
  split_channels: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Convert input audio to a video output single picture.

Options

  • colors (string): set channels colors (default "red|green|blue|yellow|orange|lime|pink|magenta|brown")
  • draw (int): set draw mode (from 0 to 1) (default scale)
    • scale (0) — scale pixel values for each drawn sample
    • full (1) — draw every pixel for sample directly
  • filter (int): set filter mode (from 0 to 1) (default average)
    • average (0) — use average samples
    • peak (1) — use peak samples
  • s (image_size): set video size (default "600x240")
  • scale (int): set amplitude scale (from 0 to 3) (default lin)
    • lin (0) — linear
    • log (1) — logarithmic
    • sqrt (2) — square root
    • cbrt (3) — cubic root
  • size (image_size): set video size (default "600x240")
  • split_channels (boolean): draw channels separately (default false)

See FFix.Filter for pipelines, expressions, and output handling.

spectrumsynth(video_0, video_1, options \\ [])

@spec spectrumsynth(FFix.Graph.StreamRef.t(), FFix.Graph.StreamRef.t(),
  channels: String.t() | atom() | number(),
  orientation: String.t() | atom() | number(),
  overlap: String.t() | atom() | number(),
  sample_rate: String.t() | atom() | number(),
  scale: String.t() | atom() | number(),
  slide: String.t() | atom() | number(),
  win_func: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) :: FFix.Graph.StreamRef.t()

Convert input spectrum videos to audio output.

Options

  • channels (int): set channels (from 1 to 8) (default 1)
  • orientation (int): set orientation (from 0 to 1) (default vertical)
    • vertical (0)
    • horizontal (1)
  • overlap (float): set window overlap (from 0 to 1) (default 1)
  • sample_rate (int): set sample rate (from 15 to INT_MAX) (default 44100)
  • scale (int): set input amplitude scale (from 0 to 1) (default log)
    • lin (0) — linear
    • log (1) — logarithmic
  • slide (int): set input sliding mode (from 0 to 3) (default fullframe)
    • replace (0) — consume old columns with new
    • scroll (1) — consume only most right column
    • fullframe (2) — consume full frames
    • rscroll (3) — consume only most left column
  • win_func (int): set window function (from 0 to 20) (default rect)
    • rect (0) — Rectangular
    • bartlett (4) — Bartlett
    • hann (1) — Hann
    • hanning (1) — Hanning
    • hamming (2) — Hamming
    • blackman (3) — Blackman
    • welch (5) — Welch
    • flattop (6) — Flat-top
    • bharris (7) — Blackman-Harris
    • bnuttall (8) — Blackman-Nuttall
    • bhann (11) — Bartlett-Hann
    • sine (9) — Sine
    • nuttall (10) — Nuttall
    • lanczos (12) — Lanczos
    • gauss (13) — Gauss
    • tukey (14) — Tukey
    • dolph (15) — Dolph-Chebyshev
    • cauchy (16) — Cauchy
    • parzen (17) — Parzen
    • poisson (18) — Poisson
    • bohman (19) — Bohman
    • kaiser (20) — Kaiser

See FFix.Filter for pipelines, expressions, and output handling.

streamselect(streams, options \\ [])

@spec streamselect([FFix.Graph.StreamRef.t()],
  inputs: String.t() | atom() | number(),
  map: String.t() | atom() | number(),
  pos: String.t() | atom() | number()
) ::
  FFix.Graph.StreamRef.t()
  | [FFix.Graph.StreamRef.t()]
  | FFix.Graph.Terminal.t()

Select video streams

Options

  • inputs (int): number of input streams (from 2 to INT_MAX) (default 2)
  • map (string): input indexes to remap to outputs

See FFix.Filter for pipelines, expressions, and output handling.

Types

option()

@type option() :: {atom() | String.t(), String.t() | atom() | number()}