在 Web 开发中,音视频处理一直是个 “老大难” 问题:传统方案要么依赖后端『服务器』中转(延迟高、成本高),要么使用移植自桌面的库(体积大、性能差),始终缺乏一个 “为 Web 而生” 的轻量高效解决方案。而今天要介绍的 Mediabunny,正是填补这一空白的 JavaScript 库 —— 它能直接在浏览器中实现音视频的读取、写入、转换,且速度和易用性都远超同类工具。
一、什么是 Mediabunny?
Mediabunny 是一个专注于 浏览器端音视频全流程处理 的 JavaScript 库,核心定位是 “为 Web 原生设计,而非移植适配”。它基于 TypeScript 开发,提供了从底层控制到高层封装的完整 API,让开发者既能精细操作媒体数据,又无需处理复杂的编解码细节。
简单说,它解决了三个核心痛点:
无需后端依赖:所有处理都在客户端完成,减少网络请求和『服务器』成本;
性能拉满:利用浏览器 WebCodecs API 实现硬件加速,配合 “按需加载”“流水线设计”,速度远超同类库;
轻量且灵活:零依赖、支持树摇优化(只打包用到的功能),bundle 体积最小仅 5KB 级。
二、Mediabunny 核心特性:不止于 “能用”,更在于 “好用”
Mediabunny 的功能覆盖了 Web 音视频开发的全场景,以下是最值得关注的五大特性:
1. 高效读写:只加载你需要的数据
传统库读取音视频时往往会加载整个文件,而 Mediabunny 支持 “按需提取”—— 无论是元数据(时长、分辨率、编码格式)还是原始帧数据,都能精准读取,避免不必要的性能浪费。
支持的读取源:网络 URL、本地文件(Blob)、内存缓冲区,覆盖绝大多数场景。
2. 可编程生成:动态创建音视频文件
你可以直接在浏览器中生成 MP4、WebM 等格式的媒体文件,支持添加多轨道(视频、音频、字幕),且时间精度可控制到微秒级。比如从 Canvas 捕获动画、从音频缓冲区生成音效,都能直接封装成文件。
3. 闪电转换:一站式处理格式 / 尺寸 / 编码
通过 Conversion API 可实现 “格式转换 + 编辑” 一体化:转码(如 MP4 转 WebM)、裁剪、缩放、旋转、音频重采样等操作一步完成,无需拼接多个工具。
4. 通用 I/O:灵活对接各种媒体源
Mediabunny 几乎支持所有 Web 媒体输入输出场景:
输入:Canvas、摄像头、屏幕共享、麦克风、自定义编码数据;
输出:内存缓存、本地文件下载、流式传输(边生成边推送)。
5. 广泛兼容:覆盖主流容器与编解码器
无论是常见的 MP4、WebM、MP3、WAV,还是较新的 AV1 编码、H.265,Mediabunny 都支持 “双向处理”(既能读又能写)。完整兼容列表包括:
容器:.mp4、.webm、.mov、.mkv、.ogg、.wav 等;
视频编码:H.264/AVC、H.265/HEVC、VP8、VP9、AV1;
音频编码:AAC、MP3、Opus、Vorbis、FLAC、PCM;
字幕:WebVTT。