HLS 协议详解:自适应码率流媒体
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 描述一个版本的带宽和分辨率。
清晰度切换过程
- 播放器下载主播放列表,获取所有可用版本。
- 选择初始版本(通常从低码率开始快速启动)。
- 持续监测下载速度和缓冲长度。
- 当带宽高于当前码率且缓冲充足时,切换到更高版本。
- 当带宽不足时,切换到更低版本。
本站的 在线播放器 支持自适应码率,会自动为你选择最佳清晰度。