首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在python中在视频上叠加帧号?

如何在python中在视频上叠加帧号?
EN

Stack Overflow用户
提问于 2022-05-11 06:08:43
回答 1查看 224关注 0票数 1

如何用当前帧号对视频进行水印处理?我的命令是ffmpeg -i输入-vf "drawtext=fontfile=Arial.ttf: text='%{frame_num}':start_number=1: x=(w-tw)/2: y=h-(2*lh):fontcolor=black: fontsize=20: box=1: boxcolor=white: boxborderw=5“-c:a copy output.mp4

当我在终端中运行这个命令时,我成功地执行了我的任务。但是,当我在IDE中使用此命令时,它将text='%{frame_num}视为变量IDE会抛出一个错误,当我将frame_num替换为1或0或任何数字时,IDE将执行我的代码并制作视频,但此视频没有当前帧号的水印。

我该怎么办??

代码语言:javascript
运行
复制
import os

cmd =f'''ffmpeg -i input.mp4 -vf "drawtext=fontfile=Arial.ttf: text='%{frame_num}': start_number=1: x=(w-tw)/2: y=h-(2*lh): fontcolor=black: fontsize=20: box=1: boxcolor=white: boxborderw=5" -c:a copy output.mp4'''

print(cmd)

os.system(cmd)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-05-11 07:11:41

只需删除前缀f,使其具有正常文本,而不是f-string

代码语言:javascript
运行
复制
cmd = '''ffmpeg -i input.mp4 -vf "drawtext=fontfile=Arial.ttf: text='%{frame_num}': start_number=1: x=(w-tw)/2: y=h-(2*lh): fontcolor=black: fontsize=20: box=1: boxcolor=white: boxborderw=5" -c:a copy output.mp4'''

或者您必须在f-string中使用双重f-string

代码语言:javascript
运行
复制
cmd = f'''ffmpeg -i input.mp4 -vf "drawtext=fontfile=Arial.ttf: text='%{{frame_num}}': start_number=1: x=(w-tw)/2: y=h-(2*lh): fontcolor=black: fontsize=20: box=1: boxcolor=white: boxborderw=5" -c:a copy output.mp4'''
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72196136

复制
相关文章

相似问题

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