FFmpeg 通过 UDP 和 DataChannel 到 WebRTC 以实现低延迟屏幕共享

FFmpeg to WebRTC via UDP and DataChannel for low latency screenshare

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

截至目前,我可以使用 FFmpeg capture/broadcast 我的 Mac OS 屏幕到本地主机,然后选择流并使用我网络上的其他计算机播放它.

这是我用于捕获桌面视频的 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 流?

谢谢!

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

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

如果您想构建自己的,则需要

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

  • ICE特工

  • DTLS 实施

  • SCTP 实施

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