【问题标题】:Vnc with WebRTC for remote screen control带有 WebRTC 的 Vnc 用于远程屏幕控制
【发布时间】:2020-06-29 21:22:09
【问题描述】:

概述

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

我找到的可能解决方案

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

主要问题

如何将 rfb 帧编码为适合 Mediastream 和 WebRTC

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

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

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

【问题讨论】:

    标签: node.js encoding webrtc vnc rfb-protocol


    【解决方案1】:

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

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

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

    【讨论】:

    • 感谢您的回答!是的,我想,h.264 是一个很好的解决方案,但我还没有找到任何将 rfb 帧编码为 h.264 的解决方案。有没有什么?另外,我通过套接字连接传输 pngs
    • 你可以使用 GStreamer 的 rfbsrc 吗?这将负责解码,然后您可以编码为您想要的任何内容!
    • 使用 GStreamer 捕获 X11 是否也可以控制 Windows / macOS 操作系统,如 VNC?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-03
    • 2019-08-06
    • 1970-01-01
    • 1970-01-01
    • 2020-09-05
    相关资源
    最近更新 更多