8

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

谢谢!

4

2 回答 2

4

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

于 2010-07-17T21:19:10.393 回答
2

您可以使用 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)以获得正确的输出

于 2018-12-28T14:10:19.370 回答