我想知道是否有人有Python和视频处理的经验。基本上,我想知道是否有任何库可以让我在视频中进行场景检测?如果没有,是否有任何可以让我将视频分成一系列帧,让我搞乱像素?
谢谢!
答案 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),以获得正确的输出