Мягкие субтитры или жёсткие: встроенные или вжжённые?
Есть ровно два способа, которыми субтитры могут существовать в видео, и от того, какой из них у вас есть, зависит каждое решение о рабочем процессе. Мягкие субтитры — это текстовая дорожка, хранящаяся рядом с видеопотоком: кадры не трогаются, а плеер отрисовывает текст во время воспроизведения. Жёсткие субтитры — это нарисованные в пикселях во время кодирования: буквы становятся частью изображения, навсегда. Мягкие субтитры можно выключить, переключить язык, перестилизовать и извлечь как текст; жёсткие воспроизводятся одинаково на всём, что играет видео, ценой постоянства. Одно — это данные рядом с картинкой; другое — сама картинка.
Пять фактов, на которые опирается остальная часть страницы:
• мягкие = текстовая дорожка, вшитая в контейнер (SRT/VTT/ASS); жёсткие = субтитры, вжжённые в кадры
• мягкое встраивание — это ремукс: секунды, без потери качества; жёсткое вжигание — пережатие: каждый кадр перерисовывается и пережимается заново
• мягкие субтитры весят килобайты; жёсткие не добавляют размера, но их нельзя убрать
• извлечение работает на мягких субтитрах (они текст); вжжённый текст — это пиксели, и для него нужен OCR, а качество никогда не гарантировано
• метки времени SRT имеют вид ЧЧ:ММ:СС,ммм — например, 00:01:22,480 → 00:01:25,120 — это строка длиной 2 640 мс
Мягкое встраивание: добавление текстовой дорожки
Мягкое встраивание записывает ваш файл субтитров в контейнер как дополнительную дорожку рядом с видео- и аудиодорожками — сам видеопоток копируется побайтно. Поэтому оно завершается за секунды и ничего не теряет: это та же операция «ремукса», что и смена контейнера (основы контейнеров см. на странице MP4). Загвоздка в поддержке: контейнер должен принимать дорожки субтитров (MKV и MP4 принимают; некоторые устройства всё равно их игнорируют), а плеер должен их отрисовывать — умные телевизоры и стандартные телефонные плееры печально известны непоследовательностью, именно поэтому жёсткое вжигание всё ещё существует.
Жёсткое вжигание: рисование текста в кадры
Вжигание субтитров перерисовывает каждый кадр видео с наложенным текстом, а затем пережимает результат — полное перекодирование со всем, что из этого следует: оно занимает столько же времени, что и кодирование, и каждый кадр проходит через второе поколение сжатия. Шрифты вшиваются (никаких сюрпризов «нет шрифта» на машине зрителя), позиционирование и оформление точны, а совместимость воспроизведения полная, потому что вывод — просто обычное видео. Цена — необратимость: текст неотделим от картинки, и чтобы исправить опечатку, придётся заново перекодировать из исходника.
SRT, VTT и ASS: три формата субтитров
SRT (SubRip) — универсальный минимум: пронумерованные строки, метки времени начала → конца, простой текст. Любой плеер на Земле его читает. VTT (WebVTT) — его родной веб-собрат: та же идея, . миллисекунды вместо ,, плюс крючки для оформления и позиционирования, которые использует HTML5-элемент <track>. ASS (Advanced SubStation Alpha) — формат энтузиастов: шрифты, цвета, контуры, поворот, анимация по символам — формат, стоящий за стилизованными аниме-субтитрами, — именно поэтому MKV может прикрепить нужные дорожке шрифты внутри файла (см. страницу MKV). Чтобы вжечь стилизацию ASS, шрифты должны быть доступны во время кодирования; чтобы мягко воспроизвести её, они нужны во время воспроизведения.
Извлечение: почему это по-настоящему работает только с мягкими субтитрами
Извлечение мягкой дорожки субтитров — это вынимание текста из контейнера — идеально, потому что именно это в нём и хранилось. Восстановление субтитров из видео с вжжёнными субтитрами — это задача компьютерного зрения (OCR на каждом кадре, угадывание области текста, очистка фона за буквами); на чистом, неподвижном тексте это работает разумно, а со стилизованными шрифтами, движением и зерном быстро деградирует. Если текст понадобится позже, сохраните (или запросите) мягкую версию.
Распространённые заблуждения
- «Субтитры, которые пришли с файлом, всегда можно выключить». Только мягкие. Если их нельзя выключить, они вжжены в пиксели, и ни один плеер не может их убрать.
- «Встраивание субтитров пережимает видео». Мягкое встраивание делает ремукс — мгновенно и без потерь. Пережимает только жёсткое вжигание.
- «Файлы субтитров сильно увеличивают видео». Мягкая дорожка — это текст: файл субтитров на целый фильм — от десятков до пары сотен килобайт, что теряется в погрешности округления мегабайт видео.
- «Жёсткое вжигание просто безопаснее, так что всегда вжигайте». Оно безопаснее для совместимости воспроизведения и навсегда хуже для последующего редактирования, перевода и доступности. Вжигайте при распространении на неизвестные устройства; встраивайте, когда текст должен оставаться данными.
Связанные инструменты: Конвертер SRT/VTT/ASS, чтобы переносить текст субтитров между тремя форматами, Речь в субтитры, чтобы создать файл субтитров из аудио, Видео в MKV для контейнера с лучшей поддержкой субтитров в нескольких дорожках, и Видео в MP4 для основ ремукса.