При использовании ffmpeg
для записи .srt
субтитров в файлы mp4
у меня возникла проблема с несколькими строками текста — фон накладывается друг на друга.
Команда, которую я использую:
ffmpeg -i source_video_path.mp4 -vf "subtitles=srt_source.srt:force_style='OutlineColour=&H80000000,BorderStyle=3,Outline=1,Shadow=0,MarginV=25,Fontname=Arial,Fontsize=10,Alignment=2'" video_destination.mp4
Вопрос в том, можно ли преодолеть наложение, сохраняя при этом прозрачный фон при использовании формата .srt
, или мне нужно использовать формат .ass
в качестве исправления?
Вы можете избежать наложения нескольких линий друг на друга, используя BorderStyle=4
вместе с BackColour=&H80000000
, что дает 50% непрозрачный фон черного цвета.
Полная команда будет:
ffmpeg -i source_video_path.mp4 -vf "subtitles=srt_source.srt:force_style='OutlineColour=&H80000000,BorderStyle=4,BackColour=&H80000000,Outline=0,Shadow=0,MarginV=25,Fontname=Arial,Fontsize=10,Alignment=2'" video_destination.mp4
На самом деле, формат
.ass
также не поддерживает настраиваемый межстрочный интервал (не говоря уже о том, что библиотекаlibass
используется для обоих форматов. В любом случае, я нашел Эта статья, если вы решите исследовать.ass
и не видел его раньше.