首页 > 解决方案 > 在 WebRTC 视频播放器和 HLS 视频播放器之间切换

问题描述

我正在构建一个 Web 应用程序,它将执行以下任务

  1. 显示实时视图 - 使用 WebRTC 媒体频道。
  2. 显示视频点播 (VOD) - 用户 HLS。

用户有一个按钮,用于从实时切换到回放,反之亦然。WebRTC 和 HLS 使用不同的库来渲染媒体。

问题:

  1. 在同一页面上从 Live <-> Playback 切换是否可行?如果可行,是否需要重新加载页面?
  2. 两个不同的播放器可以同时播放视频吗?

标签: video-streamingwebrtchtml5-videohttp-live-streamingp2p

解决方案


快速回答是,您可以在同一页面上有两个不同的播放器,并且您应该能够控制每个播放器,例如开始和停止播放,而无需加载页面。

但是,如果这两种流技术也有助于您的设计,那么看看这两种流技术有何不同可能会很有用。

  • WebRTC 是一种(近乎)实时的,通常是两种方式的流式传输协议。它用于实时视频通话等应用程序,并利用实时协议、RTP 等流技术,这些技术通常配置为优先考虑延迟。请注意,视频通话中的低延迟通常为 200-500 毫秒。
  • HLS 通常不是“接近实时的”。它是一种 ABR 流技术,通常会检查接收器是否有足够的流缓冲,以确保视频可以在没有“缓冲”中断的情况下播放。HLS 或 DASH 视频流中的低延迟通常以数秒为单位进行测量。

简而言之,WebRTC 优先考虑延迟,并准备允许一些视频伪像或丢帧以使视频尽可能接近实时。例如,这在双向视频通话中显然很重要。

另一方面,HLS 优先考虑视频质量并避免丢帧。它还尝试拥有足够的缓冲区以避免使用缓冲消息暂停视频。

请注意,这两种方法都支持协商传输期间流式传输的比特率的能力。

与许多技术一样,边界正在模糊,WebRTC 被建议用于现场娱乐视频流用例和 HLS 低延迟,以减少延迟,尽管目前还没有达到接近实时的水平。

将两种技术结合起来的一种方法是通过使用 HLS 流式传输录制的流来进行实时视频通话或流,您可以在其进行过程中捕获并使其可用于播放、追赶或“重新开始”。这也可以让您捕获尽可能高质量的录音,而不必担心实时延迟。


推荐阅读