流媒体 HLS 协议介绍

HLS(HTTP Live Streaming) 是由 Apple 推出的一种基于 HTTP 的流媒体传输协议。它将音视频文件切片为多个小的 .ts 媒体文件,并通过 .m3u8 播放列表文件进行索引和调度。由于其兼容性好、支持 CDN 加速、可自适应码率,因此广泛用于点播和直播场景中。类似的还有 DASH 协议,相关参数对比如下:

HLS(HTTP Live Streaming) 是由 Apple 推出的一个基于 HTTP 的流媒体传输协议。它将音视频文件切片为多个小的 .ts 媒体文件,并通过 .m3u8 播放列表文件进行索引和调度。由于其兼容性好、支持 CDN 加速、可自适应码率,因此广泛用于点播和直播场景中。类似的还有 DASH 协议,相关参数对比如下:

| 特性维度

| 特性稳定性

|

|

HLS(HTTP Live Streaming)

HLS(HTTP Live Streaming)

|

|

DASH(Dynamic Adaptive Streaming over HTTP)

DASH(Dynamic Adaptive Streaming over HTTP)

Apple 私有协议

Apple 私有协议

|

|

国际标准(MPEG)

国际标准(MPEG)

| | 封装格式 |

| | 封装格式 |

传统使用 MPEG-TS
现代支持 fMP4

传输使用 MPEG-TS
现代支持 fMP4

|

|

主流使用 fMP4

主流使用 fMP4

| | 播放列表格式 | .m3u8

| | 播放列表格式 | .m3u8

(M3U8 格式)

(M3U8 格式)

| .mpd

| .mpd

(XML 格式)

(XML 格式)

| | 延迟表现 |

| | 延迟表现 |

相对较高(常见 6~30 秒)

相对较高(常见 6~30 秒)

|

|

相对较低(2~15 秒)

相对较低(2~15 秒)

| | 码率自适应 |

| | 码率自适应 |

支持(多码率播放列表)

支持(多码率播放列表)

|

|

支持(更灵活)

支持(更灵活)

| | 加密方式 |

| | 加密方式 |

支持 AES-128,FairPlay

支持 AES-128,FairPlay

|

|

支持 Widevine、PlayReady、FairPlay 等

支持 Widevine、PlayReady、FairPlay 等

| | 浏览器兼容性 |

| | 浏览器兼容性 |

原生支持 Safari,其他需配合 hls.js

原生支持 Safari,其他需配合 hls.js

|

|

原生支持 Chrome、Edge(支持 MSE)

原生支持 Chrome、Edge(支持 MSE)

| | 跨平台表现 |

| | 跨平台表现 |

Apple 系统兼容性好

Apple 系统兼容性好

|

|

更具通用性、跨平台标准广泛

更具通用性、跨平台标准广泛

| | 播放器支持 |

| | 播放器支持 |

Safari、QuickTime、hls.jsvideo.js

Safari、QuickTime、hls.jsvideo.js

|

|

Dash.js、Shaka Player、Bitmovin 等

Dash.js、Shaka Player、Bitmovin 等

| | 协议灵活性 |

| | 协商灵活性 |

略低(Apple 控制标准)

流低(Apple 控制标准)

|

|

高(开放标准,扩展性强)

高(开放标准,扩展性强)

|

|

HLS 协议交互流程

HLS 协议交互流程

1. 主播放列表(main.m3u8)

1. 主播放列表(main.m3u8)

客户端基于 hls.js 库向服务端请求主播放列表,服务端返回内容如下:

客户端基于 hls.js 库向服务端请求主播放列表,服务端返回内容如下:

#EXTM3U #EXT-X-STREAM-INF:BANDWIDTH=800000,RESOLUTION=640x360 low/index.m3u8 #EXT-X-STREAM-INF:BANDWIDTH=1400000,RESOLUTION=1280x720 mid/index.m3u8 #EXT-X-STREAM-INF:BANDWIDTH=2800000,RESOLUTION=1920x1080 high/index.m3u8

#EXTM3U #EXT-X-STREAM-INF:BANDWIDTH=800000,RESOLUTION=640x360 low/index.m3u8 #EXT-X-STREAM-INF:BANDWIDTH=1400000,RESOLUTION=1280x720 mid/index.m3u8 #EXT-X-STREAM-INF:BANDWIDTH=2800000,RESOLUTION=1920x1080 high/index.m3u8

字段说明:

字段说...

开通本站会员,查看完整译文。

首页 - Wiki
Copyright © 2011-2025 iteam. Current version is 2.144.0. UTC+08:00, 2025-06-06 17:29
浙ICP备14020137号-1 $访客地图$