首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有ffmpeg-python的链式` `drawtext`‘

带有ffmpeg-python的链式` `drawtext`‘
EN

Stack Overflow用户
提问于 2019-09-08 10:38:31
回答 1查看 1.1K关注 0票数 1

我在python脚本中有一个函数可以通过API循环某些给定的文本,但是我在绘制多个文本值时遇到了问题:-

代码语言:javascript
复制
def add_text(title, text_lines):
    input = ffmpeg.input(f'output/{title}.mp4')
    for text in text_lines:
        output = input.drawtext(
            fontsize='24',
            start_number=0,
            text=text['text'],
            fontcolor='white',
            escape_text=True
        )
    ffmpeg.output(output, f'output/{title}-final.mp4').run()

如果我有一个测试值传递到循环中,但是如果我传递了2个或更多的值,那么这是可行的,但是只有最后一个值会被绘制到视频上。

如何循环遍历text_lines并构建输出以包括输出文件中的所有值。

用于text_lines的数组看起来如下:

代码语言:javascript
复制
[{text: 'Value 1'}, {text: 'Value 2'}, {text: 'Value 3',}]

我知道他们会互相重叠,但这不是目前的问题,只是除了最后一个价值观没有在视频上显示。

任何帮助都将不胜感激。

提前谢谢你。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-09-08 10:48:51

您需要重新分配输入(或使用中间变量)。在每个循环中所发生的事情是,您正在获取新的input并在其上绘制文本。

你可以做这样的事

代码语言:javascript
复制
...
        input = input.drawtext(
...

我相信,虽然我没有处理过很多视频。例如,您可能需要做更多的工作,以确保文本不只是覆盖本身。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57841173

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档