Hello HN,
Video content is more popular than ever, but the toolkit for creating such content is a bit behind. You usually have to rely on a server for rendering whenever you want to create a video editing project in the browser. This means uploading content to a server, coding complex filters and effects, and more.
My friend and I spent a year developing an SDK that handles all these complexities and offers an easy-to-use interface for developers. The SDK works entirely in the browser, manages memory efficiently so it can run even on a 7-year-old Android device, supports GLSL effects and transitions, handles captions, and much more.
We also created a custom video editor UI interface using the SDK to showcase its speed and flexibility. You can see the video editor embedded on our landing page: https://rendley.com.
As for the tech stack, the SDK was built using TypeScript, Pixi.js, C++, FFmpeg WASM, and WebCodecs. The UI interface was created using Stencil.js and MobX.
The SDK is called Rendley SDK and it is live on npm: https://www.npmjs.com/package/@rendley/sdk
To get started, follow this guide: https://docs.rendley.com/installation
If you want to embed the pre-made interface, follow this guide, it’s literally a few lines of code: https://docs.rendley.com/video-editor
If you have any questions about the product or any feedback, feel free to write them below, and I’ll be more than happy to answer them.
Note that a lot of the ffmpeg code is not memory safe and some of the file/codec plugins contain memory errors. An out-of-bounds read or write will bring down the entire wasm subsystem (and does). You have to manually figure out which codecs are actually safe to use in the browser, vs which ones are merely exposed by the ffmpeg wasm builds.