browser - WebRTC - 如何同步媒体流

标签 browser synchronization webrtc gstreamer

我正在以一种非常规的方式使用 WebRTC。

我有多个由几个“广播”对等点生成的流被发送到几个“接收”对等点的集合。

我打算使用 SFU 媒体服务器(可能是 Jitsi 或 Kurento)

这些流以同步的方式呈现在接收对等方是非常关键的。

我可以使用哪些方法进行同步?通常这不是 WebRTC 的问题,因为对等点之间通常没有一致的时钟,但在我的情况下,所有流源都有一个公共(public)时钟。

我能想象的唯一方法是:

  • 不用担心,希望 WebRTC 的低延迟会导致一切同步。
  • 以某种方式在 WebRTC 流帧中编码时间戳元数据,并以某种方式将显示与浏览器中的 javascript 同步。
  • 使用可以执行视频同步的 GStreamer 之类的工具,将流混合成单个流并将其转发到媒体服务器(进而转发到接收客户端)。不过,我不知道如何实际执行同步。

  • 任何想法和建议将不胜感激。

    最佳答案

    唯一能够同步可用的低延迟流的 OTT 系统(在撰写本文时)是 Net Insight 制造的 SYE 系统。他们能够在低延迟模式下将任何设备同步到个位数毫秒。

    他们不提供我所知道的任何开源,但您可以通过下载使用它的应用程序来查看它。
    Primetime

    游戏每天欧洲中部时间 20:00 开始,在多部手机/平板电脑上下载以验证同步部分。

    但是,我发现还有其他可以同步播放的系统。

    HibbTV

    当我解释解决方案时,HibbTV 将专注于更多 IPTV 替代解决方案。他们不适合瞄准互联网的狂野西部。我可能是错的,请纠正我。

    W3C MULTI-DEVICE TIMING COMMUNITY GROUP

    不久前与研究人员交谈。他们可以同步播放,但他们的目标是协作观看。据我了解,低延迟部分不是范围的一部分。

    然后,当涉及到 WebRTC、LHLS、MPEG-DASH CMAF 和所有其他解决方案时,他们没有时间感,因此无法使用各种访问技术(如 4G、WiFi 或电缆)在不同设备上渲染相同的视频帧或即使设备使用相同的技术,因为渲染是缓冲区控制的,而不是时间控制的。

    /安德斯

    关于browser - WebRTC - 如何同步媒体流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52585286/

    相关文章:

    ios - 通过 WebRTC 将屏幕截图作为来自 iOS 的视频流进行流式传输

    html - WebRTC:将多个监听器连接到一个客户端,一次一个

    html - 始终显示浏览器滚动条以防止页面跳转

    javascript - Node Webkit - 从 iframe 到应用程序的触发事件

    css div 和 span 在浏览器中显示不同。如何统一?

    java - 双向链表上的快速排序

    ffmpeg - 检测为 UDP 的 RTP 数据包

    java - 浏览器如何处理 cookie?

    angularjs - PhoneGap 中与服务器同步数据的策略

    Java - 如何同步 1 个列表上的 2 个线程?