首页 > 解决方案 > 视频帧事件的触发速度超过了可以处理的速度

问题描述

我的视觉处理代码有问题。我希望有一个实际的错误可以为我指明正确的方向,并且我可以与大家分享。但是,本身没有错误。我得到的是我的视频中无意的副作用。

我有一个在网络上传输 H.264 视频的 IP 网络摄像机。它设置为 20 fps,尽管我尝试将其降低到 15 fps。不知道我是否想要或需要比这更低。

我正在阅读我的代码中的框架。我现在整合它的方式是,每次有来自相机的新帧时,我都会得到一个事件,在我的情况下,每秒 15 到 20 次。

我正在尝试尽快处理该视频帧,但我正在对其进行一些 OpenCV(或更好的 EmguCV)处理以及一些对象跟踪。

因为我是对象跟踪,所以我可以忽略或转储其间的帧,因为按顺序/按顺序排列它们很重要。

我的处理时间会波动,但有时会变慢,但只有几帧,比如 3 到 4 帧。但是,当我变慢时,我自然会错过帧,这会导致对象跟踪器丢失跟踪并且视频看起来像是在跳过,这两种情况我都不想要。

除了查看我是否可以加快处理速度(我可能无法做到)之外,处理这个问题的最佳方法是什么,这样即使我仍在处理或处理一点,我也不会跳过或丢弃触发并进入的帧慢点?

我正在寻找一个并发队列来充当缓冲区,但我不确定沿着这条路走下去是否是正确的方法。

谢谢!!

标签: c#.neteventsimage-processing

解决方案


推荐阅读