如何使用ffmpeg和imagemagick为视频添加顶部和底部边框

4
我正在尝试给视频添加顶部和底部的部分,就像我们为图像meme所做的那样。我正在使用ffmpeg和imagemagick,但没有内置选项来完成此任务。假设我有一个视频,并且需要向整个视频添加如此的字幕。我该如何实现?

enter image description here


你的视频格式是什么?你是指想在每个帧上叠加白色文字,而不是增加帧的高度吗? - Mark Setchell
2
https://www.ffmpeg.org/ffmpeg-filters.html#drawtext-1 - aergistal
@MarkSetchell 是的,我想在每个帧的顶部添加一个白色矩形并在其上写入文本。 - user1159517
1个回答

10

据我所知,您需要的东西类似于这样:

enter image description here

使用paddrawtext。在这个例子中,pad在顶部和底部各增加了50像素,然后两个drawtext实例分别放置每一行。

ffmpeg -i input -filter_complex \
"[0:v]pad=iw:ih+100:0:(oh-ih)/2:color=white, \
 drawtext=text='ONE DOES NOT SIMPLY':fontfile=/path/to/impact.ttf:fontsize=24:x=(w-tw)/2:y=(50-th)/2, \
 drawtext=text='STOP ME FROM FILTERING':fontfile=/path/to/impact.ttf:fontsize=24:x=(w-tw)/2:y=h-25-(th/2)" \
output

嗨@LordNeckbeard,
  1. "color = white",我们如何更改颜色,可以传递“#somevalue”吗?
  2. "fontfile=/path/to/impact.ttf"是内置的ttf文件还是我们应该根据Android从资产文件中给出一些路径。
- BST Kaal
@BSTKaal 关于 pad 中的 color,您可以使用这些颜色名称。至于 fontfile,您需要提供要使用的字体的路径。如果您的 ffmpeg 构建是使用 --enable-libfontconfig 编译的,则可以像 fontconfig 示例(从底部数第三个)中所示直接提供名称。抱歉,我对 Android 一无所知。 - llogan
命令正在运行,但输出视频仅有一帧,即视频长度甚至不到一秒钟... - BST Kaal
非常感谢@LordNechbeard,我通过删除“-vframes 1”解决了这个问题。 - BST Kaal

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接