python - 具有多种颜色的ffmpeg drawtext
问题描述
我正在使用 ffmpeg 处理一些视频。我将每个视频的大小调整为更小的尺寸,填充它,并覆盖覆盖填充的静态图像。现在,静态图像有一个文本框,其中包含有关视频的一些信息。这很简单。不过,我还想向静态图像添加更多信息。我想添加有关视频顺序的信息,当前视频是不同的颜色。例如,我想要如下所示的文本:Video1→Video2→Video→VIDEO4→Video5→Video6
其中 VIDEO4 是不同的颜色,因此我们可以很容易地看到我们在订单中的位置。使用ffmpeg似乎并不那么容易:
- 我不相信我可以使用一个“drawtext”过滤器来做多种颜色
- 如果我有多个文本框(一个用于列表中的先前视频,一个用于列表中的当前视频,一个用于即将播放的视频),它们水平排列的不太好,因为它们的实际名称视频有不同长度的文本。这有点像噩梦。
- 我不能使用 ASS 脚本/字幕,因为它被放在静态图像上,而不是视频上
除了尝试猜测这些drawtext过滤器的X值之外,还有其他解决方案吗?我真的可以在图像上使用某种字幕脚本吗?我可以参考其他文本框吗?如果是这样,我至少可以计算文本框的宽度并相应地定位下一个。到目前为止,我所看到的所有内容都有某种时间戳的开始和结束,我只想在整个视频中使用它。
我正在使用 python 和 ffmpeg-python 库与 ffmpeg 交互。这允许我使用配置文件,以便我可以动态添加/删除要创建的视频。
只是为了获取更多信息,这里是我如何制作视频的片段:
overlay_input = ffmpeg.input(overlay_image)\
.drawtext(text="blahblahblah",
... text options...)
video_input = ffmpeg.input(video, re=None)\
.video\
.filter("scale",
...scaling options...)\
.filter("pad",
...padding options...)\
.overlay(overlay_input)
任何信息将不胜感激!
解决方案
推荐阅读
- reactjs - 如何键入 react useState 钩子?
- java - 如何在重新调整导致 ResponseEntity 时区分两个数组列表
- spring-boot - Thymeleaf - 包含子域片段中的内容
- android - 移动到android中的新位置后,如何在另一个imageview的底部对齐imageview?
- r - 使用键重命名列表中的数据框
- c++ - c++ 通用回调对象实现
- javascript - 当它检查不存在时,如何在循环中添加一个对象?
- python - 在python tkinter中用新标签替换标签
- azure-active-directory - Microsoft Teams,使用 MS Graph API 获取所有聊天消息
- regex - 正则表达式省略字符但仍替换(负字符类)