← Blog.backToBlog

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 流程)选择。

验证输出

  1. 用文本编辑器打开 index.m3u8 确认标签。
  2. 通过 HTTP 提供文件。
  3. 在我们的播放器中播放 URL。
  4. 检查启动、拖动(点播)与错误。

常见打包错误

  • 错误的 TARGETDURATION。
  • 已完成点播缺少 ENDLIST。
  • 移动目录后相对路径损坏。
  • 各变体片段时长不一致。

常见问题解答

FFmpeg 是切片器吗?
它可以打包 HLS,是的。

直播需要直播封装器吗?
需要——要持续写片段/列表。

能不重编码就切片吗?
有时可以,若编码/容器已符合目标。

怎么测打包结果?
在多个播放器中播放生成的 M3U8。