Назад к блогу

Как вшить субтитры в видео (без загрузки на сервер)

Как вшить субтитры в видео на своём компьютере: четыре способа в сравнении, рабочие команды FFmpeg и как избежать потери качества при перекодировании.

11 сентября 2026 г.
Sablate Team

Вшить субтитры в видео — значит прорисовать текст прямо в картинке и перекодировать файл, чтобы субтитры путешествовали вместе с ним как пиксели. Это нужно для TikTok, Reels и Shorts, которые вообще не принимают файлы субтитров, а также в любой момент, когда субтитры — часть дизайна, а не просто опция доступности.

Загружать для этого ничего не нужно. FFmpeg справляется одной командой, HandBrake и Subtitle Edit — из окна программы, а десктопное приложение для субтитров, например Sablate, ещё и создаёт сами субтитры. Всё это работает на вашем компьютере: без ограничения на размер файла и без ожидания загрузки.

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

Онлайн-сервис или офлайн: что выбрать?

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

Онлайн-редакторОфлайн (FFmpeg, HandBrake, десктопное приложение)
Ваше видео загружается на серверДа, весь файлНет
Размер файлаОграничен тарифомОграничен только вашим диском
Длинные записиВремя загрузки растёт с длинойВремени требует только кодирование
Конфиденциальные материалыПокидают ваш компьютерОстаются на нём
Нужна установкаНетДа
Заодно создаёт субтитрыОбычно даДесктопные приложения да, FFmpeg и HandBrake нет

Ограничения реальные, и на бесплатных тарифах они невелики. Например, правила хранения Kapwing разрешают 250 МБ на файл на бесплатном тарифе и 6 ГБ на платных. При типичном битрейте 1080p около 8 Мбит/с в 250 МБ помещается чуть больше четырёх минут видео.

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

Когда вшивание — правильное решение

Вшитые субтитры (хардсаб)Файл или дорожка субтитров (софтсаб)
Зритель может отключитьНетДа
Работает в TikTok, Reels, ShortsДаНет, не поддерживается
Работает на YouTube, VimeoДаДа, и доступно для поиска
Засчитывается для соответствия доступностиОбычно нетДа
Индексируется поисковикамиНетДа
Исправить опечатку потомПересобрать видеоОтредактировать текстовый файл
Несколько языков в одном файлеНет, отдельный рендер на каждыйДа, отдельная дорожка на каждый
Оформление сохраняется точноДаТолько в дорожках ASS

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

Четыре способа вшить субтитры

FFmpegHandBrakeБраузерные сервисыДесктопные приложения для субтитров
ЦенаБесплатноБесплатноБесплатный тариф, потом подпискаРазовый платёж или подписка
Загружает ваше видеоНетНетДа, целикомНет
Ограничение по размеру / длительностиНетНетДа, обычно жёсткоеНет
Создаёт субтитрыНетНетДаДа
Управление оформлениемЧерез ASS или force_styleОграниченноеШаблоныПолное, с живым предпросмотром
Порог входаКомандная строкаСреднийНикакогоНизкий

Два честных замечания. FFmpeg и HandBrake бесплатны и прекрасно справляются с этой задачей, и если готовый файл субтитров у вас уже есть, FFmpeg — это одна команда, покупать ради этого что-либо не нужно. Чего ни тот, ни другой не делают — это создание субтитров: они вшивают файл, который у вас уже есть, оттаймированный и исправленный где-то ещё. Браузерные сервисы субтитры создают, но загрузка там не опциональна, а значит, они не подходят для конфиденциальных материалов и для всего, что длиннее их лимита.

Вшивание с помощью FFmpeg

Для обычного SRT:

ffmpeg -i input.mp4 -vf "subtitles=subs.srt" -c:a copy output.mp4

Для оформленного файла ASS, используйте фильтр ass, чтобы оформление сохранилось, а не свелось к обычному тексту:

ffmpeg -i input.mp4 -vf "ass=subs.ass" -c:a copy output.mp4

Чтобы задать качество явно, а не соглашаться со значением по умолчанию:

ffmpeg -i input.mp4 -vf "subtitles=subs.srt" \
  -c:v libx264 -crf 18 -preset slow -c:a copy output.mp4

Чтобы изменить оформление SRT без предварительной конвертации:

ffmpeg -i input.mp4 \
  -vf "subtitles=subs.srt:force_style='FontName=Arial,FontSize=24,Outline=2'" \
  -c:a copy output.mp4

Ловушка Windows. Путь внутри фильтра разбирает сам фильтр, а не оболочка, поэтому двоеточие буквы диска и обратные слэши нужно экранировать. Это самая частая причина, по которой команда падает с ошибкой «файл не найден» на файле, который совершенно точно существует:

ffmpeg -i input.mp4 -vf "subtitles='C\:/Videos/subs.srt'" -c:a copy output.mp4

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

Вшивание субтитров без командной строки

Если терминал — не ваше, ту же работу делают из окна программы три вида инструментов. Первые два бесплатны и вшивают уже готовый файл субтитров, третий ещё и создаёт этот файл.

HandBrake

HandBrake — бесплатный видеоконвертер для Windows, Mac и Linux. Откройте видео, перейдите на вкладку Subtitles, через Tracks добавьте внешний SRT, задайте для этой дорожки вшивание в видео и запустите кодирование. Стоит знать два ограничения: документация HandBrake указывает, что в MP4 можно вшить только одну дорожку, а оформление ограничено тем, что несёт обычный SRT.

Subtitle Edit

Subtitle Edit, бесплатный редактор субтитров, умеет экспортировать видео с вшитыми субтитрами через меню Video: он сам запускает FFmpeg и предлагает скачать его, если FFmpeg не найден. Это естественный выбор, когда вы уже правите там тайминг.

Десктопное приложение для субтитров

Если исправленного файла субтитров у вас ещё нет, вшивание — это последний шаг более длинной задачи: транскрипция, правка, оформление, рендер. Sablate делает всё это от начала до конца на вашем компьютере — локальная транскрипция с Whisper, редактор с перетаскиванием тайминга на таймлайне и предупреждениями о скорости чтения, 13 пресетов оформления и вшивание, которое в точности совпадает с предпросмотром. Если вы монтируете в DaVinci Resolve, можно обойтись без этого: бесплатная версия умеет импортировать SRT и вшить его при экспорте.

Вшивание доступно на бесплатном тарифе с небольшой отметкой в углу, для видео до 10 минут. Pro убирает отметку и ограничение по длине и добавляет экспорт в .ass, .mkv с несколькими дорожками и пакетную обработку за разовый платёж $29. Скачайте приложение или посмотрите всю разбивку на странице тарифов.

Вшивание субтитров в длинные и большие видео

Длина влияет на две вещи: доставку файла до инструмента и само кодирование.

Загрузка. Двухчасовая запись в 1080p при около 8 Мбит/с занимает примерно 7 ГБ. При исходящей скорости 20 Мбит/с это почти 50 минут, прежде чем онлайн-сервис вообще сможет начать работу, а готовый файл потом ещё нужно скачать обратно. Локальное вшивание этот шаг полностью пропускает.

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

ffmpeg -i input.mp4 -t 60 -vf "subtitles=subs.srt" -c:v libx264 -crf 18 -preset slow -c:a copy test.mp4

Скорость или размер. -preset medium заметно быстрее, чем slow, и при том же CRF даёт файл чуть больше. Аппаратный кодировщик (h264_nvenc на видеокартах NVIDIA, h264_videotoolbox на Mac) быстрее ещё, но для того же визуального качества требует более высокого битрейта. В любом случае оставляйте -c:a copy: перекодирование звука длинного файла отнимает время и добавляет второе поколение потерь без всякой пользы.

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

Что на самом деле портит качество

Есть два фактора, и вшивание само по себе — не один из них.

Перекодирование уже сжатого файла. Вшивание требует перекодирования, а оно теряет данные. Если делать это с мастер-файлом, потери почти незаметны. Если делать это с файлом, который уже сжала платформа, вы сжимаете артефакты сжатия — именно отсюда появляются блочность и «кашность» картинки. Всегда начинайте с самой качественной версии, которая у вас есть, и никогда не вшивайте субтитры в файл, который уже прошёл через вшивание однажды.

Согласие на настройки кодировщика по умолчанию. -crf 18 в x264 визуально почти неотличим от оригинала для большинства контента; значение по умолчанию 23 заметно смягчает детализированную картинку. -preset slow даёт файл меньшего размера при том же качестве в обмен на время кодирования. А -c:a copy оставляет звуковую дорожку нетронутой — перекодировать звук, когда меняется только изображение, смысла нет.

Почему рендер не совпадает с предпросмотром

Две причины, и обе можно устранить до того, как вы потратите время на кодирование.

Шрифты. Рендерер рисует тем шрифтом, который сумел найти. Если выбранного шрифта нет в системе или он не умеет рисовать нужную письменность — большинство дисплейных шрифтов для субтитров покрывают только латиницу, кириллицу и греческий, и больше ничего, — используется замена, а арабский, тайский, хангыль или CJK-текст может превратиться в пустые прямоугольники. Проверяйте шрифт до рендера двенадцати языков, а не после.

Размер холста. Позиции и размеры шрифта в ASS заданы относительно виртуального холста, объявленного в самом файле, а не относительно пиксельных размеров видео. Один и тот же размер шрифта даёт разный текст на экране на 1080p и на 4K, если холст не зафиксирован. Sablate закрепляет холст субтитров на виртуальном кадре высотой 1080 и вычисляет ширину из реального соотношения сторон источника, учитывая метаданные поворота, поэтому размер шрифта означает одно и то же независимо от разрешения съёмки, — а предпросмотр в редакторе масштабируется по тому же самому холсту, что и рендерер.

Именно поэтому качество вшивания так сильно различается между инструментами. Многие онлайн-редакторы накладывают субтитры как плоский текстовый оверлей; вшивание в Sablate рендерится через libass — тот же движок, которым медиаплееры отображают субтитры ASS, — поэтому контуры, тени, покадровый караоке-тайминг и корректные для письменности шрифты получаются настоящей типографикой субтитров, а не приблизительной графикой.

Вертикальный и квадратный формат

Если видео идёт в Reels, Shorts или TikTok, меняйте соотношение сторон во время рендера, а не обрезайте кадр потом. Обрезка готового вшитого 16:9-видео до 9:16 срезает субтитры по бокам вместе с картинкой.

Sablate рендерит в 16:9 (1920×1080), 9:16 (1080×1920) или 1:1 (1080×1080), обрезая кадр под целевой формат либо дополняя его размытой копией источника, и располагает субтитры уже под финальный кадр. Держите субтитры выше нижней трети вертикального кадра: по рекомендациям Meta для Reels нижние 35% остаются свободными, потому что их закрывают текст и кнопки самой платформы. Где размещать субтитры в Reels, TikTok и Shorts разбирает безопасную зону каждой платформы.

Коротко

Онлайн-редактор подходит только для коротких роликов, в которых нет ничего конфиденциального; всё остальное вшивайте локально, потому что там нет ни загрузки, ни ограничения по размеру, ни ограничения по длине. Вшивайте субтитры, когда платформа не читает файлы субтитров или когда оформление — часть общего облика, а во всех остальных случаях отдавайте файл субтитров: текст, который можно править, всегда лучше пикселей, которые не тронуть. Рендерите с мастер-файла, а не с копии, подготовленной для загрузки. Используйте CRF 18 и копируйте звук. Для длинного файла сначала прогоните первую минуту, а потом запускайте полное кодирование. И проверяйте шрифт и холст до того, как потратите время на это кодирование, — именно эти два фактора превращают идеальный файл субтитров в испорченный результат.

Часто задаваемые вопросы

Что на самом деле происходит, когда субтитры вшивают в видео?

Текст прорисовывается прямо в картинке, а видео перекодируется, поэтому субтитры превращаются в пиксели, а не остаются отдельной дорожкой. Их никто не может отключить, плееру не нужно поддерживать никакой формат субтитров, а платформы, игнорирующие файлы субтитров, всё равно покажут их правильно. Цена вопроса — это необратимость и одно перекодирование.

Ухудшает ли вшивание субтитров качество видео?

Видео перекодируется, так что некоторая потеря неизбежна, но её можно сделать незаметной. Кодируйте с самого качественного мастер-файла, а не с уже сжатого экспорта, используйте настройку с целевым качеством, например CRF 18 в x264, и копируйте звуковую дорожку вместо её перекодирования. Заметно портит картинку именно повторное вшивание одного и того же файла.

Можно ли вшить субтитры без загрузки видео куда-либо?

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

Какой командой FFmpeg вшить субтитры в видео?

Для обычного SRT: ffmpeg -i input.mp4 -vf subtitles=subs.srt -c:a copy output.mp4. Для оформленного файла ASS используйте фильтр ass вместо subtitles. В Windows путь внутри фильтра нужно экранировать — это самая частая причина, по которой команда завершается ошибкой «файл не найден».

Почему вшитые субтитры выглядят иначе, чем в предпросмотре?

Обычно дело в шрифтах или размере холста. Рендерер подставляет другой шрифт, если выбранного нет в системе или он не умеет рисовать нужную письменность, а размер шрифта задаётся относительно виртуального холста, поэтому одно и то же число даёт разный размер текста на 1080p и на 4K. Чтобы предпросмотр совпадал с рендером, оба должны использовать один и тот же шрифт и один и тот же холст.

Нужно ли вшивать субтитры для TikTok, Reels и Shorts?

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

Как вшить субтитры в длинное видео?

Делайте это локально. Двухчасовая запись в 1080p занимает несколько гигабайт — больше, чем принимает большинство браузерных сервисов, и примерно час загрузки на обычном подключении. FFmpeg, HandBrake или десктопное приложение перекодируют её на вашем компьютере. Перед полным кодированием отрендерите первую минуту для проверки, а звук копируйте, а не перекодируйте.