Анализируем видео с помощью AI
Содержание
В какой-то момент понял, что мне банально не хватает времени смотреть видеодоклады, вебинары и курсы, особенно по AI. У видео как формата для меня есть понятное ограничение: за единицу времени я успеваю получить меньше информации, чем из текста.
Причин тут несколько:
- скорость чтения обычно выше скорости речи;
- в живой речи много хезитаций, пауз, самоповторов и переформулировок;
- текст почти всегда плотнее и лучше отредактирован;
- лично мне текст воспринимать проще, чем речь.
Поэтому я все чаще смотрю на задачу так: видео нужно прогонять через пайплайн, который на выходе дает нормальный конспект по содержанию.
Что вообще нужно анализировать в видео⌗
Если брать типичную лекцию, вебинар или обучающий доклад, то внутри обычно есть сразу несколько источников информации:
- речь одного или нескольких спикеров;
- кадры со слайдами, таблицами, ссылками, графиками и интерфейсами;
- иногда отдельная PDF-презентация как приложение к видео.
То есть простой транскрипт закрывает только часть задачи. Если хочется получить полезный конспект, надо учитывать не только аудио, но и визуальный слой.
Какой пайплайн кажется мне разумным⌗
В упрощенном виде схема такая.
Сначала получаем транскрипт:
- либо забираем его из YouTube, если он там уже есть;
- либо делаем через
Whisperили другуюspeech-to-textмодель.
Потом вытаскиваем информацию из кадров. Тут вижу два рабочих подхода:
- Резать видео на кадры через равные интервалы или по смене сцен, например через
ffmpeg, а потом отдавать эти кадры vision-модели на описание. - Резать видео на более крупные клипы и уже внутри vision-модели просить определить ключевые кадры по заданным критериям и описать их.
Если на входе есть:
- транскрипт;
- описание ключевых кадров;
- опционально PDF со слайдами;
- промпт пользователя с требованиями к форме результата;
…то дальше из этого уже можно собирать хороший конспект.
Это, конечно, упрощенная схема, но как базовый флоу она выглядит вполне рабочей.
Какие инструменты я посмотрел⌗
Ниже несколько инструментов, которые показались мне интересными для этой задачи.
1. NotebookLM⌗
NotebookLM остается одним из самых простых и массовых вариантов. Даешь ссылку на YouTube, он вытаскивает транскрипт и строит конспект. Если дополнительно приложить презентацию спикера, это часто вообще закрывает необходимость отдельно анализировать ключевые кадры.
Ограничение очевидное: такой подход хорошо работает, когда видео уже живет на YouTube и когда есть либо транскрипт, либо сопутствующие материалы. Напрямую с видео- и аудиопотоком это не универсальный инструмент.
2. byjlw/video-analyzer⌗
byjlw/video-analyzer делает более полный пайплайн:
- транскрипт через локальный
Whisper; - нарезку на ключевые кадры через
ffmpeg; - описание кадров через vision-модель по OpenAI-compatible API.
При желании это можно собрать полностью локально, включая использование моделей через ollama. Это очень привлекательно, если хочется минимизировать внешние зависимости.
Из минусов: локальный режим требователен к железу. У меня попытка запуска на Mac уже привела к нескольким фиксам, так что пока продолжаю тестировать.
3. kdoronin/video_analyzer⌗
kdoronin/video_analyzer использует Gemini или OpenRouter и через них решает и транскрибацию, и поиск ключевых кадров, и их описание.
Пока еще не тестировал, но идея понятная: меньше боли с локальной инфраструктурой, выше скорость запуска почти на любом железе.
Компромисс тоже понятный: за Gemini или OpenRouter придется платить.
4. arashsajjadi/ai-powered-video-analyzer⌗
arashsajjadi/ai-powered-video-analyzer выглядит как максимально насыщенный локальный вариант:
- транскрибация через
Whisper; YOLOдля обнаружения объектов в кадре;BLIPдля описания кадров;PANNsдля распознавания звуковых событий.
Еще не тестировал. Выглядит интересно, но для моих задач это пока похоже на overkill.
5. ymrohit/openscenesense-ollama⌗
ymrohit/openscenesense-ollama тоже идет в сторону полностью локального сетапа:
Whisperдля транскрибации;- модели через
ollamaдля анализа кадров; - локальная суммаризация результата.
Этот вариант тоже пока не гонял, но в списке на проверку он у меня есть.
Что пока кажется главным⌗
Для меня выбор тут упирается не столько в качество одной модели, сколько в архитектуру пайплайна и стоимость обработки.
Если нужен быстрый и дешевый способ разбирать YouTube-лекции со слайдами, то решение вроде NotebookLM может быть достаточно хорошим.
Если нужен более универсальный пайплайн под произвольные видео, где важны и речь, и визуальный контент, то логика уже ведет к связке из STT, ffmpeg, vision-модели и нормального финального саммаризатора.
А если хочется приватности и независимости от внешних API, то локальные решения выглядят особенно интересно, хотя почти всегда упираются в ресурсы машины и время на настройку.