Монтаж видео нейросетью: как ИИ-агент чистит запись эфира
Автор: Сергей Дроздов, основатель STEREO AI · Обновлено 29 сентября 2026
Коротко: запись эфира — это наполовину ожидание, «вы меня слышите?» и паузы, а на экране мелькают номер карты, почта и ключи. Наш бесплатный скилл /webinar для Claude Code и Codex делит запись на «чистые» куски и «мусор» по смыслу речи, находит на экране секреты и замазывает их, а склеивает итог из оригинала в полном качестве. Решения о том, что выкинуть, остаются за человеком. На первом живом эфире из 39 минут записи вышло 20 минут чистого видео.
Результат работы скилла — полный эфир на нашем YouTube-канале «Сергей Дроздов · ИИ и вайбкодинг». Там разборы ИИ-агентов, чат GPT и Codex на живых примерах.
Почему монтаж эфира нельзя отдать «вырезалке тишины»
Живой урок или вебинар — примерно половина содержания. Остальное: ожидание участников, проверка звука, переподключения, «тут я помолчу, потом вырежешь», разговор с оператором, три минуты тишины, пока что-то устанавливается.
Автоматическое удаление пауз здесь не помогает: оно выкидывает дыхание из хорошей речи и оставляет весь болтливый мусор. Мусор в эфире узнаётся по смыслу, а не по громкости. Поэтому разметку делает ИИ-агент, который читает расшифровку целиком, а не детектор тишины.
Вторая проблема хуже и в расшифровке её не видно: что на экране. Урок про оплату подписки показывает ввод номера карты. Урок на живом компьютере показывает почту, переписку и IP-адрес. Голос об этом молчит.
Как нейросеть монтирует запись: 6 шагов
Расшифровка с таймингом каждого слова. Речь распознаётся в облаке (русская модель GigaAM), для 40 минут записи — около 2 минут.
Лента и разметка. Скрипт собирает читаемую ленту: фразы с таймкодами и длинные паузы отдельными строками. Агент читает её целиком и размечает куски: «чистое» или «мусор», с заметкой, почему.
Черновики на просмотр. Каждый кусок — отдельный лёгкий файл 001_ЧИСТ_вступление_00-18_01-00.mp4. Границы сами встают в паузы между словами, поэтому кусок не начинается посреди слова.
Человек смотрит — сначала мусор (не выкинули ли полезное), потом чистое. Статус меняется переименованием файла в проводнике: ЧИСТ ↔ МУСОР. Никаких JSON и таблиц.
Проверка экрана. Кадры каждого чистого куска одной картинкой и распознавание текста на кадре каждую секунду: номера карт, сроки, почты, IP, ключи и токены. Найденное превращается в готовые прямоугольники для замазки.
Склейка из оригинала — в полном качестве, с замазкой, мягкими стыками звука и по желанию ускорением на 5–8 %: зритель этого не замечает, а ролик короче.
По желанию — седьмой шаг: писк слов в готовом ролике. Тон 1 кГц на громкости 0.035 закрывает слово и не режет уши (0.2 и 0.07 мы забраковали как громкие), видео при этом не перекодируется.
повторная расшифровка итога: 97 % совпадения слов, ни одной фразы, обрезанной на стыке
Найдено на экране, в речи — ни слова
номер карты со сроком и CVC, личная переписка, список чатов, почта автора, домашний IP
После ещё одного прохода вместе с автором и ускорения на 8 % опубликованный эфир занимает 18 минут — вот он:
Главное: расшифровка не видит экран
Это самый дорогой урок проекта. Три кадра на кусок ловят то, что висит на экране долго: открытый чат, почтовый ящик. Но терминал, который печатает ключи подписки, держит их на экране 2–3 секунды — и так три раза за минуту. Такие вспышки находит только распознавание текста на кадре каждую секунду.
Мы проверили это на своей же записи: на отрезке в 80 секунд незамазанная версия дала 4 находки — адрес сервера и ключ подписки, каждый мелькал по 2–3 секунды. Замазанная версия того же отрезка — 0 находок. На 80 секунд видео ушло 22 секунды.
Как замазать номер карты на видео
Обычное размытие (boxblur) на узком поле оставляет цифры читаемыми: его сила ограничена размером области. Надёжнее сжать область в 20 раз и растянуть обратно — от цифр остаётся цветное пятно при любом размере поля. Замазка ставится на весь кусок или только на нужные секунды.
Секрет на экране — повод замазать, а не вырезать: в уроке про оплату ввод карты и есть суть шага.
Грабли, на которые мы наступили
Ускорение пропадало молча. Если ограничение длины в ffmpeg стоит после входного файла, ускоренный кусок дотягивается до прежней длины повтором кадров и тишиной. Нашли замером итога, а не чтением документации.
Щелчки на стыках. Когда звук каждого куска сжимается отдельно, на каждом стыке щёлкает. Теперь звук кусков собирается без сжатия, подрезается ровно под длину видео и кодируется один раз на весь ролик — иначе на шестидесяти кусках набегает секунда рассинхрона.
Спикеры против таймингов. Если попросить сервер распознавания разделить голоса, он перестаёт отдавать время каждого слова — а без него границы кусков не встают в паузы.
Писк — косметика. Он закрывает слово, но не смысл фразы. Если сказанное нельзя публиковать, кусок надо вырезать.
Как поставить скилл /webinar в Claude Code или Codex
Claude Code — в ~/.claude/skills/webinar/ (Windows: C:\Users\<имя>\.claude\skills\webinar\);
Codex — в ~/.agents/skills/webinar/ (Windows: C:\Users\<имя>\.agents\skills\webinar\). Папку именно копируйте: по ярлыку-ссылке Codex находит скиллы не всегда.
Нужны Python 3.9+ и ffmpeg. Проверка: ffmpeg -version.
Токен распознавания речи — в Telegram-боте @stereo_dictator_bot командой /app. Скопируйте .env.example в .env и вставьте токен.
Перезапустите агента и попросите: «почисти запись эфира stream.mp4». В Codex скилл можно вызвать и явно — $webinar или через меню /skills. Агент сам пройдёт шаги и остановится, когда нужно ваше решение.
Распознавание текста на экране работает на Windows — движок уже встроен в систему, ставить ничего не нужно. На macOS и Linux остаётся проверка кадрами глазами.
Скилл /webinar написан вайбкодингом: задачу ставили ИИ-агенту словами, а он писал и проверял код. Этому мы учим с нуля:
Обучение вайбкодингу — практикумы, где с ИИ собираете свой лендинг, бота или сервис под свою задачу: stereosam.ru/ai.
Стартовый пакет вайбкодера StereoVibe — ChatGPT, Codex, Git и нужные программы ставятся на пустой компьютер за один заход: получить через бота.
Разборы и новые скиллы — в Telegram-канале «Про STEREO AI» и на YouTube.
Частые вопросы
Может ли нейросеть смонтировать запись вебинара?
Может, если разделить работу: нейросеть расшифровывает речь с таймингом каждого слова, ИИ-агент по смыслу размечает куски на «чистые» и «мусор», а человек просматривает разметку и переименовывает файлы. Склейка идёт из оригинала в полном качестве. Из 39 минут записи так вышло 20 минут чистого видео.
Почему нельзя просто вырезать тишину?
В записи эфира мусор узнаётся по смыслу, а не по громкости: «вы меня слышите?», «тут я помолчу, потом вырежешь», разговор с оператором. Автоматическое удаление пауз выкидывает дыхание из хорошей речи и оставляет весь болтливый мусор.
Как замазать номер карты на видео?
Найти, где и когда номер на экране, и закрыть этот прямоугольник на нужные секунды. Надёжнее всего сжать область в 20 раз и растянуть обратно: обычное размытие на узком поле оставляет цифры читаемыми. Скилл /webinar находит такие места сам — распознаёт текст на кадре каждую секунду и выдаёт координаты для замазки.
Что такое скилл для Claude Code и Codex?
Папка с инструкцией SKILL.md и скриптами, которую ИИ-агент подхватывает сам, когда задача подходит. Формат у Claude Code и Codex один: скилл /webinar кладётся в ~/.claude/skills/webinar/ для Claude Code или в ~/.agents/skills/webinar/ для Codex, дальше достаточно попросить агента почистить запись эфира.
Сколько стоит скилл /webinar?
Сам скилл бесплатный, код открыт на GitHub под лицензией MIT. Для расшифровки речи нужен токен распознавания — его выдаёт Telegram-бот @stereo_dictator_bot по команде /app. Для монтажа нужны Python 3.9+ и ffmpeg.
Если пригодилось — подпишитесь: выходят разборы ИИ-агентов и новые бесплатные скиллы.