Video Filters Tool
Upload a video and adjust brightness, contrast, saturation, and blur with sliders, plus a grayscale or sepia color preset, then export a re-encoded video with the filter baked into every frame. Every frame is decoded, redrawn through a canvas with the composed CSS filter applied, and re-encoded, entirely on-device.
Reviewed by Vincenzo Manto, Founder & Lead Developer · Last updated October 11, 2026
How it works
- 1
Upload a video file and let it load in the player.
- 2
Adjust the brightness, contrast, saturation, and blur sliders, and pick a grayscale, sepia, or no color preset.
- 3
The composed CSS filter is applied frame by frame when you export.
- 4
Click Export to re-encode the filtered video, then preview and download the result.
Real per-pixel filtering, not just playback CSS
Rather than slapping a CSS filter on the <video> element (which only affects what you see on screen, not the file), this tool decodes every frame, draws it through an offscreen canvas with the same filter syntax applied via the canvas rendering context, and re-encodes the result, so the filter is actually baked into the exported video file.
Audio passthrough is on the roadmap
Because this tool needs to touch every video frame individually, it builds a new output file from scratch rather than using a simpler container-level copy, which is why the first version ships without the original audio track. The picture quality and filter accuracy aren't affected, just the audio.
Frequently asked questions
Does the exported video have audio?
No, not in this version. Applying a pixel-level filter to every frame requires decoding and re-encoding the video track from scratch, and this first release doesn't carry the original audio track over, so the exported file is muted. We plan to add audio passthrough in a future update.
Can I combine a color preset with the sliders?
Yes. Brightness, contrast, saturation, and blur are always applied, and the grayscale or sepia preset (if chosen) is layered on top of them, in that order, matching how CSS filter functions compose.
Why does the slider range stop at 1.5 for brightness and contrast?
Values much beyond 1.5x tend to blow out highlights or crush shadows to the point of being unusable on real footage, so the range is capped to keep every setting producing a sensible result.
How long does exporting take?
Roughly proportional to the video's length and resolution, since every single frame is decoded, redrawn with the filter, and re-encoded. Longer or higher-resolution clips will take noticeably longer than the few-second preview you see while adjusting sliders.
Is this processed on a server?
No. Decoding, filtering, and re-encoding all happen in your browser tab using the WebCodecs API. The video file is never uploaded anywhere.
Related tools
Screenshot to SaaS Promo Video
Turn one app screenshot into a 3D flyover promo video, like the ones on SaaS landing pages.
Video Trim & Crop Tool
Trim and crop a video in your browser, export as MP4 or WebM with audio kept.
Video Resize Tool
Resize a video to exact pixel dimensions in your browser, export as MP4 or WebM.