Вграждане, редакция и извличане на субтитри

Субтитри! Не винаги разполагаме с дублаж, а и не винаги го предпочитаме, затова понякога се налага да четем субтитри. Но ако няма, как може да си направим? А ако имат грешки и трябва да ги поправим? Нека да разгледаме.
Субтитрови формати
Има няколко преобладаващи формати при субтитрите, в зависимост от това, което целим с тях.
SRT
Този формат поддържа най-основно форматиране на текста, като позволява той да бъде наклонен, удебелен, подчетран и да се определи мястото му и шрифта му. SRT форматът запазва субтитрите по много прост начин. Започва с поредния им номер, на следващия ред – времето на появяване и скриване, и след това – самите субтитри. Изглежда по следния начин:
1
00:00:27,533 --> 00:00:28,766
Това са първите субтитри
2
00:00:29,233 --> 00:00:29,966
Това са вторите субтитри
и са на два реда
3
00:00:30,933 --> 00:00:31,266
<i>Тези субтитри са наклонени</i>
4
00:00:32,533 --> 00:00:34,433
<b>А тези са удебелени</b>
ASS
ASS форматът поддържа по-сложно форматиране на субтитрите: могат да се анимират, оцветяват, подрязват с маска (която също може да се анимира), да се създават различни стилове и още. За да се възползвате напълно от възможностите на формата, трябва да можете повече от писане на текст. Някои автори даже анимират субтитрите да следват движението на обекти във видеото, за да се създаде илюзията, че текстът е част от самото видео.
[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:14.44,0:00:18.18,Default,,0,0,0,,{\K34}След {\K34}300 {\K23}ме{\K21}тра
Dialogue: 0,0:00:18.18,0:00:21.86,Default,,0,0,0,,{\K16}За{\K23}вий{\K16}те {\K13}на{\K16}ля{\K16}во
Dialogue: 0,0:00:21.86,0:00:25.59,Default,,0,0,0,,{\kf28}Пос{\kf24}ле
Dialogue: 0,0:00:25.59,0:00:29.90,Default,,0,0,0,,{\K18}Ще {\K66}пристигнете {\K15}на {\K92}местоназначението {\K16}си
Писане на субтитри
Има различни програми за редакция на субтитри. Ще разгледаме Aegisub, безплатна програма с отворен код. Има три главни части на интерфейса: Превюто на видеото, визуализация на аудиото и, най-отдолу, субтитрите. Може да избирате различен размер на превюто на видеото. За да се запазят промените над субтитрите, трябва да ги приложите. Вляво са инструментите за трансформация (местене, въртене, накланяне и подрязване) на субтитрите. Може да превъртате между кадрите със стрелките наляво и надясно. С Ctrl+3 и Ctrl+4 задавате началото или края на субтитрите на текущия кадър. Когато сте в аудио прозореца, ляв бутон на мишката задава началото на субтитрите, десен бутон – края, а среден бутон (колелцето) превърта до съответния момент в записа. Когато сме готови, можем да експортираме субтитрите в SRT, ASS, SUB и други формати.

Все пак не е необходимо да използваме специализирана програма, за да правим субтитри. Програми за видео редакция като Kdenlive също имат такава функционалност, макар и по-ограничена. Но ако искаме само да преведем реч, това е повече от достатъчно. Освен това, отскоро Kdenlive поддържа множество пътечки за субтитри. За да добавите субтитри, отидете в View > Subtitles. Това ще отвори панела за субтитри, ако вече не е отворен. Оттам може да добавяте субтитри с "+" бутона. За да експортирате субтитрите, отидете в Project > Subtitles > Export Subtitle File… С Kdenlive може да експортираме само SRT файл, но в много случаи това е достатъчно.

Начини на вграждане на субтитри
Субтитрите ни са готови, но ако искаме да ги видим, трябва всеки път да ги избираме ръчно. Щеше да е много по-лесно ако вече имаше пътечка със субтитри в самото видео. Един видео контейнер е комбинация от различни данни: може да съдържа множество видео пътечки, аудио пътечки и пътечки за субтитри. Ако добавим субтитрите директно в контейнера, няма да има нужда да ги избираме ръчно при отваряне на видеото.
За да го постигнем, можем да ползваме програма като HandBrake, или даже инструменти за командния ред като FFmpeg. В HandBrake можем просто да изберем "Отвори източник" и после да отидем в Субтитри > Tracks > Add New Track. Оттам избираме език, кодировка на текста и файл, от който да бъдат заредени.

С FFmpeg можем да използваме следната команда:
ffmpeg -i my_video.mp4 -i subtitles.srt -c copy -c:s mov_text my_video_with_subtitles.mp4
Можем да добавим информация за езика на субтитрите ако уточним:
ffmpeg -i my_video.mp4 -i subtitles.srt -c:a copy -c:v copy -c:s mov_text -metadata:s:s:0 language=bul my_video_with_subtitles.mp4
Има и втори начин на вграждане, при който субтитрите се растеризират и стават неотделима част от видеото – тогава не могат да се изключат. Може да се използва само когато няма да превеждаме видеото и на други езици. За да го направим в Kdenlive, просто трябва да оставим пътечката за субтитри видима при експортиране на видеото. Тогава те ще останат видими при рендериране. С HandBrake може да отметнем кутийката "Burn into video" когато добавяме пътечка. А с FFmpeg ползваме следната команда:
ffmpeg -i my_video.mp4 -vf "subtitles=subtitles.srt" my_video_with_subtitles.mp4
Извличане на субтитри от видео
С FFmpeg може да извлечем субтитри от видеото със следната команда:
ffmpeg -i video_with_subtitles.mp4 -map 0:s:0 subtitles.srt
След това може да отворим файла и да го редактираме с Aegisub или друга програма, както е показано по-горе.