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

标签 video ffmpeg

我正在尝试衡量一部电影“快”的程度(屏幕上的 Action 更多,场景的机会更多)。我不想要电影的单一值,而是电影中的值以查看 Action 在其期间的变化。在标准化电影的帧速率(10 fps)之后,我的想法是将每一帧与前一帧进行比较。我不仅对场景是否改变感兴趣,而且如果没有剪辑,有多少运动。不仅是人/物体的移动,还有相机的移动。总结一下场景的节奏(我认为是这个词)。

我的想法是使用 scene来自 ffmpeg 的函数作为度量。但是看着documentexamples online我在想我只能使用场景变化检测的值作为阈值来返回帧信息,但我无法让 ffmpeg 返回值。那正确吗?有什么办法可以让它返回值?

最佳答案

利用

ffmpeg -i in.mp4 -vf "select='gte(scene,0)',metadata=print:file=scenescores.txt" -an -f null -
创建的文本文件将具有如下输出:
...
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
...

关于video - FFMPEG:获取所有帧的场景变化检测值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40688062/

相关文章:

c++ - 从音频中绘制波形的算法

c++11 - FFMPEG C api h.264 编码/MPEG2 ts 流问题

ios - 我想在iPad上的手机缺口应用程序中自动加载本地视频和音频

video - 检测和解析 html 中的嵌入式视频?

ffmpeg - 将 3 个不同的视频连接在一起的最佳帧大小、比特率和帧率是多少?

gcc - 编译FFMPEG教程程序

c++ - 连接损坏时出现 rtsp 错误?

android - Lollipop 如何播放压缩的音频/视频

c++ - 使用 Qt 播放 *.avi 文件

windows - 如何在 TCL 8.0 版中使用 "&"命令使 proc 或 exec 命令在后台运行,即在 Windows 7 上并行运行?