Show HN: VidStudio, a browser based video editor that doesn't upload your files
Posted by kolx 1 hour ago
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.
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.
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.
Happy to answer technical questions about the tradeoffs involved in keeping the whole pipeline client-side. Any feedback welcome.
Comments
Comment by elpocko 1 hour ago
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.
Comment by prhn 48 minutes ago
- Provide links to the source of the version of ffmpeg you used in your code
- User should be able to replace the ffmpeg libs with his own compatible builds if you're using dynamically linked libs. For statically linked libs, you need to provide the tools to re-link against a compatible build.
I went through an LGPL review recently so some of this is fresh in my memory, but please correct me if I'm wrong.
Comment by xixixao 12 minutes ago
Comment by kolx 37 minutes ago
Comment by freedomben 34 minutes ago
Comment by netdevphoenix 28 minutes ago
Mmmm...potential commercialisation? Always find it curious that people expect to get source code for free in ways that they don't do for other work (ask George Martin to release his drafts and notes).
Comment by mbesto 19 minutes ago
Comment by freedomben 21 minutes ago
Hence why I asked the question... And not everybody does everything for commercial reasons, so it would be dumb to assume that and therefore not ask the question.
> Always find it curious that people expect to get source code for free in ways that they don't do for other work (ask George Martin to release his drafts and notes).
Where in my question did you get that I expect to get source code for free in ways that I don't for other work?
But regardless, you do know that open source is a common thing right? People open source things all the time, especially on HN.
Also OP already says they don't do any uploading of your videos to the cloud, so this thing already runs local-only. It's not like there is a shortage of video editors around (including ... open source video editors)
Comment by kolx 11 minutes ago
Comment by CodesInChaos 47 minutes ago
Different isolates might even be enough to satisfy GPL, similar to how you can invoke FFmpeg as a command line tool from a closed application. Though that feels like legally shaky ground.
Comment by sreekanth850 2 minutes ago
Comment by senko 1 hour ago
However, some popular codecs use GPL, which, if enabled, would require to distribute the rest of the code under it as well.
Comment by elpocko 48 minutes ago
Anyway, OP doesn't do most of the things FFmpeg lists under their "License Compliance Checklist".
Comment by trinix912 25 minutes ago
Legitimately asking, which points and how are they expected to handle it for this type of app (assuming they want to keep it closed source)? As far as I understand it they just need to credit the libraries?
Comment by elpocko 15 minutes ago
Comment by actionfromafar 10 minutes ago
Comment by spuzvabob 49 minutes ago
I'm interested in how you handle demuxing different container formats any which ones are supported?
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.
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.
Comment by xnx 55 minutes ago
Comment by b1temy 27 minutes ago
Comment by bensyverson 4 minutes ago
Comment by DoctorOW 29 minutes ago
Comment by kolx 2 minutes ago
Comment by Sergey777 42 minutes ago
Comment by bjord 28 minutes ago
Comment by prhn 45 minutes ago
ffmpeg supports decoding 10-bit video.
Comment by kolx 32 minutes ago
Comment by kevmo314 18 minutes ago