即时视频流分析 - 建议?
Video stream analysis on the fly - advise?
我计划开发一个简单的解决方案,使我能够即时执行非常基本的视频流分析。我以前从来没有做过那样的事情,因此这是一个非常普遍和开放的问题。主要重点是检查流是否没有问题,例如 - 冻结帧、黑屏以及音频是否存在。同步超出范围。我阅读了 OpenCV 和 Xuggler 等开放库,但它们似乎比我需要的更复杂。 FFmpeg 能够检测黑屏,但不能实时检测。
有没有其他我可以查看的开放库?你能给我什么建议吗?我正在考虑使用 Java 或 Python。或者两者兼而有之。解决方案的效率超出了范围,我现在只关注冻结帧和黑屏检测。
欢迎任何建议!
此致,
彼得
您可以使用ffmpeg
分析实时流。例如:
ffmpeg -i <input> -filter:v blackdetect=d=9 -filter:a silencedetect=d=9 -t 10 -f null /dev/null
检查 10 秒视频中是否有 9 秒是黑色或静音。重复。
在最新版本的 FFmpeg 中,您可以使用 freezedetect 过滤器来检测不变的帧。
如果您需要不同的指标,您可以在不同时间截取两个屏幕截图并将它们与 imagemagick
:
进行比较
compare -metric <metric> <in1> <in2> <diff>
我计划开发一个简单的解决方案,使我能够即时执行非常基本的视频流分析。我以前从来没有做过那样的事情,因此这是一个非常普遍和开放的问题。主要重点是检查流是否没有问题,例如 - 冻结帧、黑屏以及音频是否存在。同步超出范围。我阅读了 OpenCV 和 Xuggler 等开放库,但它们似乎比我需要的更复杂。 FFmpeg 能够检测黑屏,但不能实时检测。
有没有其他我可以查看的开放库?你能给我什么建议吗?我正在考虑使用 Java 或 Python。或者两者兼而有之。解决方案的效率超出了范围,我现在只关注冻结帧和黑屏检测。
欢迎任何建议!
此致, 彼得
您可以使用ffmpeg
分析实时流。例如:
ffmpeg -i <input> -filter:v blackdetect=d=9 -filter:a silencedetect=d=9 -t 10 -f null /dev/null
检查 10 秒视频中是否有 9 秒是黑色或静音。重复。
在最新版本的 FFmpeg 中,您可以使用 freezedetect 过滤器来检测不变的帧。
如果您需要不同的指标,您可以在不同时间截取两个屏幕截图并将它们与 imagemagick
:
compare -metric <metric> <in1> <in2> <diff>