🎙 Новинка в FFmpeg: встроенная автотранскрипция на Whisper

В FFmpeg 8.0 добавили аудио-фильтр whisper (af_whisper) — теперь можно делать распознавание речи напрямую из FFmpeg, без отдельного сервиса. Под капотом — whisper.cpp; сборка включается флагом --enable-whisper, есть опциональное ускорение на GPU. Вывод — в text / SRT / JSON, в файл или по HTTP.

Из кода фильтра видно доступные опции: путь к модели (model), язык (language или auto), включение GPU (use_gpu), формат (format=text|srt|json), место назначения (destination), а также параметры VAD (порог тишины/речи) для чище́й сегментации. Имя фильтра — whisper.

👨‍🍳 Как использовать (мини-рецепты):

  1. SRT-субтитры из видео ffmpeg -i talk.mp4 -map 0:a \ -af "whisper=model=/models/ggml-large-v3.bin:language=auto:use_gpu=1:format=srt:destination=out.srt" \ -f null - Фильтр пишет субтитры в out.srt, поток гонится в null

2) Отправить распознанный текст в веб-сервис (JSON)ffmpeg -i in.wav -map 0:a \ -af "whisper=model=/models/ggml-base.bin:format=json:destination=http://localhost:8080/hook" \ -f null - destination может быть URL — FFmpeg отдаст JSON по HTTP

  1. Накладываем субтитры на видео
#генерируем SRT

ffmpeg -i in.mp4 -map 0:a -af "whisper=…:format=srt:destination=subs.srt" -f null -

#накладываем субтитры на видео

ffmpeg -i in.mp4 -vf "subtitles=subs.srt" -c:a copy out_with_subs.mp4

  1. Чутче разделять реплики (VAD) -af "whisper=…:vad_threshold=0.6:vad_min_silence_duration=700ms" Помогает убрать «шумы» и неверные разбиения фраз

📈 Где это сразу полезно в продуктах: • Авто-субтитры для роликов, стримов, подкастов прямо в пайплайне FFmpeg. • Поисковая индексация: выгружаем JSON → складываем в БД → семантический поиск по фрагментам. • Пост-обработка на лету: loudnorm → arnndn → whisper → burn/mux — весь конвейер в одном прогоне. • Боты и автоматизация: отправляем расшифровку веб-хуком, триггерим аннотации/резюмирование/перевод.

ℹ️ На заметку: • Новинка вошла в FFmpeg 8.0 (релиз ожидают «в ближайшие недели»). Чтобы попробовать сейчас, собирайте FFmpeg из исходников с --enable-whisper и установленным whisper.cpp. Есть GPU-режим и дамп в SRT/JSON. • Опции фильтра (model/language/use_gpu/vad/format/destination) — см. исходники af_whisper.c.

🔗 Полезные ссылки: • Исходный код фильтра af_whisper.c — git.ffmpeg.org • Whisper.cpp (ядро фильтра) — github.com/ggml-org/whisper.cpp • Документация по фильтрам FFmpeg — ffmpeg.org/ffmpeg-filters.html