HLS 切片教程:创建片段与播放列表
7 min read
切片器做什么
切片器/封装器把编码后的媒体切成短文件,并写引用它们的播放列表。这一步把中间文件或直播编码输出变成可流式 HLS。
选择片段时长
| 时长 | 适用 |
|---|---|
| 2–4s | 更低延迟,请求更多 |
| 6–10s | 点播/CDN 效率更均衡 |
性能说明:M3U8 性能。
用 FFmpeg 切片(点播示例)
ffmpeg -i input.mp4 -c:v libx264 -c:a aac -f hls -hls_time 6 -hls_playlist_type vod -hls_segment_filename "seg_%03d.ts" index.m3u8
会写出媒体播放列表与编号片段。多码率主列表需要额外 map/变体。创建列表:创建 M3U8 播放列表。
TS vs fMP4 片段
经典 HLS 用 MPEG-TS。CMAF/fMP4 片段在现代打包与部分高级特性中常见。按播放器/CDN 支持与编码需求(如 HEVC 流程)选择。
验证输出
- 用文本编辑器打开
index.m3u8确认标签。 - 通过 HTTP 提供文件。
- 在我们的播放器中播放 URL。
- 检查启动、拖动(点播)与错误。
常见打包错误
- 错误的 TARGETDURATION。
- 已完成点播缺少 ENDLIST。
- 移动目录后相对路径损坏。
- 各变体片段时长不一致。
常见问题解答
FFmpeg 是切片器吗?
它可以打包 HLS,是的。
直播需要直播封装器吗?
需要——要持续写片段/列表。
能不重编码就切片吗?
有时可以,若编码/容器已符合目标。
怎么测打包结果?
在多个播放器中播放生成的 M3U8。