javascript - UDP 流到 webRTC

标签 javascript networking udp webrtc

我刚刚开始学习网络/网络编程(因此不确定哪些信息是相关的),但我的目标是将计算机 X 获取的流视频播放到计算机 Y 上托管的网页上,尽可能接近实时.我目前有一个笨拙的解决方案,它几乎可以满足我的需求,即通过 UDP 套接字将计算机 X 上获取的视频发送到计算机 Y。然后将此数据(通过 ffmpeg)发送到使用 v4l2loopback 创建的“假网络摄像头”,然后使用 getUserMedia() 读取该数据。这样做我有一个延迟不到 2 秒的断断续续的视频。

简单地说,我的问题是是否可以直接在 webRTC 框架中读取 UDP 流(以某种方式,如果可以的话如何),而不是笨拙地通过网络摄像头读取。

最佳答案

您不能使用 WebRTC 直接这样做,因为它不公开原始套接字,但您的选择是:

将其转换为 HLS 直播流

  • 通过 nginx-hls-rtmp 将 UDP 流(我假设是 RTMP?什么是 ffmpeg 输出?)转换为服务器上的 HLS 流.
  • 使用hls.js播放所述视频。

将其转换为 DataChannel 并通过 SCTP 发送

  • 例如设置媒体流 WebRTC 服务器 wrtc
  • 通过 WebRTC 连接到网络客户端(例如 simple peer 可以提供帮助)。
  • 设置一个通过 SCTP 工作的数据通道(在 Chrome Safari 和 Firefox 中使用 libsctp over udp 实现)。
  • 在数据通道上发送数据并在那里解码。

通过 WebRTC 从 X 直接连接到 Y

  • 您还可以设置 WebRTC 服务器并将 ffmpeg 连接到该服务器
  • 在 WebRTC“服务器”端和客户端之间打开一个媒体 channel 。
  • 播放视频。

在这些选项中 - 第一个是到目前为止最简单的。缺点是它不太适合低延迟流媒体+有一些开销。

我建议您从它开始,然后逐步提高。

关于javascript - UDP 流到 webRTC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50373477/

相关文章:

sockets - UDP 未连接套接字发送失败,直到它收到第一个数据报

javascript - jQuery Masked 插件的问题

javascript - 在接收推送通知的同时在后台运行 javascript 函数?

java - NAT背后的UDP打洞

matlab - 从 udp() 对象编码任意长度的二进制数据

networking - 混合 TCP 和 UDP

javascript - macOSX 上的 Electron - 将文件复制到 ~/Library

c# - jquery 中出现非法调用错误

android - 出现 401 时暂停当前堆栈,登录并恢复 Volley

c++ - Qt udp socket,什么会触发socket的readyRead信号?