Vnc 与 WebRTC 用于远程屏幕控制

Val*_*eva 5 encoding vnc node.js webrtc rfb-protocol

概述

是否可以使用VNC(RFB)配合WebRTC使用Node Js实现远程屏幕控制?我从 RFB 获取远程屏幕帧,我想将其转换为 MediaStream,然后发送到客户端。我试图在网上搜索任何解决方案,但没有发现任何我可以使用的解决方案。

我找到的可能的解决方案

  1. ffmpeg 帧编码(我不确定是否可以将帧编码为适合 MediaStream 的内容)
  2. 将帧放入canvas元素中,然后捕获到MediaStream

主要问题

如何对 rfb 帧进行编码以适合 Mediastream 和 WebRTC

到目前为止我一直在使用的

我只是将 rfb 帧转换为 png 图片,发送到客户端并使用画布渲染它。问题 - fps 较差,延迟相当大

除了WebRTC还有其他解决方案吗?

Sea*_*ois 4

我认为 WebRTC 是一个很好的解决方案,这个开源项目neko已经做到了。他们不使用 VNC(而是使用 GStreamer 捕获 X11),但这完全有可能改变。

由于 png 是无损的,因此您会浪费大量带宽,如果可能的话,我会编码为 VPx 或 H264。

您是否通过 DataChannel 传输这些 png?如果可能的话我也会使用RTP。浏览器将丢弃后期帧(和其他优化),以确保您获得最佳体验。