我使用以下命令将每个帧保存为图片,并在其上打印帧编号:
ffmpeg -i input.mp4 -vf "drawtext=text='%{n}':fontsize=72:fontcolor=white:borderw=3:bordercolor=black" -fps_mode vfr "pics\%5d.jpg"
看起来效果不错,但是当我查看第 930 帧处的图片时,帧计数只是重新开始回到 0,并再次从那里开始计数。我尝试重新生成 pts 选项 -fflags +genpts 但无济于事。有任何想法吗?
如果中流帧属性没有变化,例如分辨率或像素格式,那么 ffmpeg 会重新初始化过滤器图,因为大多数过滤器无法应对不同的属性。由于重新初始化,现有的过滤器状态会丢失,因此帧计数会重置。您可以通过添加来抑制这种情况
-reinit_filter 0
。请注意,这不适用于更改音频流,因为还没有过滤器可以应对这些情况。