ffmpeg drawtext - 只在剪裁矩形内绘制

ffmpeg drawtext - only draw within clipping rectangle

关于过滤器的 ffmpeg 文档在绘图文本的剪辑矩形上没有任何内容。我希望我可以在视频过滤器之前设置一个设置来设置一个剪辑矩形、一个未记录的功能或一个聪明的解决方法,这样你就可以只在输出视频的某个边界框内绘制文本。

我正在尝试将电影标题叠加在滴答作响的时钟视频上。这些可能很长,我不希望它们溢出到时钟的一部分。我已经知道如何叠加文字了。我目前正在通过使用标题的较短版本来解决这个问题。

这是需要滤镜图或中间视频文件的东西,还是可以用简单的视频滤镜来完成?

方法一:字幕过滤

假设你想要简单的剪辑,而不是有界的自动换行,你可以使用 ASS 字幕。参见 Visual Typesetting - Aegisub

制作字幕文件后,ffmpeg 命令很简单:

ffmpeg -i input -filter_complex "subtitles=subs.ass" output

如果您想避免使用 Aegisub,您可以手动制作简单的 SRT 样式潜艇,然后使用 force_style 选项设置裁剪坐标。见 subtitles filter documentation.

方法二:裁剪

另一种方法是使用裁剪、绘图文本和叠加滤镜。您可以修改 Blur specific area (without a mask).

中的示例