Как добавить фоновое изображение для текста с размером текста на видео в FFmpeg?

Есть ли способ добавить фоновое изображение под текст на видео в FFmpeg?

Я могу добавить черный фон с помощью «коробки», но мне нужно добавить определенное изображение. Я попытался использовать «drawtext» на изображении, а затем наложил его на видео, но я не знаю ширины и высоты текста для масштабирования изображения.

"-i",
"D:/AndroidProjects/Movies/VideoSamples/VideoShort1.mp4",
"-i",
"D:/AndroidProjects/Movies/ImageSamples/SampleImage.jpeg",
"-filter_complex",
"[0:v]drawtext=text='Example':fontcolor=#DB7093:fontsize=120:box=1:[email protected]:boxborderw=5:x='(w/2) - (tw/2)':y='h - ((h/2) - (th/2))",
"-s",
"1280x720",
"-y",
"D:/AndroidProjects/Movies/FFmpegSampleShort0.mp4"

Я ожидаю получить видео с фоновым изображением под моим текстом вместо черного цвета. Финальное видео


person manwtein    schedule 12.09.2019    source источник


Ответы (1)


Я нашел только одно решение для этого случая, но мы должны создать одно фиктивное видео и не забыть его удалить. Всего это решение содержит два действия, но другого я не нашел.

  1. Нарисуйте текст на каком-нибудь видео или манекене (черное пустое видео) и добавьте команду для println для ширины и высоты текста консоли, когда мы используем комплекс фильтров. Например:
"-i",
"D:/AndroidProjects/Movies/VideoSamples/VideoShort1.mp4",
"-filter_complex",
"drawtext=SomeText:x='print(tw) * 0 + 0 * print(th)'"
"-y",
"D:/AndroidProjects/Movies/TemporaryVideoForScaleText.mp4"
  1. Получите строковый вывод консоли и найдите его со значением регулярного выражения размера вашего текста.
  2. Теперь вы знаете размеры текста и можете масштабировать изображение под текст для новой команды ffmpeg.
person manwtein    schedule 24.10.2019