searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

HLS缩短首屏时间技术探索

2024-11-18 09:21:49
0
0

在流媒体传输中,首屏时间(即用户从开始请求视频流到视频开始播放的时间)是衡量用户体验的重要指标之一。HLS(HTTP Live Streaming)作为苹果公司提出的基于HTTP的流媒体传输协议,广泛应用于直播和视频点播服务中。然而,HLS的传统配置往往导致较高的延迟,影响用户体验。本文将探讨如何通过技术优化来缩短HLS的首屏时间。

HLS传输协议与延迟

HLS的核心思想是将媒体文件切割成一系列小的TS(Transport Stream)文件,并通过HTTP协议传输这些文件。每个TS文件对应一个媒体分段,客户端通过下载这些分段文件并依次播放来实现流媒体播放。然而,这种机制导致了天然的延迟,因为客户端必须等待至少一个TS文件生成并被传输到客户端才能开始播放。

苹果最初推荐的HLS视频片段时长是10秒(现在推荐6秒),并建议在倒数第三个视频片段开始播放。按照这种配置,HLS的延迟将达到30秒左右。为了缩短这个延迟,一种简单的方法是减少每个视频片段的时长,例如将片段时长缩短到3秒,这样可以将延迟降低到10秒左右。然而,即使如此,延迟仍然较高。

现有的低延迟解决方案

为了降低HLS的延迟,社区和苹果公司分别提出了多种解决方案。

  1. LHLS(Low-Latency HLS)
    • LHLS是一种社区驱动的HLS低延迟方案,最早由Periscope团队在2017年提出。
    • 该方案将一个视频片段进一步细分成多个小的Chunk,无需等待整个视频片段生成,每生成一个Chunk就会被下载到播放器缓存。
    • 使用HTTP/1.1的Chunked transfer encoding功能,播放器保持与服务器的连接,服务器生成一个Chunk就立即传递给播放器。
    • 这种方案可以将延迟降低到3秒左右,但存在ABR(自适应码率切换)困难的问题,因为长连接使得客户端难以估算当前网络带宽。
  2. LLHLS(Low-Latency HLS,苹果官方方案)
    • 苹果在2019年WWDC上介绍了官方的低延迟HLS解决方案。
    • 该方案重新设计了一套低延迟机制,并未直接借鉴社区的低延迟方案。
    • LLHLS通过优化切片生成、传输和播放的各个环节,实现了更低的延迟。

又拍云HLS+技术优化

又拍云在HLS延迟问题上做了针对性的技术优化,推出了HLS+技术,也称为流式HLS技术。这项技术通过以下方式显著降低了HLS的延迟:

  1. 流式处理:将标准的HLS进行流式处理,大幅度降低延迟,并提高HTML5端直播的兼容性。
  2. 动态生成M3U8列表和小切片文件:为每个播放请求生成独立的M3U8列表,并动态快速地生成仅针对这个播放请求的小切片文件。
  3. Variant HLS+HTTP 302:采用Variant HLS+HTTP 302的方式标识客户端的行为,能够标记每个客户端的HLS请求,并为每个请求建立起连接。
  4. 优化启动切片和播放器取片间隔:通过优化启动切片数量和播放器取片的间隔时间,进一步减少延迟。

通过这些优化措施,又拍云成功将HLS的延迟稳定控制在了4秒左右,显著提升了用户体验。

实践中的注意事项

在实际应用中,缩短HLS首屏时间需要注意以下几点:

  1. 网络状况:确保网络带宽充足且稳定,避免因网络延迟导致首屏时间增加。
  2. 客户端性能:客户端的性能也会影响首屏时间,需要确保客户端设备能够及时处理和播放视频流。
  3. 服务器配置:合理配置服务器端的编码器和流分割器,生成合适大小的TS文件,以减少传输延迟。

结论

HLS作为主流的流媒体传输协议,在直播和视频点播服务中发挥着重要作用。然而,传统的HLS配置往往导致较高的延迟,影响用户体验。通过采用LHLS、LLHLS等低延迟解决方案以及又拍云的HLS+技术优化,可以显著缩短HLS的首屏时间,提升用户体验。在实际应用中,需要注意网络状况、客户端性能和服务器配置等因素,以确保优化效果的最大化。

0条评论
作者已关闭评论
陈****宏
3文章数
0粉丝数
陈****宏
3 文章 | 0 粉丝
陈****宏
3文章数
0粉丝数
陈****宏
3 文章 | 0 粉丝
原创

HLS缩短首屏时间技术探索

2024-11-18 09:21:49
0
0

在流媒体传输中,首屏时间(即用户从开始请求视频流到视频开始播放的时间)是衡量用户体验的重要指标之一。HLS(HTTP Live Streaming)作为苹果公司提出的基于HTTP的流媒体传输协议,广泛应用于直播和视频点播服务中。然而,HLS的传统配置往往导致较高的延迟,影响用户体验。本文将探讨如何通过技术优化来缩短HLS的首屏时间。

HLS传输协议与延迟

HLS的核心思想是将媒体文件切割成一系列小的TS(Transport Stream)文件,并通过HTTP协议传输这些文件。每个TS文件对应一个媒体分段,客户端通过下载这些分段文件并依次播放来实现流媒体播放。然而,这种机制导致了天然的延迟,因为客户端必须等待至少一个TS文件生成并被传输到客户端才能开始播放。

苹果最初推荐的HLS视频片段时长是10秒(现在推荐6秒),并建议在倒数第三个视频片段开始播放。按照这种配置,HLS的延迟将达到30秒左右。为了缩短这个延迟,一种简单的方法是减少每个视频片段的时长,例如将片段时长缩短到3秒,这样可以将延迟降低到10秒左右。然而,即使如此,延迟仍然较高。

现有的低延迟解决方案

为了降低HLS的延迟,社区和苹果公司分别提出了多种解决方案。

  1. LHLS(Low-Latency HLS)
    • LHLS是一种社区驱动的HLS低延迟方案,最早由Periscope团队在2017年提出。
    • 该方案将一个视频片段进一步细分成多个小的Chunk,无需等待整个视频片段生成,每生成一个Chunk就会被下载到播放器缓存。
    • 使用HTTP/1.1的Chunked transfer encoding功能,播放器保持与服务器的连接,服务器生成一个Chunk就立即传递给播放器。
    • 这种方案可以将延迟降低到3秒左右,但存在ABR(自适应码率切换)困难的问题,因为长连接使得客户端难以估算当前网络带宽。
  2. LLHLS(Low-Latency HLS,苹果官方方案)
    • 苹果在2019年WWDC上介绍了官方的低延迟HLS解决方案。
    • 该方案重新设计了一套低延迟机制,并未直接借鉴社区的低延迟方案。
    • LLHLS通过优化切片生成、传输和播放的各个环节,实现了更低的延迟。

又拍云HLS+技术优化

又拍云在HLS延迟问题上做了针对性的技术优化,推出了HLS+技术,也称为流式HLS技术。这项技术通过以下方式显著降低了HLS的延迟:

  1. 流式处理:将标准的HLS进行流式处理,大幅度降低延迟,并提高HTML5端直播的兼容性。
  2. 动态生成M3U8列表和小切片文件:为每个播放请求生成独立的M3U8列表,并动态快速地生成仅针对这个播放请求的小切片文件。
  3. Variant HLS+HTTP 302:采用Variant HLS+HTTP 302的方式标识客户端的行为,能够标记每个客户端的HLS请求,并为每个请求建立起连接。
  4. 优化启动切片和播放器取片间隔:通过优化启动切片数量和播放器取片的间隔时间,进一步减少延迟。

通过这些优化措施,又拍云成功将HLS的延迟稳定控制在了4秒左右,显著提升了用户体验。

实践中的注意事项

在实际应用中,缩短HLS首屏时间需要注意以下几点:

  1. 网络状况:确保网络带宽充足且稳定,避免因网络延迟导致首屏时间增加。
  2. 客户端性能:客户端的性能也会影响首屏时间,需要确保客户端设备能够及时处理和播放视频流。
  3. 服务器配置:合理配置服务器端的编码器和流分割器,生成合适大小的TS文件,以减少传输延迟。

结论

HLS作为主流的流媒体传输协议,在直播和视频点播服务中发挥着重要作用。然而,传统的HLS配置往往导致较高的延迟,影响用户体验。通过采用LHLS、LLHLS等低延迟解决方案以及又拍云的HLS+技术优化,可以显著缩短HLS的首屏时间,提升用户体验。在实际应用中,需要注意网络状况、客户端性能和服务器配置等因素,以确保优化效果的最大化。

文章来自个人专栏
音视频协议
3 文章 | 1 订阅
0条评论
作者已关闭评论
作者已关闭评论
0
0