Readit News logoReadit News
Posted by u/bgrigore a year ago
Show HN: A video editing SDK that runs in the browserrendley.com/...
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.

ComputerGuru · a year ago
I’ve been using the ffmpeg wasm library directly for a couple of years now and it’s working OK in production though it has a number of critical issues that don’t show up except in heavy testing with a wide variety of inputs and outputs.

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.

bgrigore · a year ago
Yes, you are absolutely correct. It’s not sufficient to only use ffmpeg.wasm and pass string arguments. There have been many use cases where we needed to use libav to implement workarounds.
jonplackett · a year ago
Are there any patent issues with mp4 you had to worry about?
bgrigore · a year ago
Yes, we have used a free and open-source alternative to h264 to avoid it
aitchnyu · a year ago
SaaS which exist just because you needed a server to run pdf generation, video editing, syncing data across users etc are all doomed.
msnkarthik · a year ago
How is it different than Biteable or any linear editor app based on the browser? I mean, for a non techie video editor, they would only understand if its easily accessible on the browser - What difference would it make for them if the render happens on the backfround or on the client side? trying to understand the added benefits here.
bgrigore · a year ago
The difference is that we provide the tools needed to create video editors like Biteable. The video editor you saw on our landing page is a showcase of what can be built with our SDK, and it serves as a starting point for companies looking to embed or create their own video editing software.
msnkarthik · a year ago
understood. What kind of companies are your target ICP? With innumerable video editing companies out there, do you still feel that there would be more companies building business around the same? If not, then won't your TAM be very small?
Andrews54757 · a year ago
The "get in touch" button on blog.rendley.com leads to a 404 page: https://rendley.com/try-for-free
bgrigore · a year ago
Fixed, thanks for pointing it out
sberder · a year ago
I'm wondering about the claim of open source when there are no public repositories in your github account...
bgrigore · a year ago
Yes, there are none at the moment, however, we plan on open-sourcing filters, effects, transitions, and components needed to build UI interfaces faster.
strongpigeon · a year ago
The product looks pretty good, but it feels a bit "bait-and-switch"-y to put "Open Source" on the landing page when it really isn't.
sberder · a year ago
Your website says that the client is open source which is patently false, maybe update that claimed there.

Edit: it was updated and now mentions forking modules but still no public repositories.

efilife · a year ago
So why are you lying?

Deleted Comment

justusm · a year ago
This is really cool - I'm currently building something similar (open source) with Revideo (https://github.com/redotvideo/revideo) - we also build on top of the webcodecs API, the only part of the export that is still done on the server is audio processing.

It seems pretty unconventional to offer an sdk where people have to enter a license key, but I understand that it's hard to monetize differently when one of your key features is that you want to enable client-side rendering (not saying that this is bad - I relate to the challenge since we are offering a cloud rendering service and at some point when webcodecs is supported in all browsers, it might make sense to run revideo purely on a client device as well).

bgrigore · a year ago
Thanks! I checked out revideo a while ago, and you guys are doing a fantastic job!

I don’t think it’s unconventional for SDKs to require a license key. It's a common practice for many products.

To address the use case where WebCodecs is not available, we’ve implemented a rendering mechanism based on FFmpeg. Although it’s slower, it does the job (It's not enabled in the current version of the package)

Cloud rendering is a great approach for certain scenarios, and we also plan to support that option in the future.

justusm · a year ago
Thanks a lot, really appreciate it! Re pricing: this might be my own ignorance then.

I will definitely follow you guys, I'm curious how rendley will develop :) Good luck!

nikshepsvn · a year ago
how does revideo compare/differ to remotion?
justusm · a year ago
Hey! I'm pasting a slightly modified comment from our previous Show HN (https://news.ycombinator.com/item?id=40646741), where I explained this in detail:

Revideo is different to Remotion.dev in a couple of ways: First, we use generator functions to describe the flow of animations - every yield within the generator function corresponds to a frame in the video. As a result, our API is very imperative (animations described at the start of the function appear in the start of the video, animations described at the end appear at the end). Remotion's React-based approach is rather declarative - it gives you a frame number and lets you describe what your video should look like as a function of the frame number. Personally, we find our "procedural" API a bit more intuitive and easier to write than the declarative approach, but we might obviously be biased here.

Secondly, we render to the HTML canvas instead of the DOM. Both have advantages and disadvantages: Rendering to the DOM lets you define animations using CSS, which most programmers are already familiar with. On the other hand, an advantage of using the HTML canvas is that it should allow you to render entirely in the browser rather than using server-side rendering, as you can simply capture the current canvas using canvas.toBlob(). We have not yet implemented this for Revideo, but people in our Discord server have made good progress towards it. Also, capturing the frame for videos is a bit faster than screenshotting it (as Remotion does), so our rendering speeds are faster than Remotion's.

Thirdly, we're MIT licensed while Remotion is not FOSS (if your company has more than three employees, you need to purchase a company license to use Remotion). This was one of our original motivations to build our own video editing framework while we were building video products.

Deleted Comment

kevingadd · a year ago
Is your license compatible with FFmpeg's LGPL? The license on the NPM package looks weird so I'm curious whether it's compatible.
dtonon · a year ago
Forced to sign up with GitHub or Google? No, thanks.