July 26, 2026
How genvi exports video inside your browser tab
There is no render farm behind the export button. Your video is encoded on your own machine, and our server-side export route is a stub.

Most tools in this category upload your timeline and render it somewhere else. We don't. When you press Export, the encoding happens in the tab you're looking at, and the file is put together locally before it's offered to you.
Why bother doing it in the browser
- No upload. Your media is already local or cached locally. Shipping it to a renderer so it can come back again buys nobody anything.
- No queue. Export starts the second you ask, because it isn't competing with anyone else's render.
- No egress bill, which is another way of saying we don't have to meter it.
How it works
Playback and export share one model of the timeline. The renderer walks it frame by frame, seeks the underlying media to the right moment, composites them, and hands each finished frame to the browser's own video encoder. Frames go into the container as they're produced instead of piling up in memory first.

Resolution, aspect ratio and format. That last one is less cosmetic than it looks.
The container detail that surprises people
An export with audio comes out as MKV, and a video-only export comes out as MP4. That isn't a preference. It follows what a browser can actually package up, with the video and audio formats available to it. The download filename then follows whichever one you end up with, rather than a fixed guess. Getting that last part wrong was its own small bug for a while.
Export stops at your content, not your padded duration. The timeline duration is a scrubbing bound and it's usually longer than your last clip. Exporting to it gave everyone a few seconds of dead frames until we tied the frame count to where the footage actually ends.
What we gave up
Being straight with you about the trade: the frame loop runs on the main thread, so the interface is unresponsive during a long export. We cannot yet pull the sound out of a video file that has audio baked into it. Imported footage with its own sound needs that audio on a separate track. And the preview approximates a few effects with CSS that the exporter renders properly, so the two are close without being identical.
What it did to playback
The timeline model that exports is the one that plays back, so export work kept turning up playback bugs and the other way round. The most instructive one was a warm-up window measured in seconds that quietly became "mount every clip in the project" on short timelines. We wrote that one up separately.