如何在 python 中的视频上叠加帧数
How do i overlay frame number on video in python
如何使用当前帧号为视频加水印?
我的命令是
[ ffmpeg -i input -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 (pycharm) 中使用此命令时,它将 text='%{frame_num} 视为变量 IDE抛出错误,当我用 1 或 0 或任何数字替换 frame_num 时,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)
只需删除前缀 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
中使用双 {{ }}
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'''
如何使用当前帧号为视频加水印? 我的命令是 [ ffmpeg -i input -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 (pycharm) 中使用此命令时,它将 text='%{frame_num} 视为变量 IDE抛出错误,当我用 1 或 0 或任何数字替换 frame_num 时,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)
只需删除前缀 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
{{ }}
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'''