我正在使用 FFMPEG.exe 从各种视频中提取帧。由于这是一个编程解决方案,并且获得总帧数和/或持续时间可能会很棘手(使用 ffprobe),我想我可以使用控制台输出来检测单个帧的时间戳,但我每 N 帧得到一个输出行像这样:
frame= 20 fps=0.0 q=0.0 size= 0kB time=00:00:01.72 bitrate= 0.0kbits/s
frame= 40 fps= 38 q=0.0 size= 0kB time=00:00:04.02 bitrate= 0.0kbits/s
frame= 60 fps= 39 q=0.0 size= 0kB time=00:00:06.14 bitrate= 0.0kbits/s
frame= 70 fps= 38 q=0.0 Lsize= 0kB time=00:00:07.86 bitrate= 0.0kbits/s
是否有命令行选项来强制输出每一帧?如果是这样,我可以提取该time=
部分。这是当前使用的命令行:
ffmpeg.exe -i video.avi -y -threads 0 -vsync 2 %10d.jpeg
理想情况下,替换%10d.jpeg
为写入帧时间戳的其他格式,但我认为这不存在。