Многоцветный текст в FFmpeg - PullRequest
       16

Многоцветный текст в FFmpeg

0 голосов
/ 14 сентября 2018

Как использовать drawtext в ffmpeg для рисования многоцветного текста поверх видео?Пример: я хочу выделить правильные существительные в предложении: «Компания XYZ делит повышение на 91%», выделите XYZ, белый желтый выделите 91% зеленым

Если у вас есть какой-либо другой подход, не использующий ffmpeg для рисования многоцветного текста поверхвидео, это тоже сработало бы.

1 Ответ

0 голосов
/ 15 сентября 2018

enter image description here

Создайте субтитры ASS в Aegisub (или вручную) и используйте фильтр субтитров в ffmpeg:

ffmpeg -i input -vf subtitles=colors.ass -c:a copy output

Пример содержимого файла ASS:

[Script Info]
; Script generated by Aegisub 3.2.2
; http://www.aegisub.org/
Title: Default Aegisub file
ScriptType: v4.00+
WrapStyle: 0
ScaledBorderAndShadow: yes
YCbCr Matrix: None

[Aegisub Project Garbage]

[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,Arial,20,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,0,0,0,0,100,100,0,0,1,2,2,2,10,10,10,1

[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:00.00,0:00:05.00,Default,,0,0,0,,{\c&H00FFFF&}XYZ {\c&HFFFFFF&}company shares hike {\c&H00FF00&}91%

Альтернативный, но не рекомендуемый метод - использовать отдельные экземпляры drawtext для каждого цвета.

...