2026/4/4 0:00:49
网站建设
项目流程
建设银行网上银行网站,合川做网站,最专业的手机网站建设,优化图片大小的网站文章目录一、核心设计理念二、核心文件组成1. M3U8 文件结构2. TS 媒体片段三、工作流程四、关键特性与扩展1. 直播 vs 点播2. 加密与 DRM3. 音频/字幕/多语言4. 兼容性五、优缺点六、实用工具与命令HLS#xff08;HTTP Live Streaming#xff09;是苹果公司提出的基于 HTTP …文章目录一、核心设计理念二、核心文件组成1. M3U8 文件结构2. TS 媒体片段三、工作流程四、关键特性与扩展1. 直播 vs 点播2. 加密与 DRM3. 音频/字幕/多语言4. 兼容性五、优缺点六、实用工具与命令HLSHTTP Live Streaming是苹果公司提出的基于 HTTP 的自适应比特率流媒体传输协议RFC 8216核心是将音视频流切片为一系列 TS 媒体片段通过 M3U8 索引文件管理客户端按需下载播放广泛用于直播/点播场景。一、核心设计理念HTTP 传输复用 HTTP 80/443 端口穿透防火墙/CDN 友好无需特殊服务器降低部署成本自适应比特率ABR同一内容提供多码率切片客户端根据带宽/设备性能动态切换切片化传输将长流切分为短片段通常 2–10s实现快速起播、无缝切换、故障恢复无状态服务器服务器仅提供静态文件播放控制、码率切换、缓冲策略全部在客户端完成。二、核心文件组成HLS 的播放依赖两类核心文件通常部署在 HTTP 服务器上文件类型后缀作用核心格式M3U8 索引文件.m3u8播放清单包含切片地址、时长、码率、加密信息等UTF-8 文本遵循 M3U 扩展格式TS 媒体片段.ts音视频数据切片通常包含完整的视频帧音频帧MPEG-2 Transport Stream每片可独立解码1. M3U8 文件结构主播放列表多码率用于 ABR 切换包含多个子播放列表的地址与码率#EXTM3U #EXT-X-STREAM-INF:BANDWIDTH2000000,RESOLUTION1280x720 720p.m3u8 #EXT-X-STREAM-INF:BANDWIDTH1000000,RESOLUTION854x480 480p.m3u8媒体播放列表单码率包含 TS 切片列表与播放控制标签#EXTM3U #EXT-X-VERSION:3 #EXT-X-TARGETDURATION:10 #EXT-X-MEDIA-SEQUENCE:0 #EXTINF:9.998, segment_0.ts #EXTINF:9.998, segment_1.ts #EXT-X-ENDLIST关键标签说明#EXTM3U文件头必须是第一行#EXT-X-STREAM-INF标识子流多码率#EXT-X-TARGETDURATION切片最大时长#EXT-X-MEDIA-SEQUENCE切片起始序号#EXTINF单个切片的时长#EXT-X-ENDLIST播放列表结束点播必填直播无此标签2. TS 媒体片段基于 MPEG-2 TS 格式每片包含完整的 PES 包支持独立解码切片时长通常 2–10s时长过短会增加请求量过长会影响切换速度与缓冲体验可选加密HLS 加密通过#EXT-X-KEY标签指定加密密钥实现 DRM 保护。三、工作流程客户端请求向服务器请求主 M3U8 文件解析码率客户端解析主 M3U8获取多码率子列表选择码率根据当前带宽/设备选择合适的子 M3U8下载播放循环下载 TS 切片解码播放同时监测带宽码率切换带宽变化时切换到对应码率的子列表无缝续播。四、关键特性与扩展1. 直播 vs 点播点播VOD播放列表包含所有切片末尾有#EXT-X-ENDLIST支持拖拽跳转直播Live播放列表动态更新无#EXT-X-ENDLIST客户端定时拉取最新列表延迟通常 10–30s取决于切片时长与缓冲策略。2. 加密与 DRM支持 AES-128 加密通过#EXT-X-KEY标签指定密钥 URL 与 IV可集成 FairPlay、Widevine、PlayReady 等 DRM 方案实现内容版权保护。3. 音频/字幕/多语言通过#EXT-X-MEDIA标签关联独立的音频流如多语言、杜比音效、字幕流客户端可按需切换音频/字幕轨道。4. 兼容性原生支持iOS、macOS、tvOS、Safari跨平台支持Android需 ExoPlayer 或第三方播放器、Chrome/Firefox需 HLS.js 等 JS 库服务器端无需特殊服务静态文件服务器Nginx、Apache即可也可使用专业流媒体服务器SRS、Nginx-RTMP。五、优缺点优点缺点HTTP 传输防火墙/CDN 友好直播延迟较高10–30s自适应比特率网络适应性强切片增加存储与请求开销跨平台支持广泛相比 RTMP 等协议协议开销更大支持加密、多语言、字幕等扩展切片切换可能出现短暂卡顿六、实用工具与命令切片工具ffmpeg如ffmpeg -i input.mp4 -c copy -hls_time 10 -hls_list_size 0 output.m3u8播放器VLC、ffplay、ExoPlayer服务器Nginx配置types { application/x-mpegURL m3u8; video/MP2T ts; }