Mediabunny: FFmpeg для веба на чистом TypeScript
Знакомая ситуация: нужно обработать видео или аудио прямо в браузере — обрезать, конвертировать, извлечь метаданные — а подходящих инструментов нет? Meet Mediabunny — TypeScript-библиотека, которая превращает браузер в полноценную медиа-студию.
Почему это важно?
До недавнего времени сложные операции с медиафайлами в вебе требовали:
- Серверных решений вроде FFmpeg
- Громоздких WASM-сборок
- Ограниченных нативных API
Mediabunny меняет правила игры: всё работает на чистом JavaScript, без зависимостей, с поддержкой современных браузерных API вроде WebCodecs.
Кому пригодится?
- Разработчикам видеоредакторов в браузере
- Создателям аудио-приложений
- Авторам инструментов для работы с медиаконтентом
- Всем, кому нужно анализировать или преобразовывать медиафайлы на клиенте
5 причин попробовать прямо сейчас
1. Полноценная замена FFmpeg в браузере
Поддерживает все популярные форматы:
- Видео: MP4, WebM, MKV, MOV
- Аудио: MP3, WAV, FLAC, Ogg
- Субтитры и метаданные
// Пример извлечения метаданных
const input = new Input({
source: new BlobSource(file),
formats: ALL_FORMATS,
});
const { title, artist, album } = await input.getMetadataTags();
2. Аппаратное ускорение через WebCodecs
Библиотека использует современные браузерные API для кодирования/декодирования, что даёт производительность близкую к нативным решениям.
3. Минимальный размер бандла
Благодаря tree-shaking можно подключить только нужные модули — базовый функционал весит всего 5 КБ в gzip.
4. Работа с файлами любого размера
Потоковая обработка позволяет работать даже с очень большими файлами без перегрузки памяти.
5. Кросс-платформенность
Одинаково работает в браузере и Node.js, что упрощает универсальную разработку.
Как это устроено внутри?
Технически Mediabunny — это:
- Набор мультиплексоров/демультиплексоров для разных форматов
- Абстракции над WebCodecs API
- Ленивые вычисления для оптимизации производительности
Архитектура библиотеки продумана так, чтобы минимизировать накладные расходы и максимально использовать возможности современного JavaScript.
Практические кейсы
- Облачный видеоредактор — пользователи могут редактировать видео прямо в браузере без загрузки на сервер
- Аудиоплеер с анализом треков — извлечение BPM, тональности и других характеристик
- Конвертер форматов — мгновенное преобразование между MP4, WebM, MP3 прямо на устройстве пользователя
- Генератор превью — автоматическое создание миниатюр из видео
// Пример конвертации в WebM
const conversion = await Conversion.init({
input: new Input({ source: file }),
output: new Output({ format: new WebMOutputFormat() })
});
await conversion.execute();
Статистика проекта
- ⭐ 3.9k звезд на GitHub
- 🚀 130 форков
- 📦 25+ поддерживаемых кодеков
- 🏆 Поддержка от Remotion, Gling AI и других компаний
Вывод: стоит ли пробовать?
Mediabunny — это: ✅ Простота интеграции ✅ Высокая производительность ✅ Широкие возможности ✅ Активное сообщество
Особенно рекомендую обратить внимание, если:
- Вы разрабатываете медиа-приложения для веба
- Хотите снизить нагрузку на сервер
- Цените чистый код без зависимостей
Попробовать можно прямо сейчас:
npm install mediabunny
Документация и примеры: mediabunny.dev
P.S. Автор сейчас в отпуске до 18 октября, но активное сообщество в Discord всегда поможет с вопросами!