FFix.Filter (ffix v0.1.0)

Copy Markdown View Source

Generated helpers for ffmpeg filters.

Each function mirrors one filter reported by the local ffmpeg executable at compile time. Function names and option keys stay close to ffmpeg. Function arguments are FFix.Stream values; the final argument is a keyword list of ffmpeg filter options.

video
|> scale(w: 1280, h: -1)
|> fps(fps: 30)

Most filters return a single FFix.Stream. Multi-output filters return a tuple or list:

[left, right] = split(video, outputs: 2)
stacked = hstack([left, hflip(right)])

Some ffmpeg filters have dynamic output shapes. Use FFix.shape/2 when the generated metadata cannot infer the shape you need:

[audio, video] =
  audio_in
  |> ebur128(video: true)
  |> FFix.shape([:audio, :video])

Generated metadata is useful but not perfect. Use FFix.filter/3 when the filter name is dynamic, raw strings for ffmpeg-specific option syntax, and FFix.shape/2 when a dynamic filter needs an explicit output shape.

Timeline-capable filters accept ffmpeg's implicit enable: option. Filters backed by ffmpeg framesync also accept the common eof_action:, shortest:, repeatlast:, and ts_sync_mode: options.

Summary

Source filters

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

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.

Null audio source, return empty audio frames.

Generate an Audio Video Sync Test.

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

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.

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.

Video filters

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

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.

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.

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.

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.

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.

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.

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.

Calculate the VMAF between two video streams.

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.

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.

Apply prewitt operator.

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

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.

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 spatial information (SI) and temporal information (TI).

Blur the input video without impacting the outlines.

Apply sobel operator.

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.

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"

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.

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

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 filters

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.

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.

Convert the input audio to one of the specified formats.

Apply frequency shifting to input audio.

Denoise audio stream using Wavelets.

Compute integral of input audio.

Report audio filtering latency.

Audio lookahead limiter.

Apply a two-pole all-pass filter.

Loop audio samples.

Manipulate audio frame metadata.

Multiply two audio streams.

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.

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.

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.

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.

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 a high-pass filter with 3dB point frequency.

Apply a high shelf filter.

EBU R128 loudness normalization

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

Apply a low shelf filter.

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.

Audio/video 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.

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.

Multi-stream filters

Split audio into per-bands streams.

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

Apply Infinite Impulse Response filter with supplied coefficients.

Temporally interleave audio inputs.

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

Apply high-order audio parametric multi band equalizer.

Convert input audio to phase meter video output.

Segment audio stream.

Select audio frames to pass in output.

Pass on the audio input to N audio outputs.

Block-Matching 3D denoiser.

Split audio into per-channel streams.

Concatenate audio and video streams.

Decimate frames (post field matching filter).

Extract planes as grayscale frames.

Field matching for inverse telecine.

Apply Guided filter.

Apply headphone binaural spatialization with HRTFs in additional streams.

Stack video inputs horizontally.

"Quick Sync Video" hstack

Temporally interleave video inputs.

Join multiple audio streams into multi-channel output.

Apply LADSPA effect.

Apply various GPU filters from libplacebo

Apply filtering with limiting difference.

Apply LV2 effect.

Mix video inputs.

PreMultiply first stream with first plane of second stream.

Filter video using an OpenCL program

Segment video stream.

Select video frames to pass in output.

Calculate the MPEG-7 video signature

Pass on the input to N video outputs.

UnPreMultiply first stream with first plane of second stream.

Stack video inputs vertically.

"Quick Sync Video" vstack

Pick median pixels from several video inputs.

Stack video inputs into custom layout.

"Quick Sync Video" xstack

Sink filters

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

Do absolutely nothing with the input audio.

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

Do absolutely nothing with the input video.

Source filters

abuffer(options \\ [])

@spec abuffer(
  sample_fmt: term(),
  time_base: term(),
  sample_rate: integer(),
  channel_layout: String.t(),
  channels: integer()
) :: FFix.Stream.t()

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

Options

  • sample_fmt - (default none)
  • time_base - (from 0 to INT_MAX) (default 0/1)
  • sample_rate - (from 0 to INT_MAX) (default 0)
  • channel_layout -
  • channels - (from 0 to INT_MAX) (default 0)

aevalsrc(options \\ [])

@spec aevalsrc(
  exprs: String.t(),
  c: String.t(),
  s: String.t(),
  d: term(),
  n: integer(),
  duration: term(),
  nb_samples: integer(),
  sample_rate: String.t(),
  channel_layout: String.t()
) :: FFix.Stream.t()

Generate an audio signal generated by an expression.

Options

  • exprs - set the '|'-separated list of channels expressions
  • c - set channel layout
  • s - set the sample rate (default "44100")
  • d - set audio duration (default -0.000001)
  • n - set the number of samples per requested frame (from 0 to INT_MAX) (default 1024)
  • duration - set audio duration (default -0.000001)
  • nb_samples - set the number of samples per requested frame (from 0 to INT_MAX) (default 1024)
  • sample_rate - set the sample rate (default "44100")
  • channel_layout - set channel layout

afdelaysrc(options \\ [])

@spec afdelaysrc(
  c: term(),
  r: integer(),
  d: float(),
  delay: float(),
  n: integer(),
  t: integer(),
  nb_samples: integer(),
  sample_rate: integer(),
  channel_layout: term(),
  taps: integer()
) :: FFix.Stream.t()

Generate a Fractional delay FIR coefficients.

Options

  • c - set channel layout (default "stereo")
  • r - set sample rate (from 1 to INT_MAX) (default 44100)
  • d - set fractional delay (from 0 to 32767) (default 0)
  • delay - set fractional delay (from 0 to 32767) (default 0)
  • n - set the number of samples per requested frame (from 1 to INT_MAX) (default 1024)
  • t - set number of taps for delay filter (from 0 to 32768) (default 0)
  • nb_samples - set the number of samples per requested frame (from 1 to INT_MAX) (default 1024)
  • sample_rate - set sample rate (from 1 to INT_MAX) (default 44100)
  • channel_layout - set channel layout (default "stereo")
  • taps - set number of taps for delay filter (from 0 to 32768) (default 0)

afireqsrc(options \\ [])

@spec afireqsrc(
  p: integer() | String.t() | atom(),
  i: integer() | String.t() | atom(),
  b: String.t(),
  h: integer() | String.t() | atom(),
  r: integer(),
  phase: integer() | String.t() | atom(),
  n: integer(),
  t: integer(),
  nb_samples: integer(),
  sample_rate: integer(),
  gains: String.t(),
  preset: integer() | String.t() | atom(),
  g: String.t(),
  bands: String.t(),
  taps: integer(),
  interp: integer() | String.t() | atom()
) :: FFix.Stream.t()

Generate a FIR equalizer coefficients audio stream.

Options

  • p - 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)
  • i - set the interpolation (from 0 to 1) (default linear)

    • linear (0)
    • cubic (1)
  • b - set central frequency values per band (default "25 40 63 100 160 250 400 630 1000 1600 2500 4000 6300 10000 16000 24000")

  • h - set the phase (from 0 to 1) (default min)

    • linear (0) - linear phase
    • min (1) - minimum phase
  • r - set sample rate (from 1 to INT_MAX) (default 44100)

  • phase - set the phase (from 0 to 1) (default min)

    • linear (0) - linear phase
    • min (1) - minimum phase
  • n - set the number of samples per requested frame (from 1 to INT_MAX) (default 1024)

  • t - set number of taps (from 16 to 65535) (default 4096)

  • nb_samples - set the number of samples per requested frame (from 1 to INT_MAX) (default 1024)

  • sample_rate - set sample rate (from 1 to INT_MAX) (default 44100)

  • gains - set gain values per band (default "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0")

  • preset - 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)
  • g - set gain values per band (default "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0")

  • bands - set central frequency values per band (default "25 40 63 100 160 250 400 630 1000 1600 2500 4000 6300 10000 16000 24000")

  • taps - set number of taps (from 16 to 65535) (default 4096)

  • interp - set the interpolation (from 0 to 1) (default linear)

    • linear (0)
    • cubic (1)

afirsrc(options \\ [])

@spec afirsrc(
  p: String.t(),
  m: String.t(),
  f: String.t(),
  r: integer(),
  w: integer() | String.t() | atom(),
  phase: String.t(),
  n: integer(),
  t: integer(),
  nb_samples: integer(),
  sample_rate: integer(),
  win_func: integer() | String.t() | atom(),
  frequency: String.t(),
  taps: integer(),
  magnitude: String.t()
) :: FFix.Stream.t()

Generate a FIR coefficients audio stream.

Options

  • p - set phase values (default "0 0")

  • m - set magnitude values (default "1 1")

  • f - set frequency points (default "0 1")

  • r - set sample rate (from 1 to INT_MAX) (default 44100)

  • w - 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
  • phase - set phase values (default "0 0")

  • n - set the number of samples per requested frame (from 1 to INT_MAX) (default 1024)

  • t - set number of taps (from 9 to 65535) (default 1025)

  • nb_samples - set the number of samples per requested frame (from 1 to INT_MAX) (default 1024)

  • sample_rate - set sample rate (from 1 to INT_MAX) (default 44100)

  • win_func - 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
  • frequency - set frequency points (default "0 1")

  • taps - set number of taps (from 9 to 65535) (default 1025)

  • magnitude - set magnitude values (default "1 1")

allrgb(options \\ [])

@spec allrgb(r: term(), d: term(), rate: term(), duration: term(), sar: term()) ::
  FFix.Stream.t()

Generate all RGB colors.

Options

  • r - set video rate (default "25")
  • d - set video duration (default -0.000001)
  • rate - set video rate (default "25")
  • duration - set video duration (default -0.000001)
  • sar - set video sample aspect ratio (from 0 to INT_MAX) (default 1/1)

allyuv(options \\ [])

@spec allyuv(r: term(), d: term(), rate: term(), duration: term(), sar: term()) ::
  FFix.Stream.t()

Generate all yuv colors.

Options

  • r - set video rate (default "25")
  • d - set video duration (default -0.000001)
  • rate - set video rate (default "25")
  • duration - set video duration (default -0.000001)
  • sar - set video sample aspect ratio (from 0 to INT_MAX) (default 1/1)

amovie(options \\ [])

@spec amovie(
  filename: String.t(),
  loop: integer(),
  f: String.t(),
  s: String.t(),
  streams: String.t(),
  format_name: String.t(),
  stream_index: integer(),
  si: integer(),
  seek_point: float(),
  sp: float(),
  discontinuity: term(),
  dec_threads: integer(),
  format_opts: term()
) :: [FFix.Stream.t()]

Read audio from a movie source.

Options

  • filename -
  • loop - set loop count (from 0 to INT_MAX) (default 1)
  • f - set format name
  • s - set streams
  • streams - set streams
  • format_name - set format name
  • stream_index - set stream index (from -1 to INT_MAX) (default -1)
  • si - set stream index (from -1 to INT_MAX) (default -1)
  • seek_point - set seekpoint (seconds) (from 0 to 9.22337e+12) (default 0)
  • sp - set seekpoint (seconds) (from 0 to 9.22337e+12) (default 0)
  • discontinuity - set discontinuity threshold (default 0)
  • dec_threads - set the number of threads for decoding (from 0 to INT_MAX) (default 0)
  • format_opts - set format options for the opened file

anoisesrc(options \\ [])

@spec anoisesrc(
  c: integer() | String.t() | atom(),
  a: float(),
  s: integer(),
  seed: integer(),
  r: integer(),
  d: term(),
  n: integer(),
  color: integer() | String.t() | atom(),
  duration: term(),
  nb_samples: integer(),
  sample_rate: integer(),
  amplitude: float(),
  colour: integer() | String.t() | atom(),
  density: float()
) :: FFix.Stream.t()

Generate a noise audio signal.

Options

  • c - set noise color (from 0 to 5) (default white)

    • white (0)
    • pink (1)
    • brown (2)
    • blue (3)
    • violet (4)
    • velvet (5)
  • a - set amplitude (from 0 to 1) (default 1)

  • s - set random seed (from -1 to UINT32_MAX) (default -1)

  • seed - set random seed (from -1 to UINT32_MAX) (default -1)

  • r - set sample rate (from 15 to INT_MAX) (default 48000)

  • d - set duration (default 0)

  • n - set the number of samples per requested frame (from 1 to INT_MAX) (default 1024)

  • color - set noise color (from 0 to 5) (default white)

    • white (0)
    • pink (1)
    • brown (2)
    • blue (3)
    • violet (4)
    • velvet (5)
  • duration - set duration (default 0)

  • nb_samples - set the number of samples per requested frame (from 1 to INT_MAX) (default 1024)

  • sample_rate - set sample rate (from 15 to INT_MAX) (default 48000)

  • amplitude - set amplitude (from 0 to 1) (default 1)

  • colour - set noise color (from 0 to 5) (default white)

    • white (0)
    • pink (1)
    • brown (2)
    • blue (3)
    • violet (4)
    • velvet (5)
  • density - set density (from 0 to 1) (default 0.05)

anullsrc(options \\ [])

@spec anullsrc(
  r: integer(),
  d: term(),
  n: integer(),
  duration: term(),
  nb_samples: integer(),
  sample_rate: integer(),
  channel_layout: term(),
  cl: term()
) :: FFix.Stream.t()

Null audio source, return empty audio frames.

Options

  • r - set sample rate (from 1 to INT_MAX) (default 44100)
  • d - set the audio duration (default -0.000001)
  • n - set the number of samples per requested frame (from 1 to 65535) (default 1024)
  • duration - set the audio duration (default -0.000001)
  • nb_samples - set the number of samples per requested frame (from 1 to 65535) (default 1024)
  • sample_rate - set sample rate (from 1 to INT_MAX) (default 44100)
  • channel_layout - set channel_layout (default "stereo")
  • cl - set channel_layout (default "stereo")

avsynctest(options \\ [])

@spec avsynctest(
  size: term(),
  c: boolean(),
  cycle: boolean(),
  period: integer(),
  p: integer(),
  a: float(),
  s: term(),
  d: term(),
  delay: integer(),
  fr: term(),
  framerate: term(),
  duration: term(),
  bg: term(),
  samplerate: integer(),
  sr: integer(),
  amplitude: float(),
  dl: integer(),
  fg: term(),
  ag: term()
) :: {FFix.Stream.t(), FFix.Stream.t()}

Generate an Audio Video Sync Test.

Options

  • size - set frame size (default "hd720")
  • c - set delay cycle (default false)
  • cycle - set delay cycle (default false)
  • period - set beep period (from 1 to 99) (default 3)
  • p - set beep period (from 1 to 99) (default 3)
  • a - set beep amplitude (from 0 to 1) (default 0.7)
  • s - set frame size (default "hd720")
  • d - set duration (default 0)
  • delay - set flash delay (from -30 to 30) (default 0)
  • fr - set frame rate (default "30")
  • framerate - set frame rate (default "30")
  • duration - set duration (default 0)
  • bg - set background color (default "black")
  • samplerate - set sample rate (from 8000 to 384000) (default 44100)
  • sr - set sample rate (from 8000 to 384000) (default 44100)
  • amplitude - set beep amplitude (from 0 to 1) (default 0.7)
  • dl - set flash delay (from -30 to 30) (default 0)
  • fg - set foreground color (default "white")
  • ag - set additional color (default "gray")

buffer(options \\ [])

@spec buffer(
  range: integer() | String.t() | atom(),
  width: integer(),
  colorspace: integer() | String.t() | atom(),
  time_base: term(),
  sar: term(),
  height: integer(),
  pix_fmt: term(),
  video_size: term(),
  pixel_aspect: term(),
  frame_rate: term()
) :: FFix.Stream.t()

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

Options

  • range - 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)
  • width - (from 0 to INT_MAX) (default 0)

  • colorspace - 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)
  • time_base - (from 0 to DBL_MAX) (default 0/1)

  • sar - sample aspect ratio (from 0 to DBL_MAX) (default 0/1)

  • height - (from 0 to INT_MAX) (default 0)

  • pix_fmt - (default none)

  • video_size -

  • pixel_aspect - sample aspect ratio (from 0 to DBL_MAX) (default 0/1)

  • frame_rate - (from 0 to DBL_MAX) (default 0/1)

cellauto(options \\ [])

@spec cellauto(
  size: term(),
  filename: String.t(),
  full: boolean(),
  p: String.t(),
  pattern: String.t(),
  f: String.t(),
  s: term(),
  seed: integer(),
  r: term(),
  ratio: float(),
  scroll: boolean(),
  rate: term(),
  random_seed: integer(),
  rule: integer(),
  random_fill_ratio: float(),
  stitch: boolean(),
  start_full: boolean()
) :: FFix.Stream.t()

Create pattern generated by an elementary cellular automaton.

Options

  • size - set video size
  • filename - read initial pattern from file
  • full - start filling the whole video (default true)
  • p - set initial pattern
  • pattern - set initial pattern
  • f - read initial pattern from file
  • s - set video size
  • seed - set the seed for filling the initial grid randomly (from -1 to UINT32_MAX) (default -1)
  • r - set video rate (default "25")
  • ratio - set fill ratio for filling initial grid randomly (from 0 to 1) (default 0.618034)
  • scroll - scroll pattern downward (default true)
  • rate - set video rate (default "25")
  • random_seed - set the seed for filling the initial grid randomly (from -1 to UINT32_MAX) (default -1)
  • rule - set rule (from 0 to 255) (default 110)
  • random_fill_ratio - set fill ratio for filling initial grid randomly (from 0 to 1) (default 0.618034)
  • stitch - stitch boundaries (default true)
  • start_full - start filling the whole video (default false)

color(options \\ [])

@spec color(
  size: term(),
  c: term(),
  s: term(),
  r: term(),
  d: term(),
  color: term(),
  rate: term(),
  duration: term(),
  sar: term()
) :: FFix.Stream.t()

Provide an uniformly colored input.

Options

  • size - set video size (default "320x240")
  • c - set color (default "black")
  • s - set video size (default "320x240")
  • r - set video rate (default "25")
  • d - set video duration (default -0.000001)
  • color - set color (default "black")
  • rate - set video rate (default "25")
  • duration - set video duration (default -0.000001)
  • sar - set video sample aspect ratio (from 0 to INT_MAX) (default 1/1)

color_vulkan(options \\ [])

@spec color_vulkan(
  size: term(),
  format: String.t(),
  c: term(),
  s: term(),
  r: term(),
  d: term(),
  color: term(),
  rate: term(),
  duration: term(),
  sar: term(),
  out_range: integer() | String.t() | atom()
) :: FFix.Stream.t()

Generate a constant color (Vulkan)

Options

  • size - set video size (default "1920x1080")
  • format - Output video format (software format of hardware frames)
  • c - set color (default "black")
  • s - set video size (default "1920x1080")
  • r - set video rate (default "60")
  • d - set video duration (default -0.000001)
  • color - set color (default "black")
  • rate - set video rate (default "60")
  • duration - set video duration (default -0.000001)
  • sar - set video sample aspect ratio (from 0 to INT_MAX) (default 1/1)
  • out_range - 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

colorchart(options \\ [])

@spec colorchart(
  r: term(),
  d: term(),
  rate: term(),
  duration: term(),
  sar: term(),
  preset: integer() | String.t() | atom(),
  patch_size: term()
) :: FFix.Stream.t()

Generate color checker chart.

Options

  • r - set video rate (default "25")

  • d - set video duration (default -0.000001)

  • rate - set video rate (default "25")

  • duration - set video duration (default -0.000001)

  • sar - set video sample aspect ratio (from 0 to INT_MAX) (default 1/1)

  • preset - set the color checker chart preset (from 0 to 1) (default reference)

    • reference (0) - reference
    • skintones (1) - skintones
  • patch_size - set the single patch size (default "64x64")

colorspectrum(options \\ [])

@spec colorspectrum(
  size: term(),
  type: integer() | String.t() | atom(),
  s: term(),
  r: term(),
  d: term(),
  rate: term(),
  duration: term(),
  sar: term()
) :: FFix.Stream.t()

Generate colors spectrum.

Options

  • size - set video size (default "320x240")

  • type - 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
  • s - set video size (default "320x240")

  • r - set video rate (default "25")

  • d - set video duration (default -0.000001)

  • rate - set video rate (default "25")

  • duration - set video duration (default -0.000001)

  • sar - set video sample aspect ratio (from 0 to INT_MAX) (default 1/1)

frei0r_src(options \\ [])

@spec frei0r_src(
  size: term(),
  filter_name: String.t(),
  framerate: term(),
  filter_params: String.t()
) ::
  FFix.Stream.t()

Generate a frei0r source.

Options

  • size - Dimensions of the generated video. (default "320x240")
  • filter_name -
  • framerate - (default "25")
  • filter_params -

gradients(options \\ [])

@spec gradients(
  size: term(),
  type: integer() | String.t() | atom(),
  speed: float(),
  s: term(),
  seed: integer(),
  r: term(),
  d: term(),
  n: integer(),
  t: integer() | String.t() | atom(),
  x1: integer(),
  x0: integer(),
  rate: term(),
  duration: term(),
  c1: term(),
  c2: term(),
  c0: term(),
  c3: term(),
  y1: integer(),
  y0: integer(),
  c4: term(),
  c5: term(),
  c6: term(),
  c7: term(),
  nb_colors: integer()
) :: FFix.Stream.t()

Draw a gradients.

Options

  • size - set frame size (default "640x480")

  • type - 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
  • speed - set gradients rotation speed (from 0 to 1) (default 0.01)

  • s - set frame size (default "640x480")

  • seed - set the seed (from -1 to UINT32_MAX) (default -1)

  • r - set frame rate (default "25")

  • d - set video duration (default -0.000001)

  • n - set the number of colors (from 2 to 8) (default 2)

  • t - 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
  • x1 - set gradient line destination x1 (from -1 to INT_MAX) (default -1)

  • x0 - set gradient line source x0 (from -1 to INT_MAX) (default -1)

  • rate - set frame rate (default "25")

  • duration - set video duration (default -0.000001)

  • c1 - set 2nd color (default "random")

  • c2 - set 3rd color (default "random")

  • c0 - set 1st color (default "random")

  • c3 - set 4th color (default "random")

  • y1 - set gradient line destination y1 (from -1 to INT_MAX) (default -1)

  • y0 - set gradient line source y0 (from -1 to INT_MAX) (default -1)

  • c4 - set 5th color (default "random")

  • c5 - set 6th color (default "random")

  • c6 - set 7th color (default "random")

  • c7 - set 8th color (default "random")

  • nb_colors - set the number of colors (from 2 to 8) (default 2)

haldclutsrc(options \\ [])

@spec haldclutsrc(
  level: integer(),
  r: term(),
  d: term(),
  rate: term(),
  duration: term(),
  sar: term()
) ::
  FFix.Stream.t()

Provide an identity Hald CLUT.

Options

  • level - set level (from 2 to 16) (default 6)
  • r - set video rate (default "25")
  • d - set video duration (default -0.000001)
  • rate - set video rate (default "25")
  • duration - set video duration (default -0.000001)
  • sar - set video sample aspect ratio (from 0 to INT_MAX) (default 1/1)

hilbert(options \\ [])

@spec hilbert(
  r: integer(),
  w: integer() | String.t() | atom(),
  n: integer(),
  t: integer(),
  nb_samples: integer(),
  sample_rate: integer(),
  win_func: integer() | String.t() | atom(),
  taps: integer()
) :: FFix.Stream.t()

Generate a Hilbert transform FIR coefficients.

Options

  • r - set sample rate (from 1 to INT_MAX) (default 44100)

  • w - 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
  • n - set the number of samples per requested frame (from 1 to INT_MAX) (default 1024)

  • t - set number of taps (from 11 to 65535) (default 22051)

  • nb_samples - set the number of samples per requested frame (from 1 to INT_MAX) (default 1024)

  • sample_rate - set sample rate (from 1 to INT_MAX) (default 44100)

  • win_func - 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
  • taps - set number of taps (from 11 to 65535) (default 22051)

life(options \\ [])

@spec life(
  size: term(),
  filename: String.t(),
  f: String.t(),
  s: term(),
  seed: integer(),
  r: term(),
  ratio: float(),
  rate: term(),
  random_seed: integer(),
  rule: String.t(),
  random_fill_ratio: float(),
  stitch: boolean(),
  mold: integer(),
  life_color: term(),
  death_color: term(),
  mold_color: term()
) :: FFix.Stream.t()

Create life.

Options

  • size - set video size
  • filename - set source file
  • f - set source file
  • s - set video size
  • seed - set the seed for filling the initial grid randomly (from -1 to UINT32_MAX) (default -1)
  • r - set video rate (default "25")
  • ratio - set fill ratio for filling initial grid randomly (from 0 to 1) (default 0.618034)
  • rate - set video rate (default "25")
  • random_seed - set the seed for filling the initial grid randomly (from -1 to UINT32_MAX) (default -1)
  • rule - set rule (default "B3/S23")
  • random_fill_ratio - set fill ratio for filling initial grid randomly (from 0 to 1) (default 0.618034)
  • stitch - stitch boundaries (default true)
  • mold - set mold speed for dead cells (from 0 to 255) (default 0)
  • life_color - set life color (default "white")
  • death_color - set death color (default "black")
  • mold_color - set mold color (default "black")

mandelbrot(options \\ [])

@spec mandelbrot(
  size: term(),
  s: term(),
  r: term(),
  rate: term(),
  end_pts: float(),
  maxiter: integer(),
  start_x: float(),
  start_y: float(),
  start_scale: float(),
  end_scale: float(),
  bailout: float(),
  morphxf: float(),
  morphyf: float(),
  morphamp: float(),
  outer: integer() | String.t() | atom(),
  inner: integer() | String.t() | atom()
) :: FFix.Stream.t()

Render a Mandelbrot fractal.

Options

  • size - set frame size (default "640x480")

  • s - set frame size (default "640x480")

  • r - set frame rate (default "25")

  • rate - set frame rate (default "25")

  • end_pts - set the terminal pts value (from 0 to I64_MAX) (default 400)

  • maxiter - set max iterations number (from 1 to INT_MAX) (default 7189)

  • start_x - set the initial x position (from -100 to 100) (default -0.743644)

  • start_y - set the initial y position (from -100 to 100) (default -0.131826)

  • start_scale - set the initial scale value (from 0 to FLT_MAX) (default 3)

  • end_scale - set the terminal scale value (from 0 to FLT_MAX) (default 0.3)

  • bailout - set the bailout value (from 0 to FLT_MAX) (default 10)

  • morphxf - set morph x frequency (from -FLT_MAX to FLT_MAX) (default 0.01)

  • morphyf - set morph y frequency (from -FLT_MAX to FLT_MAX) (default 0.0123)

  • morphamp - set morph amplitude (from -FLT_MAX to FLT_MAX) (default 0)

  • outer - 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
  • inner - 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

movie(options \\ [])

@spec movie(
  filename: String.t(),
  loop: integer(),
  f: String.t(),
  s: String.t(),
  streams: String.t(),
  format_name: String.t(),
  stream_index: integer(),
  si: integer(),
  seek_point: float(),
  sp: float(),
  discontinuity: term(),
  dec_threads: integer(),
  format_opts: term()
) :: [FFix.Stream.t()]

Read from a movie source.

Options

  • filename -
  • loop - set loop count (from 0 to INT_MAX) (default 1)
  • f - set format name
  • s - set streams
  • streams - set streams
  • format_name - set format name
  • stream_index - set stream index (from -1 to INT_MAX) (default -1)
  • si - set stream index (from -1 to INT_MAX) (default -1)
  • seek_point - set seekpoint (seconds) (from 0 to 9.22337e+12) (default 0)
  • sp - set seekpoint (seconds) (from 0 to 9.22337e+12) (default 0)
  • discontinuity - set discontinuity threshold (default 0)
  • dec_threads - set the number of threads for decoding (from 0 to INT_MAX) (default 0)
  • format_opts - set format options for the opened file

mptestsrc(options \\ [])

@spec mptestsrc(
  m: integer(),
  r: term(),
  d: term(),
  test: integer() | String.t() | atom(),
  t: integer() | String.t() | atom(),
  rate: term(),
  duration: term(),
  max_frames: integer()
) :: FFix.Stream.t()

Generate various test pattern.

Options

  • m - Set the maximum number of frames generated for each test (from 1 to I64_MAX) (default 30)

  • r - set video rate (default "25")

  • d - set video duration (default -0.000001)

  • test - 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)
  • t - 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)
  • rate - set video rate (default "25")

  • duration - set video duration (default -0.000001)

  • max_frames - Set the maximum number of frames generated for each test (from 1 to I64_MAX) (default 30)

nullsrc(options \\ [])

@spec nullsrc(
  size: term(),
  s: term(),
  r: term(),
  d: term(),
  rate: term(),
  duration: term(),
  sar: term()
) :: FFix.Stream.t()

Null video source, return unprocessed video frames.

Options

  • size - set video size (default "320x240")
  • s - set video size (default "320x240")
  • r - set video rate (default "25")
  • d - set video duration (default -0.000001)
  • rate - set video rate (default "25")
  • duration - set video duration (default -0.000001)
  • sar - set video sample aspect ratio (from 0 to INT_MAX) (default 1/1)

openclsrc(options \\ [])

@spec openclsrc(
  size: term(),
  format: term(),
  kernel: String.t(),
  s: term(),
  r: term(),
  source: String.t(),
  rate: term()
) :: FFix.Stream.t()

Generate video using an OpenCL program

Options

  • size - Video size
  • format - Video format (default none)
  • kernel - Kernel name in program
  • s - Video size
  • r - Video frame rate (default "25")
  • source - OpenCL program source file
  • rate - Video frame rate (default "25")

pal75bars(options \\ [])

@spec pal75bars(
  size: term(),
  s: term(),
  r: term(),
  d: term(),
  rate: term(),
  duration: term(),
  sar: term()
) :: FFix.Stream.t()

Generate PAL 75% color bars.

Options

  • size - set video size (default "320x240")
  • s - set video size (default "320x240")
  • r - set video rate (default "25")
  • d - set video duration (default -0.000001)
  • rate - set video rate (default "25")
  • duration - set video duration (default -0.000001)
  • sar - set video sample aspect ratio (from 0 to INT_MAX) (default 1/1)

pal100bars(options \\ [])

@spec pal100bars(
  size: term(),
  s: term(),
  r: term(),
  d: term(),
  rate: term(),
  duration: term(),
  sar: term()
) :: FFix.Stream.t()

Generate PAL 100% color bars.

Options

  • size - set video size (default "320x240")
  • s - set video size (default "320x240")
  • r - set video rate (default "25")
  • d - set video duration (default -0.000001)
  • rate - set video rate (default "25")
  • duration - set video duration (default -0.000001)
  • sar - set video sample aspect ratio (from 0 to INT_MAX) (default 1/1)

perlin(options \\ [])

@spec perlin(
  size: term(),
  s: term(),
  seed: term(),
  r: term(),
  rate: term(),
  octaves: integer(),
  persistence: float(),
  xscale: float(),
  yscale: float(),
  tscale: float(),
  random_mode: integer() | String.t() | atom(),
  random_seed: term()
) :: FFix.Stream.t()

Generate Perlin noise

Options

  • size - set video size (default "320x240")

  • s - set video size (default "320x240")

  • seed - set the seed for filling the initial pattern (from 0 to UINT32_MAX) (default 0)

  • r - set video rate (default "25")

  • rate - set video rate (default "25")

  • octaves - set the number of components to use to generate the noise (from 1 to INT_MAX) (default 1)

  • persistence - set the octaves persistence (from 0 to DBL_MAX) (default 1)

  • xscale - set x-scale factor (from 0 to DBL_MAX) (default 1)

  • yscale - set y-scale factor (from 0 to DBL_MAX) (default 1)

  • tscale - set t-scale factor (from 0 to DBL_MAX) (default 1)

  • random_mode - 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 - set the seed for filling the initial pattern (from 0 to UINT32_MAX) (default 0)

qrencodesrc(options \\ [])

@spec qrencodesrc(
  level: integer() | String.t() | atom(),
  fc: term(),
  bc: term(),
  q: String.t(),
  text: String.t(),
  r: term(),
  l: integer() | String.t() | atom(),
  cs: boolean(),
  rate: term(),
  textfile: String.t(),
  expansion: integer() | String.t() | atom(),
  qrcode_width: String.t(),
  padded_qrcode_width: String.t(),
  Q: String.t(),
  case_sensitive: boolean(),
  foreground_color: term(),
  background_color: term()
) :: FFix.Stream.t()

Generate a QR code.

Options

  • level - error correction level, lowest is L (from 0 to 3) (default Q)

    • L (0)
    • M (1)
    • Q (2)
    • H (3)
  • fc - set QR foreground color (default "black")

  • bc - set QR background color (default "white")

  • q - set rendered QR code width expression (default "64")

  • text - set text to encode

  • r - set video rate (default "25")

  • l - error correction level, lowest is L (from 0 to 3) (default Q)

    • L (0)
    • M (1)
    • Q (2)
    • H (3)
  • cs - generate code which is case sensitive (default true)

  • rate - set video rate (default "25")

  • textfile - set text file to encode

  • expansion - set the expansion mode (from 0 to 2) (default normal)

    • none (0) - set no expansion
    • normal (1) - set normal expansion
  • qrcode_width - set rendered QR code width expression (default "64")

  • padded_qrcode_width - set rendered padded QR code width expression (default "q")

  • Q - set rendered padded QR code width expression (default "q")

  • case_sensitive - generate code which is case sensitive (default true)

  • foreground_color - set QR foreground color (default "black")

  • background_color - set QR background color (default "white")

rgbtestsrc(options \\ [])

@spec rgbtestsrc(
  size: term(),
  s: term(),
  r: term(),
  d: term(),
  co: boolean(),
  rate: term(),
  duration: term(),
  sar: term(),
  complement: boolean()
) :: FFix.Stream.t()

Generate RGB test pattern.

Options

  • size - set video size (default "320x240")
  • s - set video size (default "320x240")
  • r - set video rate (default "25")
  • d - set video duration (default -0.000001)
  • co - set complement colors (default false)
  • rate - set video rate (default "25")
  • duration - set video duration (default -0.000001)
  • sar - set video sample aspect ratio (from 0 to INT_MAX) (default 1/1)
  • complement - set complement colors (default false)

sierpinski(options \\ [])

@spec sierpinski(
  size: term(),
  type: integer() | String.t() | atom(),
  s: term(),
  seed: integer(),
  jump: integer(),
  r: term(),
  rate: term()
) :: FFix.Stream.t()

Render a Sierpinski fractal.

Options

  • size - set frame size (default "640x480")

  • type - set fractal type (from 0 to 1) (default carpet)

    • carpet (0) - sierpinski carpet
    • triangle (1) - sierpinski triangle
  • s - set frame size (default "640x480")

  • seed - set the seed (from -1 to UINT32_MAX) (default -1)

  • jump - set the jump (from 1 to 10000) (default 100)

  • r - set frame rate (default "25")

  • rate - set frame rate (default "25")

sinc(options \\ [])

@spec sinc(
  round: boolean(),
  r: integer(),
  phase: float(),
  n: integer(),
  nb_samples: integer(),
  sample_rate: integer(),
  lp: float(),
  hp: float(),
  beta: float(),
  att: float(),
  hptaps: integer(),
  lptaps: integer()
) :: FFix.Stream.t()

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

Options

  • round - enable rounding (default false)
  • r - set sample rate (from 1 to INT_MAX) (default 44100)
  • phase - set filter phase response (from 0 to 100) (default 50)
  • n - set the number of samples per requested frame (from 1 to INT_MAX) (default 1024)
  • nb_samples - set the number of samples per requested frame (from 1 to INT_MAX) (default 1024)
  • sample_rate - set sample rate (from 1 to INT_MAX) (default 44100)
  • lp - set low-pass filter frequency (from 0 to INT_MAX) (default 0)
  • hp - set high-pass filter frequency (from 0 to INT_MAX) (default 0)
  • beta - set kaiser window beta (from -1 to 256) (default -1)
  • att - set stop-band attenuation (from 40 to 180) (default 120)
  • hptaps - set number of taps for high-pass filter (from 0 to 32768) (default 0)
  • lptaps - set number of taps for low-pass filter (from 0 to 32768) (default 0)

sine(options \\ [])

@spec sine(
  f: float(),
  b: float(),
  r: integer(),
  d: term(),
  duration: term(),
  sample_rate: integer(),
  frequency: float(),
  beep_factor: float(),
  samples_per_frame: String.t()
) :: FFix.Stream.t()

Generate sine wave audio signal.

Options

  • f - set the sine frequency (from 0 to DBL_MAX) (default 440)
  • b - set the beep frequency factor (from 0 to DBL_MAX) (default 0)
  • r - set the sample rate (from 1 to INT_MAX) (default 44100)
  • d - set the audio duration (default 0)
  • duration - set the audio duration (default 0)
  • sample_rate - set the sample rate (from 1 to INT_MAX) (default 44100)
  • frequency - set the sine frequency (from 0 to DBL_MAX) (default 440)
  • beep_factor - set the beep frequency factor (from 0 to DBL_MAX) (default 0)
  • samples_per_frame - set the number of samples per frame (default "1024")

smptebars(options \\ [])

@spec smptebars(
  size: term(),
  s: term(),
  r: term(),
  d: term(),
  rate: term(),
  duration: term(),
  sar: term()
) :: FFix.Stream.t()

Generate SMPTE color bars.

Options

  • size - set video size (default "320x240")
  • s - set video size (default "320x240")
  • r - set video rate (default "25")
  • d - set video duration (default -0.000001)
  • rate - set video rate (default "25")
  • duration - set video duration (default -0.000001)
  • sar - set video sample aspect ratio (from 0 to INT_MAX) (default 1/1)

smptehdbars(options \\ [])

@spec smptehdbars(
  size: term(),
  s: term(),
  r: term(),
  d: term(),
  rate: term(),
  duration: term(),
  sar: term()
) :: FFix.Stream.t()

Generate SMPTE HD color bars.

Options

  • size - set video size (default "320x240")
  • s - set video size (default "320x240")
  • r - set video rate (default "25")
  • d - set video duration (default -0.000001)
  • rate - set video rate (default "25")
  • duration - set video duration (default -0.000001)
  • sar - set video sample aspect ratio (from 0 to INT_MAX) (default 1/1)

testsrc2(options \\ [])

@spec testsrc2(
  size: term(),
  s: term(),
  r: term(),
  d: term(),
  rate: term(),
  duration: term(),
  sar: term(),
  alpha: integer()
) :: FFix.Stream.t()

Generate another test pattern.

Options

  • size - set video size (default "320x240")
  • s - set video size (default "320x240")
  • r - set video rate (default "25")
  • d - set video duration (default -0.000001)
  • rate - set video rate (default "25")
  • duration - set video duration (default -0.000001)
  • sar - set video sample aspect ratio (from 0 to INT_MAX) (default 1/1)
  • alpha - set global alpha (opacity) (from 0 to 255) (default 255)

testsrc(options \\ [])

@spec testsrc(
  decimals: integer(),
  size: term(),
  s: term(),
  r: term(),
  d: term(),
  n: integer(),
  rate: term(),
  duration: term(),
  sar: term()
) :: FFix.Stream.t()

Generate test pattern.

Options

  • decimals - set number of decimals to show (from 0 to 17) (default 0)
  • size - set video size (default "320x240")
  • s - set video size (default "320x240")
  • r - set video rate (default "25")
  • d - set video duration (default -0.000001)
  • n - set number of decimals to show (from 0 to 17) (default 0)
  • rate - set video rate (default "25")
  • duration - set video duration (default -0.000001)
  • sar - set video sample aspect ratio (from 0 to INT_MAX) (default 1/1)

yuvtestsrc(options \\ [])

@spec yuvtestsrc(
  size: term(),
  s: term(),
  r: term(),
  d: term(),
  rate: term(),
  duration: term(),
  sar: term()
) :: FFix.Stream.t()

Generate YUV test pattern.

Options

  • size - set video size (default "320x240")
  • s - set video size (default "320x240")
  • r - set video rate (default "25")
  • d - set video duration (default -0.000001)
  • rate - set video rate (default "25")
  • duration - set video duration (default -0.000001)
  • sar - set video sample aspect ratio (from 0 to INT_MAX) (default 1/1)

zoneplate(options \\ [])

@spec zoneplate(
  size: term(),
  s: term(),
  r: term(),
  precision: integer(),
  d: term(),
  kv: integer(),
  to: integer(),
  rate: term(),
  duration: term(),
  sar: term(),
  xo: integer(),
  yo: integer(),
  k0: integer(),
  kx: integer(),
  ky: integer(),
  kt: integer(),
  kxt: integer(),
  kyt: integer(),
  kxy: integer(),
  kx2: integer(),
  ky2: integer(),
  kt2: integer(),
  ku: integer()
) :: FFix.Stream.t()

Generate zone-plate.

Options

  • size - set video size (default "320x240")
  • s - set video size (default "320x240")
  • r - set video rate (default "25")
  • precision - set LUT precision (from 4 to 16) (default 10)
  • d - set video duration (default -0.000001)
  • kv - set 0-order V-color phase (from INT_MIN to INT_MAX) (default 0)
  • to - set T-axis offset (from INT_MIN to INT_MAX) (default 0)
  • rate - set video rate (default "25")
  • duration - set video duration (default -0.000001)
  • sar - set video sample aspect ratio (from 0 to INT_MAX) (default 1/1)
  • xo - set X-axis offset (from INT_MIN to INT_MAX) (default 0)
  • yo - set Y-axis offset (from INT_MIN to INT_MAX) (default 0)
  • k0 - set 0-order phase (from INT_MIN to INT_MAX) (default 0)
  • kx - set 1-order X-axis phase (from INT_MIN to INT_MAX) (default 0)
  • ky - set 1-order Y-axis phase (from INT_MIN to INT_MAX) (default 0)
  • kt - set 1-order T-axis phase (from INT_MIN to INT_MAX) (default 0)
  • kxt - set X-axis*T-axis product phase (from INT_MIN to INT_MAX) (default 0)
  • kyt - set Y-axis*T-axis product phase (from INT_MIN to INT_MAX) (default 0)
  • kxy - set X-axis*Y-axis product phase (from INT_MIN to INT_MAX) (default 0)
  • kx2 - set 2-order X-axis phase (from INT_MIN to INT_MAX) (default 0)
  • ky2 - set 2-order Y-axis phase (from INT_MIN to INT_MAX) (default 0)
  • kt2 - set 2-order T-axis phase (from INT_MIN to INT_MAX) (default 0)
  • ku - set 0-order U-color phase (from INT_MIN to INT_MAX) (default 0)

Video filters

addroi(video_0, options \\ [])

@spec addroi(FFix.Stream.t(),
  clear: boolean(),
  x: String.t(),
  y: String.t(),
  h: String.t(),
  w: String.t(),
  qoffset: term()
) :: FFix.Stream.t()

Add region of interest to frame.

Options

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

alphaextract(video_0, options \\ [])

@spec alphaextract(
  FFix.Stream.t(),
  []
) :: FFix.Stream.t()

Extract an alpha channel as a grayscale image component.

Options

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

@spec alphamerge(FFix.Stream.t(), FFix.Stream.t(),
  enable: String.t(),
  shortest: boolean(),
  eof_action: integer() | String.t() | atom(),
  repeatlast: boolean(),
  ts_sync_mode: integer() | String.t() | atom()
) :: FFix.Stream.t()

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

Options

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

  • shortest - force termination when the shortest input terminates (default false)

  • eof_action - 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 - extend last frame of secondary streams beyond EOF (default true)

  • ts_sync_mode - 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

amplify(video_0, options \\ [])

@spec amplify(FFix.Stream.t(),
  high: float(),
  low: float(),
  enable: String.t(),
  threshold: float(),
  planes: term(),
  radius: integer(),
  factor: float(),
  tolerance: float()
) :: FFix.Stream.t()

Amplify changes between successive video frames.

Options

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

ass(video_0, options \\ [])

@spec ass(FFix.Stream.t(),
  filename: String.t(),
  f: String.t(),
  alpha: boolean(),
  original_size: term(),
  fontsdir: String.t(),
  shaping: integer() | String.t() | atom()
) :: FFix.Stream.t()

Render ASS subtitles onto input video using the libass library.

Options

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

atadenoise(video_0, options \\ [])

@spec atadenoise(FFix.Stream.t(),
  p: term(),
  a: integer() | String.t() | atom(),
  s: integer(),
  enable: String.t(),
  "0a": float(),
  "0b": float(),
  "1a": float(),
  "1b": float(),
  "2a": float(),
  "2b": float(),
  "0s": float(),
  "1s": float(),
  "2s": float()
) :: FFix.Stream.t()

Apply an Adaptive Temporal Averaging Denoiser.

Options

  • p - set what planes to filter (default 7)

  • a - set variant of algorithm (from 0 to 1) (default p)

    • p (0) - parallel
    • s (1) - serial
  • s - set how many frames to use (from 5 to 129) (default 9)

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

  • 0a - set threshold A for 1st plane (from 0 to 0.3) (default 0.02)

  • 0b - set threshold B for 1st plane (from 0 to 5) (default 0.04)

  • 1a - set threshold A for 2nd plane (from 0 to 0.3) (default 0.02)

  • 1b - set threshold B for 2nd plane (from 0 to 5) (default 0.04)

  • 2a - set threshold A for 3rd plane (from 0 to 0.3) (default 0.02)

  • 2b - set threshold B for 3rd plane (from 0 to 5) (default 0.04)

  • 0s - set sigma for 1st plane (from 0 to 32767) (default 32767)

  • 1s - set sigma for 2nd plane (from 0 to 32767) (default 32767)

  • 2s - set sigma for 3rd plane (from 0 to 32767) (default 32767)

avgblur(video_0, options \\ [])

@spec avgblur(FFix.Stream.t(),
  enable: String.t(),
  planes: integer(),
  sizeX: integer(),
  sizeY: integer()
) :: FFix.Stream.t()

Apply Average Blur filter.

Options

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

avgblur_opencl(video_0, options \\ [])

@spec avgblur_opencl(FFix.Stream.t(),
  planes: integer(),
  sizeX: integer(),
  sizeY: integer()
) ::
  FFix.Stream.t()

Apply average blur filter

Options

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

avgblur_vulkan(video_0, options \\ [])

@spec avgblur_vulkan(FFix.Stream.t(),
  planes: integer(),
  sizeX: integer(),
  sizeY: integer()
) ::
  FFix.Stream.t()

Apply avgblur mask to input video

Options

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

backgroundkey(video_0, options \\ [])

@spec backgroundkey(FFix.Stream.t(),
  enable: String.t(),
  threshold: float(),
  blend: float(),
  similarity: float()
) :: FFix.Stream.t()

Turns a static background into transparency.

Options

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

bbox(video_0, options \\ [])

@spec bbox(FFix.Stream.t(), enable: String.t(), min_val: integer()) :: FFix.Stream.t()

Compute bounding box for each frame.

Options

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

bench(video_0, options \\ [])

@spec bench(
  FFix.Stream.t(),
  [{:action, integer() | String.t() | atom()}]
) :: FFix.Stream.t()

Benchmark part of a filtergraph.

Options

  • action - set action (from 0 to 1) (default start)
    • start (0) - start timer
    • stop (1) - stop timer

bilateral(video_0, options \\ [])

@spec bilateral(FFix.Stream.t(),
  enable: String.t(),
  planes: integer(),
  sigmaS: float(),
  sigmaR: float()
) :: FFix.Stream.t()

Apply Bilateral filter.

Options

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

bitplanenoise(video_0, options \\ [])

@spec bitplanenoise(FFix.Stream.t(),
  filter: boolean(),
  enable: String.t(),
  bitplane: integer()
) ::
  FFix.Stream.t()

Measure bit plane noise.

Options

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

blackdetect(video_0, options \\ [])

@spec blackdetect(FFix.Stream.t(),
  d: float(),
  black_min_duration: float(),
  picture_black_ratio_th: float(),
  pic_th: float(),
  pixel_black_th: float(),
  pix_th: float()
) :: FFix.Stream.t()

Detect video intervals that are (almost) black.

Options

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

blackframe(video_0, options \\ [])

@spec blackframe(FFix.Stream.t(),
  threshold: integer(),
  amount: integer(),
  thresh: integer()
) ::
  FFix.Stream.t()

Detect frames that are (almost) black.

Options

  • threshold - threshold below which a pixel value is considered black (from 0 to 255) (default 32)
  • amount - 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 - threshold below which a pixel value is considered black (from 0 to 255) (default 32)

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

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

Blend two video frames into each other.

Options

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

  • shortest - force termination when the shortest input terminates (default false)

  • c0_mode - 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)
  • c1_mode - 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)
  • c2_mode - 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)
  • c3_mode - 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)
  • all_mode - 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)
  • c0_opacity - set color component #0 opacity (from 0 to 1) (default 1)

  • c1_opacity - set color component #1 opacity (from 0 to 1) (default 1)

  • c2_opacity - set color component #2 opacity (from 0 to 1) (default 1)

  • c3_opacity - set color component #3 opacity (from 0 to 1) (default 1)

  • all_opacity - set opacity for all color components (from 0 to 1) (default 1)

  • eof_action - 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 - extend last frame of secondary streams beyond EOF (default true)

  • ts_sync_mode - 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
  • c0_expr - set color component #0 expression

  • c1_expr - set color component #1 expression

  • c2_expr - set color component #2 expression

  • c3_expr - set color component #3 expression

  • all_expr - set expression for all color components

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

@spec blend_vulkan(FFix.Stream.t(), FFix.Stream.t(),
  c0_mode: integer() | String.t() | atom(),
  c1_mode: integer() | String.t() | atom(),
  c2_mode: integer() | String.t() | atom(),
  c3_mode: integer() | String.t() | atom(),
  all_mode: integer() | String.t() | atom(),
  c0_opacity: float(),
  c1_opacity: float(),
  c2_opacity: float(),
  c3_opacity: float(),
  all_opacity: float()
) :: FFix.Stream.t()

Blend two video frames in Vulkan

Options

  • c0_mode - set component #0 blend mode (from 0 to 39) (default normal)

    • normal (0)
    • multiply (13)
  • c1_mode - set component #1 blend mode (from 0 to 39) (default normal)

    • normal (0)
    • multiply (13)
  • c2_mode - set component #2 blend mode (from 0 to 39) (default normal)

    • normal (0)
    • multiply (13)
  • c3_mode - set component #3 blend mode (from 0 to 39) (default normal)

    • normal (0)
    • multiply (13)
  • all_mode - set blend mode for all components (from -1 to 39) (default -1)

    • normal (0)
    • multiply (13)
  • c0_opacity - set color component #0 opacity (from 0 to 1) (default 1)

  • c1_opacity - set color component #1 opacity (from 0 to 1) (default 1)

  • c2_opacity - set color component #2 opacity (from 0 to 1) (default 1)

  • c3_opacity - set color component #3 opacity (from 0 to 1) (default 1)

  • all_opacity - set opacity for all color components (from 0 to 1) (default 1)

blockdetect(video_0, options \\ [])

@spec blockdetect(FFix.Stream.t(),
  planes: integer(),
  period_min: integer(),
  period_max: integer()
) ::
  FFix.Stream.t()

Blockdetect filter.

Options

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

blurdetect(video_0, options \\ [])

@spec blurdetect(FFix.Stream.t(),
  high: float(),
  low: float(),
  planes: integer(),
  radius: integer(),
  block_pct: integer(),
  block_width: integer(),
  block_height: integer()
) :: FFix.Stream.t()

Blurdetect filter.

Options

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

boxblur(video_0, options \\ [])

@spec boxblur(FFix.Stream.t(),
  cr: String.t(),
  enable: String.t(),
  cp: integer(),
  luma_radius: String.t(),
  lr: String.t(),
  chroma_radius: String.t(),
  lp: integer(),
  alpha_radius: String.t(),
  ar: String.t(),
  luma_power: integer(),
  chroma_power: integer(),
  alpha_power: integer(),
  ap: integer()
) :: FFix.Stream.t()

Blur the input.

Options

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

boxblur_opencl(video_0, options \\ [])

@spec boxblur_opencl(FFix.Stream.t(),
  cr: String.t(),
  cp: integer(),
  luma_radius: String.t(),
  lr: String.t(),
  chroma_radius: String.t(),
  lp: integer(),
  alpha_radius: String.t(),
  ar: String.t(),
  luma_power: integer(),
  chroma_power: integer(),
  alpha_power: integer(),
  ap: integer()
) :: FFix.Stream.t()

Apply boxblur filter to input video

Options

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

bwdif(video_0, options \\ [])

@spec bwdif(FFix.Stream.t(),
  mode: integer() | String.t() | atom(),
  enable: String.t(),
  parity: integer() | String.t() | atom(),
  deint: integer() | String.t() | atom()
) :: FFix.Stream.t()

Deinterlace the input image.

Options

  • mode - 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
  • enable - timeline expression evaluated before each frame; the filter is enabled when non-zero

  • parity - 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
  • deint - specify which frames to deinterlace (from 0 to 1) (default all)

    • all (0) - deinterlace all frames
    • interlaced (1) - only deinterlace frames marked as interlaced

bwdif_vulkan(video_0, options \\ [])

@spec bwdif_vulkan(FFix.Stream.t(),
  mode: integer() | String.t() | atom(),
  enable: String.t(),
  parity: integer() | String.t() | atom(),
  deint: integer() | String.t() | atom()
) :: FFix.Stream.t()

Deinterlace Vulkan frames via bwdif

Options

  • mode - 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
  • enable - timeline expression evaluated before each frame; the filter is enabled when non-zero

  • parity - 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
  • deint - specify which frames to deinterlace (from 0 to 1) (default all)

    • all (0) - deinterlace all frames
    • interlaced (1) - only deinterlace frames marked as interlaced

cas(video_0, options \\ [])

@spec cas(FFix.Stream.t(), enable: String.t(), planes: term(), strength: float()) ::
  FFix.Stream.t()

Contrast Adaptive Sharpen.

Options

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

ccrepack(video_0, options \\ [])

@spec ccrepack(
  FFix.Stream.t(),
  []
) :: FFix.Stream.t()

Repack CEA-708 closed caption metadata

Options

chromaber_vulkan(video_0, options \\ [])

@spec chromaber_vulkan(FFix.Stream.t(), dist_x: float(), dist_y: float()) ::
  FFix.Stream.t()

Offset chroma of input video (chromatic aberration)

Options

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

chromahold(video_0, options \\ [])

@spec chromahold(FFix.Stream.t(),
  enable: String.t(),
  color: term(),
  blend: float(),
  similarity: float(),
  yuv: boolean()
) :: FFix.Stream.t()

Turns a certain color range into gray.

Options

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

chromakey(video_0, options \\ [])

@spec chromakey(FFix.Stream.t(),
  enable: String.t(),
  color: term(),
  blend: float(),
  similarity: float(),
  yuv: boolean()
) :: FFix.Stream.t()

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

Options

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

chromanr(video_0, options \\ [])

@spec chromanr(FFix.Stream.t(),
  enable: String.t(),
  thres: float(),
  sizew: integer(),
  sizeh: integer(),
  stepw: integer(),
  steph: integer(),
  threy: float(),
  threu: float(),
  threv: float(),
  distance: integer() | String.t() | atom()
) :: FFix.Stream.t()

Reduce chrominance noise.

Options

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

chromashift(video_0, options \\ [])

@spec chromashift(FFix.Stream.t(),
  cbv: integer(),
  enable: String.t(),
  edge: integer() | String.t() | atom(),
  cbh: integer(),
  crh: integer(),
  crv: integer()
) :: FFix.Stream.t()

Shift chroma.

Options

  • cbv - shift chroma-blue vertically (from -255 to 255) (default 0)

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

  • edge - set edge operation (from 0 to 1) (default smear)

    • smear (0)
    • wrap (1)
  • cbh - shift chroma-blue horizontally (from -255 to 255) (default 0)

  • crh - shift chroma-red horizontally (from -255 to 255) (default 0)

  • crv - shift chroma-red vertically (from -255 to 255) (default 0)

ciescope(video_0, options \\ [])

@spec ciescope(FFix.Stream.t(),
  size: integer(),
  system: integer() | String.t() | atom(),
  intensity: float(),
  i: float(),
  s: integer(),
  fill: boolean(),
  cie: integer() | String.t() | atom(),
  gamuts: integer() | String.t() | atom() | [String.t() | atom()],
  contrast: float(),
  corrgamma: boolean(),
  showwhite: boolean(),
  gamma: float()
) :: FFix.Stream.t()

Video CIE scope.

Options

  • size - set ciescope size (from 256 to 8192) (default 512)

  • system - 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
  • intensity - set ciescope intensity (from 0 to 1) (default 0.001)

  • i - set ciescope intensity (from 0 to 1) (default 0.001)

  • s - set ciescope size (from 256 to 8192) (default 512)

  • fill - fill with CIE colors (default true)

  • cie - set cie system (from 0 to 2) (default xyy)

    • xyy (0) - CIE 1931 xyY
    • ucs (1) - CIE 1960 UCS
    • luv (2) - CIE 1976 Luv
  • gamuts - set what gamuts to draw (default 0)

    • ntsc
    • 470m
    • ebu
    • 470bg
    • smpte
    • 240m
    • apple
    • widergb
    • cie1931
    • hdtv
    • rec709
    • uhdtv
    • rec2020
    • dcip3
  • contrast - (from 0 to 1) (default 0.75)

  • corrgamma - (default true)

  • showwhite - (default false)

  • gamma - (from 0.1 to 6) (default 2.6)

codecview(video_0, options \\ [])

@spec codecview(FFix.Stream.t(),
  block: boolean(),
  enable: String.t(),
  qp: boolean(),
  mv: integer() | String.t() | atom() | [String.t() | atom()],
  mv_type: integer() | String.t() | atom() | [String.t() | atom()],
  mvt: integer() | String.t() | atom() | [String.t() | atom()],
  frame_type: integer() | String.t() | atom() | [String.t() | atom()],
  ft: integer() | String.t() | atom() | [String.t() | atom()]
) :: FFix.Stream.t()

Visualize information about some codecs.

Options

  • block - set block partitioning structure to visualize (default false)

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

  • qp - (default false)

  • mv - 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 - set motion vectors type (default 0)

    • fp - forward predicted MVs
    • bp - backward predicted MVs
  • mvt - set motion vectors type (default 0)

    • fp - forward predicted MVs
    • bp - backward predicted MVs
  • frame_type - set frame types to visualize motion vectors of (default 0)

    • if - I-frames
    • pf - P-frames
    • bf - B-frames
  • ft - set frame types to visualize motion vectors of (default 0)

    • if - I-frames
    • pf - P-frames
    • bf - B-frames

colorbalance(video_0, options \\ [])

@spec colorbalance(FFix.Stream.t(),
  bm: float(),
  rm: float(),
  enable: String.t(),
  rs: float(),
  gs: float(),
  bs: float(),
  gm: float(),
  rh: float(),
  gh: float(),
  bh: float(),
  pl: boolean()
) :: FFix.Stream.t()

Adjust the color balance.

Options

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

colorchannelmixer(video_0, options \\ [])

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

Adjust colors by mixing color channels.

Options

  • pa - set the preserve color amount (from 0 to 1) (default 0)

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

  • bb - set the blue gain for the blue channel (from -2 to 2) (default 1)

  • gr - set the red gain for the green channel (from -2 to 2) (default 0)

  • pc - 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
  • br - set the red gain for the blue channel (from -2 to 2) (default 0)

  • aa - set the alpha gain for the alpha channel (from -2 to 2) (default 1)

  • ar - set the red gain for the alpha channel (from -2 to 2) (default 0)

  • bg - set the green gain for the blue channel (from -2 to 2) (default 0)

  • ag - set the green gain for the alpha channel (from -2 to 2) (default 0)

  • rr - set the red gain for the red channel (from -2 to 2) (default 1)

  • rg - set the green gain for the red channel (from -2 to 2) (default 0)

  • rb - set the blue gain for the red channel (from -2 to 2) (default 0)

  • ra - set the alpha gain for the red channel (from -2 to 2) (default 0)

  • gg - set the green gain for the green channel (from -2 to 2) (default 1)

  • gb - set the blue gain for the green channel (from -2 to 2) (default 0)

  • ga - set the alpha gain for the green channel (from -2 to 2) (default 0)

  • ba - set the alpha gain for the blue channel (from -2 to 2) (default 0)

  • ab - set the blue gain for the alpha channel (from -2 to 2) (default 0)

colorcontrast(video_0, options \\ [])

@spec colorcontrast(FFix.Stream.t(),
  enable: String.t(),
  gm: float(),
  pl: float(),
  rc: float(),
  by: float(),
  rcw: float(),
  gmw: float(),
  byw: float()
) :: FFix.Stream.t()

Adjust color contrast between RGB components.

Options

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

colorcorrect(video_0, options \\ [])

@spec colorcorrect(FFix.Stream.t(),
  enable: String.t(),
  analyze: integer() | String.t() | atom(),
  saturation: float(),
  rh: float(),
  bh: float(),
  rl: float(),
  bl: float()
) :: FFix.Stream.t()

Adjust color white balance selectively for blacks and whites.

Options

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

  • analyze - 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
  • saturation - set the amount of saturation (from -3 to 3) (default 1)

  • rh - set the red highlight spot (from -1 to 1) (default 0)

  • bh - set the blue highlight spot (from -1 to 1) (default 0)

  • rl - set the red shadow spot (from -1 to 1) (default 0)

  • bl - set the blue shadow spot (from -1 to 1) (default 0)

colorhold(video_0, options \\ [])

@spec colorhold(FFix.Stream.t(),
  enable: String.t(),
  color: term(),
  blend: float(),
  similarity: float()
) ::
  FFix.Stream.t()

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

Options

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

colorize(video_0, options \\ [])

@spec colorize(FFix.Stream.t(),
  enable: String.t(),
  mix: float(),
  hue: float(),
  saturation: float(),
  lightness: float()
) :: FFix.Stream.t()

Overlay a solid color on the video stream.

Options

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

colorkey(video_0, options \\ [])

@spec colorkey(FFix.Stream.t(),
  enable: String.t(),
  color: term(),
  blend: float(),
  similarity: float()
) ::
  FFix.Stream.t()

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

Options

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

colorkey_opencl(video_0, options \\ [])

@spec colorkey_opencl(FFix.Stream.t(),
  color: term(),
  blend: float(),
  similarity: float()
) ::
  FFix.Stream.t()

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

Options

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

colorlevels(video_0, options \\ [])

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

Adjust the color levels.

Options

  • enable - timeline expression evaluated before each frame; the filter is enabled when non-zero
  • rimin - set input red black point (from -1 to 1) (default 0)
  • gimin - set input green black point (from -1 to 1) (default 0)
  • bimin - set input blue black point (from -1 to 1) (default 0)
  • aimin - set input alpha black point (from -1 to 1) (default 0)
  • rimax - set input red white point (from -1 to 1) (default 1)
  • gimax - set input green white point (from -1 to 1) (default 1)
  • bimax - set input blue white point (from -1 to 1) (default 1)
  • aimax - set input alpha white point (from -1 to 1) (default 1)
  • romin - set output red black point (from 0 to 1) (default 0)
  • gomin - set output green black point (from 0 to 1) (default 0)
  • bomin - set output blue black point (from 0 to 1) (default 0)
  • aomin - set output alpha black point (from 0 to 1) (default 0)
  • romax - set output red white point (from 0 to 1) (default 1)
  • gomax - set output green white point (from 0 to 1) (default 1)
  • bomax - set output blue white point (from 0 to 1) (default 1)
  • aomax - set output alpha white point (from 0 to 1) (default 1)
  • preserve - 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

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

@spec colormap(FFix.Stream.t(), FFix.Stream.t(), FFix.Stream.t(),
  type: integer() | String.t() | atom(),
  kernel: integer() | String.t() | atom(),
  enable: String.t(),
  patch_size: term(),
  nb_patches: integer()
) :: FFix.Stream.t()

Apply custom Color Maps to video stream.

Options

  • type - 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
  • kernel - 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
  • enable - timeline expression evaluated before each frame; the filter is enabled when non-zero

  • patch_size - set patch size (default "64x64")

  • nb_patches - set number of patches (from 0 to 64) (default 0)

colormatrix(video_0, options \\ [])

@spec colormatrix(FFix.Stream.t(),
  enable: String.t(),
  src: integer() | String.t() | atom(),
  dst: integer() | String.t() | atom()
) :: FFix.Stream.t()

Convert color matrix.

Options

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

  • src - 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
  • dst - 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

colorspace(video_0, options \\ [])

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

Convert between colorspaces.

Options

  • all - 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)
  • format - 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)
  • range - Output color range (from 0 to 2) (default 0)

    • tv (1)
    • mpeg (1)
    • pc (2)
    • jpeg (2)
  • enable - timeline expression evaluated before each frame; the filter is enabled when non-zero

  • space - 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)
  • dither - Dithering mode (from 0 to 1) (default none)

    • none (0)
    • fsb (1)
  • primaries - 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)
  • trc - 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)
  • fast - Ignore primary chromaticity and gamma correction (default false)

  • wpadapt - Whitepoint adaptation method (from 0 to 2) (default bradford)

    • bradford (0)
    • vonkries (1)
    • identity (2)
  • iall - 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)
  • ispace - 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)
  • irange - Input color range (from 0 to 2) (default 0)

    • tv (1)
    • mpeg (1)
    • pc (2)
    • jpeg (2)
  • iprimaries - 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)
  • itrc - 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)

colortemperature(video_0, options \\ [])

@spec colortemperature(FFix.Stream.t(),
  enable: String.t(),
  mix: float(),
  pl: float(),
  temperature: float()
) :: FFix.Stream.t()

Adjust color temperature of video.

Options

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

convolution(video_0, options \\ [])

@spec convolution(FFix.Stream.t(),
  enable: String.t(),
  "0m": String.t(),
  "1m": String.t(),
  "2m": String.t(),
  "3m": String.t(),
  "0rdiv": float(),
  "1rdiv": float(),
  "2rdiv": float(),
  "3rdiv": float(),
  "0bias": float(),
  "1bias": float(),
  "2bias": float(),
  "3bias": float(),
  "0mode": integer() | String.t() | atom(),
  "1mode": integer() | String.t() | atom(),
  "2mode": integer() | String.t() | atom(),
  "3mode": integer() | String.t() | atom()
) :: FFix.Stream.t()

Apply convolution filter.

Options

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

  • 0m - set matrix for 1st plane (default "0 0 0 0 1 0 0 0 0")

  • 1m - set matrix for 2nd plane (default "0 0 0 0 1 0 0 0 0")

  • 2m - set matrix for 3rd plane (default "0 0 0 0 1 0 0 0 0")

  • 3m - set matrix for 4th plane (default "0 0 0 0 1 0 0 0 0")

  • 0rdiv - set rdiv for 1st plane (from 0 to INT_MAX) (default 0)

  • 1rdiv - set rdiv for 2nd plane (from 0 to INT_MAX) (default 0)

  • 2rdiv - set rdiv for 3rd plane (from 0 to INT_MAX) (default 0)

  • 3rdiv - set rdiv for 4th plane (from 0 to INT_MAX) (default 0)

  • 0bias - set bias for 1st plane (from 0 to INT_MAX) (default 0)

  • 1bias - set bias for 2nd plane (from 0 to INT_MAX) (default 0)

  • 2bias - set bias for 3rd plane (from 0 to INT_MAX) (default 0)

  • 3bias - set bias for 4th plane (from 0 to INT_MAX) (default 0)

  • 0mode - 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
  • 1mode - 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
  • 2mode - 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
  • 3mode - 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

convolution_opencl(video_0, options \\ [])

@spec convolution_opencl(FFix.Stream.t(),
  "0m": String.t(),
  "1m": String.t(),
  "2m": String.t(),
  "3m": String.t(),
  "0rdiv": float(),
  "1rdiv": float(),
  "2rdiv": float(),
  "3rdiv": float(),
  "0bias": float(),
  "1bias": float(),
  "2bias": float(),
  "3bias": float()
) :: FFix.Stream.t()

Apply convolution mask to input video

Options

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

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

@spec convolve(FFix.Stream.t(), FFix.Stream.t(),
  enable: String.t(),
  shortest: boolean(),
  noise: float(),
  planes: integer(),
  eof_action: integer() | String.t() | atom(),
  repeatlast: boolean(),
  ts_sync_mode: integer() | String.t() | atom(),
  impulse: integer() | String.t() | atom()
) :: FFix.Stream.t()

Convolve first video stream with second video stream.

Options

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

  • shortest - force termination when the shortest input terminates (default false)

  • noise - set noise (from 0 to 1) (default 1e-07)

  • planes - set planes to convolve (from 0 to 15) (default 7)

  • eof_action - 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 - extend last frame of secondary streams beyond EOF (default true)

  • ts_sync_mode - 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
  • impulse - when to process impulses (from 0 to 1) (default all)

    • first (0) - process only first impulse, ignore rest
    • all (1) - process all impulses

copy(video_0, options \\ [])

@spec copy(
  FFix.Stream.t(),
  []
) :: FFix.Stream.t()

Copy the input video unchanged to the output.

Options

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

@spec corr(FFix.Stream.t(), FFix.Stream.t(),
  enable: String.t(),
  shortest: boolean(),
  eof_action: integer() | String.t() | atom(),
  repeatlast: boolean(),
  ts_sync_mode: integer() | String.t() | atom()
) :: FFix.Stream.t()

Calculate the correlation between two video streams.

Options

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

  • shortest - force termination when the shortest input terminates (default false)

  • eof_action - 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 - extend last frame of secondary streams beyond EOF (default true)

  • ts_sync_mode - 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

cover_rect(video_0, options \\ [])

@spec cover_rect(FFix.Stream.t(),
  mode: integer() | String.t() | atom(),
  cover: String.t()
) ::
  FFix.Stream.t()

Find and cover a user specified object.

Options

  • mode - set removal mode (from 0 to 1) (default blur)

    • cover (0) - cover area with bitmap
    • blur (1) - blur area
  • cover - cover bitmap filename

crop(video_0, options \\ [])

@spec crop(FFix.Stream.t(),
  x: String.t(),
  y: String.t(),
  h: String.t(),
  w: String.t(),
  exact: boolean(),
  out_w: String.t(),
  out_h: String.t(),
  keep_aspect: boolean()
) :: FFix.Stream.t()

Crop the input video.

Options

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

cropdetect(video_0, options \\ [])

@spec cropdetect(FFix.Stream.t(),
  high: float(),
  low: float(),
  reset: integer(),
  skip: integer(),
  round: integer(),
  mode: integer() | String.t() | atom(),
  enable: String.t(),
  limit: float(),
  reset_count: integer(),
  max_outliers: integer(),
  mv_threshold: integer()
) :: FFix.Stream.t()

Auto-detect crop size.

Options

  • high - Set high threshold for edge detection (from 0 to 1) (default 0.0980392)

  • low - Set low threshold for edge detection (from 0 to 1) (default 0.0588235)

  • reset - Recalculate the crop area after this many frames (from 0 to INT_MAX) (default 0)

  • skip - Number of initial frames to skip (from 0 to INT_MAX) (default 2)

  • round - Value by which the width/height should be divisible (from 0 to INT_MAX) (default 16)

  • mode - 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
  • enable - timeline expression evaluated before each frame; the filter is enabled when non-zero

  • limit - Threshold below which the pixel is considered black (from 0 to 65535) (default 0.0941176)

  • reset_count - Recalculate the crop area after this many frames (from 0 to INT_MAX) (default 0)

  • max_outliers - Threshold count of outliers (from 0 to INT_MAX) (default 0)

  • mv_threshold - motion vector threshold when estimating video window size (from 0 to 100) (default 8)

cue(video_0, options \\ [])

@spec cue(FFix.Stream.t(), buffer: term(), cue: integer(), preroll: term()) ::
  FFix.Stream.t()

Delay filtering to match a cue.

Options

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

curves(video_0, options \\ [])

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

Adjust components curves.

Options

  • all - set points coordinates for all components

  • master - set master points coordinates

  • m - set master points coordinates

  • b - set blue points coordinates

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

  • blue - set blue points coordinates

  • green - set green points coordinates

  • red - set red points coordinates

  • r - set red points coordinates

  • preset - 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)
  • g - set green points coordinates

  • interp - specify the kind of interpolation (from 0 to 1) (default natural)

    • natural (0) - natural cubic spline
    • pchip (1) - monotonically cubic interpolation
  • psfile - set Photoshop curves file name

  • plot - save Gnuplot script of the curves in specified file

datascope(video_0, options \\ [])

@spec datascope(FFix.Stream.t(),
  size: term(),
  x: integer(),
  y: integer(),
  mode: integer() | String.t() | atom(),
  format: integer() | String.t() | atom(),
  s: term(),
  components: integer(),
  opacity: float(),
  axis: boolean()
) :: FFix.Stream.t()

Video data analysis.

Options

  • size - set output size (default "hd720")

  • x - set x offset (from 0 to INT_MAX) (default 0)

  • y - set y offset (from 0 to INT_MAX) (default 0)

  • mode - set scope mode (from 0 to 2) (default mono)

    • mono (0)
    • color (1)
    • color2 (2)
  • format - set display number format (from 0 to 1) (default hex)

    • hex (0)
    • dec (1)
  • s - set output size (default "hd720")

  • components - set components to display (from 1 to 15) (default 15)

  • opacity - set background opacity (from 0 to 1) (default 0.75)

  • axis - draw column/row numbers (default false)

dblur(video_0, options \\ [])

@spec dblur(FFix.Stream.t(),
  enable: String.t(),
  planes: integer(),
  angle: float(),
  radius: float()
) ::
  FFix.Stream.t()

Apply Directional Blur filter.

Options

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

dctdnoiz(video_0, options \\ [])

@spec dctdnoiz(FFix.Stream.t(),
  expr: String.t(),
  s: float(),
  enable: String.t(),
  n: integer(),
  overlap: integer(),
  e: String.t(),
  sigma: float()
) :: FFix.Stream.t()

Denoise frames using 2D DCT.

Options

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

deband(video_0, options \\ [])

@spec deband(FFix.Stream.t(),
  c: boolean(),
  range: integer(),
  b: boolean(),
  enable: String.t(),
  r: integer(),
  d: float(),
  direction: float(),
  "1thr": float(),
  "2thr": float(),
  "3thr": float(),
  "4thr": float(),
  blur: boolean(),
  coupling: boolean()
) :: FFix.Stream.t()

Debands video.

Options

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

deblock(video_0, options \\ [])

@spec deblock(FFix.Stream.t(),
  block: integer(),
  filter: integer() | String.t() | atom(),
  enable: String.t(),
  planes: integer(),
  alpha: float(),
  gamma: float(),
  delta: float(),
  beta: float()
) :: FFix.Stream.t()

Deblock video.

Options

  • block - set size of block (from 4 to 512) (default 8)

  • filter - set type of filter (from 0 to 1) (default strong)

    • weak (0)
    • strong (1)
  • enable - timeline expression evaluated before each frame; the filter is enabled when non-zero

  • planes - set planes to filter (from 0 to 15) (default 15)

  • alpha - set 1st detection threshold (from 0 to 1) (default 0.098)

  • gamma - set 3rd detection threshold (from 0 to 1) (default 0.05)

  • delta - set 4th detection threshold (from 0 to 1) (default 0.05)

  • beta - set 2nd detection threshold (from 0 to 1) (default 0.05)

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

@spec deconvolve(FFix.Stream.t(), FFix.Stream.t(),
  enable: String.t(),
  shortest: boolean(),
  noise: float(),
  planes: integer(),
  eof_action: integer() | String.t() | atom(),
  repeatlast: boolean(),
  ts_sync_mode: integer() | String.t() | atom(),
  impulse: integer() | String.t() | atom()
) :: FFix.Stream.t()

Deconvolve first video stream with second video stream.

Options

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

  • shortest - force termination when the shortest input terminates (default false)

  • noise - set noise (from 0 to 1) (default 1e-07)

  • planes - set planes to deconvolve (from 0 to 15) (default 7)

  • eof_action - 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 - extend last frame of secondary streams beyond EOF (default true)

  • ts_sync_mode - 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
  • impulse - when to process impulses (from 0 to 1) (default all)

    • first (0) - process only first impulse, ignore rest
    • all (1) - process all impulses

dedot(video_0, options \\ [])

@spec dedot(FFix.Stream.t(),
  tl: float(),
  lt: float(),
  m: integer() | String.t() | atom() | [String.t() | atom()],
  enable: String.t(),
  tc: float(),
  ct: float()
) :: FFix.Stream.t()

Reduce cross-luminance and cross-color.

Options

  • tl - set tolerance for temporal luma (from 0 to 1) (default 0.079)

  • lt - set spatial luma threshold (from 0 to 1) (default 0.079)

  • m - set filtering mode (default dotcrawl+rainbows)

    • dotcrawl
    • rainbows
  • enable - timeline expression evaluated before each frame; the filter is enabled when non-zero

  • tc - set tolerance for chroma temporal variation (from 0 to 1) (default 0.058)

  • ct - set temporal chroma threshold (from 0 to 1) (default 0.019)

deflate(video_0, options \\ [])

@spec deflate(FFix.Stream.t(),
  enable: String.t(),
  threshold0: integer(),
  threshold1: integer(),
  threshold2: integer(),
  threshold3: integer()
) :: FFix.Stream.t()

Apply deflate effect.

Options

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

deflicker(video_0, options \\ [])

@spec deflicker(FFix.Stream.t(),
  size: integer(),
  mode: integer() | String.t() | atom(),
  m: integer() | String.t() | atom(),
  s: integer(),
  bypass: boolean()
) :: FFix.Stream.t()

Remove temporal frame luminance variations.

Options

  • size - set how many frames to use (from 2 to 129) (default 5)

  • mode - 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
  • m - 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 - set how many frames to use (from 2 to 129) (default 5)

  • bypass - leave frames unchanged (default false)

deinterlace_qsv(video_0, options \\ [])

@spec deinterlace_qsv(
  FFix.Stream.t(),
  [{:mode, integer() | String.t() | atom()}]
) :: FFix.Stream.t()

Quick Sync Video "deinterlacing"

Options

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

deinterlace_vaapi(video_0, options \\ [])

@spec deinterlace_vaapi(FFix.Stream.t(),
  auto: integer(),
  mode: integer() | String.t() | atom(),
  rate: integer() | String.t() | atom()
) :: FFix.Stream.t()

Deinterlacing of VAAPI surfaces

Options

  • auto - Only deinterlace fields, passing frames through unchanged (from 0 to 1) (default 0)

  • mode - 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 - 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)

dejudder(video_0, options \\ [])

@spec dejudder(
  FFix.Stream.t(),
  [{:cycle, integer()}]
) :: FFix.Stream.t()

Remove judder produced by pullup.

Options

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

delogo(video_0, options \\ [])

@spec delogo(FFix.Stream.t(),
  x: String.t(),
  y: String.t(),
  enable: String.t(),
  h: String.t(),
  w: String.t(),
  show: boolean()
) :: FFix.Stream.t()

Remove logo from input video.

Options

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

denoise_vaapi(video_0, options \\ [])

@spec denoise_vaapi(
  FFix.Stream.t(),
  [{:denoise, integer()}]
) :: FFix.Stream.t()

VAAPI VPP for de-noise

Options

  • denoise - denoise level (from 0 to 64) (default 0)

deshake(video_0, options \\ [])

@spec deshake(FFix.Stream.t(),
  x: integer(),
  y: integer(),
  filename: String.t(),
  search: integer() | String.t() | atom(),
  h: integer(),
  w: integer(),
  edge: integer() | String.t() | atom(),
  blocksize: integer(),
  contrast: integer(),
  rx: integer(),
  ry: integer(),
  opencl: boolean()
) :: FFix.Stream.t()

Stabilize shaky video.

Options

  • x - set x for the rectangular search area (from -1 to INT_MAX) (default -1)

  • y - set y for the rectangular search area (from -1 to INT_MAX) (default -1)

  • filename - set motion search detailed log file name

  • search - set search strategy (from 0 to 1) (default exhaustive)

    • exhaustive (0) - exhaustive search
    • less (1) - less exhaustive search
  • h - set height for the rectangular search area (from -1 to INT_MAX) (default -1)

  • w - set width for the rectangular search area (from -1 to INT_MAX) (default -1)

  • edge - 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
  • blocksize - set motion search blocksize (from 4 to 128) (default 8)

  • contrast - set contrast threshold for blocks (from 1 to 255) (default 125)

  • rx - set x for the rectangular search area (from 0 to 64) (default 16)

  • ry - set y for the rectangular search area (from 0 to 64) (default 16)

  • opencl - ignored (default false)

deshake_opencl(video_0, options \\ [])

@spec deshake_opencl(FFix.Stream.t(),
  debug: boolean(),
  tripod: boolean(),
  adaptive_crop: boolean(),
  refine_features: boolean(),
  smooth_strength: float(),
  smooth_window_multiplier: float()
) :: FFix.Stream.t()

Feature-point based video stabilization filter

Options

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

despill(video_0, options \\ [])

@spec despill(FFix.Stream.t(),
  type: integer() | String.t() | atom(),
  expand: float(),
  enable: String.t(),
  blue: float(),
  green: float(),
  red: float(),
  mix: float(),
  alpha: boolean(),
  brightness: float()
) :: FFix.Stream.t()

Despill video.

Options

  • type - set the screen type (from 0 to 1) (default green)

    • green (0) - greenscreen
    • blue (1) - bluescreen
  • expand - set the spillmap expand (from 0 to 1) (default 0)

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

  • blue - set blue scale (from -100 to 100) (default 0)

  • green - set green scale (from -100 to 100) (default -1)

  • red - set red scale (from -100 to 100) (default 0)

  • mix - set the spillmap mix (from 0 to 1) (default 0.5)

  • alpha - change alpha component (default false)

  • brightness - set brightness (from -10 to 10) (default 0)

detelecine(video_0, options \\ [])

@spec detelecine(FFix.Stream.t(),
  pattern: String.t(),
  start_frame: integer(),
  first_field: integer() | String.t() | atom()
) :: FFix.Stream.t()

Apply an inverse telecine pattern.

Options

  • pattern - pattern that describe for how many fields a frame is to be displayed (default "23")
  • start_frame - position of first frame with respect to the pattern if stream is cut (from 0 to 13) (default 0)
  • first_field - 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

dilation(video_0, options \\ [])

@spec dilation(FFix.Stream.t(),
  enable: String.t(),
  threshold0: integer(),
  threshold1: integer(),
  threshold2: integer(),
  threshold3: integer(),
  coordinates: integer()
) :: FFix.Stream.t()

Apply dilation effect.

Options

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

dilation_opencl(video_0, options \\ [])

@spec dilation_opencl(FFix.Stream.t(),
  threshold0: float(),
  threshold1: float(),
  threshold2: float(),
  threshold3: float(),
  coordinates: integer()
) :: FFix.Stream.t()

Apply dilation effect

Options

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

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

@spec displace(FFix.Stream.t(), FFix.Stream.t(), FFix.Stream.t(),
  enable: String.t(),
  edge: integer() | String.t() | atom()
) :: FFix.Stream.t()

Displace pixels.

Options

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

doubleweave(video_0, options \\ [])

@spec doubleweave(
  FFix.Stream.t(),
  [{:first_field, integer() | String.t() | atom()}]
) :: FFix.Stream.t()

Weave input video fields into double number of frames.

Options

  • first_field - 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

drawbox(video_0, options \\ [])

@spec drawbox(FFix.Stream.t(),
  x: String.t(),
  y: String.t(),
  c: String.t(),
  replace: boolean(),
  enable: String.t(),
  h: String.t(),
  width: String.t(),
  w: String.t(),
  color: String.t(),
  t: String.t(),
  height: String.t(),
  thickness: String.t(),
  box_source: String.t()
) :: FFix.Stream.t()

Draw a colored box on the input video.

Options

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

drawbox_vaapi(video_0, options \\ [])

@spec drawbox_vaapi(FFix.Stream.t(),
  x: String.t(),
  y: String.t(),
  c: term(),
  replace: boolean(),
  h: String.t(),
  width: String.t(),
  w: String.t(),
  color: term(),
  t: String.t(),
  height: String.t(),
  thickness: String.t()
) :: FFix.Stream.t()

Draw a colored box on the input video.

Options

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

drawgraph(video_0, options \\ [])

@spec drawgraph(FFix.Stream.t(),
  max: float(),
  min: float(),
  size: term(),
  mode: integer() | String.t() | atom(),
  s: term(),
  r: term(),
  slide: integer() | String.t() | atom(),
  rate: term(),
  m1: String.t(),
  fg1: String.t(),
  m2: String.t(),
  fg2: String.t(),
  m3: String.t(),
  fg3: String.t(),
  m4: String.t(),
  fg4: String.t(),
  bg: term()
) :: FFix.Stream.t()

Draw a graph using input video metadata.

Options

  • max - set maximal value (from INT_MIN to INT_MAX) (default 1)

  • min - set minimal value (from INT_MIN to INT_MAX) (default -1)

  • size - set graph size (default "900x256")

  • mode - set graph mode (from 0 to 2) (default line)

    • bar (0) - draw bars
    • dot (1) - draw dots
    • line (2) - draw lines
  • s - set graph size (default "900x256")

  • r - set video rate (default "25")

  • slide - 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
  • rate - set video rate (default "25")

  • m1 - set 1st metadata key (default "")

  • fg1 - set 1st foreground color expression (default "0xffff0000")

  • m2 - set 2nd metadata key (default "")

  • fg2 - set 2nd foreground color expression (default "0xff00ff00")

  • m3 - set 3rd metadata key (default "")

  • fg3 - set 3rd foreground color expression (default "0xffff00ff")

  • m4 - set 4th metadata key (default "")

  • fg4 - set 4th foreground color expression (default "0xffffff00")

  • bg - set background color (default "white")

drawgrid(video_0, options \\ [])

@spec drawgrid(FFix.Stream.t(),
  x: String.t(),
  y: String.t(),
  c: String.t(),
  replace: boolean(),
  enable: String.t(),
  h: String.t(),
  width: String.t(),
  w: String.t(),
  color: String.t(),
  t: String.t(),
  height: String.t(),
  thickness: String.t()
) :: FFix.Stream.t()

Draw a colored grid on the input video.

Options

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

drawtext(video_0, options \\ [])

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

Draw text on top of video frames using libfreetype library.

Options

  • expansion - 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)
  • enable - timeline expression evaluated before each frame; the filter is enabled when non-zero

  • textfile - set text file

  • fontfile - set font file

  • shadowy - set shadow y offset (from INT_MIN to INT_MAX) (default 0)

  • fontcolor - set foreground color (default "black")

  • fix_bounds - check and fix text coords to avoid clipping (default false)

  • alpha - apply alpha while rendering (default "1")

  • boxborderw - set box borders width (default "0")

  • shadowx - set shadow x offset (from INT_MIN to INT_MAX) (default 0)

  • borderw - set border width (from INT_MIN to INT_MAX) (default 0)

  • y_align - 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
  • font - Font name (default "Sans")

  • text_align - set text alignment (default 0)

    • left
    • L
    • right
    • R
    • center
    • C
    • top
    • T
    • bottom
    • B
    • middle
    • M
  • shadowcolor - set shadow color (default "black")

  • boxcolor - set box color (default "white")

  • start_number - start frame number for n/frame_num variable (from 0 to INT_MAX) (default 0)

  • r - set rate (timecode only) (from 0 to INT_MAX) (default 0/1)

  • box - set box (default false)

  • text - set text

  • boxh - set box height (from 0 to INT_MAX) (default 0)

  • boxw - set box width (from 0 to INT_MAX) (default 0)

  • timecode_rate - set rate (timecode only) (from 0 to INT_MAX) (default 0/1)

  • bordercolor - set border color (default "black")

  • ft_load_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
  • tc24hmax - set 24 hours max (timecode only) (default false)

  • timecode - set initial timecode

  • line_spacing - set line spacing in pixels (from INT_MIN to INT_MAX) (default 0)

  • fontsize - set font size

  • text_shaping - attempt to shape text before drawing (default true)

  • rate - set rate (timecode only) (from 0 to INT_MAX) (default 0/1)

  • fontcolor_expr - set foreground color expression (default "")

  • x - set x expression (default "0")

  • tabsize - set tab size (from 0 to INT_MAX) (default 4)

  • reload - reload text file at specified frame interval (from 0 to INT_MAX) (default 0)

  • y - set y expression (default "0")

  • text_source - the source of text

  • basetime - set base time (from I64_MIN to I64_MAX) (default I64_MIN)

edgedetect(video_0, options \\ [])

@spec edgedetect(FFix.Stream.t(),
  high: float(),
  low: float(),
  mode: integer() | String.t() | atom(),
  enable: String.t(),
  planes: integer() | String.t() | atom() | [String.t() | atom()]
) :: FFix.Stream.t()

Detect and draw edge.

Options

  • high - set high threshold (from 0 to 1) (default 0.196078)

  • low - set low threshold (from 0 to 1) (default 0.0784314)

  • mode - 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
  • enable - timeline expression evaluated before each frame; the filter is enabled when non-zero

  • planes - 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

elbg(video_0, options \\ [])

@spec elbg(FFix.Stream.t(),
  s: integer(),
  seed: integer(),
  l: integer(),
  n: integer(),
  codebook_length: integer(),
  nb_steps: integer(),
  pal8: boolean(),
  use_alpha: boolean()
) :: FFix.Stream.t()

Apply posterize effect, using the ELBG algorithm.

Options

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

entropy(video_0, options \\ [])

@spec entropy(FFix.Stream.t(),
  mode: integer() | String.t() | atom(),
  enable: String.t()
) ::
  FFix.Stream.t()

Measure video frames entropy.

Options

  • mode - set kind of histogram entropy measurement (from 0 to 1) (default normal)

    • normal (0)
    • diff (1)
  • enable - timeline expression evaluated before each frame; the filter is enabled when non-zero

epx(video_0, options \\ [])

@spec epx(
  FFix.Stream.t(),
  [{:n, integer()}]
) :: FFix.Stream.t()

Scale the input using EPX algorithm.

Options

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

eq(video_0, options \\ [])

@spec eq(FFix.Stream.t(),
  eval: integer() | String.t() | atom(),
  enable: String.t(),
  saturation: String.t(),
  contrast: String.t(),
  gamma: String.t(),
  brightness: String.t(),
  gamma_r: String.t(),
  gamma_g: String.t(),
  gamma_b: String.t(),
  gamma_weight: String.t()
) :: FFix.Stream.t()

Adjust brightness, contrast, gamma, and saturation.

Options

  • eval - specify when to evaluate expressions (from 0 to 1) (default init)

    • init (0) - eval expressions once during initialization
    • frame (1) - eval expressions per-frame
  • enable - timeline expression evaluated before each frame; the filter is enabled when non-zero

  • saturation - set the saturation adjustment (default "1.0")

  • contrast - set the contrast adjustment, negative values give a negative image (default "1.0")

  • gamma - set the initial gamma value (default "1.0")

  • brightness - set the brightness adjustment (default "0.0")

  • gamma_r - gamma value for red (default "1.0")

  • gamma_g - gamma value for green (default "1.0")

  • gamma_b - gamma value for blue (default "1.0")

  • gamma_weight - set the gamma weight which reduces the effect of gamma on bright areas (default "1.0")

erosion(video_0, options \\ [])

@spec erosion(FFix.Stream.t(),
  enable: String.t(),
  threshold0: integer(),
  threshold1: integer(),
  threshold2: integer(),
  threshold3: integer(),
  coordinates: integer()
) :: FFix.Stream.t()

Apply erosion effect.

Options

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

erosion_opencl(video_0, options \\ [])

@spec erosion_opencl(FFix.Stream.t(),
  threshold0: float(),
  threshold1: float(),
  threshold2: float(),
  threshold3: float(),
  coordinates: integer()
) :: FFix.Stream.t()

Apply erosion effect

Options

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

estdif(video_0, options \\ [])

@spec estdif(FFix.Stream.t(),
  mode: integer() | String.t() | atom(),
  enable: String.t(),
  parity: integer() | String.t() | atom(),
  deint: integer() | String.t() | atom(),
  interp: integer() | String.t() | atom(),
  rslope: integer(),
  redge: integer(),
  ecost: integer(),
  mcost: integer(),
  dcost: integer()
) :: FFix.Stream.t()

Apply Edge Slope Tracing deinterlace.

Options

  • mode - 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
  • enable - timeline expression evaluated before each frame; the filter is enabled when non-zero

  • parity - 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
  • deint - specify which frames to deinterlace (from 0 to 1) (default all)

    • all (0) - deinterlace all frames
    • interlaced (1) - only deinterlace frames marked as interlaced
  • interp - 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
  • rslope - specify the search radius for edge slope tracing (from 1 to 15) (default 1)

  • redge - specify the search radius for best edge matching (from 0 to 15) (default 2)

  • ecost - specify the edge cost for edge matching (from 0 to 50) (default 2)

  • mcost - specify the middle cost for edge matching (from 0 to 50) (default 1)

  • dcost - specify the distance cost for edge matching (from 0 to 50) (default 1)

exposure(video_0, options \\ [])

@spec exposure(FFix.Stream.t(), enable: String.t(), black: float(), exposure: float()) ::
  FFix.Stream.t()

Adjust exposure of the video stream.

Options

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

fade(video_0, options \\ [])

@spec fade(FFix.Stream.t(),
  type: integer() | String.t() | atom(),
  st: term(),
  c: term(),
  s: integer(),
  enable: String.t(),
  d: term(),
  n: integer(),
  color: term(),
  t: integer() | String.t() | atom(),
  duration: term(),
  alpha: boolean(),
  start_frame: integer(),
  start_time: term(),
  nb_frames: integer()
) :: FFix.Stream.t()

Fade in/out input video.

Options

  • type - set the fade direction (from 0 to 1) (default in)

    • in (0) - fade-in
    • out (1) - fade-out
  • st - Number of seconds of the beginning of the effect. (default 0)

  • c - set color (default "black")

  • s - Number of the first frame to which to apply the effect. (from 0 to INT_MAX) (default 0)

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

  • d - Duration of the effect in seconds. (default 0)

  • n - Number of frames to which the effect should be applied. (from 1 to INT_MAX) (default 25)

  • color - set color (default "black")

  • t - set the fade direction (from 0 to 1) (default in)

    • in (0) - fade-in
    • out (1) - fade-out
  • duration - Duration of the effect in seconds. (default 0)

  • alpha - fade alpha if it is available on the input (default false)

  • start_frame - Number of the first frame to which to apply the effect. (from 0 to INT_MAX) (default 0)

  • start_time - Number of seconds of the beginning of the effect. (default 0)

  • nb_frames - Number of frames to which the effect should be applied. (from 1 to INT_MAX) (default 25)

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

@spec feedback(FFix.Stream.t(), FFix.Stream.t(),
  x: integer(),
  y: integer(),
  enable: String.t(),
  h: integer(),
  w: integer()
) :: {FFix.Stream.t(), FFix.Stream.t()}

Apply feedback video filter.

Options

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

fftdnoiz(video_0, options \\ [])

@spec fftdnoiz(FFix.Stream.t(),
  block: integer(),
  next: integer(),
  prev: integer(),
  enable: String.t(),
  amount: float(),
  overlap: float(),
  planes: integer(),
  sigma: float(),
  window: integer() | String.t() | atom(),
  method: integer() | String.t() | atom()
) :: FFix.Stream.t()

Denoise frames using 3D FFT.

Options

  • block - set block size (from 8 to 256) (default 32)

  • next - set number of next frames for temporal denoising (from 0 to 1) (default 0)

  • prev - set number of previous frames for temporal denoising (from 0 to 1) (default 0)

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

  • amount - set amount of denoising (from 0.01 to 1) (default 1)

  • overlap - set block overlap (from 0.2 to 0.8) (default 0.5)

  • planes - set planes to filter (from 0 to 15) (default 7)

  • sigma - set denoise strength (from 0 to 100) (default 1)

  • window - 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
  • method - set method of denoising (from 0 to 1) (default wiener)

    • wiener (0) - wiener method
    • hard (1) - hard thresholding

fftfilt(video_0, options \\ [])

@spec fftfilt(FFix.Stream.t(),
  eval: integer() | String.t() | atom(),
  enable: String.t(),
  dc_Y: integer(),
  dc_U: integer(),
  dc_V: integer(),
  weight_Y: String.t(),
  weight_U: String.t(),
  weight_V: String.t()
) :: FFix.Stream.t()

Apply arbitrary expressions to pixels in frequency domain.

Options

  • eval - specify when to evaluate expressions (from 0 to 1) (default init)

    • init (0) - eval expressions once during initialization
    • frame (1) - eval expressions per-frame
  • enable - timeline expression evaluated before each frame; the filter is enabled when non-zero

  • dc_Y - adjust gain in Y plane (from 0 to 1000) (default 0)

  • dc_U - adjust gain in U plane (from 0 to 1000) (default 0)

  • dc_V - adjust gain in V plane (from 0 to 1000) (default 0)

  • weight_Y - set luminance expression in Y plane (default "1")

  • weight_U - set chrominance expression in U plane

  • weight_V - set chrominance expression in V plane

field(video_0, options \\ [])

@spec field(
  FFix.Stream.t(),
  [{:type, integer() | String.t() | atom()}]
) :: FFix.Stream.t()

Extract a field from the input video.

Options

  • type - set field type (top or bottom) (from 0 to 1) (default top)
    • top (0) - select top field
    • bottom (1) - select bottom field

fieldhint(video_0, options \\ [])

@spec fieldhint(FFix.Stream.t(),
  mode: integer() | String.t() | atom(),
  hint: String.t()
) ::
  FFix.Stream.t()

Field matching using hints.

Options

  • mode - set hint mode (from 0 to 2) (default absolute)

    • absolute (0)
    • relative (1)
    • pattern (2)
  • hint - set hint file

fieldorder(video_0, options \\ [])

@spec fieldorder(FFix.Stream.t(),
  enable: String.t(),
  order: integer() | String.t() | atom()
) ::
  FFix.Stream.t()

Set the field order.

Options

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

fillborders(video_0, options \\ [])

@spec fillborders(FFix.Stream.t(),
  mode: integer() | String.t() | atom(),
  enable: String.t(),
  left: integer(),
  right: integer(),
  color: term(),
  top: integer(),
  bottom: integer()
) :: FFix.Stream.t()

Fill borders of the input video.

Options

  • mode - 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)
  • enable - timeline expression evaluated before each frame; the filter is enabled when non-zero

  • left - set the left fill border (from 0 to INT_MAX) (default 0)

  • right - set the right fill border (from 0 to INT_MAX) (default 0)

  • color - set the color for the fixed/fade mode (default "black")

  • top - set the top fill border (from 0 to INT_MAX) (default 0)

  • bottom - set the bottom fill border (from 0 to INT_MAX) (default 0)

find_rect(video_0, options \\ [])

@spec find_rect(FFix.Stream.t(),
  discard: boolean(),
  threshold: float(),
  object: String.t(),
  mipmaps: integer(),
  xmin: integer(),
  ymin: integer(),
  xmax: integer(),
  ymax: integer()
) :: FFix.Stream.t()

Find a user specified object.

Options

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

flip_vulkan(video_0, options \\ [])

@spec flip_vulkan(
  FFix.Stream.t(),
  []
) :: FFix.Stream.t()

Flip both horizontally and vertically

Options

floodfill(video_0, options \\ [])

@spec floodfill(FFix.Stream.t(),
  x: integer(),
  y: integer(),
  enable: String.t(),
  s1: integer(),
  s2: integer(),
  s3: integer(),
  s0: integer(),
  d0: integer(),
  d1: integer(),
  d2: integer(),
  d3: integer()
) :: FFix.Stream.t()

Fill area with same color with another color.

Options

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

format(video_0, options \\ [])

@spec format(FFix.Stream.t(),
  pix_fmts: String.t(),
  color_spaces: String.t(),
  color_ranges: String.t()
) ::
  FFix.Stream.t()

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

Options

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

fps(video_0, options \\ [])

@spec fps(FFix.Stream.t(),
  round: integer() | String.t() | atom(),
  fps: String.t(),
  eof_action: integer() | String.t() | atom(),
  start_time: float()
) :: FFix.Stream.t()

Force constant framerate.

Options

  • round - 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
  • fps - A string describing desired output framerate (default "25")

  • eof_action - action performed for last frame (from 0 to 1) (default round)

    • round (0) - round similar to other frames
    • pass (1) - pass through last frame
  • start_time - Assume the first PTS should be this value. (from -DBL_MAX to DBL_MAX) (default DBL_MAX)

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

@spec framepack(FFix.Stream.t(), FFix.Stream.t(), [
  {:format, integer() | String.t() | atom()}
]) ::
  FFix.Stream.t()

Generate a frame packed stereoscopic video.

Options

  • format - 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

framerate(video_0, options \\ [])

@spec framerate(FFix.Stream.t(),
  flags: integer() | String.t() | atom() | [String.t() | atom()],
  fps: term(),
  interp_start: integer(),
  interp_end: integer(),
  scene: float()
) :: FFix.Stream.t()

Upsamples or downsamples progressive source between specified frame rates.

Options

  • flags - set flags (default scene_change_detect+scd)

    • scene_change_detect - enable scene change detection
    • scd - enable scene change detection
  • fps - required output frames per second rate (default "50")

  • interp_start - point to start linear interpolation (from 0 to 255) (default 15)

  • interp_end - point to end linear interpolation (from 0 to 255) (default 240)

  • scene - scene change level (from 0 to 100) (default 8.2)

framestep(video_0, options \\ [])

@spec framestep(FFix.Stream.t(), enable: String.t(), step: integer()) ::
  FFix.Stream.t()

Select one frame every N frames.

Options

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

freezedetect(video_0, options \\ [])

@spec freezedetect(FFix.Stream.t(),
  d: term(),
  n: float(),
  noise: float(),
  duration: term()
) ::
  FFix.Stream.t()

Detects frozen video input.

Options

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

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

@spec freezeframes(FFix.Stream.t(), FFix.Stream.t(),
  first: integer(),
  last: integer(),
  replace: integer()
) :: FFix.Stream.t()

Freeze video frames.

Options

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

frei0r(video_0, options \\ [])

@spec frei0r(FFix.Stream.t(),
  enable: String.t(),
  filter_name: String.t(),
  filter_params: String.t()
) ::
  FFix.Stream.t()

Apply a frei0r effect.

Options

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

fspp(video_0, options \\ [])

@spec fspp(FFix.Stream.t(),
  enable: String.t(),
  qp: integer(),
  strength: integer(),
  quality: integer(),
  use_bframe_qp: boolean()
) :: FFix.Stream.t()

Apply Fast Simple Post-processing filter.

Options

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

fsync(video_0, options \\ [])

@spec fsync(FFix.Stream.t(), file: String.t(), f: String.t()) :: FFix.Stream.t()

Synchronize video frames from external source.

Options

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

gblur(video_0, options \\ [])

@spec gblur(FFix.Stream.t(),
  enable: String.t(),
  planes: integer(),
  sigma: float(),
  steps: integer(),
  sigmaV: float()
) :: FFix.Stream.t()

Apply Gaussian Blur filter.

Options

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

gblur_vulkan(video_0, options \\ [])

@spec gblur_vulkan(FFix.Stream.t(),
  size: integer(),
  planes: integer(),
  sigma: float(),
  sigmaV: float(),
  sizeV: integer()
) :: FFix.Stream.t()

Gaussian Blur in Vulkan

Options

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

geq(video_0, options \\ [])

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

Apply generic equation to each pixel.

Options

  • cr - set chroma red expression

  • i - 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
  • a - set alpha expression

  • b - set blue expression

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

  • r - set red expression

  • interpolation - 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
  • g - set green expression

  • lum_expr - set luminance expression

  • lum - set luminance expression

  • cb_expr - set chroma blue expression

  • cb - set chroma blue expression

  • cr_expr - set chroma red expression

  • alpha_expr - set alpha expression

  • red_expr - set red expression

  • green_expr - set green expression

  • blue_expr - set blue expression

gradfun(video_0, options \\ [])

@spec gradfun(FFix.Stream.t(),
  enable: String.t(),
  strength: float(),
  radius: integer()
) ::
  FFix.Stream.t()

Debands video quickly using gradients.

Options

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

graphmonitor(video_0, options \\ [])

@spec graphmonitor(FFix.Stream.t(),
  flags: integer() | String.t() | atom() | [String.t() | atom()],
  size: term(),
  mode: integer() | String.t() | atom() | [String.t() | atom()],
  m: integer() | String.t() | atom() | [String.t() | atom()],
  f: integer() | String.t() | atom() | [String.t() | atom()],
  s: term(),
  r: term(),
  o: float(),
  rate: term(),
  opacity: float()
) :: FFix.Stream.t()

Show various filtergraph stats.

Options

  • 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
  • size - set monitor size (default "hd720")

  • mode - set mode (default 0)

    • full
    • compact
    • nozero
    • noeof
    • nodisabled
  • m - set mode (default 0)

    • full
    • compact
    • nozero
    • noeof
    • nodisabled
  • f - 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
  • s - set monitor size (default "hd720")

  • r - set video rate (default "25")

  • o - set video opacity (from 0 to 1) (default 0.9)

  • rate - set video rate (default "25")

  • opacity - set video opacity (from 0 to 1) (default 0.9)

grayworld(video_0, options \\ [])

@spec grayworld(
  FFix.Stream.t(),
  [{:enable, String.t()}]
) :: FFix.Stream.t()

Adjust white balance using LAB gray world algorithm

Options

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

greyedge(video_0, options \\ [])

@spec greyedge(FFix.Stream.t(),
  enable: String.t(),
  sigma: float(),
  difford: integer(),
  minknorm: integer()
) :: FFix.Stream.t()

Estimates scene illumination by grey edge assumption.

Options

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

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

@spec haldclut(FFix.Stream.t(), FFix.Stream.t(),
  enable: String.t(),
  shortest: boolean(),
  interp: integer() | String.t() | atom(),
  eof_action: integer() | String.t() | atom(),
  repeatlast: boolean(),
  ts_sync_mode: integer() | String.t() | atom(),
  clut: integer() | String.t() | atom()
) :: FFix.Stream.t()

Adjust colors using a Hald CLUT.

Options

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

  • shortest - force termination when the shortest input terminates (default false)

  • interp - 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
  • eof_action - 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 - extend last frame of secondary streams beyond EOF (default true)

  • ts_sync_mode - 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
  • clut - when to process CLUT (from 0 to 1) (default all)

    • first (0) - process only first CLUT, ignore rest
    • all (1) - process all CLUTs

hflip(video_0, options \\ [])

@spec hflip(
  FFix.Stream.t(),
  [{:enable, String.t()}]
) :: FFix.Stream.t()

Horizontally flip the input video.

Options

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

hflip_vulkan(video_0, options \\ [])

@spec hflip_vulkan(
  FFix.Stream.t(),
  []
) :: FFix.Stream.t()

Horizontally flip the input video in Vulkan

Options

histeq(video_0, options \\ [])

@spec histeq(FFix.Stream.t(),
  intensity: float(),
  enable: String.t(),
  strength: float(),
  antibanding: integer() | String.t() | atom()
) :: FFix.Stream.t()

Apply global color histogram equalization.

Options

  • intensity - set the intensity (from 0 to 1) (default 0.21)
  • enable - timeline expression evaluated before each frame; the filter is enabled when non-zero
  • strength - set the strength (from 0 to 1) (default 0.2)
  • antibanding - 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

histogram(video_0, options \\ [])

@spec histogram(FFix.Stream.t(),
  c: integer(),
  m: integer() | String.t() | atom(),
  f: float(),
  b: float(),
  d: integer() | String.t() | atom(),
  l: integer() | String.t() | atom(),
  components: integer(),
  bgopacity: float(),
  display_mode: integer() | String.t() | atom(),
  levels_mode: integer() | String.t() | atom(),
  level_height: integer(),
  scale_height: integer(),
  fgopacity: float(),
  colors_mode: integer() | String.t() | atom()
) :: FFix.Stream.t()

Compute and draw a histogram.

Options

  • c - set color components to display (from 1 to 15) (default 7)

  • m - set levels mode (from 0 to 1) (default linear)

    • linear (0)
    • logarithmic (1)
  • f - set foreground opacity (from 0 to 1) (default 0.7)

  • b - set background opacity (from 0 to 1) (default 0.5)

  • d - set display mode (from 0 to 2) (default stack)

    • overlay (0)
    • parade (1)
    • stack (2)
  • l - 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 - set color components to display (from 1 to 15) (default 7)

  • bgopacity - set background opacity (from 0 to 1) (default 0.5)

  • display_mode - set display mode (from 0 to 2) (default stack)

    • overlay (0)
    • parade (1)
    • stack (2)
  • levels_mode - set levels mode (from 0 to 1) (default linear)

    • linear (0)
    • logarithmic (1)
  • level_height - set level height (from 50 to 2048) (default 200)

  • scale_height - set scale height (from 0 to 40) (default 12)

  • fgopacity - set foreground opacity (from 0 to 1) (default 0.7)

  • colors_mode - 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)

hqdn3d(video_0, options \\ [])

@spec hqdn3d(FFix.Stream.t(),
  enable: String.t(),
  luma_spatial: float(),
  chroma_spatial: float(),
  luma_tmp: float(),
  chroma_tmp: float()
) :: FFix.Stream.t()

Apply a High Quality 3D Denoiser.

Options

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

hqx(video_0, options \\ [])

@spec hqx(
  FFix.Stream.t(),
  [{:n, integer()}]
) :: FFix.Stream.t()

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

Options

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

hsvhold(video_0, options \\ [])

@spec hsvhold(FFix.Stream.t(),
  enable: String.t(),
  val: float(),
  hue: float(),
  blend: float(),
  similarity: float(),
  sat: float()
) :: FFix.Stream.t()

Turns a certain HSV range into gray.

Options

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

hsvkey(video_0, options \\ [])

@spec hsvkey(FFix.Stream.t(),
  enable: String.t(),
  val: float(),
  hue: float(),
  blend: float(),
  similarity: float(),
  sat: float()
) :: FFix.Stream.t()

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

Options

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

hue(video_0, options \\ [])

@spec hue(FFix.Stream.t(),
  b: String.t(),
  s: String.t(),
  enable: String.t(),
  h: String.t(),
  H: String.t()
) :: FFix.Stream.t()

Adjust the hue and saturation of the input video.

Options

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

huesaturation(video_0, options \\ [])

@spec huesaturation(FFix.Stream.t(),
  intensity: float(),
  enable: String.t(),
  colors: integer() | String.t() | atom() | [String.t() | atom()],
  hue: float(),
  saturation: float(),
  strength: float(),
  rw: float(),
  gw: float(),
  bw: float(),
  lightness: boolean()
) :: FFix.Stream.t()

Apply hue-saturation-intensity adjustments.

Options

  • intensity - set the intensity shift (from -1 to 1) (default 0)

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

  • colors - 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
  • hue - set the hue shift (from -180 to 180) (default 0)

  • saturation - set the saturation shift (from -1 to 1) (default 0)

  • strength - set the filtering strength (from 0 to 100) (default 1)

  • rw - set the red weight (from 0 to 1) (default 0.333)

  • gw - set the green weight (from 0 to 1) (default 0.334)

  • bw - set the blue weight (from 0 to 1) (default 0.333)

  • lightness - set the preserve lightness (default false)

hwdownload(video_0, options \\ [])

@spec hwdownload(
  FFix.Stream.t(),
  []
) :: FFix.Stream.t()

Download a hardware frame to a normal frame

Options

hwmap(video_0, options \\ [])

@spec hwmap(FFix.Stream.t(),
  reverse: integer(),
  mode: integer() | String.t() | atom() | [String.t() | atom()],
  derive_device: String.t()
) :: FFix.Stream.t()

Map hardware frames

Options

  • reverse - Map in reverse (create and allocate in the sink) (from 0 to 1) (default 0)

  • mode - 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
  • derive_device - Derive a new device of this type

hwupload(video_0, options \\ [])

@spec hwupload(
  FFix.Stream.t(),
  [{:derive_device, String.t()}]
) :: FFix.Stream.t()

Upload a normal frame to a hardware frame

Options

  • derive_device - Derive a new device of this type

hwupload_cuda(video_0, options \\ [])

@spec hwupload_cuda(
  FFix.Stream.t(),
  [{:device, integer()}]
) :: FFix.Stream.t()

Upload a system memory frame to a CUDA device.

Options

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

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

@spec hysteresis(FFix.Stream.t(), FFix.Stream.t(),
  enable: String.t(),
  threshold: integer(),
  shortest: boolean(),
  planes: integer(),
  eof_action: integer() | String.t() | atom(),
  repeatlast: boolean(),
  ts_sync_mode: integer() | String.t() | atom()
) :: FFix.Stream.t()

Grow first stream into second stream by connecting components.

Options

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

  • threshold - set threshold (from 0 to 65535) (default 0)

  • shortest - force termination when the shortest input terminates (default false)

  • planes - set planes (from 0 to 15) (default 15)

  • eof_action - 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 - extend last frame of secondary streams beyond EOF (default true)

  • ts_sync_mode - 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

iccdetect(video_0, options \\ [])

@spec iccdetect(
  FFix.Stream.t(),
  [{:force, boolean()}]
) :: FFix.Stream.t()

Detect and parse ICC profiles.

Options

  • force - overwrite existing tags (default true)

iccgen(video_0, options \\ [])

@spec iccgen(FFix.Stream.t(),
  force: boolean(),
  color_primaries: integer() | String.t() | atom(),
  color_trc: integer() | String.t() | atom()
) :: FFix.Stream.t()

Generate and attach ICC profiles.

Options

  • force - overwrite existing ICC profile (default false)

  • color_primaries - 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 - 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)

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

@spec identity(FFix.Stream.t(), FFix.Stream.t(),
  enable: String.t(),
  shortest: boolean(),
  eof_action: integer() | String.t() | atom(),
  repeatlast: boolean(),
  ts_sync_mode: integer() | String.t() | atom()
) :: FFix.Stream.t()

Calculate the Identity between two video streams.

Options

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

  • shortest - force termination when the shortest input terminates (default false)

  • eof_action - 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 - extend last frame of secondary streams beyond EOF (default true)

  • ts_sync_mode - 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

idet(video_0, options \\ [])

@spec idet(FFix.Stream.t(),
  intl_thres: float(),
  prog_thres: float(),
  rep_thres: float(),
  half_life: float(),
  analyze_interlaced_flag: integer()
) :: FFix.Stream.t()

Interlace detect Filter.

Options

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

il(video_0, options \\ [])

@spec il(FFix.Stream.t(),
  c: integer() | String.t() | atom(),
  a: integer() | String.t() | atom(),
  enable: String.t(),
  l: integer() | String.t() | atom(),
  ls: boolean(),
  cs: boolean(),
  as: boolean(),
  luma_mode: integer() | String.t() | atom(),
  chroma_mode: integer() | String.t() | atom(),
  alpha_mode: integer() | String.t() | atom(),
  luma_swap: boolean(),
  chroma_swap: boolean(),
  alpha_swap: boolean()
) :: FFix.Stream.t()

Deinterleave or interleave fields.

Options

  • c - select chroma mode (from 0 to 2) (default none)

    • none (0)
    • interleave (1)
    • i (1)
    • deinterleave (2)
    • d (2)
  • a - select alpha mode (from 0 to 2) (default none)

    • none (0)
    • interleave (1)
    • i (1)
    • deinterleave (2)
    • d (2)
  • enable - timeline expression evaluated before each frame; the filter is enabled when non-zero

  • l - select luma mode (from 0 to 2) (default none)

    • none (0)
    • interleave (1)
    • i (1)
    • deinterleave (2)
    • d (2)
  • ls - swap luma fields (default false)

  • cs - swap chroma fields (default false)

  • as - swap alpha fields (default false)

  • luma_mode - select luma mode (from 0 to 2) (default none)

    • none (0)
    • interleave (1)
    • i (1)
    • deinterleave (2)
    • d (2)
  • chroma_mode - select chroma mode (from 0 to 2) (default none)

    • none (0)
    • interleave (1)
    • i (1)
    • deinterleave (2)
    • d (2)
  • alpha_mode - select alpha mode (from 0 to 2) (default none)

    • none (0)
    • interleave (1)
    • i (1)
    • deinterleave (2)
    • d (2)
  • luma_swap - swap luma fields (default false)

  • chroma_swap - swap chroma fields (default false)

  • alpha_swap - swap alpha fields (default false)

inflate(video_0, options \\ [])

@spec inflate(FFix.Stream.t(),
  enable: String.t(),
  threshold0: integer(),
  threshold1: integer(),
  threshold2: integer(),
  threshold3: integer()
) :: FFix.Stream.t()

Apply inflate effect.

Options

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

interlace(video_0, options \\ [])

@spec interlace(FFix.Stream.t(),
  scan: integer() | String.t() | atom(),
  lowpass: integer() | String.t() | atom()
) :: FFix.Stream.t()

Convert progressive video into interlaced.

Options

  • scan - scanning mode (from 0 to 1) (default tff)

    • tff (0) - top field first
    • bff (1) - bottom field first
  • lowpass - 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

kerndeint(video_0, options \\ [])

@spec kerndeint(FFix.Stream.t(),
  map: boolean(),
  order: boolean(),
  thresh: integer(),
  sharp: boolean(),
  twoway: boolean()
) :: FFix.Stream.t()

Apply kernel deinterlacing to the input.

Options

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

kirsch(video_0, options \\ [])

@spec kirsch(FFix.Stream.t(),
  enable: String.t(),
  scale: float(),
  planes: integer(),
  delta: float()
) ::
  FFix.Stream.t()

Apply kirsch operator.

Options

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

lagfun(video_0, options \\ [])

@spec lagfun(FFix.Stream.t(), enable: String.t(), planes: term(), decay: float()) ::
  FFix.Stream.t()

Slowly update darker pixels.

Options

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

latency(video_0, options \\ [])

@spec latency(
  FFix.Stream.t(),
  [{:enable, String.t()}]
) :: FFix.Stream.t()

Report video filtering latency.

Options

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

lenscorrection(video_0, options \\ [])

@spec lenscorrection(FFix.Stream.t(),
  fc: term(),
  i: integer() | String.t() | atom(),
  enable: String.t(),
  cx: float(),
  cy: float(),
  k1: float(),
  k2: float()
) :: FFix.Stream.t()

Rectify the image by correcting for lens distortion.

Options

  • fc - set the color of the unmapped pixels (default "black@0")

  • i - set interpolation type (from 0 to 64) (default nearest)

    • nearest (0) - nearest neighbour
    • bilinear (1) - bilinear
  • enable - timeline expression evaluated before each frame; the filter is enabled when non-zero

  • cx - set relative center x (from 0 to 1) (default 0.5)

  • cy - set relative center y (from 0 to 1) (default 0.5)

  • k1 - set quadratic distortion factor (from -1 to 1) (default 0)

  • k2 - set double quadratic distortion factor (from -1 to 1) (default 0)

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

@spec libvmaf(FFix.Stream.t(), FFix.Stream.t(),
  pool: String.t(),
  feature: String.t(),
  shortest: boolean(),
  eof_action: integer() | String.t() | atom(),
  repeatlast: boolean(),
  ts_sync_mode: integer() | String.t() | atom(),
  model: String.t(),
  log_path: String.t(),
  log_fmt: String.t(),
  n_threads: integer(),
  n_subsample: integer()
) :: FFix.Stream.t()

Calculate the VMAF between two video streams.

Options

  • pool - Set the pool method to be used for computing vmaf.

  • feature - Set the feature to be used for computing vmaf.

  • shortest - force termination when the shortest input terminates (default false)

  • eof_action - 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 - extend last frame of secondary streams beyond EOF (default true)

  • ts_sync_mode - 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
  • model - Set the model to be used for computing vmaf. (default "version=vmaf_v0.6.1")

  • log_path - Set the file path to be used to write log.

  • log_fmt - Set the format of the log (csv, json, xml, or sub). (default "xml")

  • n_threads - Set number of threads to be used when computing vmaf. (from 0 to UINT32_MAX) (default 0)

  • n_subsample - Set interval for frame subsampling used when computing vmaf. (from 1 to UINT32_MAX) (default 1)

limiter(video_0, options \\ [])

@spec limiter(FFix.Stream.t(),
  max: integer(),
  min: integer(),
  enable: String.t(),
  planes: integer()
) ::
  FFix.Stream.t()

Limit pixels components to the specified range.

Options

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

loop(video_0, options \\ [])

@spec loop(FFix.Stream.t(),
  size: integer(),
  start: integer(),
  time: term(),
  loop: integer()
) ::
  FFix.Stream.t()

Loop video frames.

Options

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

lumakey(video_0, options \\ [])

@spec lumakey(FFix.Stream.t(),
  enable: String.t(),
  threshold: float(),
  tolerance: float(),
  softness: float()
) :: FFix.Stream.t()

Turns a certain luma into transparency.

Options

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

lut1d(video_0, options \\ [])

@spec lut1d(FFix.Stream.t(),
  file: String.t(),
  enable: String.t(),
  interp: integer() | String.t() | atom()
) :: FFix.Stream.t()

Adjust colors using a 1D LUT.

Options

  • file - set 1D LUT file name
  • enable - timeline expression evaluated before each frame; the filter is enabled when non-zero
  • interp - 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

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

@spec lut2(FFix.Stream.t(), FFix.Stream.t(),
  enable: String.t(),
  d: integer(),
  shortest: boolean(),
  c1: String.t(),
  c2: String.t(),
  c0: String.t(),
  c3: String.t(),
  eof_action: integer() | String.t() | atom(),
  repeatlast: boolean(),
  ts_sync_mode: integer() | String.t() | atom()
) :: FFix.Stream.t()

Compute and apply a lookup table from two video inputs.

Options

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

  • d - set output depth (from 0 to 16) (default 0)

  • shortest - force termination when the shortest input terminates (default false)

  • c1 - set component #1 expression (default "x")

  • c2 - set component #2 expression (default "x")

  • c0 - set component #0 expression (default "x")

  • c3 - set component #3 expression (default "x")

  • eof_action - 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 - extend last frame of secondary streams beyond EOF (default true)

  • ts_sync_mode - 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

lut3d(video_0, options \\ [])

@spec lut3d(FFix.Stream.t(),
  file: String.t(),
  enable: String.t(),
  interp: integer() | String.t() | atom(),
  clut: integer() | String.t() | atom()
) :: FFix.Stream.t()

Adjust colors using a 3D LUT.

Options

  • file - set 3D LUT file name

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

  • interp - 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
  • clut - when to process CLUT (from 0 to 1) (default all)

    • first (0) - process only first CLUT, ignore rest
    • all (1) - process all CLUTs

lut(video_0, options \\ [])

@spec lut(FFix.Stream.t(),
  y: String.t(),
  v: String.t(),
  a: String.t(),
  b: String.t(),
  enable: String.t(),
  r: String.t(),
  c1: String.t(),
  c2: String.t(),
  g: String.t(),
  c0: String.t(),
  c3: String.t(),
  u: String.t()
) :: FFix.Stream.t()

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

Options

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

lutrgb(video_0, options \\ [])

@spec lutrgb(FFix.Stream.t(),
  y: String.t(),
  v: String.t(),
  a: String.t(),
  b: String.t(),
  enable: String.t(),
  r: String.t(),
  c1: String.t(),
  c2: String.t(),
  g: String.t(),
  c0: String.t(),
  c3: String.t(),
  u: String.t()
) :: FFix.Stream.t()

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

Options

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

lutyuv(video_0, options \\ [])

@spec lutyuv(FFix.Stream.t(),
  y: String.t(),
  v: String.t(),
  a: String.t(),
  b: String.t(),
  enable: String.t(),
  r: String.t(),
  c1: String.t(),
  c2: String.t(),
  g: String.t(),
  c0: String.t(),
  c3: String.t(),
  u: String.t()
) :: FFix.Stream.t()

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

Options

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

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

@spec maskedclamp(FFix.Stream.t(), FFix.Stream.t(), FFix.Stream.t(),
  enable: String.t(),
  planes: integer(),
  undershoot: integer(),
  overshoot: integer()
) :: FFix.Stream.t()

Clamp first stream with second stream and third stream.

Options

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

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

@spec maskedmax(FFix.Stream.t(), FFix.Stream.t(), FFix.Stream.t(),
  enable: String.t(),
  planes: integer()
) :: FFix.Stream.t()

Apply filtering with maximum difference of two streams.

Options

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

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

@spec maskedmerge(FFix.Stream.t(), FFix.Stream.t(), FFix.Stream.t(),
  enable: String.t(),
  planes: integer()
) :: FFix.Stream.t()

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

Options

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

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

@spec maskedmin(FFix.Stream.t(), FFix.Stream.t(), FFix.Stream.t(),
  enable: String.t(),
  planes: integer()
) :: FFix.Stream.t()

Apply filtering with minimum difference of two streams.

Options

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

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

@spec maskedthreshold(FFix.Stream.t(), FFix.Stream.t(),
  mode: integer() | String.t() | atom(),
  enable: String.t(),
  threshold: integer(),
  planes: integer()
) :: FFix.Stream.t()

Pick pixels comparing absolute difference of two streams with threshold.

Options

  • mode - set mode (from 0 to 1) (default abs)

    • abs (0)
    • diff (1)
  • enable - timeline expression evaluated before each frame; the filter is enabled when non-zero

  • threshold - set threshold (from 0 to 65535) (default 1)

  • planes - set planes (from 0 to 15) (default 15)

maskfun(video_0, options \\ [])

@spec maskfun(FFix.Stream.t(),
  high: integer(),
  low: integer(),
  sum: integer(),
  enable: String.t(),
  fill: integer(),
  planes: integer()
) :: FFix.Stream.t()

Create Mask.

Options

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

mcdeint(video_0, options \\ [])

@spec mcdeint(FFix.Stream.t(),
  mode: integer() | String.t() | atom(),
  qp: integer(),
  parity: integer() | String.t() | atom()
) :: FFix.Stream.t()

Apply motion compensating deinterlacing.

Options

  • mode - set mode (from 0 to 3) (default fast)

    • fast (0)
    • medium (1)
    • slow (2)
    • extra_slow (3)
  • qp - set qp (from INT_MIN to INT_MAX) (default 1)

  • parity - set the assumed picture field parity (from -1 to 1) (default bff)

    • tff (0) - assume top field first
    • bff (1) - assume bottom field first

median(video_0, options \\ [])

@spec median(FFix.Stream.t(),
  enable: String.t(),
  planes: integer(),
  radius: integer(),
  percentile: float(),
  radiusV: integer()
) :: FFix.Stream.t()

Apply Median filter.

Options

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

mestimate(video_0, options \\ [])

@spec mestimate(FFix.Stream.t(),
  method: integer() | String.t() | atom(),
  mb_size: integer(),
  search_param: integer()
) :: FFix.Stream.t()

Generate motion vectors.

Options

  • method - 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
  • mb_size - macroblock size (from 8 to INT_MAX) (default 16)

  • search_param - search parameter (from 4 to INT_MAX) (default 7)

metadata(video_0, options \\ [])

@spec metadata(FFix.Stream.t(),
  function: integer() | String.t() | atom(),
  value: String.t(),
  file: String.t(),
  mode: integer() | String.t() | atom(),
  expr: String.t(),
  enable: String.t(),
  key: String.t(),
  direct: boolean()
) :: FFix.Stream.t()

Manipulate video frame metadata.

Options

  • function - 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)
  • value - set metadata value

  • file - set file where to print metadata information

  • mode - 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
  • expr - set expression for expr function

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

  • key - set metadata key

  • direct - reduce buffering when printing to user-set file or pipe (default false)

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

@spec midequalizer(FFix.Stream.t(), FFix.Stream.t(),
  enable: String.t(),
  planes: integer()
) ::
  FFix.Stream.t()

Apply Midway Equalization.

Options

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

minterpolate(video_0, options \\ [])

@spec minterpolate(FFix.Stream.t(),
  me: integer() | String.t() | atom(),
  fps: term(),
  mi_mode: integer() | String.t() | atom(),
  mc_mode: integer() | String.t() | atom(),
  me_mode: integer() | String.t() | atom(),
  mb_size: integer(),
  search_param: integer(),
  vsbmc: integer(),
  scd: integer() | String.t() | atom(),
  scd_threshold: float()
) :: FFix.Stream.t()

Frame rate conversion using Motion Interpolation.

Options

  • me - 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
  • fps - output's frame rate (default "60")

  • mi_mode - motion interpolation mode (from 0 to 2) (default mci)

    • dup (0) - duplicate frames
    • blend (1) - blend frames
    • mci (2) - motion compensated interpolation
  • mc_mode - motion compensation mode (from 0 to 1) (default obmc)

    • obmc (0) - overlapped block motion compensation
    • aobmc (1) - adaptive overlapped block motion compensation
  • me_mode - motion estimation mode (from 0 to 1) (default bilat)

    • bidir (0) - bidirectional motion estimation
    • bilat (1) - bilateral motion estimation
  • mb_size - macroblock size (from 4 to 16) (default 16)

  • search_param - search parameter (from 4 to INT_MAX) (default 32)

  • vsbmc - variable-size block motion compensation (from 0 to 1) (default 0)

  • scd - scene change detection method (from 0 to 1) (default fdiff)

    • none (0) - disable detection
    • fdiff (1) - frame difference
  • scd_threshold - scene change threshold (from 0 to 100) (default 10)

monochrome(video_0, options \\ [])

@spec monochrome(FFix.Stream.t(),
  cr: float(),
  high: float(),
  size: float(),
  enable: String.t(),
  cb: float()
) :: FFix.Stream.t()

Convert video to gray using custom color filter.

Options

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

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

@spec morpho(FFix.Stream.t(), FFix.Stream.t(),
  mode: integer() | String.t() | atom(),
  enable: String.t(),
  shortest: boolean(),
  planes: integer(),
  eof_action: integer() | String.t() | atom(),
  repeatlast: boolean(),
  ts_sync_mode: integer() | String.t() | atom(),
  structure: integer() | String.t() | atom()
) :: FFix.Stream.t()

Apply Morphological filter.

Options

  • mode - set morphological transform (from 0 to 6) (default erode)

    • erode (0)
    • dilate (1)
    • open (2)
    • close (3)
    • gradient (4)
    • tophat (5)
    • blackhat (6)
  • enable - timeline expression evaluated before each frame; the filter is enabled when non-zero

  • shortest - force termination when the shortest input terminates (default false)

  • planes - set planes to filter (from 0 to 15) (default 7)

  • eof_action - 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 - extend last frame of secondary streams beyond EOF (default true)

  • ts_sync_mode - 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
  • structure - when to process structures (from 0 to 1) (default all)

    • first (0) - process only first structure, ignore rest
    • all (1) - process all structure

mpdecimate(video_0, options \\ [])

@spec mpdecimate(FFix.Stream.t(),
  max: integer(),
  keep: integer(),
  lo: integer(),
  hi: integer(),
  frac: float()
) :: FFix.Stream.t()

Remove near-duplicate frames.

Options

  • max - 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)
  • keep - set the number of similar consecutive frames to be kept before starting to drop similar frames (from 0 to INT_MAX) (default 0)
  • lo - set low dropping threshold (from INT_MIN to INT_MAX) (default 320)
  • hi - set high dropping threshold (from INT_MIN to INT_MAX) (default 768)
  • frac - set fraction dropping threshold (from 0 to 1) (default 0.33)

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

@spec msad(FFix.Stream.t(), FFix.Stream.t(),
  enable: String.t(),
  shortest: boolean(),
  eof_action: integer() | String.t() | atom(),
  repeatlast: boolean(),
  ts_sync_mode: integer() | String.t() | atom()
) :: FFix.Stream.t()

Calculate the MSAD between two video streams.

Options

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

  • shortest - force termination when the shortest input terminates (default false)

  • eof_action - 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 - extend last frame of secondary streams beyond EOF (default true)

  • ts_sync_mode - 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

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

@spec multiply(FFix.Stream.t(), FFix.Stream.t(),
  offset: float(),
  enable: String.t(),
  scale: float(),
  planes: term()
) :: FFix.Stream.t()

Multiply first video stream with second video stream.

Options

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

negate(video_0, options \\ [])

@spec negate(FFix.Stream.t(),
  enable: String.t(),
  components: integer() | String.t() | atom() | [String.t() | atom()],
  negate_alpha: boolean()
) :: FFix.Stream.t()

Negate input video.

Options

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

  • components - 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
  • negate_alpha - (default false)

nlmeans(video_0, options \\ [])

@spec nlmeans(FFix.Stream.t(),
  p: integer(),
  s: float(),
  enable: String.t(),
  r: integer(),
  pc: integer(),
  rc: integer()
) :: FFix.Stream.t()

Non-local means denoiser.

Options

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

nlmeans_opencl(video_0, options \\ [])

@spec nlmeans_opencl(FFix.Stream.t(),
  p: integer(),
  s: float(),
  r: integer(),
  pc: integer(),
  rc: integer()
) :: FFix.Stream.t()

Non-local means denoiser through OpenCL

Options

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

nlmeans_vulkan(video_0, options \\ [])

@spec nlmeans_vulkan(FFix.Stream.t(),
  p: integer(),
  s: float(),
  r: integer(),
  t: integer(),
  s1: float(),
  s2: float(),
  s3: float(),
  s4: float(),
  p1: integer(),
  p2: integer(),
  p3: integer(),
  p4: integer()
) :: FFix.Stream.t()

Non-local means denoiser (Vulkan)

Options

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

nnedi(video_0, options \\ [])

@spec nnedi(FFix.Stream.t(),
  enable: String.t(),
  field: integer() | String.t() | atom(),
  deint: integer() | String.t() | atom(),
  weights: String.t(),
  planes: integer(),
  nsize: integer() | String.t() | atom(),
  nns: integer() | String.t() | atom(),
  qual: integer() | String.t() | atom(),
  etype: integer() | String.t() | atom(),
  pscrn: integer() | String.t() | atom()
) :: FFix.Stream.t()

Apply neural network edge directed interpolation intra-only deinterlacer.

Options

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

  • field - 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
  • deint - set which frames to deinterlace (from 0 to 1) (default all)

    • all (0) - deinterlace all frames
    • interlaced (1) - only deinterlace frames marked as interlaced
  • weights - set weights file (default "nnedi3_weights.bin")

  • planes - set which planes to process (from 0 to 15) (default 7)

  • nsize - 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)
  • nns - set number of neurons in predictor neural network (from 0 to 4) (default n32)

    • n16 (0)
    • n32 (1)
    • n64 (2)
    • n128 (3)
    • n256 (4)
  • qual - set quality (from 1 to 2) (default fast)

    • fast (1)
    • slow (2)
  • etype - 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
  • pscrn - set prescreening (from 0 to 4) (default new)

    • none (0)
    • original (1)
    • new (2)
    • new2 (3)
    • new3 (4)

noformat(video_0, options \\ [])

@spec noformat(FFix.Stream.t(),
  pix_fmts: String.t(),
  color_spaces: String.t(),
  color_ranges: String.t()
) :: FFix.Stream.t()

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

Options

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

noise(video_0, options \\ [])

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

Add noise.

Options

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

  • all_seed - set component #0 noise seed (from -1 to INT_MAX) (default -1)

  • all_strength - set component #0 strength (from 0 to 100) (default 0)

  • alls - set component #0 strength (from 0 to 100) (default 0)

  • all_flags - set component #0 flags (default 0)

    • a - averaged noise
    • p - (semi)regular pattern
    • t - temporal noise
    • u - uniform noise
  • allf - set component #0 flags (default 0)

    • a - averaged noise
    • p - (semi)regular pattern
    • t - temporal noise
    • u - uniform noise
  • c0_seed - set component #0 noise seed (from -1 to INT_MAX) (default -1)

  • c0_strength - set component #0 strength (from 0 to 100) (default 0)

  • c0s - set component #0 strength (from 0 to 100) (default 0)

  • c0_flags - set component #0 flags (default 0)

    • a - averaged noise
    • p - (semi)regular pattern
    • t - temporal noise
    • u - uniform noise
  • c0f - set component #0 flags (default 0)

    • a - averaged noise
    • p - (semi)regular pattern
    • t - temporal noise
    • u - uniform noise
  • c1_seed - set component #1 noise seed (from -1 to INT_MAX) (default -1)

  • c1_strength - set component #1 strength (from 0 to 100) (default 0)

  • c1s - set component #1 strength (from 0 to 100) (default 0)

  • c1_flags - set component #1 flags (default 0)

    • a - averaged noise
    • p - (semi)regular pattern
    • t - temporal noise
    • u - uniform noise
  • c1f - set component #1 flags (default 0)

    • a - averaged noise
    • p - (semi)regular pattern
    • t - temporal noise
    • u - uniform noise
  • c2_seed - set component #2 noise seed (from -1 to INT_MAX) (default -1)

  • c2_strength - set component #2 strength (from 0 to 100) (default 0)

  • c2s - set component #2 strength (from 0 to 100) (default 0)

  • c2_flags - set component #2 flags (default 0)

    • a - averaged noise
    • p - (semi)regular pattern
    • t - temporal noise
    • u - uniform noise
  • c2f - set component #2 flags (default 0)

    • a - averaged noise
    • p - (semi)regular pattern
    • t - temporal noise
    • u - uniform noise
  • c3_seed - set component #3 noise seed (from -1 to INT_MAX) (default -1)

  • c3_strength - set component #3 strength (from 0 to 100) (default 0)

  • c3s - set component #3 strength (from 0 to 100) (default 0)

  • c3_flags - set component #3 flags (default 0)

    • a - averaged noise
    • p - (semi)regular pattern
    • t - temporal noise
    • u - uniform noise
  • c3f - set component #3 flags (default 0)

    • a - averaged noise
    • p - (semi)regular pattern
    • t - temporal noise
    • u - uniform noise

normalize(video_0, options \\ [])

@spec normalize(FFix.Stream.t(),
  enable: String.t(),
  strength: float(),
  smoothing: integer(),
  blackpt: term(),
  whitept: term(),
  independence: float()
) :: FFix.Stream.t()

Normalize RGB video.

Options

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

null(video_0, options \\ [])

@spec null(
  FFix.Stream.t(),
  []
) :: FFix.Stream.t()

Pass the source unchanged to the output.

Options

ocr(video_0, options \\ [])

@spec ocr(FFix.Stream.t(),
  language: String.t(),
  datapath: String.t(),
  whitelist: String.t(),
  blacklist: String.t()
) :: FFix.Stream.t()

Optical Character Recognition.

Options

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

oscilloscope(video_0, options \\ [])

@spec oscilloscope(FFix.Stream.t(),
  x: float(),
  y: float(),
  st: boolean(),
  c: integer(),
  s: float(),
  enable: String.t(),
  sc: boolean(),
  o: float(),
  t: float(),
  g: boolean(),
  tx: float(),
  ty: float(),
  tw: float(),
  th: float()
) :: FFix.Stream.t()

2D Video Oscilloscope.

Options

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

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

@spec overlay(FFix.Stream.t(), FFix.Stream.t(),
  x: String.t(),
  y: String.t(),
  eval: integer() | String.t() | atom(),
  format: integer() | String.t() | atom(),
  enable: String.t(),
  shortest: boolean(),
  alpha: integer() | String.t() | atom(),
  eof_action: integer() | String.t() | atom(),
  repeatlast: boolean(),
  ts_sync_mode: integer() | String.t() | atom()
) :: FFix.Stream.t()

Overlay a video source on top of the input.

Options

  • x - set the x expression (default "0")

  • y - set the y expression (default "0")

  • eval - 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 - 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)
  • enable - timeline expression evaluated before each frame; the filter is enabled when non-zero

  • shortest - force termination when the shortest input terminates (default false)

  • alpha - alpha format (from 0 to 1) (default straight)

    • straight (0)
    • premultiplied (1)
  • eof_action - 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 - extend last frame of secondary streams beyond EOF (default true)

  • ts_sync_mode - 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

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

@spec overlay_opencl(FFix.Stream.t(), FFix.Stream.t(), x: integer(), y: integer()) ::
  FFix.Stream.t()

Overlay one video on top of another

Options

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

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

@spec overlay_qsv(FFix.Stream.t(), FFix.Stream.t(),
  x: String.t(),
  y: String.t(),
  h: String.t(),
  w: String.t(),
  shortest: boolean(),
  alpha: integer(),
  eof_action: integer() | String.t() | atom(),
  repeatlast: boolean(),
  ts_sync_mode: integer() | String.t() | atom()
) :: FFix.Stream.t()

Quick Sync Video overlay.

Options

  • x - Overlay x position (default "0")

  • y - Overlay y position (default "0")

  • h - Overlay height (default "overlay_ih*w/overlay_iw")

  • w - Overlay width (default "overlay_iw")

  • shortest - force termination when the shortest input terminates (default false)

  • alpha - Overlay global alpha (from 0 to 255) (default 255)

  • eof_action - 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 - extend last frame of secondary streams beyond EOF (default true)

  • ts_sync_mode - 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

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

@spec overlay_vaapi(FFix.Stream.t(), FFix.Stream.t(),
  x: String.t(),
  y: String.t(),
  h: String.t(),
  w: String.t(),
  shortest: boolean(),
  alpha: float(),
  eof_action: integer() | String.t() | atom(),
  repeatlast: boolean(),
  ts_sync_mode: integer() | String.t() | atom()
) :: FFix.Stream.t()

Overlay one video on top of another

Options

  • x - Overlay x position (default "0")

  • y - Overlay y position (default "0")

  • h - Overlay height (default "overlay_ih*w/overlay_iw")

  • w - Overlay width (default "overlay_iw")

  • shortest - force termination when the shortest input terminates (default false)

  • alpha - Overlay global alpha (from 0 to 1) (default 1)

  • eof_action - 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 - extend last frame of secondary streams beyond EOF (default true)

  • ts_sync_mode - 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

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

@spec overlay_vulkan(FFix.Stream.t(), FFix.Stream.t(), x: integer(), y: integer()) ::
  FFix.Stream.t()

Overlay a source on top of another

Options

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

owdenoise(video_0, options \\ [])

@spec owdenoise(FFix.Stream.t(),
  depth: integer(),
  enable: String.t(),
  ls: float(),
  cs: float(),
  luma_strength: float(),
  chroma_strength: float()
) :: FFix.Stream.t()

Denoise using wavelets.

Options

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

pad(video_0, options \\ [])

@spec pad(FFix.Stream.t(),
  x: String.t(),
  y: String.t(),
  eval: integer() | String.t() | atom(),
  h: String.t(),
  width: String.t(),
  w: String.t(),
  color: term(),
  height: String.t(),
  aspect: term()
) :: FFix.Stream.t()

Pad the input video.

Options

  • x - set the x offset expression for the input image position (default "0")

  • y - set the y offset expression for the input image position (default "0")

  • eval - 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 - set the pad area height expression (default "ih")

  • width - set the pad area width expression (default "iw")

  • w - set the pad area width expression (default "iw")

  • color - set the color of the padded area border (default "black")

  • height - set the pad area height expression (default "ih")

  • aspect - pad to fit an aspect instead of a resolution (from 0 to DBL_MAX) (default 0/1)

pad_opencl(video_0, options \\ [])

@spec pad_opencl(FFix.Stream.t(),
  x: String.t(),
  y: String.t(),
  h: String.t(),
  width: String.t(),
  w: String.t(),
  color: term(),
  height: String.t(),
  aspect: term()
) :: FFix.Stream.t()

Pad the input video.

Options

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

pad_vaapi(video_0, options \\ [])

@spec pad_vaapi(FFix.Stream.t(),
  x: String.t(),
  y: String.t(),
  h: String.t(),
  width: String.t(),
  w: String.t(),
  color: term(),
  height: String.t(),
  aspect: term()
) :: FFix.Stream.t()

Pad the input video.

Options

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

palettegen(video_0, options \\ [])

@spec palettegen(FFix.Stream.t(),
  max_colors: integer(),
  reserve_transparent: boolean(),
  transparency_color: term(),
  stats_mode: integer() | String.t() | atom()
) :: FFix.Stream.t()

Find the optimal palette for a given stream.

Options

  • max_colors - set the maximum number of colors to use in the palette (from 2 to 256) (default 256)
  • reserve_transparent - reserve a palette entry for transparency (default true)
  • transparency_color - set a background color for transparency (default "lime")
  • stats_mode - 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

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

@spec paletteuse(FFix.Stream.t(), FFix.Stream.t(),
  new: boolean(),
  dither: integer() | String.t() | atom(),
  bayer_scale: integer(),
  diff_mode: integer() | String.t() | atom(),
  alpha_threshold: integer(),
  debug_kdtree: String.t()
) :: FFix.Stream.t()

Use a palette to downsample an input video stream.

Options

  • new - take new palette for each output frame (default false)

  • dither - 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)
  • bayer_scale - set scale for bayer dithering (from 0 to 5) (default 2)

  • diff_mode - set frame difference mode (from 0 to 1) (default 0)

    • rectangle (1) - process smallest different rectangle
  • alpha_threshold - set the alpha threshold for transparency (from 0 to 255) (default 128)

  • debug_kdtree - save Graphviz graph of the kdtree in specified file

perms(video_0, options \\ [])

@spec perms(FFix.Stream.t(),
  mode: integer() | String.t() | atom(),
  enable: String.t(),
  seed: integer()
) ::
  FFix.Stream.t()

Set permissions for the output video frame.

Options

  • mode - 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
  • enable - timeline expression evaluated before each frame; the filter is enabled when non-zero

  • seed - set the seed for the random mode (from -1 to UINT32_MAX) (default -1)

perspective(video_0, options \\ [])

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

Correct the perspective of video.

Options

  • eval - specify when to evaluate expressions (from 0 to 1) (default init)

    • init (0) - eval expressions once during initialization
    • frame (1) - eval expressions per-frame
  • enable - timeline expression evaluated before each frame; the filter is enabled when non-zero

  • interpolation - set interpolation (from 0 to 1) (default linear)

    • linear (0)
    • cubic (1)
  • x1 - set top right x coordinate (default "W")

  • x0 - set top left x coordinate (default "0")

  • x2 - set bottom left x coordinate (default "0")

  • x3 - set bottom right x coordinate (default "W")

  • y1 - set top right y coordinate (default "0")

  • y2 - set bottom left y coordinate (default "H")

  • y0 - set top left y coordinate (default "0")

  • y3 - set bottom right y coordinate (default "H")

  • sense - 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

phase(video_0, options \\ [])

@spec phase(FFix.Stream.t(),
  mode: integer() | String.t() | atom(),
  enable: String.t()
) ::
  FFix.Stream.t()

Phase shift fields.

Options

  • mode - 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
  • enable - timeline expression evaluated before each frame; the filter is enabled when non-zero

photosensitivity(video_0, options \\ [])

@spec photosensitivity(FFix.Stream.t(),
  skip: integer(),
  f: integer(),
  threshold: float(),
  t: float(),
  frames: integer(),
  bypass: boolean()
) :: FFix.Stream.t()

Filter out photosensitive epilepsy seizure-inducing flashes.

Options

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

pixdesctest(video_0, options \\ [])

@spec pixdesctest(
  FFix.Stream.t(),
  []
) :: FFix.Stream.t()

Test pixel format definitions.

Options

pixelize(video_0, options \\ [])

@spec pixelize(FFix.Stream.t(),
  mode: integer() | String.t() | atom(),
  p: term(),
  m: integer() | String.t() | atom(),
  enable: String.t(),
  h: integer(),
  width: integer(),
  w: integer(),
  planes: term(),
  height: integer()
) :: FFix.Stream.t()

Pixelize video.

Options

  • mode - set the pixelize mode (from 0 to 2) (default avg)

    • avg (0) - average
    • min (1) - minimum
    • max (2) - maximum
  • p - set what planes to filter (default F)

  • m - set the pixelize mode (from 0 to 2) (default avg)

    • avg (0) - average
    • min (1) - minimum
    • max (2) - maximum
  • enable - timeline expression evaluated before each frame; the filter is enabled when non-zero

  • h - set block height (from 1 to 1024) (default 16)

  • width - set block width (from 1 to 1024) (default 16)

  • w - set block width (from 1 to 1024) (default 16)

  • planes - set what planes to filter (default F)

  • height - set block height (from 1 to 1024) (default 16)

pixscope(video_0, options \\ [])

@spec pixscope(FFix.Stream.t(),
  x: float(),
  y: float(),
  enable: String.t(),
  h: integer(),
  w: integer(),
  o: float(),
  wx: float(),
  wy: float()
) :: FFix.Stream.t()

Pixel data analysis.

Options

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

pp7(video_0, options \\ [])

@spec pp7(FFix.Stream.t(),
  mode: integer() | String.t() | atom(),
  enable: String.t(),
  qp: integer()
) ::
  FFix.Stream.t()

Apply Postprocessing 7 filter.

Options

  • mode - set thresholding mode (from 0 to 2) (default medium)

    • hard (0) - hard thresholding
    • soft (1) - soft thresholding
    • medium (2) - medium thresholding
  • enable - timeline expression evaluated before each frame; the filter is enabled when non-zero

  • qp - force a constant quantizer parameter (from 0 to 64) (default 0)

pp(video_0, options \\ [])

@spec pp(FFix.Stream.t(), enable: String.t(), subfilters: String.t()) ::
  FFix.Stream.t()

Filter video using libpostproc.

Options

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

prewitt(video_0, options \\ [])

@spec prewitt(FFix.Stream.t(),
  enable: String.t(),
  scale: float(),
  planes: integer(),
  delta: float()
) ::
  FFix.Stream.t()

Apply prewitt operator.

Options

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

prewitt_opencl(video_0, options \\ [])

@spec prewitt_opencl(FFix.Stream.t(),
  scale: float(),
  planes: integer(),
  delta: float()
) ::
  FFix.Stream.t()

Apply prewitt operator

Options

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

procamp_vaapi(video_0, options \\ [])

@spec procamp_vaapi(FFix.Stream.t(),
  c: float(),
  b: float(),
  s: float(),
  h: float(),
  hue: float(),
  contrast: float(),
  brightness: float(),
  saturatio: float()
) :: FFix.Stream.t()

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

Options

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

pseudocolor(video_0, options \\ [])

@spec pseudocolor(FFix.Stream.t(),
  index: integer(),
  p: integer() | String.t() | atom(),
  i: integer(),
  enable: String.t(),
  c1: String.t(),
  c2: String.t(),
  opacity: float(),
  preset: integer() | String.t() | atom(),
  c0: String.t(),
  c3: String.t()
) :: FFix.Stream.t()

Make pseudocolored video frames.

Options

  • index - set component as base (from 0 to 3) (default 0)

  • p - 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)
  • i - set component as base (from 0 to 3) (default 0)

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

  • c1 - set component #1 expression (default "val")

  • c2 - set component #2 expression (default "val")

  • opacity - set pseudocolor opacity (from 0 to 1) (default 1)

  • preset - 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)
  • c0 - set component #0 expression (default "val")

  • c3 - set component #3 expression (default "val")

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

@spec psnr(FFix.Stream.t(), FFix.Stream.t(),
  f: String.t(),
  enable: String.t(),
  shortest: boolean(),
  eof_action: integer() | String.t() | atom(),
  repeatlast: boolean(),
  ts_sync_mode: integer() | String.t() | atom(),
  stats_file: String.t(),
  stats_version: integer(),
  output_max: boolean()
) :: FFix.Stream.t()

Calculate the PSNR between two video streams.

Options

  • f - Set file where to store per-frame difference information

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

  • shortest - force termination when the shortest input terminates (default false)

  • eof_action - 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 - extend last frame of secondary streams beyond EOF (default true)

  • ts_sync_mode - 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
  • stats_file - Set file where to store per-frame difference information

  • stats_version - Set the format version for the stats file. (from 1 to 2) (default 1)

  • output_max - Add raw stats (max values) to the output log. (default false)

pullup(video_0, options \\ [])

@spec pullup(FFix.Stream.t(),
  jl: integer(),
  jr: integer(),
  jt: integer(),
  jb: integer(),
  sb: boolean(),
  mp: integer() | String.t() | atom()
) :: FFix.Stream.t()

Pullup from field sequence to frames.

Options

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

qp(video_0, options \\ [])

@spec qp(FFix.Stream.t(), enable: String.t(), qp: String.t()) :: FFix.Stream.t()

Change video quantization parameters.

Options

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

qrencode(video_0, options \\ [])

@spec qrencode(FFix.Stream.t(),
  x: String.t(),
  y: String.t(),
  level: integer() | String.t() | atom(),
  fc: term(),
  bc: term(),
  q: String.t(),
  text: String.t(),
  enable: String.t(),
  l: integer() | String.t() | atom(),
  cs: boolean(),
  textfile: String.t(),
  expansion: integer() | String.t() | atom(),
  qrcode_width: String.t(),
  padded_qrcode_width: String.t(),
  Q: String.t(),
  case_sensitive: boolean(),
  foreground_color: term(),
  background_color: term()
) :: FFix.Stream.t()

Draw a QR code on top of video frames.

Options

  • x - set x expression (default "0")

  • y - set y expression (default "0")

  • level - error correction level, lowest is L (from 0 to 3) (default Q)

    • L (0)
    • M (1)
    • Q (2)
    • H (3)
  • fc - set QR foreground color (default "black")

  • bc - set QR background color (default "white")

  • q - set rendered QR code width expression (default "64")

  • text - set text to encode

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

  • l - error correction level, lowest is L (from 0 to 3) (default Q)

    • L (0)
    • M (1)
    • Q (2)
    • H (3)
  • cs - generate code which is case sensitive (default true)

  • textfile - set text file to encode

  • expansion - set the expansion mode (from 0 to 2) (default normal)

    • none (0) - set no expansion
    • normal (1) - set normal expansion
  • qrcode_width - set rendered QR code width expression (default "64")

  • padded_qrcode_width - set rendered padded QR code width expression (default "q")

  • Q - set rendered padded QR code width expression (default "q")

  • case_sensitive - generate code which is case sensitive (default true)

  • foreground_color - set QR foreground color (default "black")

  • background_color - set QR background color (default "white")

random(video_0, options \\ [])

@spec random(FFix.Stream.t(), seed: integer(), frames: integer()) :: FFix.Stream.t()

Return random frames.

Options

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

readeia608(video_0, options \\ [])

@spec readeia608(FFix.Stream.t(),
  enable: String.t(),
  scan_min: integer(),
  scan_max: integer(),
  spw: float(),
  chp: boolean(),
  lp: boolean()
) :: FFix.Stream.t()

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

Options

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

readvitc(video_0, options \\ [])

@spec readvitc(FFix.Stream.t(), scan_max: integer(), thr_b: float(), thr_w: float()) ::
  FFix.Stream.t()

Read vertical interval timecode and write it to frame metadata.

Options

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

realtime(video_0, options \\ [])

@spec realtime(FFix.Stream.t(), speed: float(), limit: term()) :: FFix.Stream.t()

Slow down filtering to match realtime.

Options

  • speed - speed factor (from DBL_MIN to DBL_MAX) (default 1)
  • limit - sleep time limit (default 2)

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

@spec remap(FFix.Stream.t(), FFix.Stream.t(), FFix.Stream.t(),
  format: integer() | String.t() | atom(),
  fill: term()
) :: FFix.Stream.t()

Remap pixels.

Options

  • format - set output format (from 0 to 1) (default color)

    • color (0)
    • gray (1)
  • fill - set the color of the unmapped pixels (default "black")

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

@spec remap_opencl(FFix.Stream.t(), FFix.Stream.t(), FFix.Stream.t(),
  fill: term(),
  interp: integer() | String.t() | atom()
) :: FFix.Stream.t()

Remap pixels using OpenCL.

Options

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

removegrain(video_0, options \\ [])

@spec removegrain(FFix.Stream.t(),
  enable: String.t(),
  m1: integer(),
  m2: integer(),
  m3: integer(),
  m0: integer()
) :: FFix.Stream.t()

Remove grain.

Options

  • enable - timeline expression evaluated before each frame; the filter is enabled when non-zero
  • m1 - set mode for 2nd plane (from 0 to 24) (default 0)
  • m2 - set mode for 3rd plane (from 0 to 24) (default 0)
  • m3 - set mode for 4th plane (from 0 to 24) (default 0)
  • m0 - set mode for 1st plane (from 0 to 24) (default 0)

removelogo(video_0, options \\ [])

@spec removelogo(FFix.Stream.t(),
  filename: String.t(),
  f: String.t(),
  enable: String.t()
) ::
  FFix.Stream.t()

Remove a TV logo based on a mask image.

Options

  • filename - set bitmap filename
  • f - set bitmap filename
  • enable - timeline expression evaluated before each frame; the filter is enabled when non-zero

repeatfields(video_0, options \\ [])

@spec repeatfields(
  FFix.Stream.t(),
  []
) :: FFix.Stream.t()

Hard repeat fields based on MPEG repeat field flag.

Options

reverse(video_0, options \\ [])

@spec reverse(
  FFix.Stream.t(),
  []
) :: FFix.Stream.t()

Reverse a clip.

Options

rgbashift(video_0, options \\ [])

@spec rgbashift(FFix.Stream.t(),
  ah: integer(),
  enable: String.t(),
  edge: integer() | String.t() | atom(),
  rh: integer(),
  gh: integer(),
  bh: integer(),
  rv: integer(),
  gv: integer(),
  bv: integer(),
  av: integer()
) :: FFix.Stream.t()

Shift RGBA.

Options

  • ah - shift alpha horizontally (from -255 to 255) (default 0)

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

  • edge - set edge operation (from 0 to 1) (default smear)

    • smear (0)
    • wrap (1)
  • rh - shift red horizontally (from -255 to 255) (default 0)

  • gh - shift green horizontally (from -255 to 255) (default 0)

  • bh - shift blue horizontally (from -255 to 255) (default 0)

  • rv - shift red vertically (from -255 to 255) (default 0)

  • gv - shift green vertically (from -255 to 255) (default 0)

  • bv - shift blue vertically (from -255 to 255) (default 0)

  • av - shift alpha vertically (from -255 to 255) (default 0)

roberts(video_0, options \\ [])

@spec roberts(FFix.Stream.t(),
  enable: String.t(),
  scale: float(),
  planes: integer(),
  delta: float()
) ::
  FFix.Stream.t()

Apply roberts cross operator.

Options

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

roberts_opencl(video_0, options \\ [])

@spec roberts_opencl(FFix.Stream.t(),
  scale: float(),
  planes: integer(),
  delta: float()
) ::
  FFix.Stream.t()

Apply roberts operator

Options

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

rotate(video_0, options \\ [])

@spec rotate(FFix.Stream.t(),
  c: String.t(),
  a: String.t(),
  enable: String.t(),
  angle: String.t(),
  fillcolor: String.t(),
  out_w: String.t(),
  out_h: String.t(),
  ow: String.t(),
  oh: String.t(),
  bilinear: boolean()
) :: FFix.Stream.t()

Rotate the input image.

Options

  • c - set background fill color (default "black")
  • a - set angle (in radians) (default "0")
  • enable - timeline expression evaluated before each frame; the filter is enabled when non-zero
  • angle - set angle (in radians) (default "0")
  • fillcolor - set background fill color (default "black")
  • out_w - set output width expression (default "iw")
  • out_h - set output height expression (default "ih")
  • ow - set output width expression (default "iw")
  • oh - set output height expression (default "ih")
  • bilinear - use bilinear interpolation (default true)

sab(video_0, options \\ [])

@spec sab(FFix.Stream.t(),
  cr: float(),
  enable: String.t(),
  ls: float(),
  cs: float(),
  luma_radius: float(),
  lr: float(),
  luma_pre_filter_radius: float(),
  lpfr: float(),
  luma_strength: float(),
  chroma_radius: float(),
  chroma_pre_filter_radius: float(),
  cpfr: float(),
  chroma_strength: float()
) :: FFix.Stream.t()

Apply shape adaptive blur.

Options

  • cr - set chroma radius (from -0.9 to 4) (default -0.9)
  • enable - timeline expression evaluated before each frame; the filter is enabled when non-zero
  • ls - set luma strength (from 0.1 to 100) (default 1)
  • cs - set chroma strength (from -0.9 to 100) (default -0.9)
  • luma_radius - set luma radius (from 0.1 to 4) (default 1)
  • lr - set luma radius (from 0.1 to 4) (default 1)
  • luma_pre_filter_radius - set luma pre-filter radius (from 0.1 to 2) (default 1)
  • lpfr - set luma pre-filter radius (from 0.1 to 2) (default 1)
  • luma_strength - set luma strength (from 0.1 to 100) (default 1)
  • chroma_radius - set chroma radius (from -0.9 to 4) (default -0.9)
  • chroma_pre_filter_radius - set chroma pre-filter radius (from -0.9 to 2) (default -0.9)
  • cpfr - set chroma pre-filter radius (from -0.9 to 2) (default -0.9)
  • chroma_strength - set chroma strength (from -0.9 to 100) (default -0.9)

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

@spec scale2ref(FFix.Stream.t(), FFix.Stream.t(),
  flags: String.t(),
  size: String.t(),
  eval: integer() | String.t() | atom(),
  s: String.t(),
  h: String.t(),
  width: String.t(),
  w: String.t(),
  in_range: integer() | String.t() | atom(),
  height: String.t(),
  force_original_aspect_ratio: integer() | String.t() | atom(),
  force_divisible_by: integer(),
  out_range: integer() | String.t() | atom(),
  out_color_matrix: integer() | String.t() | atom(),
  interl: boolean(),
  in_color_matrix: integer() | String.t() | atom(),
  in_chroma_loc: integer() | String.t() | atom(),
  out_chroma_loc: integer() | String.t() | atom(),
  in_v_chr_pos: integer(),
  in_h_chr_pos: integer(),
  out_v_chr_pos: integer(),
  out_h_chr_pos: integer(),
  param0: float(),
  param1: float()
) :: {FFix.Stream.t(), FFix.Stream.t()}

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

Options

  • flags - Flags to pass to libswscale (default "")

  • size - set video size

  • eval - 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
  • s - set video size

  • h - Output video height

  • width - Output video width

  • w - Output video width

  • in_range - 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)
  • height - Output video height

  • force_original_aspect_ratio - decrease or increase w/h if necessary to keep the original AR (from 0 to 2) (default disable)

    • disable (0)
    • decrease (1)
    • increase (2)
  • force_divisible_by - enforce that the output resolution is divisible by a defined integer when force_original_aspect_ratio is used (from 1 to 256) (default 1)

  • out_range - 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_color_matrix - 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)
  • interl - set interlacing (default false)

  • in_color_matrix - 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_chroma_loc - 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)
  • out_chroma_loc - 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)
  • in_v_chr_pos - input vertical chroma position in luma grid/256 (from -513 to 512) (default -513)

  • in_h_chr_pos - input horizontal chroma position in luma grid/256 (from -513 to 512) (default -513)

  • out_v_chr_pos - output vertical chroma position in luma grid/256 (from -513 to 512) (default -513)

  • out_h_chr_pos - output horizontal chroma position in luma grid/256 (from -513 to 512) (default -513)

  • param0 - Scaler param 0 (from -DBL_MAX to DBL_MAX) (default DBL_MAX)

  • param1 - Scaler param 1 (from -DBL_MAX to DBL_MAX) (default DBL_MAX)

scale(video_0, options \\ [])

@spec scale(FFix.Stream.t(),
  flags: String.t(),
  size: String.t(),
  eval: integer() | String.t() | atom(),
  s: String.t(),
  h: String.t(),
  width: String.t(),
  w: String.t(),
  in_range: integer() | String.t() | atom(),
  shortest: boolean(),
  height: String.t(),
  eof_action: integer() | String.t() | atom(),
  repeatlast: boolean(),
  ts_sync_mode: integer() | String.t() | atom(),
  force_original_aspect_ratio: integer() | String.t() | atom(),
  force_divisible_by: integer(),
  out_range: integer() | String.t() | atom(),
  out_color_matrix: integer() | String.t() | atom(),
  interl: boolean(),
  in_color_matrix: integer() | String.t() | atom(),
  in_chroma_loc: integer() | String.t() | atom(),
  out_chroma_loc: integer() | String.t() | atom(),
  in_v_chr_pos: integer(),
  in_h_chr_pos: integer(),
  out_v_chr_pos: integer(),
  out_h_chr_pos: integer(),
  param0: float(),
  param1: float()
) :: FFix.Stream.t()

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

Options

  • flags - Flags to pass to libswscale (default "")

  • size - set video size

  • eval - 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
  • s - set video size

  • h - Output video height

  • width - Output video width

  • w - Output video width

  • in_range - 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)
  • shortest - force termination when the shortest input terminates (default false)

  • height - Output video height

  • eof_action - 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 - extend last frame of secondary streams beyond EOF (default true)

  • ts_sync_mode - 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
  • force_original_aspect_ratio - decrease or increase w/h if necessary to keep the original AR (from 0 to 2) (default disable)

    • disable (0)
    • decrease (1)
    • increase (2)
  • force_divisible_by - enforce that the output resolution is divisible by a defined integer when force_original_aspect_ratio is used (from 1 to 256) (default 1)

  • out_range - 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_color_matrix - 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)
  • interl - set interlacing (default false)

  • in_color_matrix - 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_chroma_loc - 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)
  • out_chroma_loc - 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)
  • in_v_chr_pos - input vertical chroma position in luma grid/256 (from -513 to 512) (default -513)

  • in_h_chr_pos - input horizontal chroma position in luma grid/256 (from -513 to 512) (default -513)

  • out_v_chr_pos - output vertical chroma position in luma grid/256 (from -513 to 512) (default -513)

  • out_h_chr_pos - output horizontal chroma position in luma grid/256 (from -513 to 512) (default -513)

  • param0 - Scaler param 0 (from -DBL_MAX to DBL_MAX) (default DBL_MAX)

  • param1 - Scaler param 1 (from -DBL_MAX to DBL_MAX) (default DBL_MAX)

scale_qsv(video_0, options \\ [])

@spec scale_qsv(FFix.Stream.t(),
  mode: integer() | String.t() | atom(),
  format: String.t(),
  h: String.t(),
  w: String.t()
) :: FFix.Stream.t()

Quick Sync Video "scaling and format conversion"

Options

  • mode - 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
  • format - Output pixel format (default "same")

  • h - Output video height(0=input video height, -1=keep input video aspect) (default "ih")

  • w - Output video width(0=input video width, -1=keep input video aspect) (default "iw")

scale_vaapi(video_0, options \\ [])

@spec scale_vaapi(FFix.Stream.t(),
  mode: integer() | String.t() | atom(),
  format: String.t(),
  h: String.t(),
  w: String.t(),
  force_original_aspect_ratio: integer() | String.t() | atom(),
  force_divisible_by: integer(),
  out_range: integer() | String.t() | atom(),
  out_color_matrix: String.t(),
  out_color_primaries: String.t(),
  out_color_transfer: String.t(),
  out_chroma_location: String.t()
) :: FFix.Stream.t()

Scale to/from VAAPI surfaces.

Options

  • mode - 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
  • format - Output video format (software format of hardware frames)

  • h - Output video height (default "ih")

  • w - Output video width (default "iw")

  • force_original_aspect_ratio - decrease or increase w/h if necessary to keep the original AR (from 0 to 2) (default disable)

    • disable (0)
    • decrease (1)
    • increase (2)
  • force_divisible_by - enforce that the output resolution is divisible by a defined integer when force_original_aspect_ratio is used (from 1 to 256) (default 1)

  • out_range - 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
  • out_color_matrix - Output colour matrix coefficient set

  • out_color_primaries - Output colour primaries

  • out_color_transfer - Output colour transfer characteristics

  • out_chroma_location - Output chroma sample location

scale_vulkan(video_0, options \\ [])

@spec scale_vulkan(FFix.Stream.t(),
  format: String.t(),
  h: String.t(),
  w: String.t(),
  out_range: integer() | String.t() | atom(),
  scaler: integer() | String.t() | atom()
) :: FFix.Stream.t()

Scale Vulkan frames

Options

  • format - Output video format (software format of hardware frames)

  • h - Output video height (default "ih")

  • w - Output video width (default "iw")

  • out_range - 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 - Scaler function (from 0 to 2) (default bilinear)

    • bilinear (0) - Bilinear interpolation (fastest)
    • nearest (1) - Nearest (useful for pixel art)

scdet(video_0, options \\ [])

@spec scdet(FFix.Stream.t(),
  s: boolean(),
  threshold: float(),
  t: float(),
  sc_pass: boolean()
) ::
  FFix.Stream.t()

Detect video scene change

Options

  • s - Set the flag to pass scene change frames (default false)
  • threshold - set scene change detect threshold (from 0 to 100) (default 10)
  • t - set scene change detect threshold (from 0 to 100) (default 10)
  • sc_pass - Set the flag to pass scene change frames (default false)

scharr(video_0, options \\ [])

@spec scharr(FFix.Stream.t(),
  enable: String.t(),
  scale: float(),
  planes: integer(),
  delta: float()
) ::
  FFix.Stream.t()

Apply scharr operator.

Options

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

scroll(video_0, options \\ [])

@spec scroll(FFix.Stream.t(),
  v: float(),
  enable: String.t(),
  h: float(),
  vertical: float(),
  horizontal: float(),
  hpos: float(),
  vpos: float()
) :: FFix.Stream.t()

Scroll input video.

Options

  • v - set the vertical scrolling speed (from -1 to 1) (default 0)
  • enable - timeline expression evaluated before each frame; the filter is enabled when non-zero
  • h - set the horizontal scrolling speed (from -1 to 1) (default 0)
  • vertical - set the vertical scrolling speed (from -1 to 1) (default 0)
  • horizontal - set the horizontal scrolling speed (from -1 to 1) (default 0)
  • hpos - set initial horizontal position (from 0 to 1) (default 0)
  • vpos - set initial vertical position (from 0 to 1) (default 0)

selectivecolor(video_0, options \\ [])

@spec selectivecolor(FFix.Stream.t(),
  enable: String.t(),
  correction_method: integer() | String.t() | atom(),
  reds: String.t(),
  yellows: String.t(),
  greens: String.t(),
  cyans: String.t(),
  blues: String.t(),
  magentas: String.t(),
  whites: String.t(),
  neutrals: String.t(),
  blacks: String.t(),
  psfile: String.t()
) :: FFix.Stream.t()

Apply CMYK adjustments to specific color ranges.

Options

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

  • correction_method - select correction method (from 0 to 1) (default absolute)

    • absolute (0)
    • relative (1)
  • reds - adjust red regions

  • yellows - adjust yellow regions

  • greens - adjust green regions

  • cyans - adjust cyan regions

  • blues - adjust blue regions

  • magentas - adjust magenta regions

  • whites - adjust white regions

  • neutrals - adjust neutral regions

  • blacks - adjust black regions

  • psfile - set Photoshop selectivecolor file name

sendcmd(video_0, options \\ [])

@spec sendcmd(FFix.Stream.t(),
  filename: String.t(),
  c: String.t(),
  f: String.t(),
  commands: String.t()
) ::
  FFix.Stream.t()

Send commands to filters.

Options

  • filename - set commands file
  • c - set commands
  • f - set commands file
  • commands - set commands

separatefields(video_0, options \\ [])

@spec separatefields(
  FFix.Stream.t(),
  []
) :: FFix.Stream.t()

Split input video frames into fields.

Options

setdar(video_0, options \\ [])

@spec setdar(FFix.Stream.t(),
  max: integer(),
  r: String.t(),
  ratio: String.t(),
  dar: String.t()
) ::
  FFix.Stream.t()

Set the frame display aspect ratio.

Options

  • max - set max value for nominator or denominator in the ratio (from 1 to INT_MAX) (default 100)
  • r - set display aspect ratio (default "0")
  • ratio - set display aspect ratio (default "0")
  • dar - set display aspect ratio (default "0")

setfield(video_0, options \\ [])

@spec setfield(
  FFix.Stream.t(),
  [{:mode, integer() | String.t() | atom()}]
) :: FFix.Stream.t()

Force field for the output video frame.

Options

  • mode - 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

setparams(video_0, options \\ [])

@spec setparams(FFix.Stream.t(),
  range: integer() | String.t() | atom(),
  colorspace: integer() | String.t() | atom(),
  field_mode: integer() | String.t() | atom(),
  color_primaries: integer() | String.t() | atom(),
  color_trc: integer() | String.t() | atom(),
  chroma_location: integer() | String.t() | atom()
) :: FFix.Stream.t()

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

Options

  • range - 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)
  • colorspace - 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 - 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
  • color_primaries - 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 - 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)
  • chroma_location - 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)

setpts(video_0, options \\ [])

@spec setpts(
  FFix.Stream.t(),
  [{:expr, String.t()}]
) :: FFix.Stream.t()

Set PTS for the output video frame.

Options

  • expr - Expression determining the frame timestamp (default "PTS")

setrange(video_0, options \\ [])

@spec setrange(
  FFix.Stream.t(),
  [{:range, integer() | String.t() | atom()}]
) :: FFix.Stream.t()

Force color range for the output video frame.

Options

  • range - 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)

setsar(video_0, options \\ [])

@spec setsar(FFix.Stream.t(),
  max: integer(),
  r: String.t(),
  ratio: String.t(),
  sar: String.t()
) ::
  FFix.Stream.t()

Set the pixel sample aspect ratio.

Options

  • max - set max value for nominator or denominator in the ratio (from 1 to INT_MAX) (default 100)
  • r - set sample (pixel) aspect ratio (default "0")
  • ratio - set sample (pixel) aspect ratio (default "0")
  • sar - set sample (pixel) aspect ratio (default "0")

settb(video_0, options \\ [])

@spec settb(FFix.Stream.t(), expr: String.t(), tb: String.t()) :: FFix.Stream.t()

Set timebase for the video output link.

Options

  • expr - set expression determining the output timebase (default "intb")
  • tb - set expression determining the output timebase (default "intb")

sharpness_vaapi(video_0, options \\ [])

@spec sharpness_vaapi(
  FFix.Stream.t(),
  [{:sharpness, integer()}]
) :: FFix.Stream.t()

VAAPI VPP for sharpness

Options

  • sharpness - sharpness level (from 0 to 64) (default 44)

shear(video_0, options \\ [])

@spec shear(FFix.Stream.t(),
  c: String.t(),
  enable: String.t(),
  interp: integer() | String.t() | atom(),
  fillcolor: String.t(),
  shx: float(),
  shy: float()
) :: FFix.Stream.t()

Shear transform the input image.

Options

  • c - set background fill color (default "black")

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

  • interp - set interpolation (from 0 to 1) (default bilinear)

    • nearest (0) - nearest neighbour
    • bilinear (1) - bilinear
  • fillcolor - set background fill color (default "black")

  • shx - set x shear factor (from -2 to 2) (default 0)

  • shy - set y shear factor (from -2 to 2) (default 0)

showinfo(video_0, options \\ [])

@spec showinfo(FFix.Stream.t(), checksum: boolean(), udu_sei_as_ascii: boolean()) ::
  FFix.Stream.t()

Show textual information for each video frame.

Options

  • checksum - calculate checksums (default true)
  • udu_sei_as_ascii - try to print user data unregistered SEI as ascii character when possible (default false)

showpalette(video_0, options \\ [])

@spec showpalette(
  FFix.Stream.t(),
  [{:s, integer()}]
) :: FFix.Stream.t()

Display frame palette.

Options

  • s - set pixel box size (from 1 to 100) (default 30)

shuffleframes(video_0, options \\ [])

@spec shuffleframes(FFix.Stream.t(), enable: String.t(), mapping: String.t()) ::
  FFix.Stream.t()

Shuffle video frames.

Options

  • enable - timeline expression evaluated before each frame; the filter is enabled when non-zero
  • mapping - set destination indexes of input frames (default "0")

shufflepixels(video_0, options \\ [])

@spec shufflepixels(FFix.Stream.t(),
  mode: integer() | String.t() | atom(),
  m: integer() | String.t() | atom(),
  s: integer(),
  enable: String.t(),
  seed: integer(),
  h: integer(),
  width: integer(),
  w: integer(),
  d: integer() | String.t() | atom(),
  direction: integer() | String.t() | atom(),
  height: integer()
) :: FFix.Stream.t()

Shuffle video pixels.

Options

  • mode - set shuffle mode (from 0 to 2) (default horizontal)

    • horizontal (0)
    • vertical (1)
    • block (2)
  • m - set shuffle mode (from 0 to 2) (default horizontal)

    • horizontal (0)
    • vertical (1)
    • block (2)
  • s - set random seed (from -1 to UINT32_MAX) (default -1)

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

  • seed - set random seed (from -1 to UINT32_MAX) (default -1)

  • h - set block height (from 1 to 8000) (default 10)

  • width - set block width (from 1 to 8000) (default 10)

  • w - set block width (from 1 to 8000) (default 10)

  • d - set shuffle direction (from 0 to 1) (default forward)

    • forward (0)
    • inverse (1)
  • direction - set shuffle direction (from 0 to 1) (default forward)

    • forward (0)
    • inverse (1)
  • height - set block height (from 1 to 8000) (default 10)

shuffleplanes(video_0, options \\ [])

@spec shuffleplanes(FFix.Stream.t(),
  enable: String.t(),
  map0: integer(),
  map1: integer(),
  map2: integer(),
  map3: integer()
) :: FFix.Stream.t()

Shuffle video planes.

Options

  • enable - timeline expression evaluated before each frame; the filter is enabled when non-zero
  • map0 - Index of the input plane to be used as the first output plane (from 0 to 3) (default 0)
  • map1 - Index of the input plane to be used as the second output plane (from 0 to 3) (default 1)
  • map2 - Index of the input plane to be used as the third output plane (from 0 to 3) (default 2)
  • map3 - Index of the input plane to be used as the fourth output plane (from 0 to 3) (default 3)

sidedata(video_0, options \\ [])

@spec sidedata(FFix.Stream.t(),
  type: integer() | String.t() | atom(),
  mode: integer() | String.t() | atom(),
  enable: String.t()
) :: FFix.Stream.t()

Manipulate video frame side data.

Options

  • type - 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)
  • mode - set a mode of operation (from 0 to 1) (default select)

    • select (0) - select frame
    • delete (1) - delete side data
  • enable - timeline expression evaluated before each frame; the filter is enabled when non-zero

signalstats(video_0, options \\ [])

@spec signalstats(FFix.Stream.t(),
  out: integer() | String.t() | atom(),
  c: term(),
  stat: integer() | String.t() | atom() | [String.t() | atom()],
  color: term()
) :: FFix.Stream.t()

Generate statistics from video analysis.

Options

  • out - 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
  • c - set highlight color (default "yellow")

  • stat - 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
  • color - set highlight color (default "yellow")

siti(video_0, options \\ [])

@spec siti(
  FFix.Stream.t(),
  [{:print_summary, boolean()}]
) :: FFix.Stream.t()

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

Options

  • print_summary - Print summary showing average values (default false)

smartblur(video_0, options \\ [])

@spec smartblur(FFix.Stream.t(),
  cr: float(),
  at: integer(),
  lt: integer(),
  enable: String.t(),
  ls: float(),
  cs: float(),
  as: float(),
  luma_radius: float(),
  lr: float(),
  luma_strength: float(),
  chroma_radius: float(),
  chroma_strength: float(),
  alpha_threshold: integer(),
  luma_threshold: integer(),
  chroma_threshold: integer(),
  ct: integer(),
  alpha_radius: float(),
  ar: float(),
  alpha_strength: float()
) :: FFix.Stream.t()

Blur the input video without impacting the outlines.

Options

  • cr - set chroma radius (from -0.9 to 5) (default -0.9)
  • at - set alpha threshold (from -31 to 30) (default -31)
  • lt - set luma threshold (from -30 to 30) (default 0)
  • enable - timeline expression evaluated before each frame; the filter is enabled when non-zero
  • ls - set luma strength (from -1 to 1) (default 1)
  • cs - set chroma strength (from -2 to 1) (default -2)
  • as - set alpha strength (from -2 to 1) (default -2)
  • luma_radius - set luma radius (from 0.1 to 5) (default 1)
  • lr - set luma radius (from 0.1 to 5) (default 1)
  • luma_strength - set luma strength (from -1 to 1) (default 1)
  • chroma_radius - set chroma radius (from -0.9 to 5) (default -0.9)
  • chroma_strength - set chroma strength (from -2 to 1) (default -2)
  • alpha_threshold - set alpha threshold (from -31 to 30) (default -31)
  • luma_threshold - set luma threshold (from -30 to 30) (default 0)
  • chroma_threshold - set chroma threshold (from -31 to 30) (default -31)
  • ct - set chroma threshold (from -31 to 30) (default -31)
  • alpha_radius - set alpha radius (from -0.9 to 5) (default -0.9)
  • ar - set alpha radius (from -0.9 to 5) (default -0.9)
  • alpha_strength - set alpha strength (from -2 to 1) (default -2)

sobel(video_0, options \\ [])

@spec sobel(FFix.Stream.t(),
  enable: String.t(),
  scale: float(),
  planes: integer(),
  delta: float()
) ::
  FFix.Stream.t()

Apply sobel operator.

Options

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

sobel_opencl(video_0, options \\ [])

@spec sobel_opencl(FFix.Stream.t(), scale: float(), planes: integer(), delta: float()) ::
  FFix.Stream.t()

Apply sobel operator

Options

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

spp(video_0, options \\ [])

@spec spp(FFix.Stream.t(),
  mode: integer() | String.t() | atom(),
  enable: String.t(),
  qp: integer(),
  quality: integer(),
  use_bframe_qp: boolean()
) :: FFix.Stream.t()

Apply a simple post processing filter.

Options

  • mode - set thresholding mode (from 0 to 1) (default hard)

    • hard (0) - hard thresholding
    • soft (1) - soft thresholding
  • enable - timeline expression evaluated before each frame; the filter is enabled when non-zero

  • qp - force a constant quantizer parameter (from 0 to 63) (default 0)

  • quality - set quality (from 0 to 6) (default 3)

  • use_bframe_qp - use B-frames' QP (default false)

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

@spec ssim360(FFix.Stream.t(), FFix.Stream.t(),
  f: String.t(),
  shortest: boolean(),
  eof_action: integer() | String.t() | atom(),
  repeatlast: boolean(),
  ts_sync_mode: integer() | String.t() | atom(),
  stats_file: String.t(),
  compute_chroma: integer(),
  frame_skip_ratio: integer(),
  ref_projection: integer() | String.t() | atom(),
  main_projection: integer() | String.t() | atom(),
  ref_stereo: integer() | String.t() | atom(),
  main_stereo: integer() | String.t() | atom(),
  ref_pad: float(),
  main_pad: float(),
  use_tape: integer(),
  heatmap_str: String.t(),
  default_heatmap_width: integer(),
  default_heatmap_height: integer()
) :: FFix.Stream.t()

Calculate the SSIM between two 360 video streams.

Options

  • f - Set file where to store per-frame difference information

  • shortest - force termination when the shortest input terminates (default false)

  • eof_action - 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 - extend last frame of secondary streams beyond EOF (default true)

  • ts_sync_mode - 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
  • stats_file - Set file where to store per-frame difference information

  • compute_chroma - Specifies if non-luma channels must be computed (from 0 to 1) (default 1)

  • frame_skip_ratio - Specifies the number of frames to be skipped from evaluation, for every evaluated frame (from 0 to 1e+06) (default 0)

  • ref_projection - 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
  • main_projection - 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
  • ref_stereo - stereo format of the reference video (from 0 to 2) (default mono)

    • mono (2)
    • tb (0)
    • lr (1)
  • main_stereo - stereo format of main video (from 0 to 3) (default 3)

    • mono (2)
    • tb (0)
    • lr (1)
  • ref_pad - Expansion (padding) coefficient for each cube face of the reference video (from 0 to 10) (default 0)

  • main_pad - Expansion (padding) coeffiecient for each cube face of the main video (from 0 to 10) (default 0)

  • use_tape - Specifies if the tape based SSIM 360 algorithm must be used independent of the input video types (from 0 to 1) (default 0)

  • heatmap_str - Heatmap data for view-based evaluation. For heatmap file format, please refer to EntSphericalVideoHeatmapData.

  • default_heatmap_width - Default heatmap dimension. Will be used when dimension is not specified in heatmap data. (from 1 to 4096) (default 32)

  • default_heatmap_height - Default heatmap dimension. Will be used when dimension is not specified in heatmap data. (from 1 to 4096) (default 16)

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

@spec ssim(FFix.Stream.t(), FFix.Stream.t(),
  f: String.t(),
  enable: String.t(),
  shortest: boolean(),
  eof_action: integer() | String.t() | atom(),
  repeatlast: boolean(),
  ts_sync_mode: integer() | String.t() | atom(),
  stats_file: String.t()
) :: FFix.Stream.t()

Calculate the SSIM between two video streams.

Options

  • f - Set file where to store per-frame difference information

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

  • shortest - force termination when the shortest input terminates (default false)

  • eof_action - 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 - extend last frame of secondary streams beyond EOF (default true)

  • ts_sync_mode - 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
  • stats_file - Set file where to store per-frame difference information

stereo3d(video_0, options \\ [])

@spec stereo3d(FFix.Stream.t(),
  in: integer() | String.t() | atom(),
  out: integer() | String.t() | atom()
) :: FFix.Stream.t()

Convert video stereoscopic 3D view.

Options

  • in - 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 - 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

subtitles(video_0, options \\ [])

@spec subtitles(FFix.Stream.t(),
  filename: String.t(),
  f: String.t(),
  alpha: boolean(),
  stream_index: integer(),
  si: integer(),
  original_size: term(),
  fontsdir: String.t(),
  charenc: String.t(),
  force_style: String.t(),
  wrap_unicode: boolean()
) :: FFix.Stream.t()

Render text subtitles onto input video using the libass library.

Options

  • filename - set the filename of file to read
  • f - set the filename of file to read
  • alpha - enable processing of alpha channel (default false)
  • stream_index - set stream index (from -1 to INT_MAX) (default -1)
  • si - set stream index (from -1 to INT_MAX) (default -1)
  • original_size - set the size of the original video (used to scale fonts)
  • fontsdir - set the directory containing the fonts to read
  • charenc - set input character encoding
  • force_style - force subtitle style
  • wrap_unicode - break lines according to the Unicode Line Breaking Algorithm (default auto)

super2xsai(video_0, options \\ [])

@spec super2xsai(
  FFix.Stream.t(),
  []
) :: FFix.Stream.t()

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

Options

swaprect(video_0, options \\ [])

@spec swaprect(FFix.Stream.t(),
  enable: String.t(),
  h: String.t(),
  w: String.t(),
  x1: String.t(),
  x2: String.t(),
  y1: String.t(),
  y2: String.t()
) :: FFix.Stream.t()

Swap 2 rectangular objects in video.

Options

  • enable - timeline expression evaluated before each frame; the filter is enabled when non-zero
  • h - set rect height (default "h/2")
  • w - set rect width (default "w/2")
  • x1 - set 1st rect x top left coordinate (default "w/2")
  • x2 - set 2nd rect x top left coordinate (default "0")
  • y1 - set 1st rect y top left coordinate (default "h/2")
  • y2 - set 2nd rect y top left coordinate (default "0")

swapuv(video_0, options \\ [])

@spec swapuv(
  FFix.Stream.t(),
  [{:enable, String.t()}]
) :: FFix.Stream.t()

Swap U and V components.

Options

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

tblend(video_0, options \\ [])

@spec tblend(FFix.Stream.t(),
  enable: String.t(),
  c0_mode: integer() | String.t() | atom(),
  c1_mode: integer() | String.t() | atom(),
  c2_mode: integer() | String.t() | atom(),
  c3_mode: integer() | String.t() | atom(),
  all_mode: integer() | String.t() | atom(),
  c0_opacity: float(),
  c1_opacity: float(),
  c2_opacity: float(),
  c3_opacity: float(),
  all_opacity: float(),
  c0_expr: String.t(),
  c1_expr: String.t(),
  c2_expr: String.t(),
  c3_expr: String.t(),
  all_expr: String.t()
) :: FFix.Stream.t()

Blend successive frames.

Options

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

  • c0_mode - 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)
  • c1_mode - 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)
  • c2_mode - 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)
  • c3_mode - 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)
  • all_mode - 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)
  • c0_opacity - set color component #0 opacity (from 0 to 1) (default 1)

  • c1_opacity - set color component #1 opacity (from 0 to 1) (default 1)

  • c2_opacity - set color component #2 opacity (from 0 to 1) (default 1)

  • c3_opacity - set color component #3 opacity (from 0 to 1) (default 1)

  • all_opacity - set opacity for all color components (from 0 to 1) (default 1)

  • c0_expr - set color component #0 expression

  • c1_expr - set color component #1 expression

  • c2_expr - set color component #2 expression

  • c3_expr - set color component #3 expression

  • all_expr - set expression for all color components

telecine(video_0, options \\ [])

@spec telecine(FFix.Stream.t(),
  pattern: String.t(),
  first_field: integer() | String.t() | atom()
) ::
  FFix.Stream.t()

Apply a telecine pattern.

Options

  • pattern - pattern that describe for how many fields a frame is to be displayed (default "23")
  • first_field - 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

thistogram(video_0, options \\ [])

@spec thistogram(FFix.Stream.t(),
  c: integer(),
  m: integer() | String.t() | atom(),
  b: float(),
  width: integer(),
  w: integer(),
  d: integer() | String.t() | atom(),
  slide: integer() | String.t() | atom(),
  components: integer(),
  e: boolean(),
  envelope: boolean(),
  bgopacity: float(),
  display_mode: integer() | String.t() | atom(),
  levels_mode: integer() | String.t() | atom(),
  ecolor: term(),
  ec: term()
) :: FFix.Stream.t()

Compute and draw a temporal histogram.

Options

  • c - set color components to display (from 1 to 15) (default 7)

  • m - set levels mode (from 0 to 1) (default linear)

    • linear (0)
    • logarithmic (1)
  • b - set background opacity (from 0 to 1) (default 0.9)

  • width - set width (from 0 to 8192) (default 0)

  • w - set width (from 0 to 8192) (default 0)

  • d - set display mode (from 0 to 2) (default stack)

    • overlay (0)
    • parade (1)
    • stack (2)
  • slide - 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
  • components - set color components to display (from 1 to 15) (default 7)

  • e - display envelope (default false)

  • envelope - display envelope (default false)

  • bgopacity - set background opacity (from 0 to 1) (default 0.9)

  • display_mode - set display mode (from 0 to 2) (default stack)

    • overlay (0)
    • parade (1)
    • stack (2)
  • levels_mode - set levels mode (from 0 to 1) (default linear)

    • linear (0)
    • logarithmic (1)
  • ecolor - set envelope color (default "gold")

  • ec - set envelope color (default "gold")

threshold(video_0, video_1, video_2, video_3, options \\ [])

@spec threshold(FFix.Stream.t(), FFix.Stream.t(), FFix.Stream.t(), FFix.Stream.t(),
  enable: String.t(),
  planes: integer()
) :: FFix.Stream.t()

Threshold first video stream using other video streams.

Options

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

thumbnail(video_0, options \\ [])

@spec thumbnail(FFix.Stream.t(),
  log: integer() | String.t() | atom(),
  enable: String.t(),
  n: integer()
) ::
  FFix.Stream.t()

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

Options

  • log - 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
  • enable - timeline expression evaluated before each frame; the filter is enabled when non-zero

  • n - set the frames batch size (from 2 to INT_MAX) (default 100)

tile(video_0, options \\ [])

@spec tile(FFix.Stream.t(),
  padding: integer(),
  color: term(),
  overlap: integer(),
  layout: term(),
  nb_frames: integer(),
  margin: integer(),
  init_padding: integer()
) :: FFix.Stream.t()

Tile several successive frames together.

Options

  • padding - set inner border thickness in pixels (from 0 to 1024) (default 0)
  • color - set the color of the unused area (default "black")
  • overlap - set how many frames to overlap for each render (from 0 to INT_MAX) (default 0)
  • layout - set grid size (default "6x5")
  • nb_frames - set maximum number of frame to render (from 0 to INT_MAX) (default 0)
  • margin - set outer border margin in pixels (from 0 to 1024) (default 0)
  • init_padding - set how many frames to initially pad (from 0 to INT_MAX) (default 0)

tiltandshift(video_0, options \\ [])

@spec tiltandshift(FFix.Stream.t(),
  "-tilt": integer(),
  "-start": integer() | String.t() | atom(),
  "-end": integer() | String.t() | atom(),
  "-hold": integer(),
  "-pad": integer()
) :: FFix.Stream.t()

Generate a tilt-and-shift'd video.

Options

  • -tilt - Tilt the video horizontally while shifting (from 0 to 1) (default 1)

  • -start - 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
  • -end - 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 - Number of columns to hold at the start of the video (from 0 to INT_MAX) (default 0)

  • -pad - Number of columns to pad at the end of the video (from 0 to INT_MAX) (default 0)

tinterlace(video_0, options \\ [])

@spec tinterlace(
  FFix.Stream.t(),
  [{:mode, integer() | String.t() | atom()}]
) :: FFix.Stream.t()

Perform temporal field interlacing.

Options

  • mode - 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

tlut2(video_0, options \\ [])

@spec tlut2(FFix.Stream.t(),
  enable: String.t(),
  c1: String.t(),
  c2: String.t(),
  c0: String.t(),
  c3: String.t()
) :: FFix.Stream.t()

Compute and apply a lookup table from two successive frames.

Options

  • enable - timeline expression evaluated before each frame; the filter is enabled when non-zero
  • c1 - set component #1 expression (default "x")
  • c2 - set component #2 expression (default "x")
  • c0 - set component #0 expression (default "x")
  • c3 - set component #3 expression (default "x")

tmedian(video_0, options \\ [])

@spec tmedian(FFix.Stream.t(),
  enable: String.t(),
  planes: integer(),
  radius: integer(),
  percentile: float()
) :: FFix.Stream.t()

Pick median pixels from successive frames.

Options

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

tmidequalizer(video_0, options \\ [])

@spec tmidequalizer(FFix.Stream.t(),
  enable: String.t(),
  planes: integer(),
  radius: integer(),
  sigma: float()
) :: FFix.Stream.t()

Apply Temporal Midway Equalization.

Options

  • enable - timeline expression evaluated before each frame; the filter is enabled when non-zero
  • planes - set planes (from 0 to 15) (default 15)
  • radius - set radius (from 1 to 127) (default 5)
  • sigma - set sigma (from 0 to 1) (default 0.5)

tmix(video_0, options \\ [])

@spec tmix(FFix.Stream.t(),
  enable: String.t(),
  scale: float(),
  weights: String.t(),
  planes: term(),
  frames: integer()
) :: FFix.Stream.t()

Mix successive video frames.

Options

  • enable - timeline expression evaluated before each frame; the filter is enabled when non-zero
  • scale - set scale (from 0 to 32767) (default 0)
  • weights - set weight for each frame (default "1 1 1")
  • planes - set what planes to filter (default F)
  • frames - set number of successive frames to mix (from 1 to 1024) (default 3)

tonemap(video_0, options \\ [])

@spec tonemap(FFix.Stream.t(),
  tonemap: integer() | String.t() | atom(),
  param: float(),
  peak: float(),
  desat: float()
) :: FFix.Stream.t()

Conversion to/from different dynamic ranges.

Options

  • tonemap - tonemap algorithm selection (from 0 to 6) (default none)

    • none (0)
    • linear (1)
    • gamma (2)
    • clip (3)
    • reinhard (4)
    • hable (5)
    • mobius (6)
  • param - tonemap parameter (from DBL_MIN to DBL_MAX) (default nan)

  • peak - signal peak override (from 0 to DBL_MAX) (default 0)

  • desat - desaturation strength (from 0 to DBL_MAX) (default 2)

tonemap_opencl(video_0, options \\ [])

@spec tonemap_opencl(FFix.Stream.t(),
  format: term(),
  p: integer() | String.t() | atom(),
  range: integer() | String.t() | atom(),
  m: integer() | String.t() | atom(),
  r: integer() | String.t() | atom(),
  threshold: float(),
  t: integer() | String.t() | atom(),
  tonemap: integer() | String.t() | atom(),
  param: float(),
  peak: float(),
  transfer: integer() | String.t() | atom(),
  matrix: integer() | String.t() | atom(),
  primaries: integer() | String.t() | atom(),
  desat: float()
) :: FFix.Stream.t()

Perform HDR to SDR conversion with tonemapping.

Options

  • format - output pixel format (default none)

  • p - set color primaries (from -1 to INT_MAX) (default -1)

    • bt709 (1)
    • bt2020 (9)
  • range - set color range (from -1 to INT_MAX) (default -1)

    • tv (1)
    • pc (2)
    • limited (1)
    • full (2)
  • m - set colorspace matrix (from -1 to INT_MAX) (default -1)

    • bt709 (1)
    • bt2020 (9)
  • r - set color range (from -1 to INT_MAX) (default -1)

    • tv (1)
    • pc (2)
    • limited (1)
    • full (2)
  • threshold - scene detection threshold (from 0 to DBL_MAX) (default 0.2)

  • t - set transfer characteristic (from -1 to INT_MAX) (default bt709)

    • bt709 (1)
    • bt2020 (14)
  • tonemap - tonemap algorithm selection (from 0 to 6) (default none)

    • none (0)
    • linear (1)
    • gamma (2)
    • clip (3)
    • reinhard (4)
    • hable (5)
    • mobius (6)
  • param - tonemap parameter (from DBL_MIN to DBL_MAX) (default nan)

  • peak - signal peak override (from 0 to DBL_MAX) (default 0)

  • transfer - set transfer characteristic (from -1 to INT_MAX) (default bt709)

    • bt709 (1)
    • bt2020 (14)
  • matrix - set colorspace matrix (from -1 to INT_MAX) (default -1)

    • bt709 (1)
    • bt2020 (9)
  • primaries - set color primaries (from -1 to INT_MAX) (default -1)

    • bt709 (1)
    • bt2020 (9)
  • desat - desaturation parameter (from 0 to DBL_MAX) (default 0.5)

tonemap_vaapi(video_0, options \\ [])

@spec tonemap_vaapi(FFix.Stream.t(),
  display: String.t(),
  format: String.t(),
  p: String.t(),
  m: String.t(),
  t: String.t(),
  transfer: String.t(),
  matrix: String.t(),
  primaries: String.t(),
  light: String.t()
) :: FFix.Stream.t()

VAAPI VPP for tone-mapping

Options

  • display - set mastering display colour volume
  • format - Output pixel format set
  • p - Output color primaries set
  • m - Output color matrix coefficient set
  • t - Output color transfer characteristics set
  • transfer - Output color transfer characteristics set
  • matrix - Output color matrix coefficient set
  • primaries - Output color primaries set
  • light - set content light level information

tpad(video_0, options \\ [])

@spec tpad(FFix.Stream.t(),
  start: integer(),
  stop: integer(),
  color: term(),
  start_mode: integer() | String.t() | atom(),
  stop_mode: integer() | String.t() | atom(),
  start_duration: term(),
  stop_duration: term()
) :: FFix.Stream.t()

Temporarily pad video frames.

Options

  • start - set the number of frames to delay input (from 0 to INT_MAX) (default 0)

  • stop - set the number of frames to add after input finished (from -1 to INT_MAX) (default 0)

  • color - set the color of the added frames (default "black")

  • start_mode - 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_mode - 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
  • start_duration - set the duration to delay input (default 0)

  • stop_duration - set the duration to pad input (default 0)

transpose(video_0, options \\ [])

@spec transpose(FFix.Stream.t(),
  dir: integer() | String.t() | atom(),
  passthrough: integer() | String.t() | atom()
) :: FFix.Stream.t()

Transpose input video.

Options

  • dir - 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 - 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

transpose_opencl(video_0, options \\ [])

@spec transpose_opencl(FFix.Stream.t(),
  dir: integer() | String.t() | atom(),
  passthrough: integer() | String.t() | atom()
) :: FFix.Stream.t()

Transpose input video

Options

  • dir - 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 - 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

transpose_vaapi(video_0, options \\ [])

@spec transpose_vaapi(FFix.Stream.t(),
  dir: integer() | String.t() | atom(),
  passthrough: integer() | String.t() | atom()
) :: FFix.Stream.t()

VAAPI VPP for transpose

Options

  • dir - 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 - 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

transpose_vulkan(video_0, options \\ [])

@spec transpose_vulkan(FFix.Stream.t(),
  dir: integer() | String.t() | atom(),
  passthrough: integer() | String.t() | atom()
) :: FFix.Stream.t()

Transpose Vulkan Filter

Options

  • dir - 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 - 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

trim(video_0, options \\ [])

@spec trim(FFix.Stream.t(),
  start: term(),
  end: term(),
  duration: term(),
  starti: term(),
  endi: term(),
  start_pts: integer(),
  end_pts: integer(),
  durationi: term(),
  start_frame: integer(),
  end_frame: integer()
) :: FFix.Stream.t()

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

Options

  • start - Timestamp of the first frame that should be passed (default INT64_MAX)
  • end - Timestamp of the first frame that should be dropped again (default INT64_MAX)
  • duration - Maximum duration of the output (default 0)
  • starti - Timestamp of the first frame that should be passed (default INT64_MAX)
  • endi - Timestamp of the first frame that should be dropped again (default INT64_MAX)
  • start_pts - Timestamp of the first frame that should be passed (from I64_MIN to I64_MAX) (default I64_MIN)
  • end_pts - Timestamp of the first frame that should be dropped again (from I64_MIN to I64_MAX) (default I64_MIN)
  • durationi - Maximum duration of the output (default 0)
  • start_frame - Number of the first frame that should be passed to the output (from -1 to I64_MAX) (default -1)
  • end_frame - Number of the first frame that should be dropped again (from 0 to I64_MAX) (default I64_MAX)

unsharp(video_0, options \\ [])

@spec unsharp(FFix.Stream.t(),
  enable: String.t(),
  aa: float(),
  luma_msize_x: integer(),
  lx: integer(),
  luma_msize_y: integer(),
  ly: integer(),
  luma_amount: float(),
  la: float(),
  chroma_msize_x: integer(),
  cx: integer(),
  chroma_msize_y: integer(),
  cy: integer(),
  chroma_amount: float(),
  ca: float(),
  alpha_msize_x: integer(),
  ax: integer(),
  alpha_msize_y: integer(),
  ay: integer(),
  alpha_amount: float()
) :: FFix.Stream.t()

Sharpen or blur the input video.

Options

  • enable - timeline expression evaluated before each frame; the filter is enabled when non-zero
  • aa - set alpha effect strength (from -2 to 5) (default 0)
  • luma_msize_x - set luma matrix horizontal size (from 3 to 23) (default 5)
  • lx - set luma matrix horizontal size (from 3 to 23) (default 5)
  • luma_msize_y - set luma matrix vertical size (from 3 to 23) (default 5)
  • ly - set luma matrix vertical size (from 3 to 23) (default 5)
  • luma_amount - set luma effect strength (from -2 to 5) (default 1)
  • la - set luma effect strength (from -2 to 5) (default 1)
  • chroma_msize_x - set chroma matrix horizontal size (from 3 to 23) (default 5)
  • cx - set chroma matrix horizontal size (from 3 to 23) (default 5)
  • chroma_msize_y - set chroma matrix vertical size (from 3 to 23) (default 5)
  • cy - set chroma matrix vertical size (from 3 to 23) (default 5)
  • chroma_amount - set chroma effect strength (from -2 to 5) (default 0)
  • ca - set chroma effect strength (from -2 to 5) (default 0)
  • alpha_msize_x - set alpha matrix horizontal size (from 3 to 23) (default 5)
  • ax - set alpha matrix horizontal size (from 3 to 23) (default 5)
  • alpha_msize_y - set alpha matrix vertical size (from 3 to 23) (default 5)
  • ay - set alpha matrix vertical size (from 3 to 23) (default 5)
  • alpha_amount - set alpha effect strength (from -2 to 5) (default 0)

unsharp_opencl(video_0, options \\ [])

@spec unsharp_opencl(FFix.Stream.t(),
  luma_msize_x: float(),
  lx: float(),
  luma_msize_y: float(),
  ly: float(),
  luma_amount: float(),
  la: float(),
  chroma_msize_x: float(),
  cx: float(),
  chroma_msize_y: float(),
  cy: float(),
  chroma_amount: float(),
  ca: float()
) :: FFix.Stream.t()

Apply unsharp mask to input video

Options

  • luma_msize_x - Set luma mask horizontal diameter (pixels) (from 1 to 23) (default 5)
  • lx - Set luma mask horizontal diameter (pixels) (from 1 to 23) (default 5)
  • luma_msize_y - Set luma mask vertical diameter (pixels) (from 1 to 23) (default 5)
  • ly - Set luma mask vertical diameter (pixels) (from 1 to 23) (default 5)
  • luma_amount - Set luma amount (multiplier) (from -10 to 10) (default 1)
  • la - Set luma amount (multiplier) (from -10 to 10) (default 1)
  • chroma_msize_x - Set chroma mask horizontal diameter (pixels after subsampling) (from 1 to 23) (default 5)
  • cx - Set chroma mask horizontal diameter (pixels after subsampling) (from 1 to 23) (default 5)
  • chroma_msize_y - Set chroma mask vertical diameter (pixels after subsampling) (from 1 to 23) (default 5)
  • cy - Set chroma mask vertical diameter (pixels after subsampling) (from 1 to 23) (default 5)
  • chroma_amount - Set chroma amount (multiplier) (from -10 to 10) (default 0)
  • ca - Set chroma amount (multiplier) (from -10 to 10) (default 0)

untile(video_0, options \\ [])

@spec untile(
  FFix.Stream.t(),
  [{:layout, term()}]
) :: FFix.Stream.t()

Untile a frame into a sequence of frames.

Options

  • layout - set grid size (default "6x5")

uspp(video_0, options \\ [])

@spec uspp(FFix.Stream.t(),
  enable: String.t(),
  qp: integer(),
  quality: integer(),
  use_bframe_qp: boolean(),
  codec: String.t()
) :: FFix.Stream.t()

Apply Ultra Simple / Slow Post-processing filter.

Options

  • enable - timeline expression evaluated before each frame; the filter is enabled when non-zero
  • qp - force a constant quantizer parameter (from 0 to 63) (default 0)
  • quality - set quality (from 0 to 8) (default 3)
  • use_bframe_qp - use B-frames' QP (default false)
  • codec - Codec name (default "snow")

v360(video_0, options \\ [])

@spec v360(FFix.Stream.t(),
  w: integer(),
  yaw: float(),
  out_forder: String.t(),
  v_fov: float(),
  h: integer(),
  pitch: float(),
  input: integer() | String.t() | atom(),
  in_stereo: integer() | String.t() | atom(),
  v_flip: boolean(),
  out_stereo: integer() | String.t() | atom(),
  out_trans: boolean(),
  in_pad: float(),
  in_frot: String.t(),
  h_fov: float(),
  reset_rot: boolean(),
  in_forder: String.t(),
  rorder: String.t(),
  in_trans: boolean(),
  h_flip: boolean(),
  out_frot: String.t(),
  ih_fov: float(),
  d_flip: boolean(),
  d_fov: float(),
  output: integer() | String.t() | atom(),
  out_pad: float(),
  id_fov: float(),
  ih_flip: boolean(),
  iv_flip: boolean(),
  roll: float(),
  interp: integer() | String.t() | atom(),
  alpha_mask: boolean(),
  v_offset: float(),
  fout_pad: integer(),
  iv_fov: float(),
  h_offset: float(),
  fin_pad: integer()
) :: FFix.Stream.t()

Convert 360 projection of video.

Options

  • w - output width (from 0 to 32767) (default 0)

  • yaw - yaw rotation (from -180 to 180) (default 0)

  • out_forder - output cubemap face order (default "rludfb")

  • v_fov - output vertical field of view (from 0 to 360) (default 0)

  • h - output height (from 0 to 32767) (default 0)

  • pitch - pitch rotation (from -180 to 180) (default 0)

  • input - 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
  • in_stereo - input stereo format (from 0 to 2) (default 2d)

    • 2d (0) - 2d mono
    • sbs (1) - side by side
    • tb (2) - top bottom
  • v_flip - flip out video vertically (default false)

  • out_stereo - output stereo format (from 0 to 2) (default 2d)

    • 2d (0) - 2d mono
    • sbs (1) - side by side
    • tb (2) - top bottom
  • out_trans - transpose video output (default false)

  • in_pad - percent input cubemap pads (from 0 to 0.1) (default 0)

  • in_frot - input cubemap face rotation (default "000000")

  • h_fov - output horizontal field of view (from 0 to 360) (default 0)

  • reset_rot - reset rotation (default false)

  • in_forder - input cubemap face order (default "rludfb")

  • rorder - rotation order (default "ypr")

  • in_trans - transpose video input (default false)

  • h_flip - flip out video horizontally (default false)

  • out_frot - output cubemap face rotation (default "000000")

  • ih_fov - input horizontal field of view (from 0 to 360) (default 0)

  • d_flip - flip out video indepth (default false)

  • d_fov - output diagonal field of view (from 0 to 360) (default 0)

  • output - 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
  • out_pad - percent output cubemap pads (from 0 to 0.1) (default 0)

  • id_fov - input diagonal field of view (from 0 to 360) (default 0)

  • ih_flip - flip in video horizontally (default false)

  • iv_flip - flip in video vertically (default false)

  • roll - roll rotation (from -180 to 180) (default 0)

  • interp - 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
  • alpha_mask - build mask in alpha plane (default false)

  • v_offset - output vertical off-axis offset (from -1 to 1) (default 0)

  • fout_pad - fixed output cubemap pads (from 0 to 100) (default 0)

  • iv_fov - input vertical field of view (from 0 to 360) (default 0)

  • h_offset - output horizontal off-axis offset (from -1 to 1) (default 0)

  • fin_pad - fixed input cubemap pads (from 0 to 100) (default 0)

vaguedenoiser(video_0, options \\ [])

@spec vaguedenoiser(FFix.Stream.t(),
  type: integer() | String.t() | atom(),
  enable: String.t(),
  threshold: float(),
  planes: integer(),
  method: integer() | String.t() | atom(),
  percent: float(),
  nsteps: integer()
) :: FFix.Stream.t()

Apply a Wavelet based Denoiser.

Options

  • type - set threshold type (from 0 to 1) (default universal)

    • universal (0) - universal (VisuShrink)
    • bayes (1) - bayes (BayesShrink)
  • enable - timeline expression evaluated before each frame; the filter is enabled when non-zero

  • threshold - set filtering strength (from 0 to DBL_MAX) (default 2)

  • planes - set planes to filter (from 0 to 15) (default 15)

  • method - set filtering method (from 0 to 2) (default garrote)

    • hard (0) - hard thresholding
    • soft (1) - soft thresholding
    • garrote (2) - garrote thresholding
  • percent - set percent of full denoising (from 0 to 100) (default 85)

  • nsteps - set number of steps (from 1 to 32) (default 6)

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

@spec varblur(FFix.Stream.t(), FFix.Stream.t(),
  enable: String.t(),
  shortest: boolean(),
  planes: integer(),
  eof_action: integer() | String.t() | atom(),
  repeatlast: boolean(),
  ts_sync_mode: integer() | String.t() | atom(),
  min_r: integer(),
  max_r: integer()
) :: FFix.Stream.t()

Apply Variable Blur filter.

Options

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

  • shortest - force termination when the shortest input terminates (default false)

  • planes - set planes to filter (from 0 to 15) (default 15)

  • eof_action - 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 - extend last frame of secondary streams beyond EOF (default true)

  • ts_sync_mode - 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
  • min_r - set min blur radius (from 0 to 254) (default 0)

  • max_r - set max blur radius (from 1 to 255) (default 8)

vectorscope(video_0, options \\ [])

@spec vectorscope(FFix.Stream.t(),
  flags: integer() | String.t() | atom() | [String.t() | atom()],
  x: integer(),
  y: integer(),
  mode: integer() | String.t() | atom(),
  c: integer() | String.t() | atom(),
  intensity: float(),
  i: float(),
  m: integer() | String.t() | atom(),
  f: integer() | String.t() | atom() | [String.t() | atom()],
  b: float(),
  h: float(),
  l: float(),
  o: float(),
  colorspace: integer() | String.t() | atom(),
  opacity: float(),
  e: integer() | String.t() | atom(),
  g: integer() | String.t() | atom(),
  envelope: integer() | String.t() | atom(),
  graticule: integer() | String.t() | atom(),
  bgopacity: float(),
  tint0: float(),
  t0: float(),
  tint1: float(),
  t1: float(),
  lthreshold: float(),
  hthreshold: float()
) :: FFix.Stream.t()

Video vectorscope.

Options

  • flags - set graticule flags (default name)

    • white - draw white point
    • black - draw black point
    • name - draw point name
  • x - set color component on X axis (from 0 to 2) (default 1)

  • y - set color component on Y axis (from 0 to 2) (default 2)

  • mode - set vectorscope mode (from 0 to 5) (default gray)

    • gray (0)
    • tint (0)
    • color (1)
    • color2 (2)
    • color3 (3)
    • color4 (4)
    • color5 (5)
  • c - set colorspace (from 0 to 2) (default auto)

    • auto (0)
    • 601 (1)
    • 709 (2)
  • intensity - set intensity (from 0 to 1) (default 0.004)

  • i - set intensity (from 0 to 1) (default 0.004)

  • m - set vectorscope mode (from 0 to 5) (default gray)

    • gray (0)
    • tint (0)
    • color (1)
    • color2 (2)
    • color3 (3)
    • color4 (4)
    • color5 (5)
  • f - set graticule flags (default name)

    • white - draw white point
    • black - draw black point
    • name - draw point name
  • b - set background opacity (from 0 to 1) (default 0.3)

  • h - set high threshold (from 0 to 1) (default 1)

  • l - set low threshold (from 0 to 1) (default 0)

  • o - set graticule opacity (from 0 to 1) (default 0.75)

  • colorspace - set colorspace (from 0 to 2) (default auto)

    • auto (0)
    • 601 (1)
    • 709 (2)
  • opacity - set graticule opacity (from 0 to 1) (default 0.75)

  • e - set envelope (from 0 to 3) (default none)

    • none (0)
    • instant (1)
    • peak (2)
    • peak+instant (3)
  • g - set graticule (from 0 to 3) (default none)

    • none (0)
    • green (1)
    • color (2)
    • invert (3)
  • envelope - set envelope (from 0 to 3) (default none)

    • none (0)
    • instant (1)
    • peak (2)
    • peak+instant (3)
  • graticule - set graticule (from 0 to 3) (default none)

    • none (0)
    • green (1)
    • color (2)
    • invert (3)
  • bgopacity - set background opacity (from 0 to 1) (default 0.3)

  • tint0 - set 1st tint (from -1 to 1) (default 0)

  • t0 - set 1st tint (from -1 to 1) (default 0)

  • tint1 - set 2nd tint (from -1 to 1) (default 0)

  • t1 - set 2nd tint (from -1 to 1) (default 0)

  • lthreshold - set low threshold (from 0 to 1) (default 0)

  • hthreshold - set high threshold (from 0 to 1) (default 1)

vflip(video_0, options \\ [])

@spec vflip(
  FFix.Stream.t(),
  [{:enable, String.t()}]
) :: FFix.Stream.t()

Flip the input video vertically.

Options

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

vflip_vulkan(video_0, options \\ [])

@spec vflip_vulkan(
  FFix.Stream.t(),
  []
) :: FFix.Stream.t()

Vertically flip the input video in Vulkan

Options

vfrdet(video_0, options \\ [])

@spec vfrdet(
  FFix.Stream.t(),
  []
) :: FFix.Stream.t()

Variable frame rate detect filter.

Options

vibrance(video_0, options \\ [])

@spec vibrance(FFix.Stream.t(),
  intensity: float(),
  enable: String.t(),
  rbal: float(),
  gbal: float(),
  bbal: float(),
  rlum: float(),
  glum: float(),
  blum: float(),
  alternate: boolean()
) :: FFix.Stream.t()

Boost or alter saturation.

Options

  • intensity - set the intensity value (from -2 to 2) (default 0)
  • enable - timeline expression evaluated before each frame; the filter is enabled when non-zero
  • rbal - set the red balance value (from -10 to 10) (default 1)
  • gbal - set the green balance value (from -10 to 10) (default 1)
  • bbal - set the blue balance value (from -10 to 10) (default 1)
  • rlum - set the red luma coefficient (from 0 to 1) (default 0.072186)
  • glum - set the green luma coefficient (from 0 to 1) (default 0.715158)
  • blum - set the blue luma coefficient (from 0 to 1) (default 0.212656)
  • alternate - use alternate colors (default false)

vidstabdetect(video_0, options \\ [])

@spec vidstabdetect(FFix.Stream.t(),
  result: String.t(),
  accuracy: integer(),
  show: integer(),
  tripod: integer(),
  shakiness: integer(),
  stepsize: integer(),
  mincontrast: float(),
  fileformat: integer() | String.t() | atom()
) :: FFix.Stream.t()

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

Options

  • result - path to the file used to write the transforms (default "transforms.trf")
  • accuracy - (>=shakiness) 1: low 15: high (slow) (from 1 to 15) (default 15)
  • show - 0: draw nothing; 1,2: show fields and transforms (from 0 to 2) (default 0)
  • tripod - virtual tripod mode (if >0): motion is compared to a reference reference frame (frame # is the value) (from 0 to INT_MAX) (default 0)
  • shakiness - 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)
  • stepsize - region around minimum is scanned with 1 pixel resolution (from 1 to 32) (default 6)
  • mincontrast - below this contrast a field is discarded (0-1) (from 0 to 1) (default 0.25)
  • fileformat - transforms data file format (from 1 to 2) (default binary)
    • ascii (1) - ASCII text
    • binary (2) - binary

vidstabtransform(video_0, options \\ [])

@spec vidstabtransform(FFix.Stream.t(),
  input: String.t(),
  debug: boolean(),
  relative: integer(),
  crop: integer() | String.t() | atom(),
  smoothing: integer(),
  zoom: float(),
  tripod: boolean(),
  invert: integer(),
  optalgo: integer() | String.t() | atom(),
  maxshift: integer(),
  maxangle: float(),
  optzoom: integer(),
  zoomspeed: float(),
  interpol: integer() | String.t() | atom()
) :: FFix.Stream.t()

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

Options

  • input - set path to the file storing the transforms (default "transforms.trf")

  • debug - enable debug mode and writer global motions information to file (default false)

  • relative - consider transforms as relative (from 0 to 1) (default 1)

  • crop - set cropping mode (from 0 to 1) (default keep)

    • keep (0) - keep border
    • black (1) - black border
  • smoothing - set number of frames*2 + 1 used for lowpass filtering (from 0 to 1000) (default 15)

  • zoom - set percentage to zoom (>0: zoom in, <0: zoom out (from -100 to 100) (default 0)

  • tripod - enable virtual tripod mode (same as relative=0:smoothing=0) (default false)

  • invert - invert transforms (from 0 to 1) (default 0)

  • optalgo - 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
  • maxshift - set maximal number of pixels to translate image (from -1 to 500) (default -1)

  • maxangle - set maximal angle in rad to rotate image (from -1 to 3.14) (default -1)

  • optzoom - set optimal zoom (0: nothing, 1: optimal static zoom, 2: optimal dynamic zoom) (from 0 to 2) (default 1)

  • zoomspeed - for adative zoom: percent to zoom maximally each frame (from 0 to 5) (default 0.25)

  • interpol - 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

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

@spec vif(FFix.Stream.t(), FFix.Stream.t(),
  enable: String.t(),
  shortest: boolean(),
  eof_action: integer() | String.t() | atom(),
  repeatlast: boolean(),
  ts_sync_mode: integer() | String.t() | atom()
) :: FFix.Stream.t()

Calculate the VIF between two video streams.

Options

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

  • shortest - force termination when the shortest input terminates (default false)

  • eof_action - 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 - extend last frame of secondary streams beyond EOF (default true)

  • ts_sync_mode - 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

vignette(video_0, options \\ [])

@spec vignette(FFix.Stream.t(),
  mode: integer() | String.t() | atom(),
  eval: integer() | String.t() | atom(),
  a: String.t(),
  enable: String.t(),
  x0: String.t(),
  dither: boolean(),
  angle: String.t(),
  y0: String.t(),
  aspect: term()
) :: FFix.Stream.t()

Make or reverse a vignette effect.

Options

  • mode - set forward/backward mode (from 0 to 1) (default forward)

    • forward (0)
    • backward (1)
  • eval - 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
  • a - set lens angle (default "PI/5")

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

  • x0 - set circle center position on x-axis (default "w/2")

  • dither - set dithering (default true)

  • angle - set lens angle (default "PI/5")

  • y0 - set circle center position on y-axis (default "h/2")

  • aspect - set aspect ratio (from 0 to DBL_MAX) (default 1/1)

vmafmotion(video_0, options \\ [])

@spec vmafmotion(
  FFix.Stream.t(),
  [{:stats_file, String.t()}]
) :: FFix.Stream.t()

Calculate the VMAF Motion score.

Options

  • stats_file - Set file where to store per-frame difference information

vpp_qsv(video_0, options \\ [])

@spec vpp_qsv(FFix.Stream.t(),
  format: String.t(),
  h: String.t(),
  width: String.t(),
  w: String.t(),
  framerate: term(),
  tonemap: integer(),
  transpose: integer() | String.t() | atom(),
  hue: float(),
  rate: integer() | String.t() | atom(),
  cx: String.t(),
  cy: String.t(),
  saturation: float(),
  contrast: float(),
  height: String.t(),
  brightness: float(),
  deinterlace: integer() | String.t() | atom(),
  denoise: integer(),
  detail: integer(),
  procamp: integer(),
  cw: String.t(),
  ch: String.t(),
  async_depth: integer(),
  scale_mode: integer() | String.t() | atom(),
  out_range: integer() | String.t() | atom(),
  out_color_matrix: String.t(),
  out_color_primaries: String.t(),
  out_color_transfer: String.t()
) :: FFix.Stream.t()

Quick Sync Video "VPP"

Options

  • format - Output pixel format (default "same")

  • h - Output video height(0=input video height, -1=keep input video aspect) (default "w*ch/cw")

  • width - Output video width(0=input video width, -1=keep input video aspect) (default "cw")

  • w - Output video width(0=input video width, -1=keep input video aspect) (default "cw")

  • framerate - output framerate (from 0 to DBL_MAX) (default 0/1)

  • tonemap - Perform tonemapping (0=disable tonemapping, 1=perform tonemapping if the input has HDR metadata) (from 0 to 1) (default 0)

  • transpose - 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
  • hue - ProcAmp hue (from -180 to 180) (default 0)

  • rate - 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)
  • cx - set the x crop area expression (default "(in_w-out_w)/2")

  • cy - set the y crop area expression (default "(in_h-out_h)/2")

  • saturation - ProcAmp saturation (from 0 to 10) (default 1)

  • contrast - ProcAmp contrast (from 0 to 10) (default 1)

  • height - Output video height(0=input video height, -1=keep input video aspect) (default "w*ch/cw")

  • brightness - ProcAmp brightness (from -100 to 100) (default 0)

  • deinterlace - 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 - denoise level [0, 100] (from 0 to 100) (default 0)

  • detail - enhancement level [0, 100] (from 0 to 100) (default 0)

  • procamp - Enable ProcAmp (from 0 to 1) (default 0)

  • cw - set the width crop area expression (default "iw")

  • ch - set the height crop area expression (default "ih")

  • async_depth - Internal parallelization depth, the higher the value the higher the latency. (from 0 to INT_MAX) (default 4)

  • scale_mode - 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
  • out_range - 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
  • out_color_matrix - Output color matrix coefficient set

  • out_color_primaries - Output color primaries

  • out_color_transfer - Output color transfer characteristics

w3fdif(video_0, options \\ [])

@spec w3fdif(FFix.Stream.t(),
  mode: integer() | String.t() | atom(),
  filter: integer() | String.t() | atom(),
  enable: String.t(),
  parity: integer() | String.t() | atom(),
  deint: integer() | String.t() | atom()
) :: FFix.Stream.t()

Apply Martin Weston three field deinterlace.

Options

  • mode - 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
  • filter - specify the filter (from 0 to 1) (default complex)

    • simple (0)
    • complex (1)
  • enable - timeline expression evaluated before each frame; the filter is enabled when non-zero

  • parity - 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
  • deint - specify which frames to deinterlace (from 0 to 1) (default all)

    • all (0) - deinterlace all frames
    • interlaced (1) - only deinterlace frames marked as interlaced

waveform(video_0, options \\ [])

@spec waveform(FFix.Stream.t(),
  flags: integer() | String.t() | atom() | [String.t() | atom()],
  input: integer() | String.t() | atom(),
  display: integer() | String.t() | atom(),
  mode: integer() | String.t() | atom(),
  c: integer(),
  intensity: float(),
  filter: integer() | String.t() | atom(),
  i: float(),
  m: integer() | String.t() | atom(),
  f: integer() | String.t() | atom(),
  b: float(),
  s: integer() | String.t() | atom(),
  r: boolean(),
  d: integer() | String.t() | atom(),
  components: integer(),
  o: float(),
  scale: integer() | String.t() | atom(),
  opacity: float(),
  e: integer() | String.t() | atom(),
  g: integer() | String.t() | atom(),
  mirror: boolean(),
  envelope: integer() | String.t() | atom(),
  graticule: integer() | String.t() | atom(),
  fl: integer() | String.t() | atom() | [String.t() | atom()],
  bgopacity: float(),
  tint0: float(),
  t0: float(),
  tint1: float(),
  t1: float(),
  fitmode: integer() | String.t() | atom(),
  fm: integer() | String.t() | atom()
) :: FFix.Stream.t()

Video waveform monitor.

Options

  • flags - set graticule flags (default numbers)

    • numbers - draw numbers
    • dots - draw dots instead of lines
  • input - 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
  • display - set display mode (from 0 to 2) (default stack)

    • overlay (0)
    • stack (1)
    • parade (2)
  • mode - set mode (from 0 to 1) (default column)

    • row (0)
    • column (1)
  • c - set components to display (from 1 to 15) (default 1)

  • intensity - set intensity (from 0 to 1) (default 0.04)

  • filter - set filter (from 0 to 7) (default lowpass)

    • lowpass (0)
    • flat (1)
    • aflat (2)
    • chroma (3)
    • color (4)
    • acolor (5)
    • xflat (6)
    • yflat (7)
  • i - set intensity (from 0 to 1) (default 0.04)

  • m - set mode (from 0 to 1) (default column)

    • row (0)
    • column (1)
  • f - set filter (from 0 to 7) (default lowpass)

    • lowpass (0)
    • flat (1)
    • aflat (2)
    • chroma (3)
    • color (4)
    • acolor (5)
    • xflat (6)
    • yflat (7)
  • b - set background opacity (from 0 to 1) (default 0.75)

  • s - set scale (from 0 to 2) (default digital)

    • digital (0)
    • millivolts (1)
    • ire (2)
  • r - set mirroring (default true)

  • d - set display mode (from 0 to 2) (default stack)

    • overlay (0)
    • stack (1)
    • parade (2)
  • components - set components to display (from 1 to 15) (default 1)

  • o - set graticule opacity (from 0 to 1) (default 0.75)

  • scale - set scale (from 0 to 2) (default digital)

    • digital (0)
    • millivolts (1)
    • ire (2)
  • opacity - set graticule opacity (from 0 to 1) (default 0.75)

  • e - set envelope to display (from 0 to 3) (default none)

    • none (0)
    • instant (1)
    • peak (2)
    • peak+instant (3)
  • g - set graticule (from 0 to 3) (default none)

    • none (0)
    • green (1)
    • orange (2)
    • invert (3)
  • mirror - set mirroring (default true)

  • envelope - set envelope to display (from 0 to 3) (default none)

    • none (0)
    • instant (1)
    • peak (2)
    • peak+instant (3)
  • graticule - set graticule (from 0 to 3) (default none)

    • none (0)
    • green (1)
    • orange (2)
    • invert (3)
  • fl - set graticule flags (default numbers)

    • numbers - draw numbers
    • dots - draw dots instead of lines
  • bgopacity - set background opacity (from 0 to 1) (default 0.75)

  • tint0 - set 1st tint (from -1 to 1) (default 0)

  • t0 - set 1st tint (from -1 to 1) (default 0)

  • tint1 - set 2nd tint (from -1 to 1) (default 0)

  • t1 - set 2nd tint (from -1 to 1) (default 0)

  • fitmode - set fit mode (from 0 to 1) (default none)

    • none (0)
    • size (1)
  • fm - set fit mode (from 0 to 1) (default none)

    • none (0)
    • size (1)

weave(video_0, options \\ [])

@spec weave(
  FFix.Stream.t(),
  [{:first_field, integer() | String.t() | atom()}]
) :: FFix.Stream.t()

Weave input video fields into frames.

Options

  • first_field - 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

xbr(video_0, options \\ [])

@spec xbr(
  FFix.Stream.t(),
  [{:n, integer()}]
) :: FFix.Stream.t()

Scale the input using xBR algorithm.

Options

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

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

@spec xcorrelate(FFix.Stream.t(), FFix.Stream.t(),
  enable: String.t(),
  shortest: boolean(),
  planes: integer(),
  eof_action: integer() | String.t() | atom(),
  repeatlast: boolean(),
  ts_sync_mode: integer() | String.t() | atom(),
  secondary: integer() | String.t() | atom()
) :: FFix.Stream.t()

Cross-correlate first video stream with second video stream.

Options

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

  • shortest - force termination when the shortest input terminates (default false)

  • planes - set planes to cross-correlate (from 0 to 15) (default 7)

  • eof_action - 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 - extend last frame of secondary streams beyond EOF (default true)

  • ts_sync_mode - 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
  • secondary - 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

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

@spec xfade(FFix.Stream.t(), FFix.Stream.t(),
  offset: term(),
  expr: String.t(),
  duration: term(),
  transition: integer() | String.t() | atom()
) :: FFix.Stream.t()

Cross fade one video with another video.

Options

  • offset - set cross fade start relative to first input stream (default 0)
  • expr - set expression for custom transition
  • duration - set cross fade duration (default 1)
  • transition - 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

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

@spec xfade_opencl(FFix.Stream.t(), FFix.Stream.t(),
  offset: term(),
  kernel: String.t(),
  source: String.t(),
  duration: term(),
  transition: integer() | String.t() | atom()
) :: FFix.Stream.t()

Cross fade one video with another video.

Options

  • offset - set cross fade start relative to first input stream (default 0)
  • kernel - set kernel name in program file for custom transition
  • source - set OpenCL program source file for custom transition
  • duration - set cross fade duration (default 1)
  • transition - 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

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

@spec xfade_vulkan(FFix.Stream.t(), FFix.Stream.t(),
  offset: term(),
  duration: term(),
  transition: integer() | String.t() | atom()
) :: FFix.Stream.t()

Cross fade one video with another video.

Options

  • offset - set cross fade start relative to first input stream (default 0)
  • duration - set cross fade duration (default 1)
  • transition - 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

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

@spec xpsnr(FFix.Stream.t(), FFix.Stream.t(),
  f: String.t(),
  enable: String.t(),
  shortest: boolean(),
  eof_action: integer() | String.t() | atom(),
  repeatlast: boolean(),
  ts_sync_mode: integer() | String.t() | atom(),
  stats_file: String.t()
) :: FFix.Stream.t()

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

Options

  • f - Set file where to store per-frame XPSNR information

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

  • shortest - force termination when the shortest input terminates (default false)

  • eof_action - 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 - extend last frame of secondary streams beyond EOF (default true)

  • ts_sync_mode - 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
  • stats_file - Set file where to store per-frame XPSNR information

yadif(video_0, options \\ [])

@spec yadif(FFix.Stream.t(),
  mode: integer() | String.t() | atom(),
  enable: String.t(),
  parity: integer() | String.t() | atom(),
  deint: integer() | String.t() | atom()
) :: FFix.Stream.t()

Deinterlace the input image.

Options

  • mode - 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
  • enable - timeline expression evaluated before each frame; the filter is enabled when non-zero

  • parity - 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
  • deint - specify which frames to deinterlace (from 0 to 1) (default all)

    • all (0) - deinterlace all frames
    • interlaced (1) - only deinterlace frames marked as interlaced

yaepblur(video_0, options \\ [])

@spec yaepblur(FFix.Stream.t(),
  p: integer(),
  s: integer(),
  enable: String.t(),
  r: integer(),
  planes: integer(),
  radius: integer(),
  sigma: integer()
) :: FFix.Stream.t()

Yet another edge preserving blur filter.

Options

  • p - set planes to filter (from 0 to 15) (default 1)
  • s - set blur strength (from 1 to INT_MAX) (default 128)
  • enable - timeline expression evaluated before each frame; the filter is enabled when non-zero
  • r - set window radius (from 0 to INT_MAX) (default 3)
  • planes - set planes to filter (from 0 to 15) (default 1)
  • radius - set window radius (from 0 to INT_MAX) (default 3)
  • sigma - set blur strength (from 1 to INT_MAX) (default 128)

zmq(video_0, options \\ [])

@spec zmq(FFix.Stream.t(), b: String.t(), bind_address: String.t()) :: FFix.Stream.t()

Receive commands through ZMQ and broker them to filters.

Options

  • b - set bind address (default "tcp://*:5555")
  • bind_address - set bind address (default "tcp://*:5555")

zoompan(video_0, options \\ [])

@spec zoompan(FFix.Stream.t(),
  x: String.t(),
  y: String.t(),
  s: term(),
  d: String.t(),
  z: String.t(),
  fps: term(),
  zoom: String.t()
) :: FFix.Stream.t()

Apply Zoom & Pan effect.

Options

  • x - set the x expression (default "0")
  • y - set the y expression (default "0")
  • s - set the output image size (default "hd720")
  • d - set the duration expression (default "90")
  • z - set the zoom expression (default "1")
  • fps - set the output framerate (default "25")
  • zoom - set the zoom expression (default "1")

zscale(video_0, options \\ [])

@spec zscale(FFix.Stream.t(),
  param_b: float(),
  w: String.t(),
  chromalin: integer() | String.t() | atom(),
  rin: integer() | String.t() | atom(),
  h: String.t(),
  width: String.t(),
  matrixin: integer() | String.t() | atom(),
  m: integer() | String.t() | atom(),
  transferin: integer() | String.t() | atom(),
  cin: integer() | String.t() | atom(),
  s: String.t(),
  tin: integer() | String.t() | atom(),
  in_range: integer() | String.t() | atom(),
  chromal: integer() | String.t() | atom(),
  d: integer() | String.t() | atom(),
  r: integer() | String.t() | atom(),
  primariesin: integer() | String.t() | atom(),
  pin: integer() | String.t() | atom(),
  npl: float(),
  primaries: integer() | String.t() | atom(),
  f: integer() | String.t() | atom(),
  t: integer() | String.t() | atom(),
  range: integer() | String.t() | atom(),
  dither: integer() | String.t() | atom(),
  min: integer() | String.t() | atom(),
  size: String.t(),
  agamma: boolean(),
  c: integer() | String.t() | atom(),
  p: integer() | String.t() | atom(),
  rangein: integer() | String.t() | atom(),
  param_a: float(),
  transfer: integer() | String.t() | atom(),
  out_range: integer() | String.t() | atom(),
  filter: integer() | String.t() | atom(),
  height: String.t(),
  matrix: integer() | String.t() | atom()
) :: FFix.Stream.t()

Apply resizing, colorspace and bit depth conversion.

Options

  • param_b - parameter B, which is parameter "c" for bicubic (from -DBL_MAX to DBL_MAX) (default nan)

  • w - Output video width

  • chromalin - set input chroma location (from -1 to 5) (default input)

    • input (-1)
    • left (0)
    • center (1)
    • topleft (2)
    • top (3)
    • bottomleft (4)
    • bottom (5)
  • rin - set input color range (from -1 to 1) (default input)

    • input (-1)
    • limited (0)
    • full (1)
    • unknown (-1)
    • tv (0)
    • pc (1)
  • h - Output video height

  • width - Output video width

  • matrixin - 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)
  • m - 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)
  • transferin - 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)
  • cin - set input chroma location (from -1 to 5) (default input)

    • input (-1)
    • left (0)
    • center (1)
    • topleft (2)
    • top (3)
    • bottomleft (4)
    • bottom (5)
  • s - set video size

  • tin - 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)
  • in_range - set input color range (from -1 to 1) (default input)

    • input (-1)
    • limited (0)
    • full (1)
    • unknown (-1)
    • tv (0)
    • pc (1)
  • chromal - set output chroma location (from -1 to 5) (default input)

    • input (-1)
    • left (0)
    • center (1)
    • topleft (2)
    • top (3)
    • bottomleft (4)
    • bottom (5)
  • d - set dither type (from 0 to 3) (default none)

    • none (0)
    • ordered (1)
    • random (2)
    • error_diffusion 3
  • r - set color range (from -1 to 1) (default input)

    • input (-1)
    • limited (0)
    • full (1)
    • unknown (-1)
    • tv (0)
    • pc (1)
  • primariesin - 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)
  • pin - 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)
  • npl - set nominal peak luminance (from 0 to DBL_MAX) (default nan)

  • primaries - 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)
  • f - set filter type (from 0 to 5) (default bilinear)

    • point (0)
    • bilinear (1)
    • bicubic (2)
    • spline16 (3)
    • spline36 (4)
    • lanczos (5)
  • t - 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)
  • range - set color range (from -1 to 1) (default input)

    • input (-1)
    • limited (0)
    • full (1)
    • unknown (-1)
    • tv (0)
    • pc (1)
  • dither - set dither type (from 0 to 3) (default none)

    • none (0)
    • ordered (1)
    • random (2)
    • error_diffusion 3
  • min - 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)
  • size - set video size

  • agamma - allow approximate gamma (default true)

  • c - set output chroma location (from -1 to 5) (default input)

    • input (-1)
    • left (0)
    • center (1)
    • topleft (2)
    • top (3)
    • bottomleft (4)
    • bottom (5)
  • p - 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)
  • rangein - set input color range (from -1 to 1) (default input)

    • input (-1)
    • limited (0)
    • full (1)
    • unknown (-1)
    • tv (0)
    • pc (1)
  • param_a - parameter A, which is parameter "b" for bicubic, and the number of filter taps for lanczos (from -DBL_MAX to DBL_MAX) (default nan)

  • transfer - 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)
  • out_range - set color range (from -1 to 1) (default input)

    • input (-1)
    • limited (0)
    • full (1)
    • unknown (-1)
    • tv (0)
    • pc (1)
  • filter - set filter type (from 0 to 5) (default bilinear)

    • point (0)
    • bilinear (1)
    • bicubic (2)
    • spline16 (3)
    • spline36 (4)
    • lanczos (5)
  • height - Output video height

  • matrix - 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)

Audio filters

aap(audio_0, audio_1, options \\ [])

@spec aap(FFix.Stream.t(), FFix.Stream.t(),
  enable: String.t(),
  precision: integer() | String.t() | atom(),
  projection: integer(),
  order: integer(),
  delta: float(),
  mu: float(),
  out_mode: integer() | String.t() | atom()
) :: FFix.Stream.t()

Apply Affine Projection algorithm to first audio stream.

Options

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

  • precision - 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 - set the filter projection (from 1 to 256) (default 2)

  • order - set the filter order (from 1 to 32767) (default 16)

  • delta - set the filter delta (from 0 to 1) (default 0.001)

  • mu - set the filter mu (from 0 to 1) (default 0.0001)

  • out_mode - set output mode (from 0 to 4) (default o)

    • i (0) - input
    • d (1) - desired
    • o (2) - output
    • n (3) - noise
    • e (4) - error

abench(audio_0, options \\ [])

@spec abench(
  FFix.Stream.t(),
  [{:action, integer() | String.t() | atom()}]
) :: FFix.Stream.t()

Benchmark part of a filtergraph.

Options

  • action - set action (from 0 to 1) (default start)
    • start (0) - start timer
    • stop (1) - stop timer

acompressor(audio_0, options \\ [])

@spec acompressor(FFix.Stream.t(),
  link: integer() | String.t() | atom(),
  mode: integer() | String.t() | atom(),
  threshold: float(),
  mix: float(),
  makeup: float(),
  ratio: float(),
  attack: float(),
  level_in: float(),
  release: float(),
  knee: float(),
  detection: integer() | String.t() | atom(),
  level_sc: float()
) :: FFix.Stream.t()

Audio compressor.

Options

  • link - set link type (from 0 to 1) (default average)

    • average (0)
    • maximum (1)
  • mode - set mode (from 0 to 1) (default downward)

    • downward (0)
    • upward (1)
  • threshold - set threshold (from 0.000976563 to 1) (default 0.125)

  • mix - set mix (from 0 to 1) (default 1)

  • makeup - set make up gain (from 1 to 64) (default 1)

  • ratio - set ratio (from 1 to 20) (default 2)

  • attack - set attack (from 0.01 to 2000) (default 20)

  • level_in - set input gain (from 0.015625 to 64) (default 1)

  • release - set release (from 0.01 to 9000) (default 250)

  • knee - set knee (from 1 to 8) (default 2.82843)

  • detection - set detection (from 0 to 1) (default rms)

    • peak (0)
    • rms (1)
  • level_sc - set sidechain gain (from 0.015625 to 64) (default 1)

acontrast(audio_0, options \\ [])

@spec acontrast(
  FFix.Stream.t(),
  [{:contrast, float()}]
) :: FFix.Stream.t()

Simple audio dynamic range compression/expansion filter.

Options

  • contrast - set contrast (from 0 to 100) (default 33)

acopy(audio_0, options \\ [])

@spec acopy(
  FFix.Stream.t(),
  []
) :: FFix.Stream.t()

Copy the input audio unchanged to the output.

Options

acrossfade(audio_0, audio_1, options \\ [])

@spec acrossfade(FFix.Stream.t(), FFix.Stream.t(),
  d: term(),
  o: boolean(),
  duration: term(),
  nb_samples: integer(),
  ns: integer(),
  overlap: boolean(),
  curve1: integer() | String.t() | atom(),
  c1: integer() | String.t() | atom(),
  curve2: integer() | String.t() | atom(),
  c2: integer() | String.t() | atom()
) :: FFix.Stream.t()

Cross fade two input audio streams.

Options

  • d - set cross fade duration (default 0)

  • o - overlap 1st stream end with 2nd stream start (default true)

  • duration - set cross fade duration (default 0)

  • nb_samples - set number of samples for cross fade duration (from 1 to 2.14748e+08) (default 44100)

  • ns - set number of samples for cross fade duration (from 1 to 2.14748e+08) (default 44100)

  • overlap - overlap 1st stream end with 2nd stream start (default true)

  • curve1 - 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
  • c1 - 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 - 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
  • c2 - 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

acrusher(audio_0, options \\ [])

@spec acrusher(FFix.Stream.t(),
  mode: integer() | String.t() | atom(),
  bits: float(),
  enable: String.t(),
  mix: float(),
  aa: float(),
  level_in: float(),
  level_out: float(),
  samples: float(),
  dc: float(),
  lfo: boolean(),
  lforange: float(),
  lforate: float()
) :: FFix.Stream.t()

Reduce audio bit resolution.

Options

  • mode - set mode (from 0 to 1) (default lin)

    • lin (0) - linear
    • log (1) - logarithmic
  • bits - set bit reduction (from 1 to 64) (default 8)

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

  • mix - set mix (from 0 to 1) (default 0.5)

  • aa - set anti-aliasing (from 0 to 1) (default 0.5)

  • level_in - set level in (from 0.015625 to 64) (default 1)

  • level_out - set level out (from 0.015625 to 64) (default 1)

  • samples - set sample reduction (from 1 to 250) (default 1)

  • dc - set DC (from 0.25 to 4) (default 1)

  • lfo - enable LFO (default false)

  • lforange - set LFO depth (from 1 to 250) (default 20)

  • lforate - set LFO rate (from 0.01 to 200) (default 0.3)

acue(audio_0, options \\ [])

@spec acue(FFix.Stream.t(), buffer: term(), cue: integer(), preroll: term()) ::
  FFix.Stream.t()

Delay filtering to match a cue.

Options

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

adeclick(audio_0, options \\ [])

@spec adeclick(FFix.Stream.t(),
  m: integer() | String.t() | atom(),
  a: float(),
  b: float(),
  enable: String.t(),
  w: float(),
  threshold: float(),
  o: float(),
  t: float(),
  overlap: float(),
  window: float(),
  arorder: float(),
  burst: float(),
  method: integer() | String.t() | atom()
) :: FFix.Stream.t()

Remove impulsive noise from input audio.

Options

  • m - 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
  • a - set autoregression order (from 0 to 25) (default 2)

  • b - set burst fusion (from 0 to 10) (default 2)

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

  • w - set window size (from 10 to 100) (default 55)

  • threshold - set threshold (from 1 to 100) (default 2)

  • o - set window overlap (from 50 to 95) (default 75)

  • t - set threshold (from 1 to 100) (default 2)

  • overlap - set window overlap (from 50 to 95) (default 75)

  • window - set window size (from 10 to 100) (default 55)

  • arorder - set autoregression order (from 0 to 25) (default 2)

  • burst - set burst fusion (from 0 to 10) (default 2)

  • method - 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

adeclip(audio_0, options \\ [])

@spec adeclip(FFix.Stream.t(),
  m: integer() | String.t() | atom(),
  a: float(),
  enable: String.t(),
  w: float(),
  threshold: float(),
  n: integer(),
  o: float(),
  t: float(),
  overlap: float(),
  window: float(),
  arorder: float(),
  method: integer() | String.t() | atom(),
  hsize: integer()
) :: FFix.Stream.t()

Remove clipping from input audio.

Options

  • m - 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
  • a - set autoregression order (from 0 to 25) (default 8)

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

  • w - set window size (from 10 to 100) (default 55)

  • threshold - set threshold (from 1 to 100) (default 10)

  • n - set histogram size (from 100 to 9999) (default 1000)

  • o - set window overlap (from 50 to 95) (default 75)

  • t - set threshold (from 1 to 100) (default 10)

  • overlap - set window overlap (from 50 to 95) (default 75)

  • window - set window size (from 10 to 100) (default 55)

  • arorder - set autoregression order (from 0 to 25) (default 8)

  • method - 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
  • hsize - set histogram size (from 100 to 9999) (default 1000)

adecorrelate(audio_0, options \\ [])

@spec adecorrelate(FFix.Stream.t(),
  enable: String.t(),
  seed: integer(),
  stages: integer()
) ::
  FFix.Stream.t()

Apply decorrelation to input audio.

Options

  • enable - timeline expression evaluated before each frame; the filter is enabled when non-zero
  • seed - set random seed (from -1 to UINT32_MAX) (default -1)
  • stages - set filtering stages (from 1 to 16) (default 6)

adelay(audio_0, options \\ [])

@spec adelay(FFix.Stream.t(), all: boolean(), enable: String.t(), delays: String.t()) ::
  FFix.Stream.t()

Delay one or more audio channels.

Options

  • all - use last available delay for remained channels (default false)
  • enable - timeline expression evaluated before each frame; the filter is enabled when non-zero
  • delays - set list of delays for each channel

adenorm(audio_0, options \\ [])

@spec adenorm(FFix.Stream.t(),
  type: integer() | String.t() | atom(),
  level: float(),
  enable: String.t()
) :: FFix.Stream.t()

Remedy denormals by adding extremely low-level noise.

Options

  • type - set type (from 0 to 3) (default dc)

    • dc (0)
    • ac (1)
    • square (2)
    • pulse (3)
  • level - set level (from -451 to -90) (default -351)

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

aderivative(audio_0, options \\ [])

@spec aderivative(
  FFix.Stream.t(),
  [{:enable, String.t()}]
) :: FFix.Stream.t()

Compute derivative of input audio.

Options

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

adrc(audio_0, options \\ [])

@spec adrc(FFix.Stream.t(),
  enable: String.t(),
  channels: String.t(),
  attack: float(),
  release: float(),
  transfer: String.t()
) :: FFix.Stream.t()

Audio Spectral Dynamic Range Controller.

Options

  • enable - timeline expression evaluated before each frame; the filter is enabled when non-zero
  • channels - set channels to filter (default "all")
  • attack - set the attack (from 1 to 1000) (default 50)
  • release - set the release (from 5 to 2000) (default 100)
  • transfer - set the transfer expression (default "p")

adynamicequalizer(audio_0, options \\ [])

@spec adynamicequalizer(FFix.Stream.t(),
  auto: integer() | String.t() | atom(),
  mode: integer() | String.t() | atom(),
  range: float(),
  enable: String.t(),
  precision: integer() | String.t() | atom(),
  threshold: float(),
  makeup: float(),
  ratio: float(),
  attack: float(),
  release: float(),
  dfrequency: float(),
  dqfactor: float(),
  tfrequency: float(),
  tqfactor: float(),
  dftype: integer() | String.t() | atom(),
  tftype: integer() | String.t() | atom()
) :: FFix.Stream.t()

Apply Dynamic Equalization of input audio.

Options

  • auto - set auto threshold (from 1 to 4) (default off)

    • disabled (1)
    • off (2)
    • on (3)
    • adaptive (4)
  • mode - set mode (from -1 to 3) (default cutbelow)

    • listen (-1)
    • cutbelow (0)
    • cutabove (1)
    • boostbelow (2)
    • boostabove (3)
  • range - set max gain (from 1 to 2000) (default 50)

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

  • precision - 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
  • threshold - set detection threshold (from 0 to 100) (default 0)

  • makeup - set makeup gain (from 0 to 1000) (default 0)

  • ratio - set ratio factor (from 0 to 30) (default 1)

  • attack - set detection attack duration (from 0.01 to 2000) (default 20)

  • release - set detection release duration (from 0.01 to 2000) (default 200)

  • dfrequency - set detection frequency (from 2 to 1e+06) (default 1000)

  • dqfactor - set detection Q factor (from 0.001 to 1000) (default 1)

  • tfrequency - set target frequency (from 2 to 1e+06) (default 1000)

  • tqfactor - set target Q factor (from 0.001 to 1000) (default 1)

  • dftype - set detection filter type (from 0 to 3) (default bandpass)

    • bandpass (0)
    • lowpass (1)
    • highpass (2)
    • peak (3)
  • tftype - set target filter type (from 0 to 2) (default bell)

    • bell (0)
    • lowshelf (1)
    • highshelf (2)

adynamicsmooth(audio_0, options \\ [])

@spec adynamicsmooth(FFix.Stream.t(),
  enable: String.t(),
  basefreq: float(),
  sensitivity: float()
) ::
  FFix.Stream.t()

Apply Dynamic Smoothing of input audio.

Options

  • enable - timeline expression evaluated before each frame; the filter is enabled when non-zero
  • basefreq - set base frequency (from 2 to 1e+06) (default 22050)
  • sensitivity - set smooth sensitivity (from 0 to 1e+06) (default 2)

aecho(audio_0, options \\ [])

@spec aecho(FFix.Stream.t(),
  decays: String.t(),
  in_gain: float(),
  out_gain: float(),
  delays: String.t()
) :: FFix.Stream.t()

Add echoing to the audio.

Options

  • decays - set list of signal decays (default "0.5")
  • in_gain - set signal input gain (from 0 to 1) (default 0.6)
  • out_gain - set signal output gain (from 0 to 1) (default 0.3)
  • delays - set list of signal delays (default "1000")

aemphasis(audio_0, options \\ [])

@spec aemphasis(FFix.Stream.t(),
  type: integer() | String.t() | atom(),
  mode: integer() | String.t() | atom(),
  enable: String.t(),
  level_in: float(),
  level_out: float()
) :: FFix.Stream.t()

Audio emphasis.

Options

  • type - 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)
  • mode - set filter mode (from 0 to 1) (default reproduction)

    • reproduction (0)
    • production (1)
  • enable - timeline expression evaluated before each frame; the filter is enabled when non-zero

  • level_in - set input gain (from 0 to 64) (default 1)

  • level_out - set output gain (from 0 to 64) (default 1)

aeval(audio_0, options \\ [])

@spec aeval(FFix.Stream.t(),
  exprs: String.t(),
  c: String.t(),
  enable: String.t(),
  channel_layout: String.t()
) :: FFix.Stream.t()

Filter audio signal according to a specified expression.

Options

  • exprs - set the '|'-separated list of channels expressions
  • c - set channel layout
  • enable - timeline expression evaluated before each frame; the filter is enabled when non-zero
  • channel_layout - set channel layout

aexciter(audio_0, options \\ [])

@spec aexciter(FFix.Stream.t(),
  ceil: float(),
  listen: boolean(),
  enable: String.t(),
  amount: float(),
  blend: float(),
  freq: float(),
  level_in: float(),
  level_out: float(),
  drive: float()
) :: FFix.Stream.t()

Enhance high frequency part of audio.

Options

  • ceil - set ceiling (from 9999 to 20000) (default 9999)
  • listen - enable listen mode (default false)
  • enable - timeline expression evaluated before each frame; the filter is enabled when non-zero
  • amount - set amount (from 0 to 64) (default 1)
  • blend - set blend harmonics (from -10 to 10) (default 0)
  • freq - set scope (from 2000 to 12000) (default 7500)
  • level_in - set level in (from 0 to 64) (default 1)
  • level_out - set level out (from 0 to 64) (default 1)
  • drive - set harmonics (from 0.1 to 10) (default 8.5)

afade(audio_0, options \\ [])

@spec afade(FFix.Stream.t(),
  type: integer() | String.t() | atom(),
  st: term(),
  c: integer() | String.t() | atom(),
  enable: String.t(),
  d: term(),
  curve: integer() | String.t() | atom(),
  t: integer() | String.t() | atom(),
  duration: term(),
  nb_samples: integer(),
  ns: integer(),
  start_time: term(),
  start_sample: integer(),
  ss: integer(),
  silence: float(),
  unity: float()
) :: FFix.Stream.t()

Fade in/out input audio.

Options

  • type - set the fade direction (from 0 to 1) (default in)

    • in (0) - fade-in
    • out (1) - fade-out
  • st - set time to start fading (default 0)

  • c - 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
  • enable - timeline expression evaluated before each frame; the filter is enabled when non-zero

  • d - set fade duration (default 0)

  • curve - 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
  • t - set the fade direction (from 0 to 1) (default in)

    • in (0) - fade-in
    • out (1) - fade-out
  • duration - set fade duration (default 0)

  • nb_samples - set number of samples for fade duration (from 1 to I64_MAX) (default 44100)

  • ns - set number of samples for fade duration (from 1 to I64_MAX) (default 44100)

  • start_time - set time to start fading (default 0)

  • start_sample - set number of first sample to start fading (from 0 to I64_MAX) (default 0)

  • ss - set number of first sample to start fading (from 0 to I64_MAX) (default 0)

  • silence - set the silence gain (from 0 to 1) (default 0)

  • unity - set the unity gain (from 0 to 1) (default 1)

afftdn(audio_0, options \\ [])

@spec afftdn(FFix.Stream.t(),
  bm: float(),
  nl: integer() | String.t() | atom(),
  enable: String.t(),
  output_mode: integer() | String.t() | atom(),
  nt: integer() | String.t() | atom(),
  tr: boolean(),
  gs: integer(),
  noise_reduction: float(),
  nr: float(),
  noise_floor: float(),
  nf: float(),
  noise_type: integer() | String.t() | atom(),
  band_noise: String.t(),
  bn: String.t(),
  residual_floor: float(),
  rf: float(),
  track_noise: boolean(),
  tn: boolean(),
  track_residual: boolean(),
  om: integer() | String.t() | atom(),
  adaptivity: float(),
  ad: float(),
  floor_offset: float(),
  fo: float(),
  noise_link: integer() | String.t() | atom(),
  band_multiplier: float(),
  sample_noise: integer() | String.t() | atom(),
  sn: integer() | String.t() | atom(),
  gain_smooth: integer()
) :: FFix.Stream.t()

Denoise audio samples using FFT.

Options

  • bm - set band multiplier (from 0.2 to 5) (default 1.25)

  • nl - set the noise floor link (from 0 to 3) (default min)

    • none (0) - none
    • min (1) - min
    • max (2) - max
    • average (3) - average
  • enable - timeline expression evaluated before each frame; the filter is enabled when non-zero

  • output_mode - 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
  • nt - 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
  • tr - track residual (default false)

  • gs - set gain smooth radius (from 0 to 50) (default 0)

  • noise_reduction - set the noise reduction (from 0.01 to 97) (default 12)

  • nr - set the noise reduction (from 0.01 to 97) (default 12)

  • noise_floor - set the noise floor (from -80 to -20) (default -50)

  • nf - set the noise floor (from -80 to -20) (default -50)

  • noise_type - 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
  • band_noise - set the custom bands noise

  • bn - set the custom bands noise

  • residual_floor - set the residual floor (from -80 to -20) (default -38)

  • rf - set the residual floor (from -80 to -20) (default -38)

  • track_noise - track noise (default false)

  • tn - track noise (default false)

  • track_residual - track residual (default false)

  • om - 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
  • adaptivity - set adaptivity factor (from 0 to 1) (default 0.5)

  • ad - set adaptivity factor (from 0 to 1) (default 0.5)

  • floor_offset - set noise floor offset factor (from -2 to 2) (default 1)

  • fo - set noise floor offset factor (from -2 to 2) (default 1)

  • noise_link - set the noise floor link (from 0 to 3) (default min)

    • none (0) - none
    • min (1) - min
    • max (2) - max
    • average (3) - average
  • band_multiplier - set band multiplier (from 0.2 to 5) (default 1.25)

  • sample_noise - 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 - 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
  • gain_smooth - set gain smooth radius (from 0 to 50) (default 0)

afftfilt(audio_0, options \\ [])

@spec afftfilt(FFix.Stream.t(),
  real: String.t(),
  enable: String.t(),
  overlap: float(),
  win_func: integer() | String.t() | atom(),
  win_size: integer(),
  imag: String.t()
) :: FFix.Stream.t()

Apply arbitrary expressions to samples in frequency domain.

Options

  • real - set channels real expressions (default "re")

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

  • overlap - set window overlap (from 0 to 1) (default 0.75)

  • win_func - 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 - set window size (from 16 to 131072) (default 4096)

  • imag - set channels imaginary expressions (default "im")

aformat(audio_0, options \\ [])

@spec aformat(FFix.Stream.t(),
  f: [term()],
  r: [integer()],
  cl: [term()],
  sample_fmts: [term()],
  sample_rates: [integer()],
  channel_layouts: [term()]
) :: FFix.Stream.t()

Convert the input audio to one of the specified formats.

Options

  • f - A '|'-separated list of sample formats.
  • r - A '|'-separated list of sample rates.
  • cl - A '|'-separated list of channel layouts.
  • sample_fmts - A '|'-separated list of sample formats.
  • sample_rates - A '|'-separated list of sample rates.
  • channel_layouts - A '|'-separated list of channel layouts.

afreqshift(audio_0, options \\ [])

@spec afreqshift(FFix.Stream.t(),
  level: float(),
  enable: String.t(),
  shift: float(),
  order: integer()
) ::
  FFix.Stream.t()

Apply frequency shifting to input audio.

Options

  • level - set output level (from 0 to 1) (default 1)
  • enable - timeline expression evaluated before each frame; the filter is enabled when non-zero
  • shift - set frequency shift (from -2.14748e+09 to INT_MAX) (default 0)
  • order - set filter order (from 1 to 16) (default 8)

afwtdn(audio_0, options \\ [])

@spec afwtdn(FFix.Stream.t(),
  profile: boolean(),
  enable: String.t(),
  levels: integer(),
  sigma: float(),
  samples: integer(),
  wavet: integer() | String.t() | atom(),
  percent: float(),
  adaptive: boolean(),
  softness: float()
) :: FFix.Stream.t()

Denoise audio stream using Wavelets.

Options

  • profile - profile noise (default false)

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

  • levels - set number of wavelet levels (from 1 to 12) (default 10)

  • sigma - set noise sigma (from 0 to 1) (default 0)

  • samples - set frame size in number of samples (from 512 to 65536) (default 8192)

  • wavet - 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
  • percent - set percent of full denoising (from 0 to 100) (default 85)

  • adaptive - adaptive profiling of noise (default false)

  • softness - set thresholding softness (from 0 to 10) (default 1)

agate(audio_0, options \\ [])

@spec agate(FFix.Stream.t(),
  link: integer() | String.t() | atom(),
  mode: integer() | String.t() | atom(),
  range: float(),
  enable: String.t(),
  threshold: float(),
  makeup: float(),
  ratio: float(),
  attack: float(),
  level_in: float(),
  release: float(),
  knee: float(),
  detection: integer() | String.t() | atom(),
  level_sc: float()
) :: FFix.Stream.t()

Audio gate.

Options

  • link - set link (from 0 to 1) (default average)

    • average (0)
    • maximum (1)
  • mode - set mode (from 0 to 1) (default downward)

    • downward (0)
    • upward (1)
  • range - set max gain reduction (from 0 to 1) (default 0.06125)

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

  • threshold - set threshold (from 0 to 1) (default 0.125)

  • makeup - set makeup gain (from 1 to 64) (default 1)

  • ratio - set ratio (from 1 to 9000) (default 2)

  • attack - set attack (from 0.01 to 9000) (default 20)

  • level_in - set input level (from 0.015625 to 64) (default 1)

  • release - set release (from 0.01 to 9000) (default 250)

  • knee - set knee (from 1 to 8) (default 2.82843)

  • detection - set detection (from 0 to 1) (default rms)

    • peak (0)
    • rms (1)
  • level_sc - set sidechain gain (from 0.015625 to 64) (default 1)

aintegral(audio_0, options \\ [])

@spec aintegral(
  FFix.Stream.t(),
  [{:enable, String.t()}]
) :: FFix.Stream.t()

Compute integral of input audio.

Options

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

alatency(audio_0, options \\ [])

@spec alatency(
  FFix.Stream.t(),
  [{:enable, String.t()}]
) :: FFix.Stream.t()

Report audio filtering latency.

Options

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

alimiter(audio_0, options \\ [])

@spec alimiter(FFix.Stream.t(),
  level: boolean(),
  asc: boolean(),
  enable: String.t(),
  limit: float(),
  latency: boolean(),
  attack: float(),
  level_in: float(),
  level_out: float(),
  release: float(),
  asc_level: float()
) :: FFix.Stream.t()

Audio lookahead limiter.

Options

  • level - auto level (default true)
  • asc - enable asc (default false)
  • enable - timeline expression evaluated before each frame; the filter is enabled when non-zero
  • limit - set limit (from 0.0625 to 1) (default 1)
  • latency - compensate delay (default false)
  • attack - set attack (from 0.1 to 80) (default 5)
  • level_in - set input level (from 0.015625 to 64) (default 1)
  • level_out - set output level (from 0.015625 to 64) (default 1)
  • release - set release (from 1 to 8000) (default 50)
  • asc_level - set asc level (from 0 to 1) (default 0.5)

allpass(audio_0, options \\ [])

@spec allpass(FFix.Stream.t(),
  normalize: boolean(),
  c: String.t(),
  m: float(),
  f: float(),
  a: integer() | String.t() | atom(),
  enable: String.t(),
  r: integer() | String.t() | atom(),
  width: float(),
  precision: integer() | String.t() | atom(),
  w: float(),
  mix: float(),
  n: boolean(),
  o: integer(),
  transform: integer() | String.t() | atom(),
  t: integer() | String.t() | atom(),
  order: integer(),
  channels: String.t(),
  frequency: float(),
  width_type: integer() | String.t() | atom()
) :: FFix.Stream.t()

Apply a two-pole all-pass filter.

Options

  • normalize - normalize coefficients (default false)

  • c - set channels to filter (default "all")

  • m - set mix (from 0 to 1) (default 1)

  • f - set central frequency (from 0 to 999999) (default 3000)

  • a - 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
  • enable - timeline expression evaluated before each frame; the filter is enabled when non-zero

  • r - 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
  • width - set width (from 0 to 99999) (default 0.707)

  • precision - 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
  • w - set width (from 0 to 99999) (default 0.707)

  • mix - set mix (from 0 to 1) (default 1)

  • n - normalize coefficients (default false)

  • o - set filter order (from 1 to 2) (default 2)

  • transform - 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
  • t - 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
  • order - set filter order (from 1 to 2) (default 2)

  • channels - set channels to filter (default "all")

  • frequency - set central frequency (from 0 to 999999) (default 3000)

  • width_type - 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

aloop(audio_0, options \\ [])

@spec aloop(FFix.Stream.t(),
  size: integer(),
  start: integer(),
  time: term(),
  loop: integer()
) ::
  FFix.Stream.t()

Loop audio samples.

Options

  • size - max number of samples to loop (from 0 to INT_MAX) (default 0)
  • start - set the loop start sample (from -1 to I64_MAX) (default 0)
  • time - set the loop start time (default INT64_MAX)
  • loop - number of loops (from -1 to INT_MAX) (default 0)

ametadata(audio_0, options \\ [])

@spec ametadata(FFix.Stream.t(),
  function: integer() | String.t() | atom(),
  value: String.t(),
  file: String.t(),
  mode: integer() | String.t() | atom(),
  expr: String.t(),
  enable: String.t(),
  key: String.t(),
  direct: boolean()
) :: FFix.Stream.t()

Manipulate audio frame metadata.

Options

  • function - 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)
  • value - set metadata value

  • file - set file where to print metadata information

  • mode - 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
  • expr - set expression for expr function

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

  • key - set metadata key

  • direct - reduce buffering when printing to user-set file or pipe (default false)

amultiply(audio_0, audio_1, options \\ [])

@spec amultiply(FFix.Stream.t(), FFix.Stream.t(), []) :: FFix.Stream.t()

Multiply two audio streams.

Options

anlmdn(audio_0, options \\ [])

@spec anlmdn(FFix.Stream.t(),
  output: integer() | String.t() | atom(),
  p: term(),
  m: float(),
  s: float(),
  enable: String.t(),
  r: term(),
  patch: term(),
  o: integer() | String.t() | atom(),
  strength: float(),
  research: term(),
  smooth: float()
) :: FFix.Stream.t()

Reduce broadband noise from stream using Non-Local Means.

Options

  • output - set output mode (from 0 to 2) (default o)

    • i (0) - input
    • o (1) - output
    • n (2) - noise
  • p - set patch duration (default 0.002)

  • m - set smooth factor (from 1 to 1000) (default 11)

  • s - set denoising strength (from 1e-05 to 10000) (default 1e-05)

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

  • r - set research duration (default 0.006)

  • patch - set patch duration (default 0.002)

  • o - set output mode (from 0 to 2) (default o)

    • i (0) - input
    • o (1) - output
    • n (2) - noise
  • strength - set denoising strength (from 1e-05 to 10000) (default 1e-05)

  • research - set research duration (default 0.006)

  • smooth - set smooth factor (from 1 to 1000) (default 11)

anlmf(audio_0, audio_1, options \\ [])

@spec anlmf(FFix.Stream.t(), FFix.Stream.t(),
  enable: String.t(),
  precision: integer() | String.t() | atom(),
  order: integer(),
  eps: float(),
  mu: float(),
  out_mode: integer() | String.t() | atom(),
  leakage: float()
) :: FFix.Stream.t()

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

Options

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

  • precision - 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
  • order - set the filter order (from 1 to 32767) (default 256)

  • eps - set the filter eps (from 0 to 1) (default 1)

  • mu - set the filter mu (from 0 to 2) (default 0.75)

  • out_mode - set output mode (from 0 to 4) (default o)

    • i (0) - input
    • d (1) - desired
    • o (2) - output
    • n (3) - noise
    • e (4) - error
  • leakage - set the filter leakage (from 0 to 1) (default 0)

anlms(audio_0, audio_1, options \\ [])

@spec anlms(FFix.Stream.t(), FFix.Stream.t(),
  enable: String.t(),
  precision: integer() | String.t() | atom(),
  order: integer(),
  eps: float(),
  mu: float(),
  out_mode: integer() | String.t() | atom(),
  leakage: float()
) :: FFix.Stream.t()

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

Options

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

  • precision - 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
  • order - set the filter order (from 1 to 32767) (default 256)

  • eps - set the filter eps (from 0 to 1) (default 1)

  • mu - set the filter mu (from 0 to 2) (default 0.75)

  • out_mode - set output mode (from 0 to 4) (default o)

    • i (0) - input
    • d (1) - desired
    • o (2) - output
    • n (3) - noise
    • e (4) - error
  • leakage - set the filter leakage (from 0 to 1) (default 0)

anull(audio_0, options \\ [])

@spec anull(
  FFix.Stream.t(),
  []
) :: FFix.Stream.t()

Pass the source unchanged to the output.

Options

apad(audio_0, options \\ [])

@spec apad(FFix.Stream.t(),
  packet_size: integer(),
  enable: String.t(),
  pad_len: integer(),
  whole_len: integer(),
  pad_dur: term(),
  whole_dur: term()
) :: FFix.Stream.t()

Pad audio with silence.

Options

  • packet_size - set silence packet size (from 0 to INT_MAX) (default 4096)
  • enable - timeline expression evaluated before each frame; the filter is enabled when non-zero
  • pad_len - set number of samples of silence to add (from -1 to I64_MAX) (default -1)
  • whole_len - set minimum target number of samples in the audio stream (from -1 to I64_MAX) (default -1)
  • pad_dur - set duration of silence to add (default -0.000001)
  • whole_dur - set minimum target duration in the audio stream (default -0.000001)

aperms(audio_0, options \\ [])

@spec aperms(FFix.Stream.t(),
  mode: integer() | String.t() | atom(),
  enable: String.t(),
  seed: integer()
) :: FFix.Stream.t()

Set permissions for the output audio frame.

Options

  • mode - 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
  • enable - timeline expression evaluated before each frame; the filter is enabled when non-zero

  • seed - set the seed for the random mode (from -1 to UINT32_MAX) (default -1)

aphaser(audio_0, options \\ [])

@spec aphaser(FFix.Stream.t(),
  type: integer() | String.t() | atom(),
  speed: float(),
  delay: float(),
  in_gain: float(),
  out_gain: float(),
  decay: float()
) :: FFix.Stream.t()

Add a phasing effect to the audio.

Options

  • type - set modulation type (from 0 to 1) (default triangular)

    • triangular (1)
    • t (1)
    • sinusoidal (0)
    • s (0)
  • speed - set modulation speed (from 0.1 to 2) (default 0.5)

  • delay - set delay in milliseconds (from 0 to 5) (default 3)

  • in_gain - set input gain (from 0 to 1) (default 0.4)

  • out_gain - set output gain (from 0 to 1e+09) (default 0.74)

  • decay - set decay (from 0 to 0.99) (default 0.4)

aphaseshift(audio_0, options \\ [])

@spec aphaseshift(FFix.Stream.t(),
  level: float(),
  enable: String.t(),
  shift: float(),
  order: integer()
) ::
  FFix.Stream.t()

Apply phase shifting to input audio.

Options

  • level - set output level (from 0 to 1) (default 1)
  • enable - timeline expression evaluated before each frame; the filter is enabled when non-zero
  • shift - set phase shift (from -1 to 1) (default 0)
  • order - set filter order (from 1 to 16) (default 8)

apsnr(audio_0, audio_1, options \\ [])

@spec apsnr(FFix.Stream.t(), FFix.Stream.t(), [{:enable, String.t()}]) ::
  FFix.Stream.t()

Measure Audio Peak Signal-to-Noise Ratio.

Options

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

apsyclip(audio_0, options \\ [])

@spec apsyclip(FFix.Stream.t(),
  level: boolean(),
  enable: String.t(),
  diff: boolean(),
  level_in: float(),
  level_out: float(),
  adaptive: float(),
  clip: float(),
  iterations: integer()
) :: FFix.Stream.t()

Audio Psychoacoustic Clipper.

Options

  • level - set auto level (default false)
  • enable - timeline expression evaluated before each frame; the filter is enabled when non-zero
  • diff - enable difference (default false)
  • level_in - set input level (from 0.015625 to 64) (default 1)
  • level_out - set output level (from 0.015625 to 64) (default 1)
  • adaptive - set adaptive distortion (from 0 to 1) (default 0.5)
  • clip - set clip level (from 0.015625 to 1) (default 1)
  • iterations - set iterations (from 1 to 20) (default 10)

apulsator(audio_0, options \\ [])

@spec apulsator(FFix.Stream.t(),
  mode: integer() | String.t() | atom(),
  width: float(),
  amount: float(),
  level_in: float(),
  level_out: float(),
  offset_l: float(),
  offset_r: float(),
  timing: integer() | String.t() | atom(),
  bpm: float(),
  ms: integer(),
  hz: float()
) :: FFix.Stream.t()

Audio pulsator.

Options

  • mode - set mode (from 0 to 4) (default sine)

    • sine (0)
    • triangle (1)
    • square (2)
    • sawup (3)
    • sawdown (4)
  • width - set pulse width (from 0 to 2) (default 1)

  • amount - set modulation (from 0 to 1) (default 1)

  • level_in - set input gain (from 0.015625 to 64) (default 1)

  • level_out - set output gain (from 0.015625 to 64) (default 1)

  • offset_l - set offset L (from 0 to 1) (default 0)

  • offset_r - set offset R (from 0 to 1) (default 0.5)

  • timing - set timing (from 0 to 2) (default hz)

    • bpm (0)
    • ms (1)
    • hz (2)
  • bpm - set BPM (from 30 to 300) (default 120)

  • ms - set ms (from 10 to 2000) (default 500)

  • hz - set frequency (from 0.01 to 100) (default 2)

arealtime(audio_0, options \\ [])

@spec arealtime(FFix.Stream.t(), speed: float(), limit: term()) :: FFix.Stream.t()

Slow down filtering to match realtime.

Options

  • speed - speed factor (from DBL_MIN to DBL_MAX) (default 1)
  • limit - sleep time limit (default 2)

aresample(audio_0, options \\ [])

@spec aresample(
  FFix.Stream.t(),
  [{:sample_rate, integer()}]
) :: FFix.Stream.t()

Resample audio data.

Options

  • sample_rate - (from 0 to INT_MAX) (default 0)

areverse(audio_0, options \\ [])

@spec areverse(
  FFix.Stream.t(),
  []
) :: FFix.Stream.t()

Reverse an audio clip.

Options

arls(audio_0, audio_1, options \\ [])

@spec arls(FFix.Stream.t(), FFix.Stream.t(),
  enable: String.t(),
  precision: integer() | String.t() | atom(),
  lambda: float(),
  order: integer(),
  delta: float(),
  out_mode: integer() | String.t() | atom()
) :: FFix.Stream.t()

Apply Recursive Least Squares algorithm to first audio stream.

Options

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

  • precision - 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
  • lambda - set the filter lambda (from 0 to 1) (default 1)

  • order - set the filter order (from 1 to 32767) (default 16)

  • delta - set the filter delta (from 0 to 32767) (default 2)

  • out_mode - set output mode (from 0 to 4) (default o)

    • i (0) - input
    • d (1) - desired
    • o (2) - output
    • n (3) - noise
    • e (4) - error

arnndn(audio_0, options \\ [])

@spec arnndn(FFix.Stream.t(),
  m: String.t(),
  enable: String.t(),
  mix: float(),
  model: String.t()
) ::
  FFix.Stream.t()

Reduce noise from speech using Recurrent Neural Networks.

Options

  • m - set model name
  • enable - timeline expression evaluated before each frame; the filter is enabled when non-zero
  • mix - set output vs input mix (from -1 to 1) (default 1)
  • model - set model name

asdr(audio_0, audio_1, options \\ [])

@spec asdr(FFix.Stream.t(), FFix.Stream.t(), [{:enable, String.t()}]) ::
  FFix.Stream.t()

Measure Audio Signal-to-Distortion Ratio.

Options

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

asendcmd(audio_0, options \\ [])

@spec asendcmd(FFix.Stream.t(),
  filename: String.t(),
  c: String.t(),
  f: String.t(),
  commands: String.t()
) :: FFix.Stream.t()

Send commands to filters.

Options

  • filename - set commands file
  • c - set commands
  • f - set commands file
  • commands - set commands

asetnsamples(audio_0, options \\ [])

@spec asetnsamples(FFix.Stream.t(),
  p: boolean(),
  pad: boolean(),
  enable: String.t(),
  n: integer(),
  nb_out_samples: integer()
) :: FFix.Stream.t()

Set the number of samples for each output audio frames.

Options

  • p - pad last frame with zeros (default true)
  • pad - pad last frame with zeros (default true)
  • enable - timeline expression evaluated before each frame; the filter is enabled when non-zero
  • n - set the number of per-frame output samples (from 1 to INT_MAX) (default 1024)
  • nb_out_samples - set the number of per-frame output samples (from 1 to INT_MAX) (default 1024)

asetpts(audio_0, options \\ [])

@spec asetpts(
  FFix.Stream.t(),
  [{:expr, String.t()}]
) :: FFix.Stream.t()

Set PTS for the output audio frame.

Options

  • expr - Expression determining the frame timestamp (default "PTS")

asetrate(audio_0, options \\ [])

@spec asetrate(FFix.Stream.t(), r: integer(), sample_rate: integer()) ::
  FFix.Stream.t()

Change the sample rate without altering the data.

Options

  • r - set the sample rate (from 1 to INT_MAX) (default 44100)
  • sample_rate - set the sample rate (from 1 to INT_MAX) (default 44100)

asettb(audio_0, options \\ [])

@spec asettb(FFix.Stream.t(), expr: String.t(), tb: String.t()) :: FFix.Stream.t()

Set timebase for the audio output link.

Options

  • expr - set expression determining the output timebase (default "intb")
  • tb - set expression determining the output timebase (default "intb")

ashowinfo(audio_0, options \\ [])

@spec ashowinfo(
  FFix.Stream.t(),
  []
) :: FFix.Stream.t()

Show textual information for each audio frame.

Options

asidedata(audio_0, options \\ [])

@spec asidedata(FFix.Stream.t(),
  type: integer() | String.t() | atom(),
  mode: integer() | String.t() | atom(),
  enable: String.t()
) :: FFix.Stream.t()

Manipulate audio frame side data.

Options

  • type - 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)
  • mode - set a mode of operation (from 0 to 1) (default select)

    • select (0) - select frame
    • delete (1) - delete side data
  • enable - timeline expression evaluated before each frame; the filter is enabled when non-zero

asisdr(audio_0, audio_1, options \\ [])

@spec asisdr(FFix.Stream.t(), FFix.Stream.t(), [{:enable, String.t()}]) ::
  FFix.Stream.t()

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

Options

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

asoftclip(audio_0, options \\ [])

@spec asoftclip(FFix.Stream.t(),
  output: float(),
  type: integer() | String.t() | atom(),
  enable: String.t(),
  threshold: float(),
  param: float(),
  oversample: integer()
) :: FFix.Stream.t()

Audio Soft Clipper.

Options

  • output - set softclip output gain (from 1e-06 to 16) (default 1)

  • type - 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)
  • enable - timeline expression evaluated before each frame; the filter is enabled when non-zero

  • threshold - set softclip threshold (from 1e-06 to 1) (default 1)

  • param - set softclip parameter (from 0.01 to 3) (default 1)

  • oversample - set oversample factor (from 1 to 64) (default 1)

aspectralstats(audio_0, options \\ [])

@spec aspectralstats(FFix.Stream.t(),
  overlap: float(),
  win_func: integer() | String.t() | atom(),
  win_size: integer(),
  measure: integer() | String.t() | atom() | [String.t() | atom()]
) :: FFix.Stream.t()

Show frequency domain statistics about audio frames.

Options

  • overlap - set window overlap (from 0 to 1) (default 0.5)

  • win_func - 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 - set the window size (from 32 to 65536) (default 2048)

  • measure - 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

astats(audio_0, options \\ [])

@spec astats(FFix.Stream.t(),
  reset: integer(),
  length: float(),
  metadata: boolean(),
  measure_perchannel: integer() | String.t() | atom() | [String.t() | atom()],
  measure_overall: integer() | String.t() | atom() | [String.t() | atom()]
) :: FFix.Stream.t()

Show time domain statistics about audio frames.

Options

  • reset - Set the number of frames over which cumulative stats are calculated before being reset (from 0 to INT_MAX) (default 0)

  • length - set the window length (from 0 to 10) (default 0.05)

  • metadata - inject metadata in the filtergraph (default false)

  • measure_perchannel - 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
  • measure_overall - 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

asubboost(audio_0, options \\ [])

@spec asubboost(FFix.Stream.t(),
  enable: String.t(),
  delay: float(),
  feedback: float(),
  channels: String.t(),
  dry: float(),
  wet: float(),
  slope: float(),
  cutoff: float(),
  decay: float(),
  boost: float()
) :: FFix.Stream.t()

Boost subwoofer frequencies.

Options

  • enable - timeline expression evaluated before each frame; the filter is enabled when non-zero
  • delay - set delay (from 1 to 100) (default 20)
  • feedback - set feedback (from 0 to 1) (default 0.9)
  • channels - set channels to filter (default "all")
  • dry - set dry gain (from 0 to 1) (default 1)
  • wet - set wet gain (from 0 to 1) (default 1)
  • slope - set slope (from 0.0001 to 1) (default 0.5)
  • cutoff - set cutoff (from 50 to 900) (default 100)
  • decay - set decay (from 0 to 1) (default 0)
  • boost - set max boost (from 1 to 12) (default 2)

asubcut(audio_0, options \\ [])

@spec asubcut(FFix.Stream.t(),
  level: float(),
  enable: String.t(),
  order: integer(),
  cutoff: float()
) ::
  FFix.Stream.t()

Cut subwoofer frequencies.

Options

  • level - set input level (from 0 to 1) (default 1)
  • enable - timeline expression evaluated before each frame; the filter is enabled when non-zero
  • order - set filter order (from 3 to 20) (default 10)
  • cutoff - set cutoff frequency (from 2 to 200) (default 20)

asupercut(audio_0, options \\ [])

@spec asupercut(FFix.Stream.t(),
  level: float(),
  enable: String.t(),
  order: integer(),
  cutoff: float()
) ::
  FFix.Stream.t()

Cut super frequencies.

Options

  • level - set input level (from 0 to 1) (default 1)
  • enable - timeline expression evaluated before each frame; the filter is enabled when non-zero
  • order - set filter order (from 3 to 20) (default 10)
  • cutoff - set cutoff frequency (from 20000 to 192000) (default 20000)

asuperpass(audio_0, options \\ [])

@spec asuperpass(FFix.Stream.t(),
  level: float(),
  enable: String.t(),
  order: integer(),
  centerf: float(),
  qfactor: float()
) :: FFix.Stream.t()

Apply high order Butterworth band-pass filter.

Options

  • level - set input level (from 0 to 2) (default 1)
  • enable - timeline expression evaluated before each frame; the filter is enabled when non-zero
  • order - set filter order (from 4 to 20) (default 4)
  • centerf - set center frequency (from 2 to 999999) (default 1000)
  • qfactor - set Q-factor (from 0.01 to 100) (default 1)

asuperstop(audio_0, options \\ [])

@spec asuperstop(FFix.Stream.t(),
  level: float(),
  enable: String.t(),
  order: integer(),
  centerf: float(),
  qfactor: float()
) :: FFix.Stream.t()

Apply high order Butterworth band-stop filter.

Options

  • level - set input level (from 0 to 2) (default 1)
  • enable - timeline expression evaluated before each frame; the filter is enabled when non-zero
  • order - set filter order (from 4 to 20) (default 4)
  • centerf - set center frequency (from 2 to 999999) (default 1000)
  • qfactor - set Q-factor (from 0.01 to 100) (default 1)

atempo(audio_0, options \\ [])

@spec atempo(
  FFix.Stream.t(),
  [{:tempo, float()}]
) :: FFix.Stream.t()

Adjust audio tempo.

Options

  • tempo - set tempo scale factor (from 0.5 to 100) (default 1)

atilt(audio_0, options \\ [])

@spec atilt(FFix.Stream.t(),
  level: float(),
  enable: String.t(),
  width: float(),
  order: integer(),
  freq: float(),
  slope: float()
) :: FFix.Stream.t()

Apply spectral tilt to audio.

Options

  • level - set input level (from 0 to 4) (default 1)
  • enable - timeline expression evaluated before each frame; the filter is enabled when non-zero
  • width - set filter width (from 100 to 10000) (default 1000)
  • order - set filter order (from 2 to 30) (default 5)
  • freq - set central frequency (from 20 to 192000) (default 10000)
  • slope - set filter slope (from -1 to 1) (default 0)

atrim(audio_0, options \\ [])

@spec atrim(FFix.Stream.t(),
  start: term(),
  end: term(),
  duration: term(),
  starti: term(),
  endi: term(),
  start_pts: integer(),
  end_pts: integer(),
  durationi: term(),
  start_sample: integer(),
  end_sample: integer()
) :: FFix.Stream.t()

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

Options

  • start - Timestamp of the first frame that should be passed (default INT64_MAX)
  • end - Timestamp of the first frame that should be dropped again (default INT64_MAX)
  • duration - Maximum duration of the output (default 0)
  • starti - Timestamp of the first frame that should be passed (default INT64_MAX)
  • endi - Timestamp of the first frame that should be dropped again (default INT64_MAX)
  • start_pts - Timestamp of the first frame that should be passed (from I64_MIN to I64_MAX) (default I64_MIN)
  • end_pts - Timestamp of the first frame that should be dropped again (from I64_MIN to I64_MAX) (default I64_MIN)
  • durationi - Maximum duration of the output (default 0)
  • start_sample - Number of the first audio sample that should be passed to the output (from -1 to I64_MAX) (default -1)
  • end_sample - Number of the first audio sample that should be dropped again (from 0 to I64_MAX) (default I64_MAX)

axcorrelate(audio_0, audio_1, options \\ [])

@spec axcorrelate(FFix.Stream.t(), FFix.Stream.t(),
  size: integer(),
  algo: integer() | String.t() | atom()
) :: FFix.Stream.t()

Cross-correlate two audio streams.

Options

  • size - set the segment size (from 2 to 131072) (default 256)
  • algo - set the algorithm (from 0 to 2) (default best)
    • slow (0) - slow algorithm
    • fast (1) - fast algorithm
    • best (2) - best algorithm

azmq(audio_0, options \\ [])

@spec azmq(FFix.Stream.t(), b: String.t(), bind_address: String.t()) ::
  FFix.Stream.t()

Receive commands through ZMQ and broker them to filters.

Options

  • b - set bind address (default "tcp://*:5555")
  • bind_address - set bind address (default "tcp://*:5555")

bandpass(audio_0, options \\ [])

@spec bandpass(FFix.Stream.t(),
  normalize: boolean(),
  c: String.t(),
  m: float(),
  f: float(),
  a: integer() | String.t() | atom(),
  b: integer(),
  enable: String.t(),
  r: integer() | String.t() | atom(),
  width: float(),
  precision: integer() | String.t() | atom(),
  w: float(),
  mix: float(),
  n: boolean(),
  transform: integer() | String.t() | atom(),
  t: integer() | String.t() | atom(),
  channels: String.t(),
  frequency: float(),
  width_type: integer() | String.t() | atom(),
  blocksize: integer(),
  csg: boolean()
) :: FFix.Stream.t()

Apply a two-pole Butterworth band-pass filter.

Options

  • normalize - normalize coefficients (default false)

  • c - set channels to filter (default "all")

  • m - set mix (from 0 to 1) (default 1)

  • f - set central frequency (from 0 to 999999) (default 3000)

  • a - 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 - set the block size (from 0 to 32768) (default 0)

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

  • r - 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
  • width - set width (from 0 to 99999) (default 0.5)

  • precision - 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
  • w - set width (from 0 to 99999) (default 0.5)

  • mix - set mix (from 0 to 1) (default 1)

  • n - normalize coefficients (default false)

  • transform - 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
  • t - 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
  • channels - set channels to filter (default "all")

  • frequency - set central frequency (from 0 to 999999) (default 3000)

  • width_type - 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
  • blocksize - set the block size (from 0 to 32768) (default 0)

  • csg - use constant skirt gain (default false)

bandreject(audio_0, options \\ [])

@spec bandreject(FFix.Stream.t(),
  normalize: boolean(),
  c: String.t(),
  m: float(),
  f: float(),
  a: integer() | String.t() | atom(),
  b: integer(),
  enable: String.t(),
  r: integer() | String.t() | atom(),
  width: float(),
  precision: integer() | String.t() | atom(),
  w: float(),
  mix: float(),
  n: boolean(),
  transform: integer() | String.t() | atom(),
  t: integer() | String.t() | atom(),
  channels: String.t(),
  frequency: float(),
  width_type: integer() | String.t() | atom(),
  blocksize: integer()
) :: FFix.Stream.t()

Apply a two-pole Butterworth band-reject filter.

Options

  • normalize - normalize coefficients (default false)

  • c - set channels to filter (default "all")

  • m - set mix (from 0 to 1) (default 1)

  • f - set central frequency (from 0 to 999999) (default 3000)

  • a - 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 - set the block size (from 0 to 32768) (default 0)

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

  • r - 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
  • width - set width (from 0 to 99999) (default 0.5)

  • precision - 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
  • w - set width (from 0 to 99999) (default 0.5)

  • mix - set mix (from 0 to 1) (default 1)

  • n - normalize coefficients (default false)

  • transform - 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
  • t - 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
  • channels - set channels to filter (default "all")

  • frequency - set central frequency (from 0 to 999999) (default 3000)

  • width_type - 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
  • blocksize - set the block size (from 0 to 32768) (default 0)

bass(audio_0, options \\ [])

@spec bass(FFix.Stream.t(),
  normalize: boolean(),
  c: String.t(),
  p: integer(),
  m: float(),
  f: float(),
  a: integer() | String.t() | atom(),
  b: integer(),
  enable: String.t(),
  r: integer() | String.t() | atom(),
  width: float(),
  precision: integer() | String.t() | atom(),
  w: float(),
  mix: float(),
  n: boolean(),
  transform: integer() | String.t() | atom(),
  t: integer() | String.t() | atom(),
  channels: String.t(),
  gain: float(),
  poles: integer(),
  frequency: float(),
  width_type: integer() | String.t() | atom(),
  blocksize: integer(),
  g: float()
) :: FFix.Stream.t()

Boost or cut lower frequencies.

Options

  • normalize - normalize coefficients (default false)

  • c - set channels to filter (default "all")

  • p - set number of poles (from 1 to 2) (default 2)

  • m - set mix (from 0 to 1) (default 1)

  • f - set central frequency (from 0 to 999999) (default 100)

  • a - 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 - set the block size (from 0 to 32768) (default 0)

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

  • r - 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
  • width - set width (from 0 to 99999) (default 0.5)

  • precision - 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
  • w - set width (from 0 to 99999) (default 0.5)

  • mix - set mix (from 0 to 1) (default 1)

  • n - normalize coefficients (default false)

  • transform - 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
  • t - 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
  • channels - set channels to filter (default "all")

  • gain - set gain (from -900 to 900) (default 0)

  • poles - set number of poles (from 1 to 2) (default 2)

  • frequency - set central frequency (from 0 to 999999) (default 100)

  • width_type - 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
  • blocksize - set the block size (from 0 to 32768) (default 0)

  • g - set gain (from -900 to 900) (default 0)

biquad(audio_0, options \\ [])

@spec biquad(FFix.Stream.t(),
  normalize: boolean(),
  c: String.t(),
  m: float(),
  a: integer() | String.t() | atom(),
  b: integer(),
  enable: String.t(),
  r: integer() | String.t() | atom(),
  precision: integer() | String.t() | atom(),
  mix: float(),
  n: boolean(),
  transform: integer() | String.t() | atom(),
  channels: String.t(),
  blocksize: integer(),
  a0: float(),
  a1: float(),
  a2: float(),
  b0: float(),
  b1: float(),
  b2: float()
) :: FFix.Stream.t()

Apply a biquad IIR filter with the given coefficients.

Options

  • normalize - normalize coefficients (default false)

  • c - set channels to filter (default "all")

  • m - set mix (from 0 to 1) (default 1)

  • a - 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 - set the block size (from 0 to 32768) (default 0)

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

  • r - 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
  • precision - 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
  • mix - set mix (from 0 to 1) (default 1)

  • n - normalize coefficients (default false)

  • transform - 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
  • channels - set channels to filter (default "all")

  • blocksize - set the block size (from 0 to 32768) (default 0)

  • a0 - (from INT_MIN to INT_MAX) (default 1)

  • a1 - (from INT_MIN to INT_MAX) (default 0)

  • a2 - (from INT_MIN to INT_MAX) (default 0)

  • b0 - (from INT_MIN to INT_MAX) (default 0)

  • b1 - (from INT_MIN to INT_MAX) (default 0)

  • b2 - (from INT_MIN to INT_MAX) (default 0)

bs2b(audio_0, options \\ [])

@spec bs2b(FFix.Stream.t(),
  profile: integer() | String.t() | atom(),
  fcut: integer(),
  feed: integer()
) ::
  FFix.Stream.t()

Bauer stereo-to-binaural filter.

Options

  • profile - 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
  • fcut - Set cut frequency (in Hz) (from 0 to 2000) (default 0)

  • feed - Set feed level (in Hz) (from 0 to 150) (default 0)

channelmap(audio_0, options \\ [])

@spec channelmap(FFix.Stream.t(), map: String.t(), channel_layout: term()) ::
  FFix.Stream.t()

Remap audio channels.

Options

  • map - A comma-separated list of input channel numbers in output order.
  • channel_layout - Output channel layout.

chorus(audio_0, options \\ [])

@spec chorus(FFix.Stream.t(),
  decays: String.t(),
  in_gain: float(),
  out_gain: float(),
  delays: String.t(),
  speeds: String.t(),
  depths: String.t()
) :: FFix.Stream.t()

Add a chorus effect to the audio.

Options

  • decays - set decays
  • in_gain - set input gain (from 0 to 1) (default 0.4)
  • out_gain - set output gain (from 0 to 1) (default 0.4)
  • delays - set delays
  • speeds - set speeds
  • depths - set depths

compand(audio_0, options \\ [])

@spec compand(FFix.Stream.t(),
  delay: float(),
  volume: float(),
  gain: float(),
  attacks: String.t(),
  decays: String.t(),
  points: String.t(),
  "soft-knee": float()
) :: FFix.Stream.t()

Compress or expand audio dynamic range.

Options

  • delay - set delay for samples before sending them to volume adjuster (from 0 to 20) (default 0)
  • volume - set initial volume (from -900 to 0) (default 0)
  • gain - set output gain (from -900 to 900) (default 0)
  • attacks - set time over which increase of volume is determined (default "0")
  • decays - set time over which decrease of volume is determined (default "0.8")
  • points - set points of transfer function (default "-70/-70|-60/-20|1/0")
  • soft-knee - set soft-knee (from 0.01 to 900) (default 0.01)

compensationdelay(audio_0, options \\ [])

@spec compensationdelay(FFix.Stream.t(),
  m: integer(),
  enable: String.t(),
  mm: integer(),
  temp: integer(),
  cm: integer(),
  dry: float(),
  wet: float()
) :: FFix.Stream.t()

Audio Compensation Delay Line.

Options

  • m - set meter distance (from 0 to 100) (default 0)
  • enable - timeline expression evaluated before each frame; the filter is enabled when non-zero
  • mm - set mm distance (from 0 to 10) (default 0)
  • temp - set temperature °C (from -50 to 50) (default 20)
  • cm - set cm distance (from 0 to 100) (default 0)
  • dry - set dry amount (from 0 to 1) (default 0)
  • wet - set wet amount (from 0 to 1) (default 1)

crossfeed(audio_0, options \\ [])

@spec crossfeed(FFix.Stream.t(),
  range: float(),
  enable: String.t(),
  block_size: integer(),
  slope: float(),
  strength: float(),
  level_in: float(),
  level_out: float()
) :: FFix.Stream.t()

Apply headphone crossfeed filter.

Options

  • range - set soundstage wideness (from 0 to 1) (default 0.5)
  • enable - timeline expression evaluated before each frame; the filter is enabled when non-zero
  • block_size - set the block size (from 0 to 32768) (default 0)
  • slope - set curve slope (from 0.01 to 1) (default 0.5)
  • strength - set crossfeed strength (from 0 to 1) (default 0.2)
  • level_in - set level in (from 0 to 1) (default 0.9)
  • level_out - set level out (from 0 to 1) (default 1)

crystalizer(audio_0, options \\ [])

@spec crystalizer(FFix.Stream.t(), c: boolean(), i: float(), enable: String.t()) ::
  FFix.Stream.t()

Simple audio noise sharpening filter.

Options

  • c - enable clipping (default true)
  • i - set intensity (from -10 to 10) (default 2)
  • enable - timeline expression evaluated before each frame; the filter is enabled when non-zero

dcshift(audio_0, options \\ [])

@spec dcshift(FFix.Stream.t(),
  enable: String.t(),
  shift: float(),
  limitergain: float()
) ::
  FFix.Stream.t()

Apply a DC shift to the audio.

Options

  • enable - timeline expression evaluated before each frame; the filter is enabled when non-zero
  • shift - set DC shift (from -1 to 1) (default 0)
  • limitergain - set limiter gain (from 0 to 1) (default 0)

deesser(audio_0, options \\ [])

@spec deesser(FFix.Stream.t(),
  i: float(),
  m: float(),
  f: float(),
  s: integer() | String.t() | atom(),
  enable: String.t()
) :: FFix.Stream.t()

Apply de-essing to the audio.

Options

  • i - set intensity (from 0 to 1) (default 0)

  • m - set max deessing (from 0 to 1) (default 0.5)

  • f - set frequency (from 0 to 1) (default 0.5)

  • s - set output mode (from 0 to 2) (default o)

    • i (0) - input
    • o (1) - output
    • e (2) - ess
  • enable - timeline expression evaluated before each frame; the filter is enabled when non-zero

dialoguenhance(audio_0, options \\ [])

@spec dialoguenhance(FFix.Stream.t(),
  enable: String.t(),
  original: float(),
  enhance: float(),
  voice: float()
) :: FFix.Stream.t()

Audio Dialogue Enhancement.

Options

  • enable - timeline expression evaluated before each frame; the filter is enabled when non-zero
  • original - set original center factor (from 0 to 1) (default 1)
  • enhance - set dialogue enhance factor (from 0 to 3) (default 1)
  • voice - set voice detection factor (from 2 to 32) (default 2)

drmeter(audio_0, options \\ [])

@spec drmeter(
  FFix.Stream.t(),
  [{:length, float()}]
) :: FFix.Stream.t()

Measure audio dynamic range.

Options

  • length - set the window length (from 0.01 to 10) (default 3)

dynaudnorm(audio_0, options \\ [])

@spec dynaudnorm(FFix.Stream.t(),
  compress: float(),
  c: boolean(),
  p: float(),
  v: String.t(),
  m: float(),
  f: integer(),
  b: boolean(),
  s: float(),
  enable: String.t(),
  h: String.t(),
  r: float(),
  threshold: float(),
  n: boolean(),
  curve: String.t(),
  o: float(),
  t: float(),
  overlap: float(),
  channels: String.t(),
  g: integer(),
  coupling: boolean(),
  framelen: integer(),
  gausssize: integer(),
  peak: float(),
  maxgain: float(),
  targetrms: float(),
  correctdc: boolean(),
  altboundary: boolean()
) :: FFix.Stream.t()

Dynamic Audio Normalizer.

Options

  • compress - set the compress factor (from 0 to 30) (default 0)
  • c - set DC correction (default false)
  • p - set the peak value (from 0 to 1) (default 0.95)
  • v - set the custom peak mapping curve
  • m - set the max amplification (from 1 to 100) (default 10)
  • f - set the frame length in msec (from 10 to 8000) (default 500)
  • b - set alternative boundary mode (default false)
  • s - set the compress factor (from 0 to 30) (default 0)
  • enable - timeline expression evaluated before each frame; the filter is enabled when non-zero
  • h - set channels to filter (default "all")
  • r - set the target RMS (from 0 to 1) (default 0)
  • threshold - set the threshold value (from 0 to 1) (default 0)
  • n - set channel coupling (default true)
  • curve - set the custom peak mapping curve
  • o - set the frame overlap (from 0 to 1) (default 0)
  • t - set the threshold value (from 0 to 1) (default 0)
  • overlap - set the frame overlap (from 0 to 1) (default 0)
  • channels - set channels to filter (default "all")
  • g - set the filter size (from 3 to 301) (default 31)
  • coupling - set channel coupling (default true)
  • framelen - set the frame length in msec (from 10 to 8000) (default 500)
  • gausssize - set the filter size (from 3 to 301) (default 31)
  • peak - set the peak value (from 0 to 1) (default 0.95)
  • maxgain - set the max amplification (from 1 to 100) (default 10)
  • targetrms - set the target RMS (from 0 to 1) (default 0)
  • correctdc - set DC correction (default false)
  • altboundary - set alternative boundary mode (default false)

earwax(audio_0, options \\ [])

@spec earwax(
  FFix.Stream.t(),
  []
) :: FFix.Stream.t()

Widen the stereo image.

Options

equalizer(audio_0, options \\ [])

@spec equalizer(FFix.Stream.t(),
  normalize: boolean(),
  c: String.t(),
  m: float(),
  f: float(),
  a: integer() | String.t() | atom(),
  b: integer(),
  enable: String.t(),
  r: integer() | String.t() | atom(),
  width: float(),
  precision: integer() | String.t() | atom(),
  w: float(),
  mix: float(),
  n: boolean(),
  transform: integer() | String.t() | atom(),
  t: integer() | String.t() | atom(),
  channels: String.t(),
  gain: float(),
  frequency: float(),
  width_type: integer() | String.t() | atom(),
  blocksize: integer(),
  g: float()
) :: FFix.Stream.t()

Apply two-pole peaking equalization (EQ) filter.

Options

  • normalize - normalize coefficients (default false)

  • c - set channels to filter (default "all")

  • m - set mix (from 0 to 1) (default 1)

  • f - set central frequency (from 0 to 999999) (default 0)

  • a - 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 - set the block size (from 0 to 32768) (default 0)

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

  • r - 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
  • width - set width (from 0 to 99999) (default 1)

  • precision - 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
  • w - set width (from 0 to 99999) (default 1)

  • mix - set mix (from 0 to 1) (default 1)

  • n - normalize coefficients (default false)

  • transform - 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
  • t - 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
  • channels - set channels to filter (default "all")

  • gain - set gain (from -900 to 900) (default 0)

  • frequency - set central frequency (from 0 to 999999) (default 0)

  • width_type - 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
  • blocksize - set the block size (from 0 to 32768) (default 0)

  • g - set gain (from -900 to 900) (default 0)

extrastereo(audio_0, options \\ [])

@spec extrastereo(FFix.Stream.t(), c: boolean(), m: float(), enable: String.t()) ::
  FFix.Stream.t()

Increase difference between stereo audio channels.

Options

  • c - enable clipping (default true)
  • m - set the difference coefficient (from -10 to 10) (default 2.5)
  • enable - timeline expression evaluated before each frame; the filter is enabled when non-zero

firequalizer(audio_0, options \\ [])

@spec firequalizer(FFix.Stream.t(),
  multi: boolean(),
  delay: float(),
  scale: integer() | String.t() | atom(),
  gain: String.t(),
  gain_entry: String.t(),
  accuracy: float(),
  wfunc: integer() | String.t() | atom(),
  fixed: boolean(),
  zero_phase: boolean(),
  dumpfile: String.t(),
  dumpscale: integer() | String.t() | atom(),
  fft2: boolean(),
  min_phase: boolean()
) :: FFix.Stream.t()

Finite Impulse Response Equalizer.

Options

  • multi - set multi channels mode (default false)

  • delay - set delay (from 0 to 1e+10) (default 0.01)

  • scale - 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
  • gain - set gain curve (default "gain_interpolate(f)")

  • gain_entry - set gain entry

  • accuracy - set accuracy (from 0 to 1e+10) (default 5)

  • wfunc - 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
  • fixed - set fixed frame samples (default false)

  • zero_phase - set zero phase mode (default false)

  • dumpfile - set dump file

  • dumpscale - 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 - set 2-channels fft (default false)

  • min_phase - set minimum phase mode (default false)

flanger(audio_0, options \\ [])

@spec flanger(FFix.Stream.t(),
  speed: float(),
  depth: float(),
  width: float(),
  delay: float(),
  phase: float(),
  shape: integer() | String.t() | atom(),
  interp: integer() | String.t() | atom(),
  regen: float()
) :: FFix.Stream.t()

Apply a flanging effect to the audio.

Options

  • speed - sweeps per second (Hz) (from 0.1 to 10) (default 0.5)

  • depth - added swept delay in milliseconds (from 0 to 10) (default 2)

  • width - percentage of delayed signal mixed with original (from 0 to 100) (default 71)

  • delay - base delay in milliseconds (from 0 to 30) (default 0)

  • phase - swept wave percentage phase-shift for multi-channel (from 0 to 100) (default 25)

  • shape - swept wave shape (from 0 to 1) (default sinusoidal)

    • triangular (1)
    • t (1)
    • sinusoidal (0)
    • s (0)
  • interp - delay-line interpolation (from 0 to 1) (default linear)

    • linear (0)
    • quadratic (1)
  • regen - percentage regeneration (delayed signal feedback) (from -95 to 95) (default 0)

haas(audio_0, options \\ [])

@spec haas(FFix.Stream.t(),
  level_in: float(),
  level_out: float(),
  side_gain: float(),
  middle_source: integer() | String.t() | atom(),
  middle_phase: boolean(),
  left_delay: float(),
  left_balance: float(),
  left_gain: float(),
  left_phase: boolean(),
  right_delay: float(),
  right_balance: float(),
  right_gain: float(),
  right_phase: boolean()
) :: FFix.Stream.t()

Apply Haas Stereo Enhancer.

Options

  • level_in - set level in (from 0.015625 to 64) (default 1)

  • level_out - set level out (from 0.015625 to 64) (default 1)

  • side_gain - set side gain (from 0.015625 to 64) (default 1)

  • middle_source - set middle source (from 0 to 3) (default mid)

    • left (0)
    • right (1)
    • mid (2) - L+R
    • side (3) - L-R
  • middle_phase - set middle phase (default false)

  • left_delay - set left delay (from 0 to 40) (default 2.05)

  • left_balance - set left balance (from -1 to 1) (default -1)

  • left_gain - set left gain (from 0.015625 to 64) (default 1)

  • left_phase - set left phase (default false)

  • right_delay - set right delay (from 0 to 40) (default 2.12)

  • right_balance - set right balance (from -1 to 1) (default 1)

  • right_gain - set right gain (from 0.015625 to 64) (default 1)

  • right_phase - set right phase (default true)

hdcd(audio_0, options \\ [])

@spec hdcd(FFix.Stream.t(),
  disable_autoconvert: boolean(),
  process_stereo: boolean(),
  cdt_ms: integer(),
  force_pe: boolean(),
  analyze_mode: integer() | String.t() | atom(),
  bits_per_sample: integer() | String.t() | atom()
) :: FFix.Stream.t()

Apply High Definition Compatible Digital (HDCD) decoding.

Options

  • disable_autoconvert - Disable any format conversion or resampling in the filter graph. (default true)

  • process_stereo - Process stereo channels together. Only apply target_gain when both channels match. (default true)

  • cdt_ms - Code detect timer period in ms. (from 100 to 60000) (default 2000)

  • force_pe - Always extend peaks above -3dBFS even when PE is not signaled. (default false)

  • analyze_mode - 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 - 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)

highpass(audio_0, options \\ [])

@spec highpass(FFix.Stream.t(),
  normalize: boolean(),
  c: String.t(),
  p: integer(),
  m: float(),
  f: float(),
  a: integer() | String.t() | atom(),
  b: integer(),
  enable: String.t(),
  r: integer() | String.t() | atom(),
  width: float(),
  precision: integer() | String.t() | atom(),
  w: float(),
  mix: float(),
  n: boolean(),
  transform: integer() | String.t() | atom(),
  t: integer() | String.t() | atom(),
  channels: String.t(),
  poles: integer(),
  frequency: float(),
  width_type: integer() | String.t() | atom(),
  blocksize: integer()
) :: FFix.Stream.t()

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

Options

  • normalize - normalize coefficients (default false)

  • c - set channels to filter (default "all")

  • p - set number of poles (from 1 to 2) (default 2)

  • m - set mix (from 0 to 1) (default 1)

  • f - set frequency (from 0 to 999999) (default 3000)

  • a - 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 - set the block size (from 0 to 32768) (default 0)

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

  • r - 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
  • width - set width (from 0 to 99999) (default 0.707)

  • precision - 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
  • w - set width (from 0 to 99999) (default 0.707)

  • mix - set mix (from 0 to 1) (default 1)

  • n - normalize coefficients (default false)

  • transform - 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
  • t - 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
  • channels - set channels to filter (default "all")

  • poles - set number of poles (from 1 to 2) (default 2)

  • frequency - set frequency (from 0 to 999999) (default 3000)

  • width_type - 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
  • blocksize - set the block size (from 0 to 32768) (default 0)

highshelf(audio_0, options \\ [])

@spec highshelf(FFix.Stream.t(),
  normalize: boolean(),
  c: String.t(),
  p: integer(),
  m: float(),
  f: float(),
  a: integer() | String.t() | atom(),
  b: integer(),
  enable: String.t(),
  r: integer() | String.t() | atom(),
  width: float(),
  precision: integer() | String.t() | atom(),
  w: float(),
  mix: float(),
  n: boolean(),
  transform: integer() | String.t() | atom(),
  t: integer() | String.t() | atom(),
  channels: String.t(),
  gain: float(),
  poles: integer(),
  frequency: float(),
  width_type: integer() | String.t() | atom(),
  blocksize: integer(),
  g: float()
) :: FFix.Stream.t()

Apply a high shelf filter.

Options

  • normalize - normalize coefficients (default false)

  • c - set channels to filter (default "all")

  • p - set number of poles (from 1 to 2) (default 2)

  • m - set mix (from 0 to 1) (default 1)

  • f - set central frequency (from 0 to 999999) (default 3000)

  • a - 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 - set the block size (from 0 to 32768) (default 0)

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

  • r - 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
  • width - set width (from 0 to 99999) (default 0.5)

  • precision - 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
  • w - set width (from 0 to 99999) (default 0.5)

  • mix - set mix (from 0 to 1) (default 1)

  • n - normalize coefficients (default false)

  • transform - 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
  • t - 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
  • channels - set channels to filter (default "all")

  • gain - set gain (from -900 to 900) (default 0)

  • poles - set number of poles (from 1 to 2) (default 2)

  • frequency - set central frequency (from 0 to 999999) (default 3000)

  • width_type - 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
  • blocksize - set the block size (from 0 to 32768) (default 0)

  • g - set gain (from -900 to 900) (default 0)

loudnorm(audio_0, options \\ [])

@spec loudnorm(FFix.Stream.t(),
  offset: float(),
  i: float(),
  tp: float(),
  I: float(),
  LRA: float(),
  lra: float(),
  TP: float(),
  measured_I: float(),
  measured_i: float(),
  measured_LRA: float(),
  measured_lra: float(),
  measured_TP: float(),
  measured_tp: float(),
  measured_thresh: float(),
  linear: boolean(),
  dual_mono: boolean(),
  print_format: integer() | String.t() | atom()
) :: FFix.Stream.t()

EBU R128 loudness normalization

Options

  • offset - set offset gain (from -99 to 99) (default 0)
  • i - set integrated loudness target (from -70 to -5) (default -24)
  • tp - set maximum true peak (from -9 to 0) (default -2)
  • I - set integrated loudness target (from -70 to -5) (default -24)
  • LRA - set loudness range target (from 1 to 50) (default 7)
  • lra - set loudness range target (from 1 to 50) (default 7)
  • TP - set maximum true peak (from -9 to 0) (default -2)
  • measured_I - measured IL of input file (from -99 to 0) (default 0)
  • measured_i - measured IL of input file (from -99 to 0) (default 0)
  • measured_LRA - measured LRA of input file (from 0 to 99) (default 0)
  • measured_lra - measured LRA of input file (from 0 to 99) (default 0)
  • measured_TP - measured true peak of input file (from -99 to 99) (default 99)
  • measured_tp - measured true peak of input file (from -99 to 99) (default 99)
  • measured_thresh - measured threshold of input file (from -99 to 0) (default -70)
  • linear - normalize linearly if possible (default true)
  • dual_mono - treat mono input as dual-mono (default false)
  • print_format - set print format for stats (from 0 to 2) (default none)
    • none (0)
    • json (1)
    • summary (2)

lowpass(audio_0, options \\ [])

@spec lowpass(FFix.Stream.t(),
  normalize: boolean(),
  c: String.t(),
  p: integer(),
  m: float(),
  f: float(),
  a: integer() | String.t() | atom(),
  b: integer(),
  enable: String.t(),
  r: integer() | String.t() | atom(),
  width: float(),
  precision: integer() | String.t() | atom(),
  w: float(),
  mix: float(),
  n: boolean(),
  transform: integer() | String.t() | atom(),
  t: integer() | String.t() | atom(),
  channels: String.t(),
  poles: integer(),
  frequency: float(),
  width_type: integer() | String.t() | atom(),
  blocksize: integer()
) :: FFix.Stream.t()

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

Options

  • normalize - normalize coefficients (default false)

  • c - set channels to filter (default "all")

  • p - set number of poles (from 1 to 2) (default 2)

  • m - set mix (from 0 to 1) (default 1)

  • f - set frequency (from 0 to 999999) (default 500)

  • a - 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 - set the block size (from 0 to 32768) (default 0)

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

  • r - 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
  • width - set width (from 0 to 99999) (default 0.707)

  • precision - 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
  • w - set width (from 0 to 99999) (default 0.707)

  • mix - set mix (from 0 to 1) (default 1)

  • n - normalize coefficients (default false)

  • transform - 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
  • t - 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
  • channels - set channels to filter (default "all")

  • poles - set number of poles (from 1 to 2) (default 2)

  • frequency - set frequency (from 0 to 999999) (default 500)

  • width_type - 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
  • blocksize - set the block size (from 0 to 32768) (default 0)

lowshelf(audio_0, options \\ [])

@spec lowshelf(FFix.Stream.t(),
  normalize: boolean(),
  c: String.t(),
  p: integer(),
  m: float(),
  f: float(),
  a: integer() | String.t() | atom(),
  b: integer(),
  enable: String.t(),
  r: integer() | String.t() | atom(),
  width: float(),
  precision: integer() | String.t() | atom(),
  w: float(),
  mix: float(),
  n: boolean(),
  transform: integer() | String.t() | atom(),
  t: integer() | String.t() | atom(),
  channels: String.t(),
  gain: float(),
  poles: integer(),
  frequency: float(),
  width_type: integer() | String.t() | atom(),
  blocksize: integer(),
  g: float()
) :: FFix.Stream.t()

Apply a low shelf filter.

Options

  • normalize - normalize coefficients (default false)

  • c - set channels to filter (default "all")

  • p - set number of poles (from 1 to 2) (default 2)

  • m - set mix (from 0 to 1) (default 1)

  • f - set central frequency (from 0 to 999999) (default 100)

  • a - 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 - set the block size (from 0 to 32768) (default 0)

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

  • r - 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
  • width - set width (from 0 to 99999) (default 0.5)

  • precision - 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
  • w - set width (from 0 to 99999) (default 0.5)

  • mix - set mix (from 0 to 1) (default 1)

  • n - normalize coefficients (default false)

  • transform - 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
  • t - 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
  • channels - set channels to filter (default "all")

  • gain - set gain (from -900 to 900) (default 0)

  • poles - set number of poles (from 1 to 2) (default 2)

  • frequency - set central frequency (from 0 to 999999) (default 100)

  • width_type - 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
  • blocksize - set the block size (from 0 to 32768) (default 0)

  • g - set gain (from -900 to 900) (default 0)

mcompand(audio_0, options \\ [])

@spec mcompand(
  FFix.Stream.t(),
  [{:args, String.t()}]
) :: FFix.Stream.t()

Multiband Compress or expand audio dynamic range.

Options

  • args - 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")

pan(audio_0, options \\ [])

@spec pan(
  FFix.Stream.t(),
  [{:args, String.t()}]
) :: FFix.Stream.t()

Remix channels with coefficients (panning).

Options

  • args -

replaygain(audio_0, options \\ [])

@spec replaygain(FFix.Stream.t(), track_gain: float(), track_peak: float()) ::
  FFix.Stream.t()

ReplayGain scanner.

Options

  • track_gain - track gain (dB) (from -FLT_MAX to FLT_MAX) (default 0)
  • track_peak - track peak (from -FLT_MAX to FLT_MAX) (default 0)

rubberband(audio_0, options \\ [])

@spec rubberband(FFix.Stream.t(),
  phase: integer() | String.t() | atom(),
  channels: integer() | String.t() | atom(),
  pitch: float(),
  tempo: float(),
  transients: integer() | String.t() | atom(),
  detector: integer() | String.t() | atom(),
  window: integer() | String.t() | atom(),
  smoothing: integer() | String.t() | atom(),
  formant: integer() | String.t() | atom(),
  pitchq: integer() | String.t() | atom()
) :: FFix.Stream.t()

Apply time-stretching and pitch-shifting.

Options

  • phase - set phase (from 0 to INT_MAX) (default laminar)

    • laminar (0)
    • independent (8192)
  • channels - set channels (from 0 to INT_MAX) (default apart)

    • apart (0)
    • together (268435456)
  • pitch - set pitch scale factor (from 0.01 to 100) (default 1)

  • tempo - set tempo scale factor (from 0.01 to 100) (default 1)

  • transients - set transients (from 0 to INT_MAX) (default crisp)

    • crisp (0)
    • mixed (256)
    • smooth (512)
  • detector - set detector (from 0 to INT_MAX) (default compound)

    • compound (0)
    • percussive (1024)
    • soft (2048)
  • window - set window (from 0 to INT_MAX) (default standard)

    • standard (0)
    • short (1048576)
    • long (2097152)
  • smoothing - set smoothing (from 0 to INT_MAX) (default off)

    • off (0)
    • on (8388608)
  • formant - set formant (from 0 to INT_MAX) (default shifted)

    • shifted (0)
    • preserved (16777216)
  • pitchq - set pitch quality (from 0 to INT_MAX) (default speed)

    • quality (33554432)
    • speed (0)
    • consistency (67108864)

sidechaincompress(audio_0, audio_1, options \\ [])

@spec sidechaincompress(FFix.Stream.t(), FFix.Stream.t(),
  link: integer() | String.t() | atom(),
  mode: integer() | String.t() | atom(),
  threshold: float(),
  mix: float(),
  makeup: float(),
  ratio: float(),
  attack: float(),
  level_in: float(),
  release: float(),
  knee: float(),
  detection: integer() | String.t() | atom(),
  level_sc: float()
) :: FFix.Stream.t()

Sidechain compressor.

Options

  • link - set link type (from 0 to 1) (default average)

    • average (0)
    • maximum (1)
  • mode - set mode (from 0 to 1) (default downward)

    • downward (0)
    • upward (1)
  • threshold - set threshold (from 0.000976563 to 1) (default 0.125)

  • mix - set mix (from 0 to 1) (default 1)

  • makeup - set make up gain (from 1 to 64) (default 1)

  • ratio - set ratio (from 1 to 20) (default 2)

  • attack - set attack (from 0.01 to 2000) (default 20)

  • level_in - set input gain (from 0.015625 to 64) (default 1)

  • release - set release (from 0.01 to 9000) (default 250)

  • knee - set knee (from 1 to 8) (default 2.82843)

  • detection - set detection (from 0 to 1) (default rms)

    • peak (0)
    • rms (1)
  • level_sc - set sidechain gain (from 0.015625 to 64) (default 1)

sidechaingate(audio_0, audio_1, options \\ [])

@spec sidechaingate(FFix.Stream.t(), FFix.Stream.t(),
  link: integer() | String.t() | atom(),
  mode: integer() | String.t() | atom(),
  range: float(),
  enable: String.t(),
  threshold: float(),
  makeup: float(),
  ratio: float(),
  attack: float(),
  level_in: float(),
  release: float(),
  knee: float(),
  detection: integer() | String.t() | atom(),
  level_sc: float()
) :: FFix.Stream.t()

Audio sidechain gate.

Options

  • link - set link (from 0 to 1) (default average)

    • average (0)
    • maximum (1)
  • mode - set mode (from 0 to 1) (default downward)

    • downward (0)
    • upward (1)
  • range - set max gain reduction (from 0 to 1) (default 0.06125)

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

  • threshold - set threshold (from 0 to 1) (default 0.125)

  • makeup - set makeup gain (from 1 to 64) (default 1)

  • ratio - set ratio (from 1 to 9000) (default 2)

  • attack - set attack (from 0.01 to 9000) (default 20)

  • level_in - set input level (from 0.015625 to 64) (default 1)

  • release - set release (from 0.01 to 9000) (default 250)

  • knee - set knee (from 1 to 8) (default 2.82843)

  • detection - set detection (from 0 to 1) (default rms)

    • peak (0)
    • rms (1)
  • level_sc - set sidechain gain (from 0.015625 to 64) (default 1)

silencedetect(audio_0, options \\ [])

@spec silencedetect(FFix.Stream.t(),
  m: boolean(),
  d: term(),
  n: float(),
  noise: float(),
  duration: term(),
  mono: boolean()
) :: FFix.Stream.t()

Detect silence.

Options

  • m - check each channel separately (default false)
  • d - set minimum duration in seconds (default 2)
  • n - set noise tolerance (from 0 to DBL_MAX) (default 0.001)
  • noise - set noise tolerance (from 0 to DBL_MAX) (default 0.001)
  • duration - set minimum duration in seconds (default 2)
  • mono - check each channel separately (default false)

silenceremove(audio_0, options \\ [])

@spec silenceremove(FFix.Stream.t(),
  timestamp: integer() | String.t() | atom(),
  enable: String.t(),
  start_mode: integer() | String.t() | atom(),
  stop_mode: integer() | String.t() | atom(),
  start_duration: term(),
  stop_duration: term(),
  detection: integer() | String.t() | atom(),
  window: term(),
  start_periods: integer(),
  start_threshold: float(),
  start_silence: term(),
  stop_periods: integer(),
  stop_threshold: float(),
  stop_silence: term()
) :: FFix.Stream.t()

Remove silence.

Options

  • timestamp - 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
  • enable - timeline expression evaluated before each frame; the filter is enabled when non-zero

  • start_mode - set which channel will trigger trimming from start (from 0 to 1) (default any)

    • any (0)
    • all (1)
  • stop_mode - set which channel will trigger trimming from end (from 0 to 1) (default all)

    • any (0)
    • all (1)
  • start_duration - set start duration of non-silence part (default 0)

  • stop_duration - set stop duration of silence part (default 0)

  • detection - 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
  • window - set duration of window for silence detection (default 0.02)

  • start_periods - set periods of silence parts to skip from start (from 0 to 9000) (default 0)

  • start_threshold - set threshold for start silence detection (from 0 to DBL_MAX) (default 0)

  • start_silence - set start duration of silence part to keep (default 0)

  • stop_periods - set periods of silence parts to skip from end (from -9000 to 9000) (default 0)

  • stop_threshold - set threshold for stop silence detection (from 0 to DBL_MAX) (default 0)

  • stop_silence - set stop duration of silence part to keep (default 0)

sofalizer(audio_0, options \\ [])

@spec sofalizer(FFix.Stream.t(),
  type: integer() | String.t() | atom(),
  normalize: boolean(),
  rotation: float(),
  interpolate: boolean(),
  gain: float(),
  radius: float(),
  sofa: String.t(),
  elevation: float(),
  speakers: String.t(),
  lfegain: float(),
  framesize: integer(),
  minphase: boolean(),
  anglestep: float(),
  radstep: float()
) :: FFix.Stream.t()

SOFAlizer (Spatially Oriented Format for Acoustics).

Options

  • type - set processing (from 0 to 1) (default freq)

    • time (0) - time domain
    • freq (1) - frequency domain
  • normalize - normalize IRs (default true)

  • rotation - set rotation (from -360 to 360) (default 0)

  • interpolate - interpolate IRs from neighbors (default false)

  • gain - set gain in dB (from -20 to 40) (default 0)

  • radius - set radius (from 0 to 5) (default 1)

  • sofa - sofa filename

  • elevation - set elevation (from -90 to 90) (default 0)

  • speakers - set speaker custom positions

  • lfegain - set lfe gain (from -20 to 40) (default 0)

  • framesize - set frame size (from 1024 to 96000) (default 1024)

  • minphase - minphase IRs (default false)

  • anglestep - set neighbor search angle step (from 0.01 to 10) (default 0.5)

  • radstep - set neighbor search radius step (from 0.01 to 1) (default 0.01)

speechnorm(audio_0, options \\ [])

@spec speechnorm(FFix.Stream.t(),
  link: boolean(),
  raise: float(),
  c: float(),
  p: float(),
  i: boolean(),
  m: float(),
  f: float(),
  enable: String.t(),
  h: String.t(),
  r: float(),
  l: boolean(),
  threshold: float(),
  t: float(),
  channels: String.t(),
  e: float(),
  expansion: float(),
  peak: float(),
  compression: float(),
  fall: float(),
  invert: boolean(),
  rms: float()
) :: FFix.Stream.t()

Speech Normalizer.

Options

  • link - set linked channels filtering (default false)
  • raise - set the expansion raising amount (from 0 to 1) (default 0.001)
  • c - set the max compression factor (from 1 to 50) (default 2)
  • p - set the peak value (from 0 to 1) (default 0.95)
  • i - set inverted filtering (default false)
  • m - set the RMS value (from 0 to 1) (default 0)
  • f - set the compression raising amount (from 0 to 1) (default 0.001)
  • enable - timeline expression evaluated before each frame; the filter is enabled when non-zero
  • h - set channels to filter (default "all")
  • r - set the expansion raising amount (from 0 to 1) (default 0.001)
  • l - set linked channels filtering (default false)
  • threshold - set the threshold value (from 0 to 1) (default 0)
  • t - set the threshold value (from 0 to 1) (default 0)
  • channels - set channels to filter (default "all")
  • e - set the max expansion factor (from 1 to 50) (default 2)
  • expansion - set the max expansion factor (from 1 to 50) (default 2)
  • peak - set the peak value (from 0 to 1) (default 0.95)
  • compression - set the max compression factor (from 1 to 50) (default 2)
  • fall - set the compression raising amount (from 0 to 1) (default 0.001)
  • invert - set inverted filtering (default false)
  • rms - set the RMS value (from 0 to 1) (default 0)

stereotools(audio_0, options \\ [])

@spec stereotools(FFix.Stream.t(),
  mode: integer() | String.t() | atom(),
  base: float(),
  enable: String.t(),
  delay: float(),
  phase: float(),
  level_in: float(),
  level_out: float(),
  balance_in: float(),
  balance_out: float(),
  softclip: boolean(),
  mutel: boolean(),
  muter: boolean(),
  phasel: boolean(),
  phaser: boolean(),
  slev: float(),
  sbal: float(),
  mlev: float(),
  mpan: float(),
  sclevel: float(),
  bmode_in: integer() | String.t() | atom(),
  bmode_out: integer() | String.t() | atom()
) :: FFix.Stream.t()

Apply various stereo tools.

Options

  • mode - 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)
  • base - set stereo base (from -1 to 1) (default 0)

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

  • delay - set delay (from -20 to 20) (default 0)

  • phase - set stereo phase (from 0 to 360) (default 0)

  • level_in - set level in (from 0.015625 to 64) (default 1)

  • level_out - set level out (from 0.015625 to 64) (default 1)

  • balance_in - set balance in (from -1 to 1) (default 0)

  • balance_out - set balance out (from -1 to 1) (default 0)

  • softclip - enable softclip (default false)

  • mutel - mute L (default false)

  • muter - mute R (default false)

  • phasel - phase L (default false)

  • phaser - phase R (default false)

  • slev - set side level (from 0.015625 to 64) (default 1)

  • sbal - set side balance (from -1 to 1) (default 0)

  • mlev - set middle level (from 0.015625 to 64) (default 1)

  • mpan - set middle pan (from -1 to 1) (default 0)

  • sclevel - set S/C level (from 1 to 100) (default 1)

  • bmode_in - set balance in mode (from 0 to 2) (default balance)

    • balance (0)
    • amplitude (1)
    • power (2)
  • bmode_out - set balance out mode (from 0 to 2) (default balance)

    • balance (0)
    • amplitude (1)
    • power (2)

stereowiden(audio_0, options \\ [])

@spec stereowiden(FFix.Stream.t(),
  enable: String.t(),
  delay: float(),
  crossfeed: float(),
  feedback: float(),
  drymix: float()
) :: FFix.Stream.t()

Apply stereo widening effect.

Options

  • enable - timeline expression evaluated before each frame; the filter is enabled when non-zero
  • delay - set delay time (from 1 to 100) (default 20)
  • crossfeed - set cross feed (from 0 to 0.8) (default 0.3)
  • feedback - set feedback gain (from 0 to 0.9) (default 0.3)
  • drymix - set dry-mix (from 0 to 1) (default 0.8)

superequalizer(audio_0, options \\ [])

@spec superequalizer(FFix.Stream.t(),
  "1b": float(),
  "2b": float(),
  "3b": float(),
  "4b": float(),
  "5b": float(),
  "6b": float(),
  "7b": float(),
  "8b": float(),
  "9b": float(),
  "10b": float(),
  "11b": float(),
  "12b": float(),
  "13b": float(),
  "14b": float(),
  "15b": float(),
  "16b": float(),
  "17b": float(),
  "18b": float()
) :: FFix.Stream.t()

Apply 18 band equalization filter.

Options

  • 1b - set 65Hz band gain (from 0 to 20) (default 1)
  • 2b - set 92Hz band gain (from 0 to 20) (default 1)
  • 3b - set 131Hz band gain (from 0 to 20) (default 1)
  • 4b - set 185Hz band gain (from 0 to 20) (default 1)
  • 5b - set 262Hz band gain (from 0 to 20) (default 1)
  • 6b - set 370Hz band gain (from 0 to 20) (default 1)
  • 7b - set 523Hz band gain (from 0 to 20) (default 1)
  • 8b - set 740Hz band gain (from 0 to 20) (default 1)
  • 9b - set 1047Hz band gain (from 0 to 20) (default 1)
  • 10b - set 1480Hz band gain (from 0 to 20) (default 1)
  • 11b - set 2093Hz band gain (from 0 to 20) (default 1)
  • 12b - set 2960Hz band gain (from 0 to 20) (default 1)
  • 13b - set 4186Hz band gain (from 0 to 20) (default 1)
  • 14b - set 5920Hz band gain (from 0 to 20) (default 1)
  • 15b - set 8372Hz band gain (from 0 to 20) (default 1)
  • 16b - set 11840Hz band gain (from 0 to 20) (default 1)
  • 17b - set 16744Hz band gain (from 0 to 20) (default 1)
  • 18b - set 20000Hz band gain (from 0 to 20) (default 1)

surround(audio_0, options \\ [])

@spec surround(FFix.Stream.t(),
  smooth: float(),
  fc_out: float(),
  win_size: integer(),
  bl_in: float(),
  bcx: float(),
  lfe_mode: integer() | String.t() | atom(),
  focus: float(),
  lfe_low: integer(),
  level_in: float(),
  srx: float(),
  sl_in: float(),
  lfe: boolean(),
  fr_out: float(),
  chl_in: term(),
  br_in: float(),
  fr_in: float(),
  br_out: float(),
  fly: float(),
  angle: float(),
  fl_out: float(),
  bcy: float(),
  win_func: integer() | String.t() | atom(),
  blx: float(),
  lfe_high: integer(),
  overlap: float(),
  fl_in: float(),
  bly: float(),
  lfe_out: float(),
  level_out: float(),
  fcx: float(),
  allx: float(),
  sr_in: float(),
  bl_out: float(),
  frx: float(),
  brx: float(),
  chl_out: term(),
  sly: float(),
  slx: float(),
  bc_in: float(),
  fcy: float(),
  flx: float(),
  fry: float(),
  sl_out: float(),
  lfe_in: float(),
  bry: float(),
  sry: float(),
  fc_in: float(),
  bc_out: float(),
  sr_out: float(),
  ally: float()
) :: FFix.Stream.t()

Apply audio surround upmix filter.

Options

  • smooth - set temporal smoothness strength (from 0 to 1) (default 0)

  • fc_out - set front center channel output level (from 0 to 10) (default 1)

  • win_size - set window size (from 1024 to 65536) (default 4096)

  • bl_in - set back left channel input level (from 0 to 10) (default 1)

  • bcx - set back center channel x spread (from 0.06 to 15) (default 0.5)

  • lfe_mode - set LFE channel mode (from 0 to 1) (default add)

    • add (0) - just add LFE channel
    • sub (1) - subtract LFE channel with others
  • focus - set soundfield transform focus (from -1 to 1) (default 0)

  • lfe_low - LFE low cut off (from 0 to 256) (default 128)

  • level_in - set input level (from 0 to 10) (default 1)

  • srx - set side right channel x spread (from 0.06 to 15) (default 0.5)

  • sl_in - set side left channel input level (from 0 to 10) (default 1)

  • lfe - output LFE (default true)

  • fr_out - set front right channel output level (from 0 to 10) (default 1)

  • chl_in - set input channel layout (default "stereo")

  • br_in - set back right channel input level (from 0 to 10) (default 1)

  • fr_in - set front right channel input level (from 0 to 10) (default 1)

  • br_out - set back right channel output level (from 0 to 10) (default 1)

  • fly - set front left channel y spread (from 0.06 to 15) (default 0.5)

  • angle - set soundfield transform angle (from 0 to 360) (default 90)

  • fl_out - set front left channel output level (from 0 to 10) (default 1)

  • bcy - set back center channel y spread (from 0.06 to 15) (default 0.5)

  • win_func - 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
  • blx - set back left channel x spread (from 0.06 to 15) (default 0.5)

  • lfe_high - LFE high cut off (from 0 to 512) (default 256)

  • overlap - set window overlap (from 0 to 1) (default 0.5)

  • fl_in - set front left channel input level (from 0 to 10) (default 1)

  • bly - set back left channel y spread (from 0.06 to 15) (default 0.5)

  • lfe_out - set lfe channel output level (from 0 to 10) (default 1)

  • level_out - set output level (from 0 to 10) (default 1)

  • fcx - set front center channel x spread (from 0.06 to 15) (default 0.5)

  • allx - set all channel's x spread (from -1 to 15) (default -1)

  • sr_in - set side right channel input level (from 0 to 10) (default 1)

  • bl_out - set back left channel output level (from 0 to 10) (default 1)

  • frx - set front right channel x spread (from 0.06 to 15) (default 0.5)

  • brx - set back right channel x spread (from 0.06 to 15) (default 0.5)

  • chl_out - set output channel layout (default "5.1")

  • sly - set side left channel y spread (from 0.06 to 15) (default 0.5)

  • slx - set side left channel x spread (from 0.06 to 15) (default 0.5)

  • bc_in - set back center channel input level (from 0 to 10) (default 1)

  • fcy - set front center channel y spread (from 0.06 to 15) (default 0.5)

  • flx - set front left channel x spread (from 0.06 to 15) (default 0.5)

  • fry - set front right channel y spread (from 0.06 to 15) (default 0.5)

  • sl_out - set side left channel output level (from 0 to 10) (default 1)

  • lfe_in - set lfe channel input level (from 0 to 10) (default 1)

  • bry - set back right channel y spread (from 0.06 to 15) (default 0.5)

  • sry - set side right channel y spread (from 0.06 to 15) (default 0.5)

  • fc_in - set front center channel input level (from 0 to 10) (default 1)

  • bc_out - set back center channel output level (from 0 to 10) (default 1)

  • sr_out - set side right channel output level (from 0 to 10) (default 1)

  • ally - set all channel's y spread (from -1 to 15) (default -1)

tiltshelf(audio_0, options \\ [])

@spec tiltshelf(FFix.Stream.t(),
  normalize: boolean(),
  c: String.t(),
  p: integer(),
  m: float(),
  f: float(),
  a: integer() | String.t() | atom(),
  b: integer(),
  enable: String.t(),
  r: integer() | String.t() | atom(),
  width: float(),
  precision: integer() | String.t() | atom(),
  w: float(),
  mix: float(),
  n: boolean(),
  transform: integer() | String.t() | atom(),
  t: integer() | String.t() | atom(),
  channels: String.t(),
  gain: float(),
  poles: integer(),
  frequency: float(),
  width_type: integer() | String.t() | atom(),
  blocksize: integer(),
  g: float()
) :: FFix.Stream.t()

Apply a tilt shelf filter.

Options

  • normalize - normalize coefficients (default false)

  • c - set channels to filter (default "all")

  • p - set number of poles (from 1 to 2) (default 2)

  • m - set mix (from 0 to 1) (default 1)

  • f - set central frequency (from 0 to 999999) (default 3000)

  • a - 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 - set the block size (from 0 to 32768) (default 0)

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

  • r - 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
  • width - set width (from 0 to 99999) (default 0.5)

  • precision - 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
  • w - set width (from 0 to 99999) (default 0.5)

  • mix - set mix (from 0 to 1) (default 1)

  • n - normalize coefficients (default false)

  • transform - 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
  • t - 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
  • channels - set channels to filter (default "all")

  • gain - set gain (from -900 to 900) (default 0)

  • poles - set number of poles (from 1 to 2) (default 2)

  • frequency - set central frequency (from 0 to 999999) (default 3000)

  • width_type - 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
  • blocksize - set the block size (from 0 to 32768) (default 0)

  • g - set gain (from -900 to 900) (default 0)

treble(audio_0, options \\ [])

@spec treble(FFix.Stream.t(),
  normalize: boolean(),
  c: String.t(),
  p: integer(),
  m: float(),
  f: float(),
  a: integer() | String.t() | atom(),
  b: integer(),
  enable: String.t(),
  r: integer() | String.t() | atom(),
  width: float(),
  precision: integer() | String.t() | atom(),
  w: float(),
  mix: float(),
  n: boolean(),
  transform: integer() | String.t() | atom(),
  t: integer() | String.t() | atom(),
  channels: String.t(),
  gain: float(),
  poles: integer(),
  frequency: float(),
  width_type: integer() | String.t() | atom(),
  blocksize: integer(),
  g: float()
) :: FFix.Stream.t()

Boost or cut upper frequencies.

Options

  • normalize - normalize coefficients (default false)

  • c - set channels to filter (default "all")

  • p - set number of poles (from 1 to 2) (default 2)

  • m - set mix (from 0 to 1) (default 1)

  • f - set central frequency (from 0 to 999999) (default 3000)

  • a - 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 - set the block size (from 0 to 32768) (default 0)

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

  • r - 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
  • width - set width (from 0 to 99999) (default 0.5)

  • precision - 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
  • w - set width (from 0 to 99999) (default 0.5)

  • mix - set mix (from 0 to 1) (default 1)

  • n - normalize coefficients (default false)

  • transform - 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
  • t - 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
  • channels - set channels to filter (default "all")

  • gain - set gain (from -900 to 900) (default 0)

  • poles - set number of poles (from 1 to 2) (default 2)

  • frequency - set central frequency (from 0 to 999999) (default 3000)

  • width_type - 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
  • blocksize - set the block size (from 0 to 32768) (default 0)

  • g - set gain (from -900 to 900) (default 0)

tremolo(audio_0, options \\ [])

@spec tremolo(FFix.Stream.t(), f: float(), enable: String.t(), d: float()) ::
  FFix.Stream.t()

Apply tremolo effect.

Options

  • f - set frequency in hertz (from 0.1 to 20000) (default 5)
  • enable - timeline expression evaluated before each frame; the filter is enabled when non-zero
  • d - set depth as percentage (from 0 to 1) (default 0.5)

vibrato(audio_0, options \\ [])

@spec vibrato(FFix.Stream.t(), f: float(), enable: String.t(), d: float()) ::
  FFix.Stream.t()

Apply vibrato effect.

Options

  • f - set frequency in hertz (from 0.1 to 20000) (default 5)
  • enable - timeline expression evaluated before each frame; the filter is enabled when non-zero
  • d - set depth as percentage (from 0 to 1) (default 0.5)

virtualbass(audio_0, options \\ [])

@spec virtualbass(FFix.Stream.t(),
  enable: String.t(),
  cutoff: float(),
  strength: float()
) ::
  FFix.Stream.t()

Audio Virtual Bass.

Options

  • enable - timeline expression evaluated before each frame; the filter is enabled when non-zero
  • cutoff - set virtual bass cutoff (from 100 to 500) (default 250)
  • strength - set virtual bass strength (from 0.5 to 3) (default 3)

volume(audio_0, options \\ [])

@spec volume(FFix.Stream.t(),
  eval: integer() | String.t() | atom(),
  enable: String.t(),
  precision: integer() | String.t() | atom(),
  replaygain: integer() | String.t() | atom(),
  volume: String.t(),
  replaygain_preamp: float(),
  replaygain_noclip: boolean()
) :: FFix.Stream.t()

Change input volume.

Options

  • eval - specify when to evaluate expressions (from 0 to 1) (default once)

    • once (0) - eval volume expression once
    • frame (1) - eval volume expression per-frame
  • enable - timeline expression evaluated before each frame; the filter is enabled when non-zero

  • precision - 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 - 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
  • volume - set volume adjustment expression (default "1.0")

  • replaygain_preamp - Apply replaygain pre-amplification (from -15 to 15) (default 0)

  • replaygain_noclip - Apply replaygain clipping prevention (default true)

volumedetect(audio_0, options \\ [])

@spec volumedetect(
  FFix.Stream.t(),
  []
) :: FFix.Stream.t()

Detect audio volume.

Options

Audio/video filters

a3dscope(audio_0, options \\ [])

@spec a3dscope(FFix.Stream.t(),
  size: term(),
  length: integer(),
  s: term(),
  r: term(),
  rate: term(),
  fov: float(),
  roll: float(),
  pitch: float(),
  yaw: float(),
  xzoom: float(),
  yzoom: float(),
  zzoom: float(),
  xpos: float(),
  ypos: float(),
  zpos: float()
) :: FFix.Stream.t()

Convert input audio to 3d scope video output.

Options

  • size - set video size (default "hd720")
  • length - set length (from 1 to 60) (default 15)
  • s - set video size (default "hd720")
  • r - set video rate (default "25")
  • rate - set video rate (default "25")
  • fov - set camera FoV (from 40 to 150) (default 90)
  • roll - set camera roll (from -180 to 180) (default 0)
  • pitch - set camera pitch (from -180 to 180) (default 0)
  • yaw - set camera yaw (from -180 to 180) (default 0)
  • xzoom - set camera zoom (from 0.01 to 10) (default 1)
  • yzoom - set camera zoom (from 0.01 to 10) (default 1)
  • zzoom - set camera zoom (from 0.01 to 10) (default 1)
  • xpos - set camera position (from -60 to 60) (default 0)
  • ypos - set camera position (from -60 to 60) (default 0)
  • zpos - set camera position (from -60 to 60) (default 0)

abitscope(audio_0, options \\ [])

@spec abitscope(FFix.Stream.t(),
  size: term(),
  mode: integer() | String.t() | atom(),
  m: integer() | String.t() | atom(),
  s: term(),
  r: term(),
  colors: String.t(),
  rate: term()
) :: FFix.Stream.t()

Convert input audio to audio bit scope video output.

Options

  • size - set video size (default "1024x256")

  • mode - set output mode (from 0 to 1) (default bars)

    • bars (0)
    • trace (1)
  • m - set output mode (from 0 to 1) (default bars)

    • bars (0)
    • trace (1)
  • s - set video size (default "1024x256")

  • r - set video rate (default "25")

  • colors - set channels colors (default "red|green|blue|yellow|orange|lime|pink|magenta|brown")

  • rate - set video rate (default "25")

adrawgraph(audio_0, options \\ [])

@spec adrawgraph(FFix.Stream.t(),
  max: float(),
  min: float(),
  size: term(),
  mode: integer() | String.t() | atom(),
  s: term(),
  r: term(),
  slide: integer() | String.t() | atom(),
  rate: term(),
  m1: String.t(),
  fg1: String.t(),
  m2: String.t(),
  fg2: String.t(),
  m3: String.t(),
  fg3: String.t(),
  m4: String.t(),
  fg4: String.t(),
  bg: term()
) :: FFix.Stream.t()

Draw a graph using input audio metadata.

Options

  • max - set maximal value (from INT_MIN to INT_MAX) (default 1)

  • min - set minimal value (from INT_MIN to INT_MAX) (default -1)

  • size - set graph size (default "900x256")

  • mode - set graph mode (from 0 to 2) (default line)

    • bar (0) - draw bars
    • dot (1) - draw dots
    • line (2) - draw lines
  • s - set graph size (default "900x256")

  • r - set video rate (default "25")

  • slide - 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
  • rate - set video rate (default "25")

  • m1 - set 1st metadata key (default "")

  • fg1 - set 1st foreground color expression (default "0xffff0000")

  • m2 - set 2nd metadata key (default "")

  • fg2 - set 2nd foreground color expression (default "0xff00ff00")

  • m3 - set 3rd metadata key (default "")

  • fg3 - set 3rd foreground color expression (default "0xffff00ff")

  • m4 - set 4th metadata key (default "")

  • fg4 - set 4th foreground color expression (default "0xffffff00")

  • bg - set background color (default "white")

agraphmonitor(audio_0, options \\ [])

@spec agraphmonitor(FFix.Stream.t(),
  flags: integer() | String.t() | atom() | [String.t() | atom()],
  size: term(),
  mode: integer() | String.t() | atom() | [String.t() | atom()],
  m: integer() | String.t() | atom() | [String.t() | atom()],
  f: integer() | String.t() | atom() | [String.t() | atom()],
  s: term(),
  r: term(),
  o: float(),
  rate: term(),
  opacity: float()
) :: FFix.Stream.t()

Show various filtergraph stats.

Options

  • 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
  • size - set monitor size (default "hd720")

  • mode - set mode (default 0)

    • full
    • compact
    • nozero
    • noeof
    • nodisabled
  • m - set mode (default 0)

    • full
    • compact
    • nozero
    • noeof
    • nodisabled
  • f - 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
  • s - set monitor size (default "hd720")

  • r - set video rate (default "25")

  • o - set video opacity (from 0 to 1) (default 0.9)

  • rate - set video rate (default "25")

  • opacity - set video opacity (from 0 to 1) (default 0.9)

ahistogram(audio_0, options \\ [])

@spec ahistogram(FFix.Stream.t(),
  size: term(),
  s: term(),
  r: term(),
  slide: integer() | String.t() | atom(),
  scale: integer() | String.t() | atom(),
  rate: term(),
  ascale: integer() | String.t() | atom(),
  dmode: integer() | String.t() | atom(),
  acount: integer(),
  rheight: float(),
  hmode: integer() | String.t() | atom()
) :: FFix.Stream.t()

Convert input audio to histogram video output.

Options

  • size - set video size (default "hd720")

  • s - set video size (default "hd720")

  • r - set video rate (default "25")

  • slide - set sonogram sliding (from 0 to 1) (default replace)

    • replace (0) - replace old rows with new
    • scroll (1) - scroll from top to bottom
  • scale - 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
  • rate - set video rate (default "25")

  • ascale - set amplitude scale (from 0 to 1) (default log)

    • log (1) - logarithmic
    • lin (0) - linear
  • dmode - 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
  • acount - how much frames to accumulate (from -1 to 100) (default 1)

  • rheight - set histogram ratio of window height (from 0 to 1) (default 0.1)

  • hmode - set histograms mode (from 0 to 1) (default abs)

    • abs (0) - use absolute samples
    • sign (1) - use unchanged samples

avectorscope(audio_0, options \\ [])

@spec avectorscope(FFix.Stream.t(),
  ac: integer(),
  size: term(),
  gc: integer(),
  mode: integer() | String.t() | atom(),
  bc: integer(),
  m: integer() | String.t() | atom(),
  s: term(),
  r: term(),
  swap: boolean(),
  scale: integer() | String.t() | atom(),
  rate: term(),
  mirror: integer() | String.t() | atom(),
  draw: integer() | String.t() | atom(),
  rf: integer(),
  zoom: float(),
  rc: integer(),
  gf: integer(),
  bf: integer(),
  af: integer()
) :: FFix.Stream.t()

Convert input audio to vectorscope video output.

Options

  • ac - set alpha contrast (from 0 to 255) (default 255)

  • size - set video size (default "400x400")

  • gc - set green contrast (from 0 to 255) (default 160)

  • mode - set mode (from 0 to 2) (default lissajous)

    • lissajous (0)
    • lissajous_xy (1)
    • polar (2)
  • bc - set blue contrast (from 0 to 255) (default 80)

  • m - set mode (from 0 to 2) (default lissajous)

    • lissajous (0)
    • lissajous_xy (1)
    • polar (2)
  • s - set video size (default "400x400")

  • r - set video rate (default "25")

  • swap - swap x axis with y axis (default true)

  • scale - set amplitude scale mode (from 0 to 3) (default lin)

    • lin (0) - linear
    • sqrt (1) - square root
    • cbrt (2) - cube root
    • log (3) - logarithmic
  • rate - set video rate (default "25")

  • mirror - mirror axis (from 0 to 3) (default none)

    • none (0) - no mirror
    • x (1) - mirror x
    • y (2) - mirror y
    • xy (3) - mirror both
  • draw - set draw mode (from 0 to 2) (default dot)

    • dot (0) - draw dots
    • line (1) - draw lines
    • aaline (2) - draw anti-aliased lines
  • rf - set red fade (from 0 to 255) (default 15)

  • zoom - set zoom factor (from 0 to 10) (default 1)

  • rc - set red contrast (from 0 to 255) (default 40)

  • gf - set green fade (from 0 to 255) (default 10)

  • bf - set blue fade (from 0 to 255) (default 5)

  • af - set alpha fade (from 0 to 255) (default 5)

showcqt(audio_0, options \\ [])

@spec showcqt(FFix.Stream.t(),
  gamma2: float(),
  bar_v: String.t(),
  fcount: integer(),
  fontfile: String.t(),
  fontcolor: String.t(),
  cscheme: String.t(),
  count: integer(),
  sono_v: String.t(),
  fullhd: boolean(),
  axisfile: String.t(),
  fps: term(),
  tc: float(),
  volume2: String.t(),
  s: term(),
  sono_h: integer(),
  tlength: String.t(),
  font: String.t(),
  axis: boolean(),
  r: term(),
  basefreq: float(),
  text: boolean(),
  axis_h: integer(),
  bar_h: integer(),
  endfreq: float(),
  volume: String.t(),
  bar_t: float(),
  timeclamp: float(),
  size: term(),
  gamma: float(),
  sono_g: float(),
  rate: term(),
  csp: integer() | String.t() | atom(),
  attack: float(),
  bar_g: float(),
  coeffclamp: float()
) :: FFix.Stream.t()

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

Options

  • gamma2 - set bargraph gamma (from 1 to 7) (default 1)

  • bar_v - set bargraph volume (default "sono_v")

  • fcount - set frequency count (from 0 to 10) (default 0)

  • fontfile - set axis font file

  • fontcolor - 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))")

  • cscheme - set color scheme (default "1|0.5|0|0|0.5|1")

  • count - set transform count (from 1 to 30) (default 6)

  • sono_v - set sonogram volume (default "16")

  • fullhd - set fullhd size (default true)

  • axisfile - set axis image

  • fps - set video rate (default "25")

  • tc - set timeclamp (from 0.002 to 1) (default 0.17)

  • volume2 - set bargraph volume (default "sono_v")

  • s - set video size (default "1920x1080")

  • sono_h - set sonogram height (from -1 to INT_MAX) (default -1)

  • tlength - set tlength (default "384tc/(384+tcf)")

  • font - set axis font

  • axis - draw axis (default true)

  • r - set video rate (default "25")

  • basefreq - set base frequency (from 10 to 100000) (default 20.0152)

  • text - draw axis (default true)

  • axis_h - set axis height (from -1 to INT_MAX) (default -1)

  • bar_h - set bargraph height (from -1 to INT_MAX) (default -1)

  • endfreq - set end frequency (from 10 to 100000) (default 20495.6)

  • volume - set sonogram volume (default "16")

  • bar_t - set bar transparency (from 0 to 1) (default 1)

  • timeclamp - set timeclamp (from 0.002 to 1) (default 0.17)

  • size - set video size (default "1920x1080")

  • gamma - set sonogram gamma (from 1 to 7) (default 3)

  • sono_g - set sonogram gamma (from 1 to 7) (default 3)

  • rate - set video rate (default "25")

  • csp - 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
  • attack - set attack time (from 0 to 1) (default 0)

  • bar_g - set bargraph gamma (from 1 to 7) (default 1)

  • coeffclamp - set coeffclamp (from 0.1 to 10) (default 1)

showcwt(audio_0, options \\ [])

@spec showcwt(FFix.Stream.t(),
  max: float(),
  min: float(),
  size: term(),
  mode: integer() | String.t() | atom(),
  s: term(),
  r: String.t(),
  rotation: float(),
  slide: integer() | String.t() | atom(),
  direction: integer() | String.t() | atom(),
  scale: integer() | String.t() | atom(),
  rate: String.t(),
  iscale: integer() | String.t() | atom(),
  imin: float(),
  imax: float(),
  logb: float(),
  deviation: float(),
  pps: integer(),
  bar: float()
) :: FFix.Stream.t()

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

Options

  • max - set maximum frequency (from 1 to 192000) (default 20000)

  • min - set minimum frequency (from 1 to 192000) (default 20)

  • size - set video size (default "640x512")

  • mode - 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
  • s - set video size (default "640x512")

  • r - set video rate (default "25")

  • rotation - set color rotation (from -1 to 1) (default 0)

  • slide - set slide mode (from 0 to 2) (default replace)

    • replace (0) - replace
    • scroll (1) - scroll
    • frame (2) - frame
  • direction - 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
  • scale - 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
  • rate - set video rate (default "25")

  • iscale - set intensity scale (from 0 to 4) (default log)

    • linear (1) - linear
    • log (0) - logarithmic
    • sqrt (2) - sqrt
    • cbrt (3) - cbrt
    • qdrt (4) - qdrt
  • imin - set minimum intensity (from 0 to 1) (default 0)

  • imax - set maximum intensity (from 0 to 1) (default 1)

  • logb - set logarithmic basis (from 0 to 1) (default 0.0001)

  • deviation - set frequency deviation (from 0 to 100) (default 1)

  • pps - set pixels per second (from 1 to 1024) (default 64)

  • bar - set bargraph ratio (from 0 to 1) (default 0)

showfreqs(audio_0, options \\ [])

@spec showfreqs(FFix.Stream.t(),
  data: integer() | String.t() | atom(),
  size: term(),
  mode: integer() | String.t() | atom(),
  s: term(),
  r: term(),
  colors: String.t(),
  rate: term(),
  overlap: float(),
  channels: String.t(),
  fscale: integer() | String.t() | atom(),
  win_func: integer() | String.t() | atom(),
  win_size: integer(),
  ascale: integer() | String.t() | atom(),
  averaging: integer(),
  cmode: integer() | String.t() | atom(),
  minamp: float()
) :: FFix.Stream.t()

Convert input audio to a frequencies video output.

Options

  • data - set data mode (from 0 to 2) (default magnitude)

    • magnitude (0) - show magnitude
    • phase (1) - show phase
    • delay (2) - show group delay
  • size - set video size (default "1024x512")

  • mode - set display mode (from 0 to 2) (default bar)

    • line (0) - show lines
    • bar (1) - show bars
    • dot (2) - show dots
  • s - set video size (default "1024x512")

  • r - set video rate (default "25")

  • colors - set channels colors (default "red|green|blue|yellow|orange|lime|pink|magenta|brown")

  • rate - set video rate (default "25")

  • overlap - set window overlap (from 0 to 1) (default 1)

  • channels - set channels to draw (default "all")

  • fscale - set frequency scale (from 0 to 2) (default lin)

    • lin (0) - linear
    • log (1) - logarithmic
    • rlog (2) - reverse logarithmic
  • win_func - 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 - set window size (from 16 to 65536) (default 2048)

  • ascale - set amplitude scale (from 0 to 3) (default log)

    • lin (0) - linear
    • sqrt (1) - square root
    • cbrt (2) - cubic root
    • log (3) - logarithmic
  • averaging - set time averaging (from 0 to INT_MAX) (default 1)

  • cmode - 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
  • minamp - set minimum amplitude (from FLT_MIN to 1e-06) (default 1e-06)

showspatial(audio_0, options \\ [])

@spec showspatial(FFix.Stream.t(),
  size: term(),
  s: term(),
  r: term(),
  rate: term(),
  win_func: integer() | String.t() | atom(),
  win_size: integer()
) :: FFix.Stream.t()

Convert input audio to a spatial video output.

Options

  • size - set video size (default "512x512")

  • s - set video size (default "512x512")

  • r - set video rate (default "25")

  • rate - set video rate (default "25")

  • win_func - 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 - set window size (from 1024 to 65536) (default 4096)

showspectrum(audio_0, options \\ [])

@spec showspectrum(FFix.Stream.t(),
  data: integer() | String.t() | atom(),
  size: term(),
  start: integer(),
  stop: integer(),
  mode: integer() | String.t() | atom(),
  s: term(),
  limit: float(),
  rotation: float(),
  slide: integer() | String.t() | atom(),
  color: integer() | String.t() | atom(),
  fps: String.t(),
  scale: integer() | String.t() | atom(),
  overlap: float(),
  fscale: integer() | String.t() | atom(),
  saturation: float(),
  win_func: integer() | String.t() | atom(),
  orientation: integer() | String.t() | atom(),
  gain: float(),
  legend: boolean(),
  drange: float(),
  opacity: float()
) :: FFix.Stream.t()

Convert input audio to a spectrum video output.

Options

  • data - set data mode (from 0 to 2) (default magnitude)

    • magnitude (0)
    • phase (1)
    • uphase (2)
  • size - set video size (default "640x512")

  • start - start frequency (from 0 to INT_MAX) (default 0)

  • stop - stop frequency (from 0 to INT_MAX) (default 0)

  • mode - set channel display mode (from 0 to 1) (default combined)

    • combined (0) - combined mode
    • separate (1) - separate mode
  • s - set video size (default "640x512")

  • limit - set upper limit in dBFS (from -100 to 100) (default 0)

  • rotation - color rotation (from -1 to 1) (default 0)

  • slide - 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
  • color - 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
  • fps - set video rate (default "auto")

  • scale - 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
  • overlap - set window overlap (from 0 to 1) (default 0)

  • fscale - set frequency scale (from 0 to 1) (default lin)

    • lin (0) - linear
    • log (1) - logarithmic
  • saturation - color saturation multiplier (from -10 to 10) (default 1)

  • win_func - 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
  • orientation - set orientation (from 0 to 1) (default vertical)

    • vertical (0)
    • horizontal (1)
  • gain - set scale gain (from 0 to 128) (default 1)

  • legend - draw legend (default false)

  • drange - set dynamic range in dBFS (from 10 to 200) (default 120)

  • opacity - set opacity strength (from 0 to 10) (default 1)

showspectrumpic(audio_0, options \\ [])

@spec showspectrumpic(FFix.Stream.t(),
  size: term(),
  start: integer(),
  stop: integer(),
  mode: integer() | String.t() | atom(),
  s: term(),
  limit: float(),
  rotation: float(),
  color: integer() | String.t() | atom(),
  scale: integer() | String.t() | atom(),
  fscale: integer() | String.t() | atom(),
  saturation: float(),
  win_func: integer() | String.t() | atom(),
  orientation: integer() | String.t() | atom(),
  gain: float(),
  legend: boolean(),
  drange: float(),
  opacity: float()
) :: FFix.Stream.t()

Convert input audio to a spectrum video output single picture.

Options

  • size - set video size (default "4096x2048")

  • start - start frequency (from 0 to INT_MAX) (default 0)

  • stop - stop frequency (from 0 to INT_MAX) (default 0)

  • mode - set channel display mode (from 0 to 1) (default combined)

    • combined (0) - combined mode
    • separate (1) - separate mode
  • s - set video size (default "4096x2048")

  • limit - set upper limit in dBFS (from -100 to 100) (default 0)

  • rotation - color rotation (from -1 to 1) (default 0)

  • color - 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
  • scale - 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
  • fscale - set frequency scale (from 0 to 1) (default lin)

    • lin (0) - linear
    • log (1) - logarithmic
  • saturation - color saturation multiplier (from -10 to 10) (default 1)

  • win_func - 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
  • orientation - set orientation (from 0 to 1) (default vertical)

    • vertical (0)
    • horizontal (1)
  • gain - set scale gain (from 0 to 128) (default 1)

  • legend - draw legend (default true)

  • drange - set dynamic range in dBFS (from 10 to 200) (default 120)

  • opacity - set opacity strength (from 0 to 10) (default 1)

showvolume(audio_0, options \\ [])

@spec showvolume(FFix.Stream.t(),
  c: String.t(),
  p: float(),
  v: boolean(),
  m: integer() | String.t() | atom(),
  f: float(),
  b: integer(),
  s: integer(),
  h: integer(),
  r: term(),
  w: integer(),
  o: integer() | String.t() | atom(),
  t: boolean(),
  rate: term(),
  dm: float(),
  dmc: term(),
  ds: integer() | String.t() | atom()
) :: FFix.Stream.t()

Convert input audio volume to video output.

Options

  • c - set volume color expression (default "PEAK255+floor((1-PEAK)255)*256+0xff000000")

  • p - set background opacity (from 0 to 1) (default 0)

  • v - display volume value (default true)

  • m - set mode (from 0 to 1) (default p)

    • p (0) - peak
    • r (1) - rms
  • f - set fade (from 0 to 1) (default 0.95)

  • b - set border width (from 0 to 5) (default 1)

  • s - set step size (from 0 to 5) (default 0)

  • h - set channel height (from 1 to 900) (default 20)

  • r - set video rate (default "25")

  • w - set channel width (from 80 to 8192) (default 400)

  • o - set orientation (from 0 to 1) (default h)

    • h (0) - horizontal
    • v (1) - vertical
  • t - display channel names (default true)

  • rate - set video rate (default "25")

  • dm - duration for max value display (from 0 to 9000) (default 0)

  • dmc - set color of the max value line (default "orange")

  • ds - set display scale (from 0 to 1) (default lin)

    • lin (0) - linear
    • log (1) - log

showwaves(audio_0, options \\ [])

@spec showwaves(FFix.Stream.t(),
  size: term(),
  mode: integer() | String.t() | atom(),
  s: term(),
  r: term(),
  colors: String.t(),
  n: term(),
  scale: integer() | String.t() | atom(),
  rate: term(),
  split_channels: boolean(),
  draw: integer() | String.t() | atom()
) :: FFix.Stream.t()

Convert input audio to a video output.

Options

  • size - set video size (default "600x240")

  • mode - 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
  • s - set video size (default "600x240")

  • r - set video rate (default "25")

  • colors - set channels colors (default "red|green|blue|yellow|orange|lime|pink|magenta|brown")

  • n - set how many samples to show in the same point (from 0 to INT_MAX) (default 0/1)

  • scale - set amplitude scale (from 0 to 3) (default lin)

    • lin (0) - linear
    • log (1) - logarithmic
    • sqrt (2) - square root
    • cbrt (3) - cubic root
  • rate - set video rate (default "25")

  • split_channels - draw channels separately (default false)

  • draw - 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

showwavespic(audio_0, options \\ [])

@spec showwavespic(FFix.Stream.t(),
  size: term(),
  filter: integer() | String.t() | atom(),
  s: term(),
  colors: String.t(),
  scale: integer() | String.t() | atom(),
  split_channels: boolean(),
  draw: integer() | String.t() | atom()
) :: FFix.Stream.t()

Convert input audio to a video output single picture.

Options

  • size - set video size (default "600x240")

  • filter - set filter mode (from 0 to 1) (default average)

    • average (0) - use average samples
    • peak (1) - use peak samples
  • s - set video size (default "600x240")

  • colors - set channels colors (default "red|green|blue|yellow|orange|lime|pink|magenta|brown")

  • scale - set amplitude scale (from 0 to 3) (default lin)

    • lin (0) - linear
    • log (1) - logarithmic
    • sqrt (2) - square root
    • cbrt (3) - cubic root
  • split_channels - draw channels separately (default false)

  • draw - 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

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

@spec spectrumsynth(FFix.Stream.t(), FFix.Stream.t(),
  slide: integer() | String.t() | atom(),
  scale: integer() | String.t() | atom(),
  overlap: float(),
  sample_rate: integer(),
  channels: integer(),
  win_func: integer() | String.t() | atom(),
  orientation: integer() | String.t() | atom()
) :: FFix.Stream.t()

Convert input spectrum videos to audio output.

Options

  • slide - 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
  • scale - set input amplitude scale (from 0 to 1) (default log)

    • lin (0) - linear
    • log (1) - logarithmic
  • overlap - set window overlap (from 0 to 1) (default 1)

  • sample_rate - set sample rate (from 15 to INT_MAX) (default 44100)

  • channels - set channels (from 1 to 8) (default 1)

  • win_func - 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
  • orientation - set orientation (from 0 to 1) (default vertical)

    • vertical (0)
    • horizontal (1)

Multi-stream filters

acrossover(audio_0, options \\ [])

@spec acrossover(FFix.Stream.t(),
  split: String.t(),
  level: float(),
  precision: integer() | String.t() | atom(),
  order: integer() | String.t() | atom(),
  gain: String.t()
) :: [FFix.Stream.t()]

Split audio into per-bands streams.

Options

  • split - set split frequencies (default "500")

  • level - set input gain (from 0 to 1) (default 1)

  • precision - 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
  • order - 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)
  • gain - set output bands gain (default "1.f")

afir(streams, options \\ [])

@spec afir([FFix.Stream.t()],
  size: term(),
  length: float(),
  enable: String.t(),
  response: boolean(),
  precision: integer() | String.t() | atom(),
  rate: term(),
  dry: float(),
  wet: float(),
  channel: integer(),
  gtype: integer() | String.t() | atom(),
  irnorm: float(),
  irlink: boolean(),
  irgain: float(),
  irfmt: integer() | String.t() | atom(),
  maxir: float(),
  minp: integer(),
  maxp: integer(),
  nbirs: integer(),
  ir: integer(),
  irload: integer() | String.t() | atom()
) :: FFix.Stream.t()

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

Options

  • size - set video size (default "hd720")

  • length - set IR length (from 0 to 1) (default 1)

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

  • response - show IR frequency response (default false)

  • precision - 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 - set video rate (default "25")

  • dry - set dry gain (from 0 to 10) (default 1)

  • wet - set wet gain (from 0 to 10) (default 1)

  • channel - set IR channel to display frequency response (from 0 to 1024) (default 0)

  • gtype - 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
  • irnorm - set IR norm (from -1 to 2) (default 1)

  • irlink - set IR link (default true)

  • irgain - set IR gain (from 0 to 1) (default 1)

  • irfmt - set IR format (from 0 to 1) (default input)

    • mono (0) - single channel
    • input (1) - same as input
  • maxir - set max IR length (from 0.1 to 60) (default 30)

  • minp - set min partition size (from 1 to 65536) (default 8192)

  • maxp - set max partition size (from 8 to 65536) (default 8192)

  • nbirs - set number of input IRs (from 1 to 32) (default 1)

  • ir - select IR (from 0 to 31) (default 0)

  • irload - set IR loading type (from 0 to 1) (default init)

    • init (0) - load all IRs on init
    • access (1) - load IR on access

aiir(audio_0, options \\ [])

@spec aiir(FFix.Stream.t(),
  process: integer() | String.t() | atom(),
  size: term(),
  format: integer() | String.t() | atom(),
  normalize: boolean(),
  p: String.t(),
  k: String.t(),
  f: integer() | String.t() | atom(),
  response: boolean(),
  r: integer() | String.t() | atom(),
  precision: integer() | String.t() | atom(),
  mix: float(),
  n: boolean(),
  z: String.t(),
  rate: term(),
  zeros: String.t(),
  poles: String.t(),
  gains: String.t(),
  dry: float(),
  wet: float(),
  e: integer() | String.t() | atom(),
  channel: integer()
) :: [FFix.Stream.t()]

Apply Infinite Impulse Response filter with supplied coefficients.

Options

  • process - set kind of processing (from 0 to 2) (default s)

    • d (0) - direct
    • s (1) - serial
    • p (2) - parallel
  • size - set video size (default "hd720")

  • format - 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
  • normalize - normalize coefficients (default true)

  • p - set A/denominator/poles/ladder coefficients (default "1+0i 1-0i")

  • k - set channels gains (default "1|1")

  • f - 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
  • response - show IR frequency response (default false)

  • r - set kind of processing (from 0 to 2) (default s)

    • d (0) - direct
    • s (1) - serial
    • p (2) - parallel
  • precision - 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
  • mix - set mix (from 0 to 1) (default 1)

  • n - normalize coefficients (default true)

  • z - set B/numerator/zeros/reflection coefficients (default "1+0i 1-0i")

  • rate - set video rate (default "25")

  • zeros - set B/numerator/zeros/reflection coefficients (default "1+0i 1-0i")

  • poles - set A/denominator/poles/ladder coefficients (default "1+0i 1-0i")

  • gains - set channels gains (default "1|1")

  • dry - set dry gain (from 0 to 1) (default 1)

  • wet - set wet gain (from 0 to 1) (default 1)

  • e - 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
  • channel - set IR channel to display frequency response (from 0 to 1024) (default 0)

ainterleave(streams, options \\ [])

@spec ainterleave([FFix.Stream.t()],
  n: integer(),
  nb_inputs: integer(),
  duration: integer() | String.t() | atom()
) :: FFix.Stream.t()

Temporally interleave audio inputs.

Options

  • n - set number of inputs (from 1 to INT_MAX) (default 2)
  • nb_inputs - set number of inputs (from 1 to INT_MAX) (default 2)
  • duration - 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

amerge(streams, options \\ [])

@spec amerge([FFix.Stream.t()], [{:inputs, integer()}]) :: FFix.Stream.t()

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

Options

  • inputs - specify the number of inputs (from 1 to 64) (default 2)

amix(streams, options \\ [])

@spec amix([FFix.Stream.t()],
  normalize: boolean(),
  inputs: integer(),
  duration: integer() | String.t() | atom(),
  weights: String.t(),
  dropout_transition: float()
) :: FFix.Stream.t()

Audio mixing.

Options

  • normalize - Scale inputs (default true)

  • inputs - Number of inputs. (from 1 to 32767) (default 2)

  • duration - 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.
  • weights - Set weight for each input. (default "1 1")

  • dropout_transition - Transition time, in seconds, for volume renormalization when an input stream ends. (from 0 to INT_MAX) (default 2)

anequalizer(audio_0, options \\ [])

@spec anequalizer(FFix.Stream.t(),
  size: term(),
  enable: String.t(),
  params: String.t(),
  colors: String.t(),
  curves: boolean(),
  fscale: integer() | String.t() | atom(),
  mgain: float()
) :: [FFix.Stream.t()]

Apply high-order audio parametric multi band equalizer.

Options

  • size - set video size (default "hd720")

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

  • params - (default "")

  • colors - set channels curves colors (default "red|green|blue|yellow|orange|lime|pink|magenta|brown")

  • curves - draw frequency response curves (default false)

  • fscale - set frequency scale (from 0 to 1) (default log)

    • lin (0) - linear
    • log (1) - logarithmic
  • mgain - set max gain (from -900 to 900) (default 60)

aphasemeter(audio_0, options \\ [])

@spec aphasemeter(FFix.Stream.t(),
  size: term(),
  gc: integer(),
  bc: integer(),
  a: float(),
  s: term(),
  r: term(),
  d: term(),
  t: float(),
  video: boolean(),
  rate: term(),
  duration: term(),
  angle: float(),
  tolerance: float(),
  rc: integer(),
  mpc: String.t(),
  phasing: boolean()
) :: [FFix.Stream.t()]

Convert input audio to phase meter video output.

Options

  • size - set video size (default "800x400")
  • gc - set green contrast (from 0 to 255) (default 7)
  • bc - set blue contrast (from 0 to 255) (default 1)
  • a - set angle threshold for out-of-phase detection (from 90 to 180) (default 170)
  • s - set video size (default "800x400")
  • r - set video rate (default "25")
  • d - set minimum mono or out-of-phase duration in seconds (default 2)
  • t - set phase tolerance for mono detection (from 0 to 1) (default 0)
  • video - set video output (default true)
  • rate - set video rate (default "25")
  • duration - set minimum mono or out-of-phase duration in seconds (default 2)
  • angle - set angle threshold for out-of-phase detection (from 90 to 180) (default 170)
  • tolerance - set phase tolerance for mono detection (from 0 to 1) (default 0)
  • rc - set red contrast (from 0 to 255) (default 2)
  • mpc - set median phase color (default "none")
  • phasing - set mono and out-of-phase detection output (default false)

asegment(audio_0, options \\ [])

@spec asegment(FFix.Stream.t(), timestamps: String.t(), samples: String.t()) :: [
  FFix.Stream.t()
]

Segment audio stream.

Options

  • timestamps - timestamps of input at which to split input
  • samples - samples at which to split input

aselect(audio_0, options \\ [])

@spec aselect(FFix.Stream.t(),
  expr: String.t(),
  n: integer(),
  outputs: integer(),
  e: String.t()
) :: [
  FFix.Stream.t()
]

Select audio frames to pass in output.

Options

  • expr - set an expression to use for selecting frames (default "1")
  • n - set the number of outputs (from 1 to INT_MAX) (default 1)
  • outputs - set the number of outputs (from 1 to INT_MAX) (default 1)
  • e - set an expression to use for selecting frames (default "1")

asplit(audio_0, options \\ [])

@spec asplit(
  FFix.Stream.t(),
  [{:outputs, integer()}]
) :: [FFix.Stream.t()]

Pass on the audio input to N audio outputs.

Options

  • outputs - set number of outputs (from 1 to INT_MAX) (default 2)

astreamselect(streams, options \\ [])

@spec astreamselect([FFix.Stream.t()], map: String.t(), inputs: integer()) :: [
  FFix.Stream.t()
]

Select audio streams

Options

  • map - input indexes to remap to outputs
  • inputs - number of input streams (from 2 to INT_MAX) (default 2)

bm3d(streams, options \\ [])

@spec bm3d([FFix.Stream.t()],
  block: integer(),
  group: integer(),
  range: integer(),
  enable: String.t(),
  ref: boolean(),
  planes: integer(),
  sigma: float(),
  bstep: integer(),
  mstep: integer(),
  thmse: float(),
  hdthr: float(),
  estim: integer() | String.t() | atom()
) :: FFix.Stream.t()

Block-Matching 3D denoiser.

Options

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

channelsplit(audio_0, options \\ [])

@spec channelsplit(FFix.Stream.t(), channel_layout: term(), channels: String.t()) :: [
  FFix.Stream.t()
]

Split audio into per-channel streams.

Options

  • channel_layout - Input channel layout. (default "stereo")
  • channels - Channels to extract. (default "all")

concat(streams, options \\ [])

@spec concat([FFix.Stream.t()],
  unsafe: boolean(),
  v: integer(),
  a: integer(),
  n: integer()
) :: [
  FFix.Stream.t()
]

Concatenate audio and video streams.

Options

  • unsafe - enable unsafe mode (default false)
  • v - specify the number of video streams (from 0 to INT_MAX) (default 1)
  • a - specify the number of audio streams (from 0 to INT_MAX) (default 0)
  • n - specify the number of segments (from 1 to INT_MAX) (default 2)

decimate(streams, options \\ [])

@spec decimate([FFix.Stream.t()],
  cycle: integer(),
  mixed: boolean(),
  ppsrc: boolean(),
  scthresh: float(),
  chroma: boolean(),
  blockx: integer(),
  blocky: integer(),
  dupthresh: float()
) :: FFix.Stream.t()

Decimate frames (post field matching filter).

Options

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

ebur128(audio_0, options \\ [])

@spec ebur128(FFix.Stream.t(),
  size: term(),
  metadata: boolean(),
  range: float(),
  target: integer(),
  video: boolean(),
  scale: integer() | String.t() | atom(),
  peak: integer() | String.t() | atom() | [String.t() | atom()],
  meter: integer(),
  framelog: integer() | String.t() | atom(),
  dualmono: boolean(),
  panlaw: float(),
  gauge: integer() | String.t() | atom(),
  integrated: float(),
  lra_low: float(),
  lra_high: float(),
  sample_peak: float(),
  true_peak: float()
) :: [FFix.Stream.t()]

EBU R128 scanner.

Options

  • size - set video size (default "640x480")

  • metadata - inject metadata in the filtergraph (default false)

  • range - loudness range (LU) (from -DBL_MAX to DBL_MAX) (default 0)

  • target - set a specific target level in LUFS (-23 to 0) (from -23 to 0) (default -23)

  • video - set video output (default false)

  • scale - 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)
  • peak - set peak mode (default 0)

    • none - disable any peak mode
    • sample - enable peak-sample mode
    • true - enable true-peak mode
  • meter - set scale meter (+9 to +18) (from 9 to 18) (default 9)

  • framelog - 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
  • dualmono - treat mono input files as dual-mono (default false)

  • panlaw - set a specific pan law for dual-mono files (from -10 to 0) (default -3.0103)

  • gauge - 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 - integrated loudness (LUFS) (from -DBL_MAX to DBL_MAX) (default 0)

  • lra_low - LRA low (LUFS) (from -DBL_MAX to DBL_MAX) (default 0)

  • lra_high - LRA high (LUFS) (from -DBL_MAX to DBL_MAX) (default 0)

  • sample_peak - sample peak (dBFS) (from -DBL_MAX to DBL_MAX) (default 0)

  • true_peak - true peak (dBFS) (from -DBL_MAX to DBL_MAX) (default 0)

extractplanes(video_0, options \\ [])

@spec extractplanes(
  FFix.Stream.t(),
  [{:planes, integer() | String.t() | atom() | [String.t() | atom()]}]
) :: [FFix.Stream.t()]

Extract planes as grayscale frames.

Options

  • planes - 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

fieldmatch(streams, options \\ [])

@spec fieldmatch([FFix.Stream.t()],
  mode: integer() | String.t() | atom(),
  field: integer() | String.t() | atom(),
  order: integer() | String.t() | atom(),
  y1: integer(),
  ppsrc: boolean(),
  mchroma: boolean(),
  y0: integer(),
  scthresh: float(),
  combmatch: integer() | String.t() | atom(),
  combdbg: integer() | String.t() | atom(),
  cthresh: integer(),
  chroma: boolean(),
  blockx: integer(),
  blocky: integer(),
  combpel: integer()
) :: FFix.Stream.t()

Field matching for inverse telecine.

Options

  • mode - 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)
  • field - 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
  • order - 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
  • y1 - define an exclusion band which excludes the lines between y0 and y1 from the field matching decision (from 0 to INT_MAX) (default 0)

  • ppsrc - mark main input as a pre-processed input and activate clean source input stream (default false)

  • mchroma - set whether or not chroma is included during the match comparisons (default true)

  • y0 - define an exclusion band which excludes the lines between y0 and y1 from the field matching decision (from 0 to INT_MAX) (default 0)

  • scthresh - set scene change detection threshold (from 0 to 100) (default 12)

  • combmatch - 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
  • combdbg - 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
  • cthresh - set the area combing threshold used for combed frame detection (from -1 to 255) (default 9)

  • chroma - set whether or not chroma is considered in the combed frame decision (default false)

  • blockx - set the x-axis size of the window used during combed frame detection (from 4 to 512) (default 16)

  • blocky - set the y-axis size of the window used during combed frame detection (from 4 to 512) (default 16)

  • combpel - 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)

guided(streams, options \\ [])

@spec guided([FFix.Stream.t()],
  mode: integer() | String.t() | atom(),
  sub: integer(),
  enable: String.t(),
  planes: integer(),
  radius: integer(),
  eps: float(),
  guidance: integer() | String.t() | atom()
) :: FFix.Stream.t()

Apply Guided filter.

Options

  • mode - 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
  • sub - subsampling ratio for fast mode (from 2 to 64) (default 4)

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

  • planes - set planes to filter (from 0 to 15) (default 1)

  • radius - set the box radius (from 1 to 20) (default 3)

  • eps - set the regularization parameter (with square) (from 0 to 1) (default 0.01)

  • guidance - 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

headphone(streams, options \\ [])

@spec headphone([FFix.Stream.t()],
  size: integer(),
  type: integer() | String.t() | atom(),
  map: String.t(),
  gain: float(),
  lfe: float(),
  hrir: integer() | String.t() | atom()
) :: FFix.Stream.t()

Apply headphone binaural spatialization with HRTFs in additional streams.

Options

  • size - set frame size (from 1024 to 96000) (default 1024)

  • type - set processing (from 0 to 1) (default freq)

    • time (0) - time domain
    • freq (1) - frequency domain
  • map - set channels convolution mappings

  • gain - set gain in dB (from -20 to 40) (default 0)

  • lfe - set lfe gain in dB (from -20 to 40) (default 0)

  • hrir - set hrir format (from 0 to 1) (default stereo)

    • stereo (0) - hrir files have exactly 2 channels
    • multich (1) - single multichannel hrir file

hstack(streams, options \\ [])

@spec hstack([FFix.Stream.t()], shortest: boolean(), inputs: integer()) ::
  FFix.Stream.t()

Stack video inputs horizontally.

Options

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

hstack_qsv(streams, options \\ [])

@spec hstack_qsv([FFix.Stream.t()],
  shortest: boolean(),
  inputs: integer(),
  height: integer()
) ::
  FFix.Stream.t()

"Quick Sync Video" hstack

Options

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

hstack_vaapi(streams, options \\ [])

@spec hstack_vaapi([FFix.Stream.t()],
  shortest: boolean(),
  inputs: integer(),
  height: integer()
) ::
  FFix.Stream.t()

"VA-API" hstack

Options

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

interleave(streams, options \\ [])

@spec interleave([FFix.Stream.t()],
  n: integer(),
  nb_inputs: integer(),
  duration: integer() | String.t() | atom()
) :: FFix.Stream.t()

Temporally interleave video inputs.

Options

  • n - set number of inputs (from 1 to INT_MAX) (default 2)
  • nb_inputs - set number of inputs (from 1 to INT_MAX) (default 2)
  • duration - 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

join(streams, options \\ [])

@spec join([FFix.Stream.t()],
  map: String.t(),
  inputs: integer(),
  channel_layout: term()
) ::
  FFix.Stream.t()

Join multiple audio streams into multi-channel output.

Options

  • map - A comma-separated list of channels maps in the format 'input_stream.input_channel-output_channel.
  • inputs - Number of input streams. (from 1 to INT_MAX) (default 2)
  • channel_layout - Channel layout of the output stream. (default "stereo")

ladspa(streams, options \\ [])

@spec ladspa([FFix.Stream.t()],
  file: String.t(),
  c: String.t(),
  p: String.t(),
  f: String.t(),
  s: integer(),
  d: term(),
  l: boolean(),
  n: integer(),
  latency: boolean(),
  duration: term(),
  nb_samples: integer(),
  sample_rate: integer(),
  plugin: String.t(),
  controls: String.t()
) :: FFix.Stream.t()

Apply LADSPA effect.

Options

  • file - set library name or full path
  • c - set plugin options
  • p - set plugin name
  • f - set library name or full path
  • s - set sample rate (from 1 to INT_MAX) (default 44100)
  • d - set audio duration (default -0.000001)
  • l - enable latency compensation (default false)
  • n - set the number of samples per requested frame (from 1 to INT_MAX) (default 1024)
  • latency - enable latency compensation (default false)
  • duration - set audio duration (default -0.000001)
  • nb_samples - set the number of samples per requested frame (from 1 to INT_MAX) (default 1024)
  • sample_rate - set sample rate (from 1 to INT_MAX) (default 44100)
  • plugin - set plugin name
  • controls - set plugin options

libplacebo(streams, options \\ [])

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

Apply various GPU filters from libplacebo

Options

  • smoothing_period - Peak detection smoothing period (from 0 to 1000) (default 100)

  • pad_crop_ratio - ratio between padding and cropping when normalizing SAR (0=pad, 1=crop) (from 0 to 1) (default 0)

  • w - Output video frame width (default "iw")

  • upscaler - Upscaler function (default "spline36")

  • crop_w - Input video crop w (default "iw")

  • force_divisible_by - enforce that the output resolution is divisible by a defined integer when force_original_aspect_ratio is used (from 1 to 256) (default 1)

  • custom_shader_bin - Custom user shader as binary (mpv .hook format)

  • disable_builtin - Disable built-in scalers (default false)

  • crop_y - Input video crop y (default "(ih-ch)/2")

  • hue - Hue shift (from -3.14159 to 3.14159) (default 0)

  • custom_shader_path - Path to custom user shader (mpv .hook format)

  • contrast_recovery - HDR contrast recovery strength (from 0 to 3) (default 0.3)

  • h - Output video frame height (default "ih")

  • dither_lut_size - Dithering LUT size (from 1 to 8) (default 6)

  • inverse_tonemapping - Inverse tone mapping (range expansion) (default false)

  • disable_fbos - Force-disable FBOs (default false)

  • downscaler - Downscaler function (default "mitchell")

  • cones - Colorblindness adaptation model (default 0)

    • l - L cone
    • m - M cone
    • s - S cone
  • scene_threshold_low - Scene change low threshold (from -1 to 100) (default 5.5)

  • extra_opts - Pass extra libplacebo-specific options using a :-separated list of key=value pairs

  • deband - Enable debanding (default false)

  • contrast_smoothness - HDR contrast recovery smoothness (from 1 to 32) (default 3.5)

  • pos_w - Output video placement w (default "ow")

  • fps - Output video frame rate (default "none")

  • pos_h - Output video placement h (default "oh")

  • tonemapping - 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
  • disable_linear - Disable linear scaling (default false)

  • color_trc - 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)
  • frame_mixer - Frame mixing function (default "none")

  • deband_iterations - Deband iterations (from 0 to 16) (default 1)

  • saturation - Saturation gain (from 0 to 16) (default 1)

  • inputs - Number of inputs (from 1 to INT_MAX) (default 1)

  • skip_aa - Skip anti-aliasing (default false)

  • corner_rounding - Corner rounding radius (from 0 to 1) (default 0)

  • format - Output video format

  • peak_detect - Enable dynamic peak detection for HDR tone-mapping (default true)

  • pos_x - Output video placement x (default "(ow-pw)/2")

  • antiringing - Antiringing strength (for non-EWA filters) (from 0 to 1) (default 0)

  • color_primaries - 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)
  • range - 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)
  • tonemapping_param - Tunable parameter for some tone-mapping functions (from 0 to 100) (default 0)

  • cone-strength - Colorblindness adaptation strength (from 0 to 10) (default 0)

  • force_dither - Force dithering (default false)

  • colorspace - 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)
  • apply_filmgrain - Apply film grain metadata (default true)

  • sigmoid - Enable sigmoid upscaling (default true)

  • brightness - Brightness boost (from -1 to 1) (default 0)

  • scene_threshold_high - Scene change high threshold (from -1 to 100) (default 10)

  • polar_cutoff - Polar LUT cutoff (from 0 to 1) (default 0)

  • pos_y - Output video placement y (default "(oh-ph)/2")

  • apply_dolbyvision - Apply Dolby Vision metadata (default true)

  • gamut_mode - 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
  • dithering - 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
  • deband_threshold - Deband threshold (from 0 to 1024) (default 4)

  • normalize_sar - force SAR normalization to 1:1 by adjusting pos_x/y/w/h (default false)

  • dither_temporal - Enable temporal dithering (default false)

  • gamma - Gamma adjustment (from 0 to 16) (default 1)

  • contrast - Contrast gain (from 0 to 16) (default 1)

  • crop_h - Input video crop h (default "ih")

  • tonemapping_lut_size - Tone-mapping LUT size (from 2 to 1024) (default 256)

  • percentile - Peak detection percentile (from 0 to 100) (default 99.995)

  • fillcolor - Background fill color (default "black")

  • force_original_aspect_ratio - decrease or increase w/h if necessary to keep the original AR (from 0 to 2) (default disable)

    • disable (0)
    • decrease (1)
    • increase (2)
  • lut_entries - Number of scaler LUT entries (from 0 to 256) (default 0)

  • deband_grain - Deband grain (from 0 to 1024) (default 6)

  • deband_radius - Deband radius (from 0 to 1024) (default 16)

  • minimum_peak - Peak detection minimum peak (from 0 to 100) (default 1)

  • crop_x - Input video crop x (default "(iw-cw)/2")

limitdiff(streams, options \\ [])

@spec limitdiff([FFix.Stream.t()],
  reference: boolean(),
  enable: String.t(),
  threshold: float(),
  planes: integer(),
  elasticity: float()
) :: FFix.Stream.t()

Apply filtering with limiting difference.

Options

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

lv2(streams, options \\ [])

@spec lv2([FFix.Stream.t()],
  c: String.t(),
  p: String.t(),
  s: integer(),
  d: term(),
  n: integer(),
  duration: term(),
  nb_samples: integer(),
  sample_rate: integer(),
  plugin: String.t(),
  controls: String.t()
) :: FFix.Stream.t()

Apply LV2 effect.

Options

  • c - set plugin options
  • p - set plugin uri
  • s - set sample rate (from 1 to INT_MAX) (default 44100)
  • d - set audio duration (default -0.000001)
  • n - set the number of samples per requested frame (from 1 to INT_MAX) (default 1024)
  • duration - set audio duration (default -0.000001)
  • nb_samples - set the number of samples per requested frame (from 1 to INT_MAX) (default 1024)
  • sample_rate - set sample rate (from 1 to INT_MAX) (default 44100)
  • plugin - set plugin uri
  • controls - set plugin options

mergeplanes(streams, options \\ [])

@spec mergeplanes([FFix.Stream.t()],
  format: term(),
  mapping: integer(),
  map0s: integer(),
  map0p: integer(),
  map1s: integer(),
  map1p: integer(),
  map2s: integer(),
  map2p: integer(),
  map3s: integer(),
  map3p: integer()
) :: FFix.Stream.t()

Merge planes.

Options

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

mix(streams, options \\ [])

@spec mix([FFix.Stream.t()],
  enable: String.t(),
  inputs: integer(),
  scale: float(),
  duration: integer() | String.t() | atom(),
  weights: String.t(),
  planes: term()
) :: FFix.Stream.t()

Mix video inputs.

Options

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

  • inputs - set number of inputs (from 2 to 32767) (default 2)

  • scale - set scale (from 0 to 32767) (default 0)

  • duration - 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
  • weights - set weight for each input (default "1 1")

  • planes - set what planes to filter (default F)

premultiply(streams, options \\ [])

@spec premultiply([FFix.Stream.t()],
  inplace: boolean(),
  enable: String.t(),
  planes: integer()
) ::
  FFix.Stream.t()

PreMultiply first stream with first plane of second stream.

Options

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

program_opencl(streams, options \\ [])

@spec program_opencl([FFix.Stream.t()],
  size: term(),
  kernel: String.t(),
  s: term(),
  source: String.t(),
  shortest: boolean(),
  inputs: integer(),
  eof_action: integer() | String.t() | atom(),
  repeatlast: boolean(),
  ts_sync_mode: integer() | String.t() | atom()
) :: FFix.Stream.t()

Filter video using an OpenCL program

Options

  • size - Video size

  • kernel - Kernel name in program

  • s - Video size

  • source - OpenCL program source file

  • shortest - force termination when the shortest input terminates (default false)

  • inputs - Number of inputs (from 1 to INT_MAX) (default 1)

  • eof_action - 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 - extend last frame of secondary streams beyond EOF (default true)

  • ts_sync_mode - 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

segment(video_0, options \\ [])

@spec segment(FFix.Stream.t(), frames: String.t(), timestamps: String.t()) :: [
  FFix.Stream.t()
]

Segment video stream.

Options

  • frames - frames at which to split input
  • timestamps - timestamps of input at which to split input

select(video_0, options \\ [])

@spec select(FFix.Stream.t(),
  expr: String.t(),
  n: integer(),
  outputs: integer(),
  e: String.t()
) :: [
  FFix.Stream.t()
]

Select video frames to pass in output.

Options

  • expr - set an expression to use for selecting frames (default "1")
  • n - set the number of outputs (from 1 to INT_MAX) (default 1)
  • outputs - set the number of outputs (from 1 to INT_MAX) (default 1)
  • e - set an expression to use for selecting frames (default "1")

signature(streams, options \\ [])

@spec signature([FFix.Stream.t()],
  filename: String.t(),
  format: integer() | String.t() | atom(),
  nb_inputs: integer(),
  detectmode: integer() | String.t() | atom(),
  th_d: integer(),
  th_dc: integer(),
  th_xh: integer(),
  th_di: integer(),
  th_it: float()
) :: FFix.Stream.t()

Calculate the MPEG-7 video signature

Options

  • filename - filename for output files (default "")

  • format - set output format (from 0 to 1) (default binary)

    • binary (0)
    • xml (1)
  • nb_inputs - number of inputs (from 1 to INT_MAX) (default 1)

  • detectmode - set the detectmode (from 0 to 2) (default off)

    • off (0)
    • full (1)
    • fast (2)
  • th_d - threshold to detect one word as similar (from 1 to INT_MAX) (default 9000)

  • th_dc - threshold to detect all words as similar (from 1 to INT_MAX) (default 60000)

  • th_xh - threshold to detect frames as similar (from 1 to INT_MAX) (default 116)

  • th_di - minimum length of matching sequence in frames (from 0 to INT_MAX) (default 0)

  • th_it - threshold for relation of good to all frames (from 0 to 1) (default 0.5)

split(video_0, options \\ [])

@spec split(
  FFix.Stream.t(),
  [{:outputs, integer()}]
) :: [FFix.Stream.t()]

Pass on the input to N video outputs.

Options

  • outputs - set number of outputs (from 1 to INT_MAX) (default 2)

streamselect(streams, options \\ [])

@spec streamselect([FFix.Stream.t()], map: String.t(), inputs: integer()) :: [
  FFix.Stream.t()
]

Select video streams

Options

  • map - input indexes to remap to outputs
  • inputs - number of input streams (from 2 to INT_MAX) (default 2)

unpremultiply(streams, options \\ [])

@spec unpremultiply([FFix.Stream.t()],
  inplace: boolean(),
  enable: String.t(),
  planes: integer()
) ::
  FFix.Stream.t()

UnPreMultiply first stream with first plane of second stream.

Options

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

vstack(streams, options \\ [])

@spec vstack([FFix.Stream.t()], shortest: boolean(), inputs: integer()) ::
  FFix.Stream.t()

Stack video inputs vertically.

Options

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

vstack_qsv(streams, options \\ [])

@spec vstack_qsv([FFix.Stream.t()],
  width: integer(),
  shortest: boolean(),
  inputs: integer()
) ::
  FFix.Stream.t()

"Quick Sync Video" vstack

Options

  • width - Set output width (0 to use the width of input 0) (from 0 to 65535) (default 0)
  • shortest - Force termination when the shortest input terminates (default false)
  • inputs - Set number of inputs (from 2 to 65535) (default 2)

vstack_vaapi(streams, options \\ [])

@spec vstack_vaapi([FFix.Stream.t()],
  width: integer(),
  shortest: boolean(),
  inputs: integer()
) ::
  FFix.Stream.t()

"VA-API" vstack

Options

  • width - Set output width (0 to use the width of input 0) (from 0 to 65535) (default 0)
  • shortest - Force termination when the shortest input terminates (default false)
  • inputs - Set number of inputs (from 2 to 65535) (default 2)

xmedian(streams, options \\ [])

@spec xmedian([FFix.Stream.t()],
  enable: String.t(),
  shortest: boolean(),
  inputs: integer(),
  planes: integer(),
  eof_action: integer() | String.t() | atom(),
  repeatlast: boolean(),
  ts_sync_mode: integer() | String.t() | atom(),
  percentile: float()
) :: FFix.Stream.t()

Pick median pixels from several video inputs.

Options

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

  • shortest - force termination when the shortest input terminates (default false)

  • inputs - set number of inputs (from 3 to 255) (default 3)

  • planes - set planes to filter (from 0 to 15) (default 15)

  • eof_action - 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 - extend last frame of secondary streams beyond EOF (default true)

  • ts_sync_mode - 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
  • percentile - set percentile (from 0 to 1) (default 0.5)

xstack(streams, options \\ [])

@spec xstack([FFix.Stream.t()],
  shortest: boolean(),
  inputs: integer(),
  layout: String.t(),
  grid: term(),
  fill: String.t()
) :: FFix.Stream.t()

Stack video inputs into custom layout.

Options

  • shortest - force termination when the shortest input terminates (default false)
  • inputs - set number of inputs (from 2 to INT_MAX) (default 2)
  • layout - set custom layout
  • grid - set fixed size grid layout
  • fill - set the color for unused pixels (default "none")

xstack_qsv(streams, options \\ [])

@spec xstack_qsv([FFix.Stream.t()],
  shortest: boolean(),
  inputs: integer(),
  layout: String.t(),
  grid: term(),
  grid_tile_size: term(),
  fill: String.t()
) :: FFix.Stream.t()

"Quick Sync Video" xstack

Options

  • shortest - Force termination when the shortest input terminates (default false)
  • inputs - Set number of inputs (from 2 to 65535) (default 2)
  • layout - Set custom layout
  • grid - set fixed size grid layout
  • grid_tile_size - set tile size in grid layout
  • fill - Set the color for unused pixels (default "none")

xstack_vaapi(streams, options \\ [])

@spec xstack_vaapi([FFix.Stream.t()],
  shortest: boolean(),
  inputs: integer(),
  layout: String.t(),
  grid: term(),
  grid_tile_size: term(),
  fill: String.t()
) :: FFix.Stream.t()

"VA-API" xstack

Options

  • shortest - Force termination when the shortest input terminates (default false)
  • inputs - Set number of inputs (from 2 to 65535) (default 2)
  • layout - Set custom layout
  • grid - set fixed size grid layout
  • grid_tile_size - set tile size in grid layout
  • fill - Set the color for unused pixels (default "none")

Sink filters

abuffersink(audio_0, options \\ [])

@spec abuffersink(FFix.Stream.t(),
  sample_fmts: binary(),
  sample_rates: binary(),
  ch_layouts: String.t(),
  all_channel_counts: boolean()
) :: FFix.Terminal.t()

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

Options

  • sample_fmts - set the supported sample formats
  • sample_rates - set the supported sample rates
  • ch_layouts - set a '|'-separated list of supported channel layouts
  • all_channel_counts - accept all channel counts (default false)

anullsink(audio_0, options \\ [])

@spec anullsink(
  FFix.Stream.t(),
  []
) :: FFix.Terminal.t()

Do absolutely nothing with the input audio.

Options

buffersink(video_0, options \\ [])

@spec buffersink(FFix.Stream.t(),
  pix_fmts: binary(),
  color_spaces: binary(),
  color_ranges: binary()
) ::
  FFix.Terminal.t()

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

Options

  • pix_fmts - set the supported pixel formats
  • color_spaces - set the supported color spaces
  • color_ranges - set the supported color ranges

nullsink(video_0, options \\ [])

@spec nullsink(
  FFix.Stream.t(),
  []
) :: FFix.Terminal.t()

Do absolutely nothing with the input video.

Options