首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >FFMPEG:获取所有帧的场景变化检测值

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

Stack Overflow用户
提问于 2016-11-19 00:52:41
回答 4查看 5.9K关注 0票数 7

我试图测量一部电影有多“快”(更多的动作在屏幕上和快速场景的机会)。我不想仅仅是电影的一个值,而是沿着电影的价值来观察动作在电影中的变化。在规范了电影的帧速率(10 fps)之后,我的想法是将每一帧与前面的帧进行比较。我不仅感兴趣的是,如果场景已经改变,而且,如果没有削减,有多少运动。不仅是人/物的运动,也是相机的运动。总之,场景的节奏(我认为这个词)。

我的想法是使用来自ffmpeg的scene函数作为度量。但是,看看文档在线示例,我想我只能使用场景变化检测的值作为返回帧信息的阈值,但是我无法获得ffmpeg来返回该值。是那么回事吗?有什么办法可以让它还值吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2016-11-19 04:57:03

使用

代码语言:javascript
运行
复制
ffmpeg -i in.mp4 -vf "select='gte(scene,0)',metadata=print:file=scenescores.txt" -an -f null -

创建的文本文件的输出如下:

代码语言:javascript
运行
复制
...
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
...
票数 14
EN

Stack Overflow用户

发布于 2018-09-13 15:47:37

我发现很难解析ffmpeg输出,所以我创建了Python中的包装器

代码语言:javascript
运行
复制
pip3 install scenecut_extractor

默认情况下,它将提取基于阈值的场景裁剪,因此它将为您提供参数之上的所有内容:

代码语言:javascript
运行
复制
$ scenecut_extractor /path/to/file.mp4

默认情况下将输出JSON:

代码语言:javascript
运行
复制
[
  {
    "frame": 114,
    "pts": 114.0,
    "pts_time": 3.8,
    "score": 0.445904
  },
  {
    "frame": 159,
    "pts": 159.0,
    "pts_time": 5.3,
    "score": 0.440126
  }
]

您可以设置-t 0来提取所有内容,即每个帧的概率。查看-h以获得更多选项,例如输出到CSV:

代码语言:javascript
运行
复制
$ scenecut_extractor test/test.mp4 -of csv
frame,pts,pts_time,score
24,12288.0,0.96,1.0
49,25088.0,1.96,1.0
74,37888.0,2.96,1.0
99,50688.0,3.96,1.0
124,63488.0,4.96,1.0
149,76288.0,5.96,1.0
174,89088.0,6.96,1.0
票数 3
EN

Stack Overflow用户

发布于 2021-12-13 23:14:27

根据@slhck复制我的bash解决方案的建议,我给出了另一条评论。

代码语言:javascript
运行
复制
{ echo "frame pts pts_time lavfi.scene_score"; ffmpeg -v 0 -i $INPUT -vf "select='gte(scene,0)',metadata=print:file=/dev/stdout" -f null - | awk 'ORS=NR%2?" ":"\n"' | awk '{$1=$1};1' | sed 's/fi.//' | tr -d '[:alpha:]_:=' | sed 's/ /,/g'; } > scenescores.csv
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40688062

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档