使用js library +画布构建的运动检测器WebRTC。 当我运行应用程序时,我立即获得非常高的CPU使用率。 我优化了循环等,但基本问题似乎是访问摄像头,例如WebRTC。
有没有办法让WebRTC表现得更好?也许是另一种配置?还是有什么我想念的?这可能是一些js内存泄漏我处理错了吗? 我做错了什么?
您可以使用相同的lib
检查另一个演示here和另一个使用WebRTC且具有相同问题的here
答案 0 :(得分:6)
该演示看起来像通过检查视频图像的像素进行运动检测。它似乎将它渲染到画布然后检索画布图像数据。
这很慢,因为它只是一件很慢的事情 - 有很多像素,帧快速通过,而且CPU工作量很高。事实上,Javascript在这种数据繁重的处理中并不总是很有效率。所以我不认为WebRTC固有的缓慢。这只是沉重的javascript。
答案 1 :(得分:1)
您是否尝试过使用Web Workers进行计算?
有一个demo using web workers for motion tracking(仅限Firefox)。在这个演示中,CPU使用率似乎很高,但是工作人员报告的fps超过了视频的帧速率,因此尝试将工作者限制为30fps可能会有一些好处。