Video Filters
Apply color filters: brightness, contrast, saturation, blur, sepia, black and white
Color-Grade a Video With ffmpeg's eq, colorbalance, and curves Filters
Each preset here is really just a preassembled chain of standard ffmpeg video filters. Vivid pushes contrast and saturation up through the eq filter, Warm and Cool layer a colorbalance shift on top (nudging red/green channels for warm, blue for cool), Vintage combines a muted eq pass with ffmpeg's built-in curves=vintage tone curve, Black & White zeroes out saturation entirely with hue=s=0, and Sepia runs a colorchannelmixer with a fixed matrix that maps RGB values into the classic brownish sepia tone, the same technique used to sepia-tone old photographs digitally. Selecting 'None' switches to three manual sliders for brightness, contrast, and saturation, which build a custom eq filter string instead of using a canned preset.
Blur and sharpness sit outside the preset system and stack on top of whatever preset or manual settings you've chosen: blur runs through boxblur at a strength you control, and sharpness uses the unsharp filter, which is an unsharp-mask technique that increases local contrast at edges to make footage look crisper, not a true resolution increase. Because any combination of these filters changes pixel values frame by frame, the video always gets re-encoded with libx264 when a filter is active (the audio track is copied through untouched), which is genuinely different from a straight passthrough and is why applying filters takes noticeably longer than, say, a plain container remux.
How to Use
- 1
Upload a video clip
MP4, MOV, WebM, and other common video containers are accepted.
- 2
Pick a preset, or select 'None' for manual control
Vivid, Cool, Warm, Vintage, Black & White, and Sepia each apply a specific pre-built filter chain in one click.
- 3
Adjust brightness, contrast, and saturation sliders
Available when 'None' is selected, these build a custom eq filter instead of using a preset combination.
- 4
Layer on blur or sharpness
These stack independently of the preset choice: boxblur for softness, unsharp for edge-contrast sharpening.
- 5
Apply and download
The filter chain is applied to every frame during a libx264 re-encode, and the result downloads as MP4 with the original audio intact.
Key Features
- →Sepia isn't a simple color tint, it's a fixed colorchannelmixer matrix that recombines your RGB channels the way traditional sepia photo toning does.
- →Vintage stacks a muted eq pass with ffmpeg's curves=vintage tone curve, which is why it looks different from just lowering saturation and brightness manually.
- →The unsharp filter used for sharpness increases edge contrast rather than adding real resolution, pushing it too far can introduce visible haloing around edges.
- →Blur and sharpness apply on top of whatever preset is active, so you can, for instance, combine Warm with a touch of sharpness in the same pass.
- →Because a preset like Black & White uses hue=s=0 rather than a grayscale conversion filter, it still outputs a standard RGB video, just with zero saturation.
- →Any filter applied means a full re-encode through libx264, so processing time scales with clip length the same way it would for a straight compression pass.
Frequently Asked Questions
What's actually different about the Sepia preset versus just tinting the video?
Sepia runs ffmpeg's colorchannelmixer filter with a specific matrix that recombines your red, green, and blue channel values into the muted brownish tones associated with old photograph toning, rather than layering a simple color overlay on top of the footage.
Does the Black & White preset actually convert to grayscale, or just remove color?
It uses hue=s=0, which zeroes out the saturation channel while keeping the video in an RGB format. Visually it looks fully black and white, but technically it's a desaturated color video rather than a true single-channel grayscale conversion.
How is the Vintage look built from filters?
It combines a muted eq adjustment (reduced brightness and saturation, slightly boosted contrast) with ffmpeg's built-in curves=vintage tone curve, which is a separate filter that remaps tonal values to mimic old film stock.
Does the sharpness slider add real detail to soft footage?
No. It uses the unsharp filter, an edge-contrast enhancement technique that makes footage look crisper by increasing contrast around detected edges, it can't recover detail that isn't already present in the source.
Why does applying any filter always trigger a full re-encode?
Every filter here, whether a preset or a manual slider, changes actual pixel values on each frame, so ffmpeg has to decode, filter, and re-encode the video with libx264 rather than doing a fast container copy. The audio track is left untouched and copied through as-is.
Last updated: June 2026