javascript - 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 流?
谢谢!
解决方案
ffmpeg 本身无法帮助您使用 WebRTC,因此您需要将东西拼接在一起或使用完整的 WebRTC 实现。
有人确实使用名为webrtc-remote-screen 的 libx264实现了屏幕共享,这可能会有所帮助!
如果你想建立自己的,你将需要
SDP 实现(以及传输它的信令)
冰代理
DTLS 实施
SCTP 实施
然后你可以通过 SCTP 发送你的帧。这些堆栈中的每一个都非常复杂,因此您需要单独研究每个问题。
推荐阅读
- javascript - Visual Studio Code:在“props”之后键入点会导致它自动完成为“ImagePropTypes” - 为什么?
- android - 在 Android 中使用默认相机意图访问所有相机镜头
- c# - 如何在嵌套数组上使用 DateRange 查询 Elasticseach?
- javascript - Javascript 响应性
- c# - 有没有办法通过不同的条目过滤 DataTable?
- haskell - 基于REFLECTX的切换收缩和扩展
- solidity - 从合约B获取合约A地址
- python-3.x - 如何在pyqt中显示RGB图像
- python - 使用来自另一个数组的索引切片一个 numpy 数组
- python - OpenCV drawContours 没有保存