← Blog.backToBlog

HTTP Live Streaming 教程:从编码到播放

8 min read

你将构建什么

本教程走一条简单路径:拿源视频(或直播输入),生成 HLS 片段 + 播放列表,托管它们,再播放 M3U8 URL。先看概念:什么是 HLS

步骤 1:编码多种画质

做一小段阶梯(如 360p/720p/1080p)以便 ABR 工作。除非有特殊理由,编码尽量浏览器友好(H.264 + AAC)。

步骤 2:打包成 HLS

用封装器/FFmpeg 生成 .m3u8 播放列表和片段。点播示例:

ffmpeg -i input.mp4 -c:v libx264 -c:a aac -f hls -hls_time 6 -hls_playlist_type vod index.m3u8

手写列表:创建 M3U8 播放列表

步骤 3:通过 HTTP 发布

把播放列表和片段上传到网页服务器或 CDN。若浏览器跨域加载,设置正确 Content-Type 与 CORS。CORS 帮助:修复 M3U8 CORS

步骤 4:播放与验证

在我们的播放器打开主列表或媒体列表 URL。检查首帧时间、ABR 切换与错误。需要时用下载器离线保存或用转换器转换。

直播扩展

直播时省略点播结束标签,持续写片段并刷新列表。除非采用 LL-HLS 实践,否则预期延迟更高。见直播 vs 点播

常见问题解答

需要专用流媒体服务器吗?
基础点播不需要——任何静态 HTTP 主机都能提供 HLS 文件。

片段多长合适?
常 4–10 秒,取决于延迟目标。

没有 CDN 能测吗?
能,在本机或任意网页服务器。

结果怎么播放?
把 .m3u8 URL 粘贴到 HLS 播放器。