Video yükleniyor...
Video Yüklenemedi
Here's how that same benchmark looks like at 1080p, using pure Mediabunny instead of Remotion. It's not surprising that the web is fast here: both the rendering and the encoding happens fully on the GPU. I'm not saying this to make fframes look bad, and I appreciate any effort... show more
12,897 görüntüleme • 10 gün önce •via X (Twitter)
30 Yorum

Full benchmarking code and methodology can be found here:

Honestly I expected from openai employee more professional behavior, calling web a crap is so lame, imho

vibeslopper on their next /goal they will forget in a week vs real media perf chad

your balls are faster than his bouncing balls so i must give you th victoery

They are bigger too

@neogoose_btw time to pay him $5000 as you promised for benchmark where web faster than fframes. Because asking for remotion to be in the benchmark was straight up cheating so the web will lose as many people already said.

Framemogged!

Agreed. I built a screen recorder powered entirely by web technologies:

Always be selling @jvstudnitz

gifs you can hear

web web web!

Does it perform differently depending on the browser? I might not be understanding fully so thought I’d ask!

Performs similarly everywhere, although Chrome usually comes out ahead. As long as browsers have fast GPU rendering and an encode path that talks directly to the hardware encoders, there's not much performance difference in reality. Safari is great with this too, and Firefox is okay.

So instead of running remotion or fframes through my terminal, it’s better run with mediabunny in my browser? The only thing I need then is AI to be integrated to help with the command.

I have no problem with you using fframes or Remotion, the only point I'm making is "web is fast too"!

While I agree for Windows and Mac, it seems that Linux is left out by WebCodecs, and I have faster results of about 1.40x with ffmpeg exporting. My bottleneck is basically the chromium frames waiting. With Mediabunny my media encoder is at 0%, with ffmpeg at 20%, might be a real edge case with linux + intel though. I do think Mediabunny is faster for 90% of the work asked by people.

If it's at 0% then it sounds like it's not routing to the HW encoder at all? 🤔

check discord #help ;)

🐇

The browser is native!

Browser is arguably one of the most powerful "platform" to develop on. It's also extremely easy and easy to create slop. So people have this idea that browser/web = bad

I take it you're an "Electron is just as good as native" person

I think Electron is overhated, yes!

Is it fair to say “do not need to go native” is true because the overwhelming majority of the work _is native_ (to the GPU/dedicated hardware)? Like, I’d imagine JS/video has a similar perf story to JS/WASM: it tends to degrade with increased data interop.

Not quite! I definitely see what you mean, and this is one of the strengths of the web: the browsers provide you with SO much fast built-in functionality that there will be little benefit to going native. Obviously, native code will always be faster than JS/WASM, but the difference is smaller than you think. You can achieve incredibly fast applications in both JS and WASM, and even the same codebase compiled to WASM usually reaches within 25% of the native performance (in my tests at least). This doesn't mean native has no advantages whatsoever, but the feature gap has been shrinking every year

@eyelidlessness any pointers on how you learned to optimize JS/WASM to that level? Im coming from more regular SWE work, so Im guessing part of it was going through v8 internals/source, but curious what helped the most

I've done two WASM projects at this point, TurboRes (which is public) and an internal audio engine project which is unreleased. The only time spent doing assembly-level optimizations was for the SIMD logic, because Zig Vector instructions may not always map to the WASM SIMD instructions as intended. AI is actually great for this: you can tell it which section in the binary to inspect, and it'll tell you if the compiler emitted optimal WASM instructions or not. All of the non-SIMD code comes out pretty optimal from the start. The performance difference I talked about came from me comparing TurboRes with TurboRes native, which is literally just the (almost) same Zig codebase but compiled for native targets here

Love it

Mediabunny leverages webgpu/wgsl?

Neither, Mediabunny is concerned with reading and writing media files. The actual rendering in the above benchmark is being done in the Canvas 2D API. It could obviously be optimized much further by going WebGL/WebGPU, but I wanted a simple, canonical implementation.
