Node.js 客户端浏览器网络摄像头流到节点服务器并返回

Node.js 客户端浏览器网络摄像头流到节点服务器并返回,node.js,networking,browser,stream,webrtc,Node.js,Networking,Browser,Stream,Webrtc,我一直在研究如何将来自浏览器摄像头的实时帧流传输到节点服务器。该服务器处理图像,然后将处理后的图像发送回客户端。我想知道最好的方法是什么。我见过一些解决方案,例如将帧分块发送到服务器,供服务器处理。我研究了webRTC,但得出的结论是,它更适用于客户端到客户端的连接。一个简单的实现,比如使用WebSocket,或者使用socket.io就足够了吗?您可以使用WebSocket。但是,我不推荐。我认为你还不应该放弃WebRTC。它不仅仅适用于客户端到客户端的连接。您可以使用MediaServer,

我一直在研究如何将来自浏览器摄像头的实时帧流传输到节点服务器。该服务器处理图像,然后将处理后的图像发送回客户端。我想知道最好的方法是什么。我见过一些解决方案,例如将帧分块发送到服务器,供服务器处理。我研究了webRTC,但得出的结论是,它更适用于客户端到客户端的连接。一个简单的实现,比如使用WebSocket,或者使用socket.io就足够了吗?

您可以使用WebSocket。但是,我不推荐。我认为你还不应该放弃WebRTC。它不仅仅适用于客户端到客户端的连接。您可以使用MediaServer,如
Kurento
Jitsi
来处理帧并返回输出。我看过Kurento添加过滤器之类的样品。您可以根据如何处理帧构建自己的模块。我建议您检查MediaServer,看看它是否符合您的要求。只有当您确信
WebRTC
不适合您时,才使用WebSocket。

您的延迟要求是什么?使用MediaRecorder肯定可以获得更好的质量,但它有更高的延迟。您可以使用WebRTC堆栈来保持实时性,但牺牲了质量。它必须非常实时。其目标是记录帧,如果感兴趣,将处理后的帧取回,同时将更多帧流式传输到服务器。我希望这是足够的解释。请记住,如果您使用WebRTC,它将删除帧并进行各种其他增强以保持低延迟。如果您的比特率下降到几百千比特,或者帧大小随机下降到320x240,请不要感到惊讶。如果实时性很重要的话,这是一个适当的权衡。好的,谢谢。我想知道将映像编码到base64并通过webRTC发送的实现是否也能正常工作。服务器将被视为对等服务器,它只需在服务器上动态地将base64转换为映像。不!不要那样做。。。你为什么要对任何东西进行base64编码?您在存储、额外处理、内存使用等方面增加了33%的开销,从一开始就破坏了使用WebRTC的全部意义,等等。