Субтитры в Avidemux, FFmpeg и Mencoder

Простой способ вшить субтитры в видео с помощью программы видео редактора Avidemux.
Страница загрузки avidemux: http://fixounet.free.fr/avidemux/download.html
Для avidemux нужны субтитры в формате Sub Station Alpha
1. В видео редакторе открываем файл видео в котором нужно вшить субтитры
2. В настройках Video Output указать Mpeg4 AVC(x264), для Output Format — MP4v2 Muxer
3. Открыть Filters в Video Output
4. В окне Video Filter Manager найти настройку Subtitles
5. В Available Filters выделить SSA. Hardcode ass/ssa….
6. Выбрать файл субтитров ssa для видео.
7. Закрыть настройку фильтров и сохранить видео с новыми параметрами.

avidemux


Самый удобный на мой взгляд способ вшить субтитры с помощью FFmpeg.
FFmpeg — набор свободных библиотек с открытым исходным кодом.
Все действия производятся в командной строке, параметры видео и аудио кодирования настроены специально для видеофайлов virtual active и не занижают качества.
Для ffmpeg нужны субтитры формата Advanced SubStation Alpha

Формат srt в ass легко перевести с помощью FFmpeg

ffmpeg -i NorthIsland.srt NorthIsland.ass

Пример с видео North Island New Zealand.mp4 и субтитрами NorthIsland.ass

ffmpeg -i "North Island New Zealand.mp4" -vf ass=NorthIsland.ass -vcodec libx264 -b 7000k -s 1280x720 -acodec libmp3lame -ab 96k -y "North Island New Zealand Sub.mp4"

vlcsnap-2

Подробно о спецификации описывающей внутреннюю структуру субтитров в формате SSA / ASS (SubStation Alpha) здесь

С помощью данного описание легко настроить формат, размер, стиль субтитров (шрифт, цвет, размещения тени и т.д).

Пример моего файла субтитров:

[Script Info]
; This script was created by subtitleeditor (0.53.0)
; http://home.gna.org/subtitleeditor/
PlayResX: 384
PlayResY: 288
ScriptType: V4.00+

[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
Style: Default,FreeSans,18,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,-1,0,0,0,100,100,0,0,1,2,2,2,20,20,20,0

[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:07:17.00,0:07:20.66,Default,NTP,0000,0000,0000,,Направлены ли твои бедра,\nплечи и стопы строго вперед?


Снимок экрана в 2018-11-03 19-56-38


Субтитры в mencoder
MEncoder — компьютерная программа для конвертирования аудио и видео файлов. Поддерживает большинство существующих кодеков и медиаконтейнеров. Является частью проекта MPlayer. Использует для своей работы библиотеку libavcodec.
Интерфейс: командная строка
Лицензия: GNU GPL
Операционная система: Linux, Mac OS X и др. UNIX-подобные, Windows
Сайт: http://www.mplayerhq.hu
Как вшить субтитры в видео с помощью mencoder

Для Linux

Файлы Sydney.avi и Sydney.srt разместиь в одной папке.
Для конвертации использую кодеки mencoder
В командной строке ввожу:

mencoder -subwidth 75 -subcp utf8 -subfont-text-scale 2 -sub Sydney.srt \-oac mp3lame -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=3000 Sydney.avi -o Sydney_srt.avi

-subwidth — ширина области субтитров;
-subcp — кодировка, в которой будет текст субтитров;
-subfont-text-scale — размер шрифта;
-sub — файл субтитров.

Получен файл Sydney_srt.avi с вшитыми субтитрами

sydney_srt

Для Windows

Для конвертации использую кодеки mencoder
Скачать mencoder и шрифт для субтитров subfont.ttf можно здесь
Разархивировать
Разместил все файлы mencoder, subfont, Sydney, SydneyWin.srt на рабочем столе
Запускаю Командную строку из меню стандартные или выполнить cmd
Перейти в папку с файлами. В моем случае на Рабочем столе:
cd C:\Documents and Settings\listok\Рабочий стол

mencoder -subwidth 75 -subcp cp1251 -subfont-text-scale 2 -font subfont.ttf -oac copy -ovc lavc -lavcopts keyint=25:vcodec=mpeg4:vbitrate=3000:vpass=1 -sub SydneyWin.srt -o Sydney_srt.avi SydneyWin.avi

Для просмотра видео использую ffplay
ffplay SydneyWin

02win1