帧编号与FFmpeg的叠加

帧编号与FFmpeg的叠加,ffmpeg,Ffmpeg,我需要使用ffmpeg for windows将帧编号覆盖到视频文件的每一帧 我成功地用drawtext过滤器覆盖了时间码戳,使用以下代码: ffmpeg -i video.mov -vcodec r210 -vf "drawtext=fontfile=Arial.ttf: timecode='01\:00\:00\:00': r=25: x=(w-tw)/2: y=h-(2*lh): fontcolor=white: box=1: boxcolor=0x00000099" -y output.

我需要使用ffmpeg for windows将帧编号覆盖到视频文件的每一帧

我成功地用
drawtext
过滤器覆盖了时间码戳,使用以下代码:

ffmpeg -i video.mov -vcodec r210 -vf "drawtext=fontfile=Arial.ttf: timecode='01\:00\:00\:00': r=25: x=(w-tw)/2: y=h-(2*lh): fontcolor=white: box=1: boxcolor=0x00000099" -y output.mov
但是,我需要一个帧编号覆盖,而不是一个时间码。非常感谢您的帮助。

您可以使用带有
n
frame\u num
功能的:


循环5 fps示例

命令示例:

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
  • 您可能必须提供字体文件的完整路径,例如
    fontfile=/usr/share/fonts/TTF/Vera.TTF
  • n
    /
    frame\u num
    从0开始,但您可以使用
    start\u number
    选项使帧计数从1开始,如示例所示
如果需要,您可以添加其他文本,但请注意,您必须转义一些特殊字符:

text='Frame\: %{frame_num}'


有关详细信息,请参阅。

它可以工作!有什么方法可以让它从1开始计数吗?可能有一个“eval”选项,你可以在那里把它加在一起……添加
fontsize=200:
以实际看到一些东西;)我必须明确给出ttf文件的整个路径,即/usr/share/fonts/truetype/dejavu/DejaVuSans Bold。ttf@Zak44尝试将
format=yuv420p
附加到过滤器链(用逗号连接过滤器)。但这只是一个猜测,没有看到命令和日志。