FFMPEG:以帧为单位输出场景更改时间

时间:2019-05-28 21:34:22

标签: ffmpeg detect frames scene

我已成功使用-vf select='gte(scene,0.4)',metadata=print:file=shotcuts.txt命令获取FFMPEG来检测场景变化并将结果输出到文件。是否可以将pts字段强制设置为帧而不是默认值,默认值似乎取决于视频格式(例如AVI文件的帧数,MOV / MP4的纳秒级)?

例如,处理AVI文件以帧为单位输出时间戳:

框架0分151
框架1分206

而MP4文件输出为媒体时间:

框架0分540000
镜架1分738000

1 个答案:

答案 0 :(得分:1)

PTS代表演示文稿时间邮票,因此不能在框架内。但是,PTS用timebase表示,因此,如果将时基设置为1 / fps,则PTS和帧索引将重合。这仅适用于帧速率恒定且帧速率为整数的流。

在选择之前使用settb过滤器设置时基。对于30 fps CFR流,

-vf settb=1/30,select='gte(scene,0.4)',metadata=print:file=shotcuts.txt