【问题标题】:Is HLS (HTTP) faster than UDP for streaming?HLS (HTTP) 是否比 UDP 更快进行流式传输?
【发布时间】:2013-12-28 19:24:11
【问题描述】:

【问题讨论】:

  • 这取决于您在 UDP 之上实现的协议。理论上肯定可以。你有什么特别的实现吗?
  • 更快是什么意思?更低的延迟、更低的抖动、更多的带宽……?
  • 哦,在任何网络上,除了 HTTP 协议之外,它的效率要高得多。我想这是 HLS 旨在规避的问题

标签: network-protocols


【解决方案1】:

它并不快。 HLS 的重点在于它动态地适应可用的网络带宽。下载速度降低时自动切换到较低质量的视频流。您可以在没有烦人的微调器的情况下继续观看电影。

HLS 是通用Adaptive bitrate streaming 协议的一个版本。有几个相互竞争的实现,它们都以相同的方式工作,但有不兼容的细节:

  • HLS 是 Apple 的 HTTP 实时流协议
  • HDS 是 Adob​​e 的 HTTP 动态流媒体
  • Microsoft 的版本是 Microsoft Smooth Streaming
  • DASH 是一种行业标准,即基于 HTTP 的动态自适应流。替换它们的标准,因此添加了第 4 个标准。

它背后的原理很简单。内容提供者会生成一些具有不同质量设置的源材料的不同编码。分成几段,每段几秒钟的视频。还有一个描述这些流和段的清单,一个简单的 XML 文件。

客户端视频播放器首先下载清单并开始下载最低质量编码的第一段。播放几乎立即开始。播放器不断地逐个下载片段,并监控获取它们的速度。如果吞吐量良好,则它切换到更高质量的编码。反之,当玩家有落后的危险时,它会切换到较低的质量。从而动态适应不断变化的网络负载。

【讨论】:

  • 为什么不直接使用带有 TCP“心跳”的 UDP?
  • 这类“假设”问题不是很有用。他们肯定选择了这个方案,因为它实施起来既简单又便宜。只需将所有内容复制到 CDN 即可,无需专用服务器。
  • @paul:RTP 有某种称为 RTCP 的 TCP 心跳和同步 - 请参阅 RFC 了解详细信息。
  • 对于支持高清播放的视频流,TCP 比 Internet 上的 UDP 更快,因此 HLS 比 UDP 上的 RTSP 快得多。自适应比特率流不是一种协议,它是一种通用技术,它不限于 HTTP 流,因为它也可以通过 RTMP 完成。 Apple 率先使用 MPEG-2 块为 Live 和 VoD (HLS) 进行分段自适应 HTTP 流传输。较新的实现,如 SmoothStreaming 或 HDS 使用分段 MP4、fMP4,这是用于组合媒体的真正标准,而分段 MPEG-2 不是标准化的。除了家庭娱乐之外,它需要专门的服务器
【解决方案2】:

就性能而言,RTP/UDP 流式传输要好得多,但不能保证它会通过路由器/nat 盒、代理等通过互联网传输。

另一方面,HLS 建立在无处不在的 HTTP 之上。通过HTTP接收视频流的几率高于RTSP/RTP、RTMP等。

在性能方面 - HLS 由于 IP/TCP/HTTP/HLS 堆栈而产生开销。在我的测试中,这些开销在 12-20% 之间。

所以,如果您可以端到端控制网络,我建议使用 RTP/UDP。否则 HLS 是更安全的选择。

【讨论】:

  • 那为什么不直接使用 TCP 呢?
  • @paul:因为正如之前有人所说,重新传输可能会阻碍您的流式传输。此外,它不能很好地处理流中的帧。丢弃一帧比多次重传损坏的帧要好。编解码器可以处理丢失的帧,但重传可能会引入大量抖动。在随机端口上使用简单 TCP 也不能保证通过 Internet 或在某些受限网络中传输。
猜你喜欢
  • 2019-05-10
  • 2015-01-14
  • 1970-01-01
  • 2011-08-26
  • 2019-03-25
  • 2017-10-27
  • 2012-02-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多