Sign in

Vanilagy

@vanilagy.bsky.social
244 followers 14 following 530 posts

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

PostsRepliesMedia
Vanilagy @vanilagy.bsky.social · 29/09/2026
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:
000
Vanilagy @vanilagy.bsky.social · 28/09/2026
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 🙃
130
Vanilagy @vanilagy.bsky.social · 25/09/2026
Trip Buck Bunny
050
Vanilagy @vanilagy.bsky.social · 21/09/2026
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 😫
150
Vanilagy @vanilagy.bsky.social · 17/09/2026
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
0271
Vanilagy @vanilagy.bsky.social · 17/09/2026
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
1302
Vanilagy @vanilagy.bsky.social · 17/09/2026
Don't be a larper; be a lerper
100
Vanilagy @vanilagy.bsky.social · 16/09/2026
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!
170
Vanilagy @vanilagy.bsky.social · 16/09/2026
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.
080
Vanilagy @vanilagy.bsky.social · 16/09/2026
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.
110
Reposted by Vanilagy
CreaTools @creatools.bsky.social · 15/09/2026
one of the recent additions to creatools is the video trimmer. powered by @vanilagy.bsky.social's #mediabunny, the export is lightning fast and even let's you export your own custom gifs in no time. give it a shot at: crea.tools/video-trimmer #creatools
051
Vanilagy @vanilagy.bsky.social · 15/09/2026
Can't believe there's still no SIMD library for JavaScript I'll be back
060
Vanilagy @vanilagy.bsky.social · 14/09/2026
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!
190
Vanilagy @vanilagy.bsky.social · 11/09/2026
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.
4243
Vanilagy @vanilagy.bsky.social · 11/09/2026
JavaScript natively supports shared-memory multithreading
010
Vanilagy @vanilagy.bsky.social · 10/09/2026
Cursed JS of the day: you can array push to objects
2431
Vanilagy @vanilagy.bsky.social · 10/09/2026
Closing in on 30 reported Chromium bugs 🫠 When will Alphabet give me stock for this?
1150
Vanilagy @vanilagy.bsky.social · 09/09/2026
Mediabunny goes great lengths to work around any and all WebCodecs bugs it encounters. Here's some new logic that works around an FFmpeg H.264 decoder bug by hacking around in the SPS bitstream. You can hit this in Chromium with the software decoding path forced.
150
Vanilagy @vanilagy.bsky.social · 08/09/2026
Mediabunny v1.56.0 is out! 🎉 It ships with huge improvements to the Conversion API, enabling near-instant media trimming via new media copying logic. Here's Mediabunny trimming a video to [60s, 120s], with no loss in quality:
1200
Vanilagy @vanilagy.bsky.social · 07/09/2026
Update dropping tomorrow 👀 The performance is nuts, it extracts a 60-second clip from Big Buck Bunny in 50 milliseconds. So, for all intents and purposes, it is instant trimming
0170
Vanilagy @vanilagy.bsky.social · 04/09/2026
A huge improvement to media conversion is coming in the next Mediabunny version 👀 It will allow you to trim/clip any section of media WITHOUT transcoding. This means media trimming will be practically instant, and with zero loss of quality.
0130
Vanilagy @vanilagy.bsky.social · 04/09/2026
I'm sorry, but VLC is just so buggy. Second bug I encounter today! The file I'm giving it is a Matroska file with negative SimpleBlock timestamp offsets. The spec is SUPER clear about this, it defines it as signed 16 bit. Seems VLC just doesn't care and reads it as unsigned!
000
Vanilagy @vanilagy.bsky.social · 04/09/2026
Next highly niche Mediabunny capability: HLS with negative timestamps
150
Vanilagy @vanilagy.bsky.social · 04/09/2026
VLC incorrectly displays fragmented MP4 files with an edit list that trims off its start. QuickTime and Chromium (and Mediabunny!) all display it correctly by not showing the trimmed-off media.
070
Vanilagy @vanilagy.bsky.social · 03/09/2026
The worst thing about Bluesky is how America-pilled it is. Reading its feed makes you feel like the US is the only country in the world.
180
Vanilagy @vanilagy.bsky.social · 03/09/2026
In addition to npm, I distribute Mediabunny via build artifact files I attach to every release. They cover every feature and extension, and come in ESM and UMD (CJS) form, minified and unminified. More people use these files than I initially thought, which makes me happy!
000
Vanilagy @vanilagy.bsky.social · 03/09/2026
This field is SO awesome, it tells you the delay (in seconds) between producing a sound on the page and your speakers emitting that sound. Magic! It's super fun, if I log this on repeat and connect my bluetooth headphones, it jumps from 10 ms to 230 ms instantly. It's dynamic!!!
3141
Vanilagy @vanilagy.bsky.social · 02/09/2026
Mediabunny is now almost used by 2K public GitHub repos. This number has been growing super quickly over the last few weeks!
1120
Vanilagy @vanilagy.bsky.social · 02/09/2026
This is the craziest sine approximation I know, it's SO good for being so fast to evaluate Green is the approximation, black is real sin(x)
1101
Vanilagy @vanilagy.bsky.social · 01/09/2026
Personality test: db.sqlite or sqlite.db
100
Vanilagy @vanilagy.bsky.social · 01/09/2026
Working on TurboRes / in Zig has "performance-pilled" by brain almost too much, to the point where I now question things that absolutely do not matter, slowing me down It's like I need to learn to give less fucks again, it's weird
010
Vanilagy @vanilagy.bsky.social · 01/09/2026
Slapping one of these in your video editor app makes it look 10x cooler even tho it's literally useless to 99% of users
051
Vanilagy @vanilagy.bsky.social · 31/08/2026
Hit a wild Chromium bug in Mediabunny today. Turns out, if you acquire a stream reader for a Blob/File, and don't complete or close it, it never gets garbage collected 💀 2 MB leakage for each reader, and since Mediabunny creates tons of them, it slowly led to memory exhaustion!
010
Vanilagy @vanilagy.bsky.social · 31/08/2026
Recently hardened the color space logic for Mediabunny. It now properly digs into the actual bitstreams of each codec to figure out the color space, even if the container file doesn't provide any metadata for it.
000
Vanilagy @vanilagy.bsky.social · 29/08/2026
soon soon
000
Vanilagy @vanilagy.bsky.social · 29/08/2026
AAAAAAHH MEDIABUNNY HAS REACHED 10M MONTHLY DOWNLOADS 😱❤️
1250
Vanilagy @vanilagy.bsky.social · 27/08/2026
This kind of audio visualization is INSANELY helpful (and lowkey required) for debugging audio rendering
010
Vanilagy @vanilagy.bsky.social · 26/08/2026
Mediabunny gets better and more stable every day. Just dropped another bug fix update!
050
Vanilagy @vanilagy.bsky.social · 26/08/2026
Angular's Zone.js, which an indirect user of Mediabunny happened to include due to a support widget they used, monkeypatches window.Promise with its own thing and completely breaks Mediabunny in the process. Literally, wtf! Contemplating if I just "won't fix" this one
390
Vanilagy @vanilagy.bsky.social · 25/08/2026
Found and reported a crazy Chromium bug today
0120
Vanilagy @vanilagy.bsky.social · 25/08/2026
I'm gonna rename Mediabunny to OpenMedia, claim the domain openmedia.ai, and reposition it as "The code-first media toolkit for the agentic era" This will hopefully 10x my GitHub stars overnight, wish me luck!!
3120
Vanilagy @vanilagy.bsky.social · 24/08/2026
Mediabunny has reached 7k stars!! Thank y'all! github.com/Vanilagy/med...
github.com
GitHub - Vanilagy/mediabunny: Pure TypeScript media toolkit for reading, writing, and converting video and audio files, directly in the browser.
Pure TypeScript media toolkit for reading, writing, and converting video and audio files, directly in the browser. - Vanilagy/mediabunny
1150
Vanilagy @vanilagy.bsky.social · 24/08/2026
him
020
Vanilagy @vanilagy.bsky.social · 24/08/2026
Oh no What am I doing in Mediabunny 👀
050
Vanilagy @vanilagy.bsky.social · 23/08/2026
GitHub doesn't know how to name buttons. All buttons should start with a verb, but here (I think) they're just saying "Merge conflicts" as a plural noun. I legit have no idea what will happen when I press this button
7241
Vanilagy @vanilagy.bsky.social · 21/08/2026
I'm genuinely proud of how incredibly robust Mediabunny's demuxers (file readers) have become. They can deal with the wackiest, most spec-uncompliant of files and the user can't even tell. They always get perfect-accuracy seeking no matter the file. It's just so satisfying!!
0190
Reposted by Vanilagy
Ryan Carniato @ryansolid.bsky.social · 19/08/2026
For those looking for more details after the release announcement here they are. Solid's approach to Async is one of kind. And more than that it has real implications. www.solidjs.com/blog/async-s...
37314
Vanilagy @vanilagy.bsky.social · 20/08/2026
PLEASE stop modeling "errors as values" in TypeScript after the "Result" enum from Rust. It is unnecessarily verbose and you're paying for an object instantiation for every value you return, everywhere, even if the error path never happens in the entire lifetime of your application.
2150
Vanilagy @vanilagy.bsky.social · 17/08/2026
Mediabunny v1.55.0 ships with support for a new audio codec: DTS! 🚀 This codec is quite widespread in the home theater space. With it, the new @mediabunny/dts extension provides a fast, WASM-based encoder and decoder for playing back and creating DTS audio directly in the browser. Enjoy! :)
0150
Vanilagy @vanilagy.bsky.social · 16/08/2026
This Overwatch feature is the whole reason why Mediabunny exists, lol I saw it, wanted to add it to my webgame, realized the web had no good muxer libraries, made my own, and the rest is history!
0170