awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
Vanilagy avatar

Vanilagy/mediabunny

0
View on GitHub↗
5,254 stars·198 forks·TypeScript·mpl-2.0·19 viewsmediabunny.dev↗

Mediabunny

This is a cross-platform media processing library that reads, writes, encodes, and decodes media in both browser and server environments. It supports common container formats including ISOBMFF, Matroska, Ogg, MPEG-TS, and HLS, and handles codec operations through a combination of WebCodecs API and WebAssembly-based encoders. Media is processed in streaming pipelines that maintain constant memory usage and automatically apply backpressure from output speed to all upstream components.

The library distinguishes itself through a plugin-based codec registration system that allows extending supported formats at runtime, a zero-copy native frame adapter that eliminates memory transfers between JavaScript and FFmpeg, and a unified track pairing model for controlling multi-track output compatibility. It provides a full HLS streaming workflow including reading and writing playlists, encrypted segment decryption, multi-bitrate variant generation, and lazy-loading of track data. Hardware acceleration via GPU contexts like VAAPI or VideoToolbox is configurable for encoding, decoding, and filtering. A server-side polyfill extends the same browser APIs to Node.js, Bun, and Deno environments. Broader capabilities cover live media capture and recording from cameras, microphones, and screens, media conversion and transcoding with trimming and filtering, metadata reading and writing, and decoded frame extraction for processing or display.

Features

  • Media Codec Fallbacks - Uses browser WebCodecs for hardware acceleration and pure WebAssembly encoders for codecs without native support.
  • Media Conversion - FFmpeg.wasm transmuxes or transcodes media into different container or codec formats with optional effects.
  • Browser-Based Converters - Converting media files between containers and codecs directly in the browser, with custom processing like trimming and filtering.
  • Custom Conversion Processes - FFmpeg.wasm transmuxes, transcodes, trims, resizes, and applies custom sample processing with progress monitoring.
  • Media Streaming Pipelines - A library that processes media in constant-memory streaming pipelines, reading from live sources and writing to files or networks with backpressure.
  • Media Frame Exchanges - FFmpeg.wasm creates samples directly backed by FFmpeg AVFrame memory, eliminating data transfer between JavaScript and native code.
  • Lazy Media File Readers - Reads media from files, URLs, or custom sources lazily with minimal memory overhead.
  • Multi-Format Media Container Readers and Writers - Reads and writes common media container formats (ISOBMFF, Matroska, Ogg, MPEG-TS, HLS) bidirectionally.
  • Streaming Media Pipelines - Processes media in a constant-memory pipeline that applies backpressure from output speed to all upstream components.
  • Server Polyfills - Bridges to native FFmpeg via Node bindings, enabling full codec support and advanced filter graphs on server runtimes.
  • Streaming Media Processing Pipelines - Processing media data in a streaming fashion with constant memory usage and automatic backpressure from network or disk destinations.
  • Media Track Management - FFmpeg.wasm reads and separates audio, video, and subtitle tracks from container formats for further processing.
  • Custom Codec Registries - Allows registering custom codec implementations at runtime to extend supported formats or replace browser dependencies.
  • Server-Side Media Processing Adapters - Provides a polyfill package that enables browser-based media processing APIs on Node.js, Bun, and Deno server environments.
  • Browser-Based Workflows - Reading, writing, and transforming HLS streams in the browser, including decryption, multi-bitrate variants, and live playlist management.
  • Track Pairing Rules - Groups tracks into variants with explicit pairing rules to control which tracks can coexist in multi-track output.
  • Video Encoding and Decoding - Encodes and decodes video and audio using the WebCodecs API and built-in PCM codecs.
  • Media Transcoders - FFmpeg.wasm transforms media between containers and codecs with transcoding, resizing, rotation, cropping, resampling, and trimming.
  • Hardware-Accelerated Transcoders - A tool that converts media between containers and codecs, applying filters, trimming, and resizing, with support for hardware acceleration.
  • Media File Writing - FFmpeg.wasm creates output files by attaching tracks, setting metadata, and managing the write lifecycle.
  • Media Processing - A library that reads, writes, encodes, and decodes media files and streams using WebCodecs and FFmpeg WebAssembly in browser and server environments.
  • Web Audio Buffer Exporters - Decodes an audio track and outputs Web Audio API-compatible AudioBuffer objects for playback or mixing.
  • AC-3 Decoders and Encoders - Decodes and encodes Dolby Digital (AC-3) and Dolby Digital Plus (E-AC-3) audio using WebAssembly FFmpeg builds.
  • Media - FFmpeg.wasm extracts and writes metadata tags including title, artist, cover art, and custom tags.
  • AAC-LC Encoders - Provides AAC-LC audio encoding via a WebAssembly-based encoder to fill gaps in browser support.
  • FLAC Encoders - Encodes audio to FLAC lossless format using a WebAssembly-based encoder.
  • MP3 Encoders - Converts audio data to MP3 format using a high-performance WebAssembly build of the LAME encoder.
  • Media Metadata Extraction - FFmpeg.wasm extracts metadata such as tags, dimensions, and duration from input media files.
  • Server-Side Filter Graph Applications - FFmpeg.wasm applies arbitrary audio and video filters via libavfilter for custom transformation chains on the server.
  • Metadata Tagging - FFmpeg.wasm sets descriptive metadata tags like title, artist, and cover art on the output file before writing.
  • Live Capture and Recording - Capturing live video and audio from cameras, screens, or microphones and recording them into media files with pause support.
  • Filter Graph Applications - FFmpeg.wasm applies arbitrary filter chains such as grayscale to video or audio frames during conversion using FFmpeg libavfilter.
  • Hardware-Accelerated Codecs - Accelerating media encoding, decoding, and filtering with GPU hardware contexts like VAAPI or VideoToolbox.
  • Zero-Copy Frame Capture - FFmpeg.wasm imports GPU textures from external applications with zero-copy, without moving data to the CPU.
  • Live Stream Recorders - FFmpeg.wasm pipes live video and audio from camera or screen into a media file with pause support and timestamp continuity.
  • Media File Encoders - FFmpeg.wasm builds new media files by adding coded tracks from canvas or other sources with configurable quality settings.
  • Decoded Audio Sample Extractors - Decodes an audio track and retrieves raw audio sample data for analysis, visualization, or custom processing.
  • Fit Mode Resizers - FFmpeg.wasm resizes and crops video samples with options for fit mode using a simple method.
  • Track Property Queries - FFmpeg.wasm lists all media tracks and queries properties such as codec configuration, frame rate, color space, and HDR status.
  • Multi-Codec Support - Checks which codecs the browser can encode or decode with optional custom settings.
  • Camera and Microphone Recorders - FFmpeg.wasm captures audio and video from a camera or microphone and writes directly to a file or stream.
  • Encrypted Segment Decryption - FFmpeg.wasm decrypts HLS segments with AES-128 or SAMPLE-AES encryption using user-provided keys.
  • Lazy Track Data Loaders - FFmpeg.wasm fetches only the master playlist, media playlist, or segments as needed to minimize initial data transfer.
  • Live Stream Detections - FFmpeg.wasm detects live HLS playlists and provides the refresh interval for checking new media data.
  • Multi-Bitrate Variant Generators - FFmpeg.wasm encodes content at multiple resolutions and bitrates and bundles them into an HLS playlist with variant streams.
  • Playlist Generators - FFmpeg.wasm generates HLS .m3u8 playlists for video-on-demand or live streaming content.
  • Playlist Reading - FFmpeg.wasm reads HLS master and media playlists through a unified input interface with custom path resolution.
  • Track Listings - FFmpeg.wasm flattens all tracks from HLS variants into a single deduplicated array for easy enumeration.
  • Track Pairability Queries - FFmpeg.wasm checks which tracks can be presented together based on the HLS master playlist variant and rendition structure.
  • Video Frame Capture - Captures a single frame from a video stream and renders it onto a canvas element.
  • Canvas Frame Captures - FFmpeg.wasm captures repeatedly updated canvas frames and encodes them directly into the output file.
  • Canvas Frame Renderers - Decodes a video track and outputs each frame as an HTML or OffscreenCanvas with optional scaling and rotation.
  • Video Frame Processing - Converts samples to WebCodecs or AudioBuffer, renders video to canvas, extracts raw data, and transforms frames.
  • Zero-Copy Transformations - FFmpeg.wasm resizes, rotates, or crops individual video frames using zero-copy operations.
  • Media - FFmpeg.wasm retrieves duration, format, MIME type, start timestamp, and descriptive tags without reading the full file.

Star history

Star history chart for vanilagy/mediabunnyStar history chart for vanilagy/mediabunny

How this analysis was created: This summary and feature list were written by an AI model that read the project's README and public documentation pages. Each feature links to the documentation it came from; stars, license and language come straight from the GitHub API. The model does not read the source code, and the analysis is refreshed when the project is re-analysed. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Frequently asked questions

What does vanilagy/mediabunny do?

This is a cross-platform media processing library that reads, writes, encodes, and decodes media in both browser and server environments. It supports common container formats including ISOBMFF, Matroska, Ogg, MPEG-TS, and HLS, and handles codec operations through a combination of WebCodecs API and WebAssembly-based encoders. Media is processed in streaming pipelines that maintain constant memory usage and automatically apply backpressure from output speed to all upstream…

What are the main features of vanilagy/mediabunny?

The main features of vanilagy/mediabunny are: Media Codec Fallbacks, Media Conversion, Browser-Based Converters, Custom Conversion Processes, Media Streaming Pipelines, Media Frame Exchanges, Lazy Media File Readers, Multi-Format Media Container Readers and Writers.

What are some open-source alternatives to vanilagy/mediabunny?

Open-source alternatives to vanilagy/mediabunny include: gpac/gpac — GPAC is an open-source multimedia framework built around a pluggable filter graph pipeline, where modular processing… puemos/hls-downloader — HLS Downloader is a browser-integrated utility designed to detect, capture, and assemble fragmented streaming media… kkroening/ffmpeg-python — ffmpeg-python is a Python wrapper that translates programmatic method calls into command-line arguments for executing… webrtc/samples — This repository provides a collection of reference implementations and practical demonstrations for using WebRTC to… open-webrtc-toolkit/owt-server — This project is a scalable real-time communication platform designed for multi-party video and audio conferencing. It… handbrake/handbrake — HandBrake is an open-source media converter and video transcoding application designed to process digital video and…

Open-source alternatives to Mediabunny

Similar open-source projects, ranked by how many features they share with Mediabunny.
  • gpac/gpacgpac avatar

    gpac/gpac

    3,205View on GitHub↗

    GPAC is an open-source multimedia framework built around a pluggable filter graph pipeline, where modular processing units called filters connect into a directed graph to handle media workflows. At its core, the framework centers all media packaging and manipulation on the ISO Base Media File Format (ISOBMFF), with specialized tools for reading, writing, fragmenting, and encrypting MP4 and related containers. It also provides a declarative scene graph composition system for describing interactive multimedia scenes using MPEG-4 BIFS, X3D, SVG, or VRML syntax, alongside a hardware-accelerated re

    Catsc3broadcastcenc
    View on GitHub↗3,205
  • puemos/hls-downloaderpuemos avatar

    puemos/hls-downloader

    2,616View on GitHub↗

    HLS Downloader is a browser-integrated utility designed to detect, capture, and assemble fragmented streaming media content directly from web pages. It functions as a browser extension that identifies HTTP Live Streaming manifests, allowing users to download video, audio, and subtitle tracks as complete, playable local files. The tool distinguishes itself by performing all processing tasks entirely within the browser environment. It utilizes native browser primitives to decrypt protected media segments and reconstruct fragmented binary streams into unified files. By intercepting network traff

    TypeScriptchromechrome-extensionclean-architecture
    View on GitHub↗2,616
  • kkroening/ffmpeg-pythonkkroening avatar

    kkroening/ffmpeg-python

    10,999View on GitHub↗

    ffmpeg-python is a Python wrapper that translates programmatic method calls into command-line arguments for executing FFmpeg media processing tasks. It functions as a multimedia transcoding interface and a media stream capture tool, allowing for the recording of live audio and video from hardware devices and network sources. The library features a fluent interface for constructing complex directed graphs of audio and video filters through method chaining. It also includes an FFprobe metadata extractor that retrieves structured technical properties from media files and returns them as Python d

    Python
    View on GitHub↗10,999
  • webrtc/sampleswebrtc avatar

    webrtc/samples

    14,624View on GitHub↗

    This repository provides a collection of reference implementations and practical demonstrations for using WebRTC to establish real-time audio, video, and data communication. It contains code samples for negotiating peer-to-peer connections, managing media streams, and utilizing low-latency data channels. The project demonstrates the capture of audio and video from hardware devices, as well as the redirection of canvas element content into media streams. It includes examples of transferring arbitrary text and binary data between peers and managing the negotiation of direct connections. The sa

    JavaScript
    View on GitHub↗14,624
  • See all 30 alternatives to Mediabunny→