使用WebRTC + 画布构建的运动检测器js 库。当我运行该应用程序时,我立即获得非常高的 CPU 使用率。我优化了循环等,但基本问题似乎是访问相机,例如 WebRTC。
有没有办法让 WebRTC 表现得更好?也许另一种配置?还是我缺少什么?这可能是我处理错误的一些 js 内存泄漏吗?我究竟做错了什么?
您可以在此处使用相同的库查看另一个演示
和一个使用 WebRTC 的不同的,这里有同样的问题
该演示看起来像是通过检查视频图像的像素来进行运动检测。它似乎将其呈现到画布上,然后检索画布图像数据。
这很慢,因为它只是一件很慢的事情 - 有很多像素,帧很快通过,而且这是一项高 CPU 工作。更糟糕的是,Javascript 在这种数据密集型处理中并不总是非常有效。所以我不认为缓慢是WebRTC固有的。这只是繁重的javascript。
您是否尝试过使用Web Worker进行计算?
有一个使用网络工作者进行运动跟踪的演示(仅限 Firefox)。在这个演示中 CPU 使用率似乎很高,但工作人员报告的 fps 远远超过了视频的帧速率,因此尝试将工作人员限制为 30 fps 可能会有一些好处。