如何在 FFmpeg 视频中为带有文本大小的文本添加背景图像?

How to add background image for text with text size on a video in FFmpeg?

有没有办法在 FFmpeg 中的视频文本下添加背景图像?

我可以使用 'box' 添加黑色背景,但我需要添加一些特定的图像。我尝试在图像上使用 '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:boxcolor=black@0.8:boxborderw=5:x='(w/2) - (tw/2)':y='h - ((h/2) - (th/2))",
"-s",
"1280x720",
"-y",
"D:/AndroidProjects/Movies/FFmpegSampleShort0.mp4"

我希望在我的文本下方获得带有一些图像背景而不是黑色的视频。

对于这种情况,我只找到了一种解决方案,但我们必须创建一个虚拟视频,并且不要忘记将其删除。 此解决方案总共包含两个操作,但我没有找到其他操作。

  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 命令下缩放您的图像。