17.9K ·GitHub
Что это такое?
ffmpeg.wasm — это портированная на чистом WebAssembly/JavaScript версия FFmpeg, которая работает прямо в браузере и позволяет записывать, конвертировать и потоково обрабатывать аудио и видео без сервера.
Это JavaScript-библиотека, которую можно подключить к веб-приложению, или самостоятельное приложение?
Это библиотека на JavaScript/WebAssembly (опубликованная как npm-пакеты в рамках монорепозитория с workspace), которую вы импортируете в свой веб-проект. Самостоятельного приложения нет: всё работает во вкладке браузера пользователя.
Как начать работать с этим в своём проекте?
В проекте есть пошаговая документация: разделы Introduction, Getting Started и справочник по API. Именно по ней стоит устанавливать библиотеку и подключать её к веб-приложению.
Нужна ли особая настройка сервера для использования?
Серверная обработка не нужна, но собственный dev-сервер проекта включает заголовки Cross-Origin-Embedder-Policy и Cross-Origin-Opener-Policy. Это как раз те заголовки изоляции между источниками, которые обычно требуются для многопоточности WebAssembly в браузере.
Годится ли это для использования в продакшене?
На проекте до сих пор указано, что часть функций экспериментальная, и открыто просят спонсорскую поддержку, чтобы проект оставался устойчивым. Это говорит о том, что проект активно развивается и держится на взносах сообщества, а не является полностью зрелой библиотекой, проверенной на практике.
Загружаются ли мои видео- или аудиофайлы куда-либо при использовании?
Нет: запись, конвертация и потоковая обработка выполняются прямо в браузере через WebAssembly, поэтому файлы обрабатываются на стороне клиента и никогда не нужно отправлять их на сервер.
Зачем использовать это вместо запуска FFmpeg на сервере?
Потому что весь конвейер транскодирования работает на стороне клиента в WebAssembly: не нужны расходы на сервер, нет задержек на загрузку, а медиафайлы пользователя остаются на его устройстве.
Есть ли сообщество, где можно задать вопросы?
Да, у проекта есть сервер в Discord, где пользователи и участники обсуждают библиотеку и получают помощь.
Что это умеет на самом деле — только конвертацию форматов?
Он охватывает основные сценарии FFmpeg: запись, конвертацию и потоковую обработку аудио и видео. Он переносит в браузер большую часть возможностей транскодирования FFmpeg, а не просто простую замену форматов.
What are similar projects?
filmcraft, FFmpeg, android-airplay-server, ffmpeg-python, openreel-video, howler.js, react-player, fframes
Which topics is it in?
webassembly, audio-processing, offline-first, video-processing, ffmpeg, wasm, audio, streaming, video, c, browser, privacy