FFMPEG:获取所有帧的场景变化检测值

cel*_*nto 2 video ffmpeg

我正在尝试测量电影的"快速"程度(屏幕中的动作和快速场景机会).我不希望电影只有一个值,而是要看电影中的值以查看动作在其中的变化情况.规范化电影的帧速率(10 fps)后,我的想法是将每个帧与前一帧进行比较.如果场景发生变化,我不仅对此感兴趣,而且如果没有切割,那么我有多少动作.不仅人/物体运动,而且相机运动.总结一下这个场景的节奏(我认为是这个术语).

我的想法是使用sceneffmpeg中的函数作为度量.但是在线查看文档示例我认为我只能使用场景变化检测的值作为返回帧信息的阈值,但我不能让ffmpeg返回值.是对的吗?有什么方法可以让它返回值?

Gya*_*yan 6

使用

ffmpeg -i in.mp4 -vf select='gte(scene,0)',metadata=print:file=scenescores.txt -an -f null -
Run Code Online (Sandbox Code Playgroud)

创建的文本文件将具有如下输出:

...
frame:1440 pts:737280  pts_time:48     
lavfi.scene_score=0.003069
frame:1441 pts:737792  pts_time:48.0333
lavfi.scene_score=0.001593
frame:1442 pts:738304  pts_time:48.0667
lavfi.scene_score=0.000077
frame:1443 pts:738816  pts_time:48.1   
lavfi.scene_score=0.002219
...
Run Code Online (Sandbox Code Playgroud)

  • 该过滤器于 2016 年 2 月添加。您需要一个较新版本的二进制文件。 (2认同)