Vanilagy

Vanilagy

@vanilagy.bsky.social

Author of Mediabunny and Marble Blast Web. I love working on technically challenging projects that bring the best out of the web. https://mediabunny.dev/

258 followers14 following563 posts

Absolutely SURREAL news guys 😱 Figma (FIGMA!!) decided to sponsor Mediabunny as a PLATINUM TIER sponsor!!!!! I literally can't believe it, thank you so much to everyone in the Figma Motion team for making this happen! ❤️❤️❤️

Mediabunny v1.62.0 (🚀) ships with an insane amount of fixes and improvements aimed at making Mediabunny extremely robust against adversarial and malicious inputs (files that exhaust memory or clog the CPU). Full list of changes here: github.com/Vanilagy/med...

github.comRelease v1.62.0 · Vanilagy/mediabunnyIn addition to tons of general bug fixes and improvements, this release thoroughly hardens Mediabunny against bad/malicious inputs. These are files meant to exhaust memory, clog CPU, or cause Media...

Currently going over the entirety of Mediabunny to harden it against DoS attacks! Mediabunny cannot be exploited like FFmpeg can because it runs in a JavaScript sandbox, but one can still construct strange synthetic files that either: - Lead to heap exhaustion - Clog the CPU for a long time

With the next Mediabunny update: no more. I'm fixing all algorithms that are superlinear in file length, either in CPU time or memory, and making sure that all inputs either parse instantly or fail instantly - with a useful message if they are malformed or malicious.

Mediabunny is already very stable, but I want people to be confident that it can handle any untrusted garbage that one throws at it 💪

Wow, HORRIBLE Firefox bug: Its VideoEncoder on Windows produces invalid H.264 video!! Straight up! It produces video that it can't even play back itself 😂 This is not only pretty embarrassing but also pretty bad; it means most Firefox users are producing unplayable videos rn

Mediabunny has absolutely cursed logic like this because the WebCodecs spec changed while this feature was already shipped in stable Chromium

I swearan, sometimes I feel like agentic coding legit slows me down because it pushes the care and emotional attachment for what I'm making near zero. Especially complex intricate algorithmic work is probably better done by hand and only reviewed by AI.i

My biggest flex of the week is that the head of the Chromium media team (Dale Curtis) is now tagging ME in WebCodecs issues instead of me tagging him 😎

I think I may have created a near-perfect video decoding orchestrator that provides instant and insanely smooth seeking both forwards and backwards, across any time scales and clip boundaries. I've never seen it be this smooth, even in native apps 👀

I think I need to start doing "Mediabunny days"; full days where I work on nothing but grinding down Mediabunny issues and PRs, and working on new features at the end of it. I think this will be more efficient for me than sprinkling in Mediabunny issue work throughout every day

Safari 27.0.0 and 27.0.1 unfortunately have a pretty disastrous bug in VideoEncoder, rendering it (almost) useless for video encoding tasks unless you're really really patient This has thankfully already been fixed, I hope the fix rolls out quickly

Mediabunny v1.61.0 now supports HLS playlists with variable substitution! 🚀 This is a powerful feature where variables can be defined inline or via query parameters, and then substituted in URLs. An example:

Just found out that Mediabunny's extension packages have been broken on Deno for many many months, and nobody noticed! I suppose the Mediabunny + server-side + Deno combination must be quite rare 🙃

The life of a media demuxer developer: needing to make your perfectly spec-compliant and correct parser less strict because lots of invalid inputs are being produced in the wild and still accepted by other (lesser) parsers 😫

I'm reaching speedups of 15x compared to pure JS for some operations. I hear excuses all the time that SIMD isn't worth it, that the conversion roundtrip nullifies the gain, etc. This is pure cope. SIMD reliably gives me a 4x speed boost MINIMUM every time I use it, it's so good

Vanilagy@vanilagy.bsky.social

I'm back. Library is almost complete and it's fucking glorious. The API is dead simple, just TypedArrays with SIMD operations. The code in the screenshot runs 6x faster than the scalar JS version. It has over 700 SIMD operations; they typically run at 5x-10x JavaScript speed

I'm back. Library is almost complete and it's fucking glorious. The API is dead simple, just TypedArrays with SIMD operations. The code in the screenshot runs 6x faster than the scalar JS version. It has over 700 SIMD operations; they typically run at 5x-10x JavaScript speed

Mediabunny v1.57.0 adds a TON of new features, among which is flipped video support! 🚀 Some videos in the wild are flipped horizontally via metadata in the file, and Mediabunny now fully supports reading, writing, encoding and decoding such files across both MP4 and WebM!

The upcoming version of Mediabunny will automatically write the "btrt" (bitrate) boxes into MP4 files. This gives players and tools a better understanding of the media's data rate. The coolest thing is that this added exactly zero new API! Mediabunny determines it for you.

What surprises (and saddens) me the most about the new reality of agentic software engineering is how a majority of issue and PR descriptions are fully AI-written.

View full thread

This is the new reality so I'll get used to it, but I personally find it hard to understand why it is like this. I know for myself that I would write the descriptions by hand because I want to communicate with the maintainers on a more personal level and let them know that I appreciate their work.

Before agents, most of the issues I got looked like that. Without this, OSS development feels much more lonely: you make software for other people and you mostly hear back from machines.

What surprises (and saddens) me the most about the new reality of agentic software engineering is how a majority of issue and PR descriptions are fully AI-written.

I would expect that most devs switch over to using AI to code (I use it too!), but then file the issue/PR themselves with a "Hi, this is what I tried to do, this didn't work, this is the fix". But no, about 90% of the issues I get on Mediabunny these days are fully AI written.

Here's your reminder that Mediabunny is able to read & write metadata tags from and to basically every format! Includes every tag you could possibly want, including cover art. So, no need to use another library for this!

I'm working on a new library that enables real shared-memory multithreading for JavaScript, natively. Here, the main thread and a worker cooperatively increment a counter. The state object is truly shared between the two threads; no messages are ever exchanged after the initial handshake.