ffmpeg | 如何获取按时间和位置排序的视频关键帧并将其保存到文本文件中?

ffmpeg | 如何获取按时间和位置排序的视频关键帧并将其保存到文本文件中?

我对此很陌生,还不太明白很多事情。以下命令告诉我视频关键帧位于哪一行:

ffprobe -select_streams v -show_frames -show_entries frame=pict_type -of csv 720_000000.mp4 > IFrames1.txt

结果:

...
[43] frame,B
[44] frame,P
[45] frame,B
[46] frame,B
[47] frame,B
[48] frame,P
[49] frame,B
[50] frame,B
[51] frame,P
[52] frame,I <-------
[53] frame,B
[54] frame,B
[55] frame,B
...

上面的例子只显示了结果所在的行,但我想知道它是在哪一秒和哪一分钟,例如:

Iframes     Seconds
1           0
49          2
97          4
145         6
193         8
241         10
289         12
337         14
385         16
433         18
481         20
529         22
577         24
625         26
673         28
721         30
769         32
817         34
865         36
913         38
961         40
1009        42
1057        44
1105        46
1153        48
1201        50
1249        52
1297        54
1345        56
1393        58

也许这一切听起来很傻,我试图从此链接上的一个答案复制命令,但我只是收到错误,而且我的级别(帐户)太低,无法回应和询问详细信息。

iframe 位置

我非常感谢你的帮助

答案1

使用

ffprobe -select_streams v -show_entries frame=pict_type,pts_time -of csv=p=0 -skip_frame nokey -i INPUT>iframes.txt

相关内容