如何用当前帧号对视频进行水印处理?我的命令是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将执行我的代码并制作视频,但此视频没有当前帧号的水印。
我该怎么办??
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)
发布于 2022-05-11 07:11:41
只需删除前缀f
,使其具有正常文本,而不是f-string
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
。
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'''
https://stackoverflow.com/questions/72196136
复制相似问题