大家好!
我处理来自IP摄像机的视频,并编写了一个基于解压缩视频分析的运动检测算法。但我真的更快。我发现了几篇关于压缩域分析的论文,但没有找到任何实现。 有谁能推荐我一些代码?
找到材料:答案 0 :(得分:3)
我必须在H.264视频中检测运动,对我来说,帧大小是一个非常好的指标。
我使用ffprobe(来自ffmpeg项目)导出这样的帧大小:
./ffprobe -show_frames -pretty video.mp4 | grep 'size' | grep -o '[0-9]*' > sizes.txt
在我的情况下没有移动意味着更大的I帧(对我来说,每30帧是一个I帧),而对于某些帧,它们的尺寸更小。
我对视频编码很陌生,所以我猜这些东西可能非常依赖于视频信号的编码和类型,但值得一看,因为尝试速度非常快。导出框架并查看例如Matlab的。
修改强> 最后,我重新编码了视频,因此每隔一帧就是一个I帧,因为这样可以提供更好的时间分辨率。我没有测试的一个想法是反转视频并执行相同的操作,这应该可以更准确地估计运动开始/结束的时间,类似于通过前向 - 后向过滤消除相位延迟。
答案 1 :(得分:-1)
https://github.com/Breakthrough/DVR-Scan
DVR-Scan是一个跨平台的命令行(CLI)应用程序 自动检测视频文件中的运动事件(例如安全性) 相机镜头)。除了定位时间和持续时间 每个动作事件,DVR-Scan将保存每个动作事件的镜头 到一个新的,单独的视频剪辑。 DVR-Scan不仅免费而且 开源软件(FOSS),用Python编写,基于Numpy和 OpenCV,它是可扩展和可破解的。
我可以确认它与MPEG4(H264)AVI文件完美配合。 我的笔记本电脑的扫描速度约为30 fps,i5 4300U CPU用于1200x900视频。
您可以查看所用算法的来源。
以下是来自同一作者的一些解释教程链接: https://github.com/Breakthrough/python-scene-detection-tutorial