Show HN: VidStudio, a browser based video editor that doesn't upload your files
by kolx on 4/21/2026, 11:58:16 AM
Hi HN, I built VidStudio, a privacy focused video editor that runs in the browser. I tried to keep it as frictionless as possible, so there are no accounts and no uploads. Everything is persisted on your machine.<p>Some of the features: multi-track timeline, frame accurate seek, MP4 export, audio, video, image, and text tracks, and a WebGL backed canvas where available. It also works on mobile.<p>Under the hood, WebCodecs handles frame decode for timeline playback and scrubbing, which is what makes seeking responsive since decode runs on the hardware decoder when the browser supports it. FFmpeg compiled to WebAssembly handles final encode, format conversion, and anything WebCodecs does not cover. Rendering goes through Pixi.js on a WebGL canvas, with a software fallback when WebGL is not available. Projects live in IndexedDB and the heavy work runs in Web Workers so the UI stays responsive during exports.<p>Happy to answer technical questions about the tradeoffs involved in keeping the whole pipeline client-side. Any feedback welcome.<p>Link: <a href="https://vidstudio.app/video-editor" rel="nofollow">https://vidstudio.app/video-editor</a>
https://vidstudio.app/video-editor
Comments
by: elpocko
> FFmpeg compiled to WebAssembly handles final encode<p>FFmpeg's license is the LGPL 2.1. VidStudio looks like closed source software, I couldn't see any indication that it's free software. You're distributing this software to run in the client's browser. I'm not a lawyer but I think you're in breach of the terms of the LGPL.<p><a href="https://www.ffmpeg.org/legal.html" rel="nofollow">https://www.ffmpeg.org/legal.html</a>
4/21/2026, 12:33:43 PM
by: spuzvabob
I've built a similar video editor and have been considering pure client side implementation vs transcoding into a known format beforehand, went with transcoding for wider format support and easier video playback implementation.<p>I'm interested in how you handle demuxing different container formats any which ones are supported?<p>I get "Audio decode failed: your browser cannot decode the audio in "41b1aee9-ac65-43f6-b020-e8fed77c3c72_webm.bin". Try re-encoding the file with AAC audio." for a WEBM with no audio.<p>h264/aac MP4 works, is that demuxed with mp4box.js? I noticed seeking (clicking or scrubbing on timeline) initializes a new VideoDecoder and destroys the previous one for every new frame, leading to abysmal performance as you lose decoder state and a lot of decoding work has to be repeated. Plus the decoder reinitialization time. Is that because the demuxing logic doesn't give precise access to encoded frames? iirc mp4box.js didn't support that last time I checked.
4/21/2026, 12:59:41 PM
by: xnx
How does it compare to <a href="https://omniclip.app/" rel="nofollow">https://omniclip.app/</a> or <a href="https://tooscut.app" rel="nofollow">https://tooscut.app</a> ?
4/21/2026, 12:53:14 PM
by: DoctorOW
Let me just say the performance is absolutely incredible, and the persistence is so transparent. I actually was given access to an in-browser video editor that chokes pretty quickly so I'm impressed. The tracks didn't seem to work well for me. I'm on Firefox on Windows and couldn't drag and drop tracks to change the order, there doesn't seem to be any layer transformation tools (position, rotation, scale) that I could find to counteract it not handling footage of different aspect ratios (I.E. portrait and landscape).
4/21/2026, 1:19:28 PM
by: Sergey777
Interesting approach—privacy-friendly editing without uploads is compelling. Curious how you handle performance and large files purely in-browser, and what trade-offs there are vs server-based editors.
4/21/2026, 1:06:24 PM
by: kevmo314
Wild that apps used to be completely local, no accounts, no uploads, and we're back to that as a value prop.
4/21/2026, 1:30:59 PM
by: prhn
You probably already know this, but I could not import 10-bit video on Windows which I think would be fairly common among the target audience.<p>ffmpeg supports decoding 10-bit video.
4/21/2026, 1:03:09 PM