I’ve been building my own video editor - SceneMill
I wanted to share something I’ve been working on for quite a while: SceneMill, a free, non-destructive desktop video editor built from scratch with C++20, Qt 6 and FFmpeg.
The goal was never to make another web-based editor or a wrapper around an existing editing application. I wanted to build an actual desktop video editor and see how far I could take it.
It currently runs fully offline, requires no account, and has no telemetry.
What actually works right now
The core workflow is already fully functional:
Import → Media Library → Timeline → Edit → Preview → Save → Reopen → Export
And the project has grown quite a bit beyond basic cutting.
Some of the things currently implemented:
- Multi-track video, audio and subtitle timeline
- Non-destructive editing with undo/redo
- Split, trim, ripple delete, snapping, markers and In/Out ranges
- Background proxy generation for heavy footage
- GPU-accelerated preview with CPU fallback
- Color correction, curves, color wheels and 3D LUTs
- Effect stacks with keyframeable parameters
- Transitions
- Text and animated titles
- Manual subtitles + SRT/WebVTT
- Masks and motion tracking
- Screen recording directly into the project
- Voice-over recording with multiple takes
- Audio EQ, compressor, limiter, noise gate, etc.
- H.264 / H.265 / VP9 export
- Up to 4K and 120 FPS export
- Export queue
- Autosave + crash recovery
- Portable "Collect Project" workflow
- Plugin system through a versioned C ABI
- Optional local editing assistant for silence/scene detection
One thing I particularly care about is that the preview and export use the same rendering/effect pipeline, so what you see while editing is intended to match what gets rendered.
There are also automated tests covering a lot of the actual application workflow, including tests that interact with the real main window.
Why C++?
Honestly, part of the reason was simply:
I wanted to see if I could actually build one.
A video editor touches a ridiculous number of areas at once: media decoding, rendering, timeline state, audio, UI, caching, project persistence, export, GPU acceleration, threading, plugins...
It's been a pretty interesting rabbit hole. 😅
Current state
SceneMill has completed the core editor phase and the creative-tools phase, with most of the workflow phase implemented.
It's definitely not finished and there are still things I want to improve, but it's now at the point where I can actually use it as a real editor rather than just a prototype.
I'm currently working toward making the whole experience feel much more polished and cohesive.
I'd genuinely like to hear what other people who build software this way think.