HLS 协议详解:自适应码率流媒体

目录

  1. HLS 是什么
  2. 自适应码率原理
  3. 主播放列表
  4. 清晰度切换过程

HLS 是什么

HLS(HTTP Live Streaming)是苹果公司提出的流媒体协议,基于标准 HTTP 传输。它把视频切分为一系列小的 TS 分片,通过 m3u8 播放列表组织,客户端按顺序下载播放。

自适应码率原理

自适应码率(Adaptive Bitrate,ABR)是 HLS 的核心能力。服务器同时提供多个不同码率/分辨率的版本,播放器根据实时网络状况选择最合适的版本:

切换通常在分片边界进行,保证画面不中断。

主播放列表

实现自适应码率需要一个主播放列表(Master Playlist),它不包含具体分片,而是引用多个媒体播放列表:

#EXTM3U
#EXT-X-STREAM-INF:BANDWIDTH=800000,RESOLUTION=640x360
360p.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=2000000,RESOLUTION=1280x720
720p.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=5000000,RESOLUTION=1920x1080
1080p.m3u8

每个 #EXT-X-STREAM-INF 描述一个版本的带宽和分辨率。

清晰度切换过程

  1. 播放器下载主播放列表,获取所有可用版本。
  2. 选择初始版本(通常从低码率开始快速启动)。
  3. 持续监测下载速度和缓冲长度。
  4. 当带宽高于当前码率且缓冲充足时,切换到更高版本。
  5. 当带宽不足时,切换到更低版本。

本站的 在线播放器 支持自适应码率,会自动为你选择最佳清晰度。