Actions Reference

### **nil** Do nothing. Keep the section unchanged at normal speed and pitch. ### **cut** Remove the section completely from the output. ### **speed**`:float32` Range: `(0.0, 99999.0)` Change the playback speed while preserving pitch via time-stretching. 1.0 = unchanged, 2.0 = twice as fast, 0.5 = half speed. ### **varispeed**`:float32` Range: `[0.2, 100.0]` Change the playback speed by resampling, so pitch shifts along with it, like analog tape or vinyl. 1.0 = unchanged, 2.0 = twice as fast and an octave higher. ### **ease**`:curve[:duration]` Set the easing for the animated actions that follow it (until another `ease` overrides it); equivalent to adding `:ease=curve` to each. `curve` is one of `linear`, `in`, `out`, or `inout`. The optional `duration` (e.g. `2sec` or a bare frame count) is how long the animation takes before holding at its end value; omitted, it spans the whole section. Example: `ease:inout,zoom:1..2`. ### **volume**`:float32` Scale the audio volume by val. 1.0 = unchanged, 0.5 = half (-6 dB), 2.0 = double (+6 dB). ### **deesser**`:intensity[:max[:freq]]` Range: `each [0.0, 1.0]` Reduce harsh "s" and "sh" sibilance in the section. Implemented via ffmpeg's `deesser` filter. Positional args: `intensity` sets how much to de-ess (0.0 = none, 1.0 = maximum), `max` caps the reduction (default 0.5), and `freq` sets the split frequency (default 0.5). ### **invert** Invert every pixel in the section, producing a photo-negative. ### **hflip** Flip the section horizontally, mirroring it left to right. ### **vflip** Flip the section vertically, mirroring it top to bottom. ### **zoom**`:v[..v...]` Range: `(0.0, 100.0]` Scale the picture about its center by val. 1.0 = no zoom, 2.0 = zoom in 2x, 0.5 = zoom out 2x. Animatable: accepts keyframes `a..b..c` interpolated across the section, optionally eased with `:ease=`. ### **opacity**`:v[..v...]` Range: `[0.0, 1.0]` Blend the section against the background. 1.0 = fully opaque, 0.0 = fully transparent. Animatable: accepts keyframes `a..b..c`, optionally eased with `:ease=`. ### **blur**`:v[..v...]` Range: `[0.0, 1024.0]` Gaussian-blur the picture by sigma = val. 0.0 = no blur; larger values blur more. Animatable: accepts keyframes `a..b..c`, optionally eased with `:ease=`. ### **brightness**`:v[..v...]` Range: `[-1.0, 1.0]` Shift brightness by adding an equal offset to the R, G, and B channels. 0.0 = unchanged, positive brightens, negative darkens. Implemented via ffmpeg's `lutrgb` filter. Animatable: accepts keyframes `a..b..c`, optionally eased with `:ease=`. ### **brighthue**`:snorm16` Range: `[-1.0, 1.0]` Shift luma by offsetting the Y channel. 0.0 = unchanged, positive brightens, negative darkens. ### **contrast**`:float32` Range: `[-2.0, 2.0]` Scale contrast around mid-gray. 1.0 = unchanged, higher values increase contrast, lower values reduce it. Implemented via ffmpeg's `lutyuv` filter. ### **saturation**`:float32` Range: `[0.0, 3.0]` Scale color saturation. 1.0 = unchanged, 0.0 = grayscale, higher values are more vivid. Implemented via ffmpeg's `lutyuv` filter. ### **rotate**`:deg` Rotate the picture clockwise about its center by a fixed `deg` angle, expanding the frame so nothing is clipped and filling the exposed corners with the background color. Good for aspect flips, e.g. `rotate:90`. For a continuous spin, use `spin` instead. ### **spin**`:deg/rate` Spin the picture continuously, starting at `deg` and turning at `rate` degrees per second (negative is counter-clockwise), e.g. `spin:0/120`. The picture spins within a constant square that contains every rotation (so it is never clipped); on an overlay the exposed corners are transparent, otherwise they are filled with the background color. ### **drawbox**`:x:y:w:h:color` Draw a filled rectangle onto the picture. Positional args: `x` and `y` are the top-left corner, `w` and `h` the width and height in pixels, and `color` an RGB color (a name like `red` or a hex value like `#ff0000`). Example: `drawbox:100:100:400:200:red`. Implemented via ffmpeg's `drawbox` filter. ### **pos**`:x:y[:scale]` Place this clip as an overlay when it is composited over a lower video track. `x` and `y` are the top-left corner in canvas pixels; the optional `scale` multiplies the source's native size (default 1.0). Has no effect on the base (bottom) track. Example: `pos:600:300:0.5`. ### **lens**`:k1[:k2]` Range: `each [-1.0, 1.0]` Distort the picture like a camera lens. With no arguments, a fun fisheye is applied. Implemented via ffmpeg's `lenscorrection` filter. Positional args: `k1` is the quadratic correction factor and `k2` the double-quadratic factor. Negative values bulge the image outward (fisheye); positive values pinch it inward (pincushion). ### **colorkey**`:color[:similar:blend]` Range: `[0.0, 1.0]` Make a color transparent by matching it in RGB space. Best for flat, synthetic backgrounds (a logo's matte, a screen recording, a gif with one clean color); for real green-/blue-screen camera footage use `chromakey` instead. On the base (bottom) video track there is nothing to reveal, so the matched color is replaced with the timeline background (`-bg`) instead. Positional args: `color` is the key color (a name like `green` or a hex value), `similar` how close a pixel must be to be keyed (default 0.25), and `blend` how soft the edge is (default 0.0). Implemented via ffmpeg's `colorkey` filter. ### **chromakey**`:color[:similar:blend]` Range: `[0.0, 1.0]` Make a color transparent by matching it in chroma (YUV) space, tolerating lighting variation, shadows, and soft edges. This is the green-/blue-screen keyer for real camera footage; for flat synthetic backgrounds use `colorkey` instead. On the base (bottom) video track there is nothing to reveal, so the matched color is replaced with the timeline background (`-bg`) instead. Positional args: `color` is the key color (a name like `green` or a hex value), `similar` how close a pixel must be to be keyed (default 0.25), and `blend` how soft the edge is (default 0.0). Implemented via ffmpeg's `chromakey` filter. ### **loop** Loop the clip's source back to its start when it runs out of frames, instead of ending. Useful for overlays whose source (e.g. a short gif) is shorter than the section it covers, e.g. `add:logo.gif,loop`.

Quick reference

Type: A=audio, V=video, *=animatable.

| Action | Arguments | Range | Type | Summary | | --- | --- | --- | --- | --- | | nil | — | `—` | `AV` | Do nothing. | | cut | — | `—` | `AV` | Remove the section completely from the output. | | speed | `float32` | `(0.0, 99999.0)` | `AV` | Change the playback speed while preserving pitch via time-stretching. | | varispeed | `float32` | `[0.2, 100.0]` | `AV` | Change the playback speed by resampling, so pitch shifts along with it, like analog tape or vinyl. | | ease | `curve[:duration]` | `—` | `AV` | Set the easing for the animated actions that follow it (until another `ease` overrides it); equivalent to adding `:ease=curve` to each. | | volume | `float32` | `—` | `A` | Scale the audio volume by val. | | deesser | `intensity[:max[:freq]]` | `each [0.0, 1.0]` | `A` | Reduce harsh "s" and "sh" sibilance in the section. | | invert | — | `—` | `V` | Invert every pixel in the section, producing a photo-negative. | | hflip | — | `—` | `V` | Flip the section horizontally, mirroring it left to right. | | vflip | — | `—` | `V` | Flip the section vertically, mirroring it top to bottom. | | zoom | `v[..v...]` | `(0.0, 100.0]` | `V*` | Scale the picture about its center by val. | | opacity | `v[..v...]` | `[0.0, 1.0]` | `V*` | Blend the section against the background. | | blur | `v[..v...]` | `[0.0, 1024.0]` | `V*` | Gaussian-blur the picture by sigma = val. | | brightness | `v[..v...]` | `[-1.0, 1.0]` | `V*` | Shift brightness by adding an equal offset to the R, G, and B channels. | | brighthue | `snorm16` | `[-1.0, 1.0]` | `V` | Shift luma by offsetting the Y channel. | | contrast | `float32` | `[-2.0, 2.0]` | `V` | Scale contrast around mid-gray. | | saturation | `float32` | `[0.0, 3.0]` | `V` | Scale color saturation. | | rotate | `deg` | `—` | `V` | Rotate the picture clockwise about its center by a fixed `deg` angle, expanding the frame so nothing is clipped and filling the exposed corners with the background color. | | spin | `deg/rate` | `—` | `V` | Spin the picture continuously, starting at `deg` and turning at `rate` degrees per second (negative is counter-clockwise), e.g. | | drawbox | `x:y:w:h:color` | `—` | `V` | Draw a filled rectangle onto the picture. | | pos | `x:y[:scale]` | `—` | `V` | Place this clip as an overlay when it is composited over a lower video track. | | lens | `k1[:k2]` | `each [-1.0, 1.0]` | `V` | Distort the picture like a camera lens. | | colorkey | `color[:similar:blend]` | `[0.0, 1.0]` | `V` | Make a color transparent by matching it in RGB space. | | chromakey | `color[:similar:blend]` | `[0.0, 1.0]` | `V` | Make a color transparent by matching it in chroma (YUV) space, tolerating lighting variation, shadows, and soft edges. | | loop | — | `—` | `V` | Loop the clip's source back to its start when it runs out of frames, instead of ending. | --- Version 30.5.0
Generated: 2026-06-09.