首页 > 解决方案 > FFmpeg 通过 UDP 和 DataChannel 到 WebRTC 以实现低延迟屏幕共享

问题描述

我正在探索使用 WebRTC 实现低延迟屏幕共享的不同方法,但遇到了问题。任何帮助将非常感激!

到目前为止,我可以使用 FFmpeg 将我的 Mac OS 屏幕捕获/广播到 localhost,然后使用我网络上的其他计算机获取流并播放它。

这是我用于捕获桌面视频的 FFmpeg 命令行:

ffmpeg -f avfoundation -framerate 60 -capture_cursor 1 -i "1" -c:v h264_videotoolbox -realtime 1 -vsync 2 -b:v 5000k out777777.mp4

我想知道是否有一种方法可以利用 WebRTC(理想情况下是数据通道方法),以便在两个对等方通过数据通道连接后,远程计算机接收并播放我桌面的这个 UDP 流?

谢谢!

标签: javascriptffmpegwebrtcvnc

解决方案


ffmpeg 本身无法帮助您使用 WebRTC,因此您需要将东西拼接在一起或使用完整的 WebRTC 实现。

有人确实使用名为webrtc-remote-screen 的 libx264实现了屏幕共享,这可能会有所帮助!

如果你想建立自己的,你将需要

  • SDP 实现(以及传输它的信令)

  • 冰代理

  • DTLS 实施

  • SCTP 实施

然后你可以通过 SCTP 发送你的帧。这些堆栈中的每一个都非常复杂,因此您需要单独研究每个问题。


推荐阅读