
Як я використовував FFmpeg.wasm для створення браузерного інструмента з видалення звуку з відео
https://ift.tt/3eFncsb
У мене була постійна розчарованість: мені потрібно було вимкнути звук у відео перед його поширенням. Кожен інструмент, який я знаходив, або завантажував файл на сервер, додавав водяний знак або вимагав створити обліковий запис.
Я знаю, що одна команда FFmpeg обробляє це за мілісекунди. Але більшість людей навряд чи відкриють термінал для чогось подібного.
Тому я створив Remove Audio — безкоштовний браузерний інструмент, який знімає звук з будь-якого відео локально на пристрої користувача.
Коротка ідея
Уся система працює на FFmpeg.wasm, порті FFmpeg на WebAssembly. Коли користувач кидає відео, браузер спочатку завантажує білянку WASM, а потім запускає FFmpeg повністю локально. Нічого не залишає пристрій.
Базова операція зазвичай така:
ffmpeg -i input.mp4 -an -c:v copy output.mp4
-an прибирає аудіодоріжку. -c:v copy вказує FFmpeg копіювати відеопотік без перекодування, що означає нульову втрату якості та швидку обробку навіть великих файлів.
Чому б не просто використати сервер?
Обробка на стороні сервера простіша у побудові. Але має реальні мінуси для користувача:
- Їх файл мандрує мережею (повільно для великих відео)
- Працює на чийомусь комп’ютері під час обробки
- Потрібна інфраструктура, сховище та витрати на пропускну здатність
WebAssembly міняє це. Обчислення відбуваються на комп’ютері користувача. Єдине, що сервер повинен подавати — це білянка WASM, яка кешується після першого завантаження.
Що зробило це складним
Перехресна ізоляція походження. FFmpeg.wasm вимагає SharedArrayBuffer, що потребує, щоб сторінка була ізольована за походженням. Тобто потрібно встановити заголовки відповіді Cross-Origin-Opener-Policy: same-origin та Cross-Origin-Embedder-Policy: require-corp. Це порушило деякі вбудовування третіх сторін і вимагало обережних обходів.
Mobile Safari. iOS має суворіші обмеження щодо пам’яті WASM та потоків. Мені довелося тестувати та підлаштовувати саме для iPhone, де багато людей займаються випадковим редагуванням відео.
Обробка форматів. Ремьюсинг файлів MKV або MOV під час копіювання потоків не завжди простий. Деякі контейнери потребують додаткової обробки навіть коли ви просто копіюєте відеопотік без перекодування.
Що я випустив
remove-audio.com безкоштовний сервіс, обліковий запис не потрібен, працює на Mac, Windows, iPhone, Android та в будь-якому сучасному браузері. Підтримує MP4, MOV, MKV, AVI та WEBM. Доступний англійською, іспанською, французькою, німецькою та голландською.
Якщо ви створюєте щось, де користувачам потрібне беззвучне відео — інструменти для контенту, навчальні платформи, планувальники у соціальних мережах — ви можете просто направити людей на це.
Буду радий відповісти на запитання щодо інтеграції FFmpeg.wasm або налаштувань COOP/COEP, якщо хтось цікавиться.
HI-FI News
через DEV Community: javascript https://ift.tt/jDmdOar
29 квітня 2026 року, 23:53 PM
April 29, 2026 at 11:53PM

Залишити відповідь
Щоб відправити коментар вам необхідно авторизуватись.