Python场景变化检测

时间:2010-07-17 20:44:08

标签: python video video-processing

我想知道是否有人有Python和视频处理的经验。基本上,我想知道是否有任何库可以让我在视频中进行场景检测?如果没有,是否有任何可以让我将视频分成一系列帧,让我搞乱像素?

谢谢!

2 个答案:

答案 0 :(得分:3)

OpenCV有Python绑定;我不认为它有任何场景边界算法/函数构建它,但你绝对可以用它来编写自己的。

答案 1 :(得分:0)

您可以使用FFmpeg进行场景检测并获取更改帧及其时间戳。该命令可以与python脚本结合使用,您可以根据用例进行修改。

您可以简单地使用以下命令:

ffmpeg inputvideo.mp4 -filter_complex "select='gt(scene,0.3)',metadata=print:file=time.txt" -vsync vfr img%03d.png

这将仅将相关信息保存在time.txt文件中,如下所示,并按顺序保存镜头更改图像:

frame:0    pts:108859  pts_time:1.20954
lavfi.scene_score=0.436456
frame:1    pts:285285  pts_time:3.16983
lavfi.scene_score=0.444537
frame:2    pts:487987  pts_time:5.42208
lavfi.scene_score=0.494256
frame:3    pts:904654  pts_time:10.0517
lavfi.scene_score=0.462327
frame:4    pts:2533781 pts_time:28.1531
lavfi.scene_score=0.460413
frame:5    pts:2668916 pts_time:29.6546
lavfi.scene_score=0.432326

帧是从头开始检测到的镜头更改的序列号。另外,请根据您的使用情况适当选择阈值(此处为0.3),以获得正确的输出