Слогер Создать блог
Разработка

Создаём 100% офлайн-инструмент для вживления субтитров с помощью Next.js, NestJS и faster-whisper

Рассказываю, как с помощью связки Next.js, NestJS и AI-модели faster-whisper собрать инструмент, который работает полностью на локальной машине — без подписок и отправки видео в облако.

Я открыл CapCut, чтобы вживить субтитры в 12-секундный ролик. Приложение попросило оформить подписку. Я закрыл вкладку и пошёл смотреть, что на самом деле делает всю работу под капотом: FFmpeg.

Оказалось, кто-то уже собрал бесплатную версию. Называется SubtitleStudio, и работает она полностью на вашем железе.

Зачем это вообще понадобилось

Вживление субтитров — это когда текст намертво впечатывается в пиксели видео, кадр за кадром. Как перманентный маркер на фото, а не стикер, который можно отклеить.

Большинство инструментов для субтитров — это просто обёртка над FFmpeg, бесплатным консольным видеоредактором, за которую берут деньги каждый месяц. Как торговый автомат, сдающий в аренду шоколадку, которая и так ваша.

SubtitleStudioAdobe Premiere ProCapCut Pro
ЦенаБесплатно навсегда~$20–35/мес~$20/мес
Работает офлайнДаЧастичноНет
ТранскрибацияЛокальный AI, встроенВручную / платный плагинОблачная
Видео покидает машинуНикогдаЗависит от тарифаДа
ЛицензияMIT, открытый кодПроприетарнаяПроприетарная

Помнится, CapCut Pro стоил $10 в месяц. Я проверил — к началу 2026 года цена незаметно выросла до $20. Программа, которую ты установил один раз, не имеет права так делать.

Что происходит, когда вы загружаете видео

SubtitleStudio — это не одна программа, а три, работающие вместе. Веб-интерфейс на Next.js, API-сервер на NestJS и небольшой AI-сервис на Python общаются через Docker. Три повара на одной кухне, каждый отвечает за своё блюдо.

Загружаешь видео — и конвейер запускается сам, без лишних кликов. Задача передаётся по этапам, как эстафетная палочка.

Загрузка → Извлечение аудио → Транскрибация через AI → Группировка слов в реплики

Обратите внимание: ни одного обращения к облаку. Всё после «Загрузки» происходит на вашем собственном железе. В этом и смысл.

Мозг: faster-whisper слушает

Движок AI — faster-whisper, ускоренная версия модели распознавания речи Whisper от OpenAI. Внутри используется более лёгкий бэкенд CTranslate2, который работает в 2–4 раза быстрее обычного Whisper. Те же способности, но меньше веса.

Это как заменить огромный бумажный словарь на телефонное приложение с теми же определениями, но доступ к ним в разы быстрее.

SubtitleStudio позволяет выбрать размер модели: от tiny до large-v3. Как выбор рюкзака для поездки на выходные.

МодельVRAM / RAMСкоростьТочность
tiny~1 ГБМаксимальнаяСредняя
base~1.5 ГБВысокаяХорошая
small~2.5 ГБУмереннаяЛучше
medium~5 ГБМедленнаяОтличная
large-v3~10 ГБСамая медленнаяЛучшая

По умолчанию стоит base — золотая середина для большинства ноутбуков. На чистом аудио точность распознавания large-v3 достигает 93–95%. Это почти как человек, печатающий в реальном времени.

Редактор, который не врёт

Большинство редакторов субтитров показывают предпросмотр, который втихаря обманывает. То, что в браузере выглядит центрированным, в итоговом видео может оказаться на три дюйма за границей кадра. Сталкивался с этим при монтаже вертикального рилса: центрировано на экране, а при экспорте уплыло за границу.

SubtitleStudio решает эту проблему математикой. Представьте наклейку, приклеенную на фотографию. Когда вы меняете размер фото, наклейка растягивается или сжимается ровно на ту же величину.

У каждого проекта есть опорная высота: 540 пикселей. Размер субтитров масштабируется от этого числа под любое разрешение.

  • Для 1080p коэффициент масштаба: 1080 ÷ 540 = 2
  • Для 4K: 2160 ÷ 540 = 4
  • Для вертикального рилса высотой 1920: ~3.5

Один и тот же шрифт, одна позиция — никаких гаданий, любое разрешение.

Живой прогресс без замёрзших спиннеров

Старые приложения заставляют обновлять страницу, чтобы проверить статус задачи. SubtitleStudio транслирует обновления через Server-Sent Events (SSE). Как трекер пиццы: приложение само уведомляет об изменении статуса, не надо дёргать его каждые две минуты.

ПодходКак работаетОщущается как
PollingКлиент постоянно спрашивает «уже готово?»Звонки в пиццерию каждые 2 минуты
WebSocketsДвусторонняя связь, оба говорят когда угодноОткрытая телефонная линия
SSEСервер отправляет обновления, обратной связи не нужноТрекер сам обновляется

SubtitleStudio нужны обновления только в одну сторону, поэтому SSE — лёгкое и простое решение. Во время транскрибации шкала проходит реальные стадии: 40%, 75%, 100% — когда реплики готовы. Прогресс экспорта растёт от 10 до 98% по мере того, как FFmpeg сообщает фактическое время кодирования. Живое число, а не крутящийся спиннер.

Финишная прямая: GPU против CPU

При нажатии «экспорт» SubtitleStudio сначала пробует видеокарту NVIDIA, используя чип NVENC, созданный специально для кодирования видео. Нет GPU — без проблем, автоматически переключается на процессор.

Представьте забег по одной трассе. NVENC — это спорткар для одной задачи: быстро кодировать видео. CPU — обычный велосипед, тоже доедет, но с бóльшими усилиями.

Попробовать NVENC (GPU) → Получилось? Быстрый экспорт → Не вышло? Переключиться на libx264 (CPU) → Экспорт всё равно завершится

Любая ветка приводит к финишу. С GPU вы приедете, пока читаете это предложение. В тестах замена программного кодирования на NVENC сократила время экспорта с 12 минут до 2. Примерно в 6 раз быстрее, а иногда и больше, в зависимости от карты.

Два момента, которые часто неверно понимают: вам не нужна дорогая видеокарта; экспорт только на CPU — не ошибка. Ноутбуки без дискретной графики справляются нормально. Медленнее, но не ломаются.

Кратко

  • SubtitleStudio вживляет субтитры, распознанные AI, полностью офлайн, бесплатно навсегда, под лицензией MIT
  • Состоит из трёх сервисов в Docker: фронтенд на Next.js, API на NestJS и AI-движок на Python с faster-whisper
  • Редактор «что видишь, то и получишь» совпадает с экспортом пиксель в пиксель благодаря опорной высоте 540px
  • Живые индикаторы прогресса на SSE — никаких спиннеров
  • Экспорт сначала пробует NVENC, затем автоматически падает на CPU
  • Никаких облачных вызовов, никаких API-ключей, никаких ежемесячных счетов

По материалам: productivity. Текст переработан редакцией Слогера.

← На главную

Рекламное место — Конец поста
Реклама · Слогер

Комментарии (0)

Войдите, чтобы комментировать.

Пока нет комментариев. Будьте первым.

Стартапы

Как продать первую услугу, когда тебя никто не знает: 29 писем, 7 постов и два платежа по $5

ИИ-агент по имени Суки проверяет цифры и утверждения по первоисточникам за пять долларов и выложил полный отчёт о выручке, включая нули. Что в этих числах полезно каждому, кто запускает микро-услугу с нуля.

Слогер 29.10.2026 ▲ 0
Карьера

Разбор: WARN Act по-гавайски — 60 дней на уведомление, доплата к пособию и штраф $500 в день

На Гавайях действует своя версия закона о предупреждении массовых увольнений: порог ниже федерального, четыре конкретных триггера и доплата к пособию по безработице. Разбираем, кого это касается и чем грозит нарушение.

Слогер 29.10.2026 ▲ 0
Разработка

Как AI-код-ревью ускоряет онбординг разработчика — и когда мешает учиться

Большая часть онбординга происходит в комментариях к пулл-реквестам, а не в документации. Разбираю, что даёт AI-ревью новичку, откуда оно берёт неписаные конвенции команды и где начинается вред.

Слогер 29.10.2026 ▲ 0
Карьера

Почему увольнение 30 человек не требует предупреждения за 60 дней: разбор WARN и что делать сотруднику

Федеральный закон США срабатывает только на крупных сокращениях, а мелкие проходят мимо — и не попадают в статистику. Разбираем пороги, оговорку про 90 дней и шаги, которые доступны уволенным.

Слогер 29.10.2026 ▲ 0
Fluxs lenta
Реклама · fluxs.ru
Маркетинг

Как запустить продукт на маленькой базе подписчиков: 5 писем, которые продают без фальшивого дефицита

Одно письмо-анонс почти никогда ничего не продаёт — даже на списке из 40 человек. Разбираем пятидневный ритм рассылки, где каждое письмо решает свою задачу, и даём готовый шаблон последнего письма.

Слогер 28.10.2026 ▲ 1
Разработка

Как выгрузить вакансии и зарплатные вилки из Greenhouse API: разбор подводных камней

Любая доска Greenhouse отдаётся публичным JSON без ключа — целиком, одним ответом. Но чтобы данные были пригодны, нужно знать пять вещей про флаги, экранирование и двойной счёт вакансий.

Слогер 28.10.2026 ▲ 0
Маркетинг

Переезд (миграция) с Битрикс24 и amoCRM без потери данных: в Fluxs появился модуль миграции

4 000 контактов в Битрикс24. Сотни сделок. Задачи за несколько лет. И всё это нужно перенести в новую CRM? Раньше такой переезд мог занять несколько дней. А иногда именно из-за переноса данных компании годами оставались в неудобной системе. Мы решили эту проблему. 🚀 В Fluxs появился модуль «Миграция данных». Теперь можно переносить контакты, сделки, задачи, проекты и базу знаний из Битрикс24, amoCRM, Jira, Яндекс Трекера и Confluence. А если вашей системы нет в списке — загрузить данные через Excel, CSV или JSON.

fluxs.ru 27.10.2026 ▲ 1
Fluxs lenta
Реклама · fluxs.ru
Карьера

Чем Cal-WARN отличается от федерального WARN: разбор порогов, уведомлений и штрафов

Калифорния требует предупреждать о массовых сокращениях за 60 дней — как и федеральный закон США. Только порог ниже, парт-тайм считается, а правило одной трети не действует. Разбираем, что это меняет для работника и работодателя.

Слогер 27.10.2026 ▲ 0
Карьера

WARN Act: кто считается работодателем при массовом сокращении — разбор для дочек, холдингов и франшиз

По американскому закону уведомление за 60 дней обязан дать только работодатель. Разбираем, как регуляторы решают, какое юрлицо им является, и что делать, если в бумаге стоит незнакомая компания.

Слогер 27.10.2026 ▲ 0
Разработка

Разбор: почему профессию разработчика хоронят каждые 20 лет и как работать, когда всё меняется

Паника вокруг ИИ — не первая волна перемен в отрасли: похожие прогнозы звучали и в 1961 году, и в 2011-м. Разбираем, что в нынешней тревоге реально, а что стоит воспринимать как фоновый шум.

Слогер 27.10.2026 ▲ 0
Fluxs lenta
Реклама · fluxs.ru
Карьера

Страх провала и страх свидетелей: чем они отличаются и как начинать новое, когда страшно

«Я пока недостаточно хорош» — честная и бесполезная фраза. Обычно дело не в навыке, а в конкретных людях, которые увидят вашу первую попытку. Разбираем, как уменьшить ставку и всё-таки начать.

Слогер 26.10.2026 ▲ 0
Карьера

Почему удалёнка платит меньше — и в каких профессиях всё наоборот: разбор 8 049 вакансий

Медианная вилка на удалёнке ниже офисной на 6,5%. Но внутри функций разрыв меняет знак: безопасность и продажи получают премию за удалёнку, data/ML — самую большую скидку. Показываю, как читать эти цифры на переговорах.

Слогер 26.10.2026 ▲ 0