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。
直播扩展
直播时省略点播结束标签,持续写片段并刷新列表。除非采用 LL-HLS 实践,否则预期延迟更高。见直播 vs 点播。
常见问题解答
需要专用流媒体服务器吗?
基础点播不需要——任何静态 HTTP 主机都能提供 HLS 文件。
片段多长合适?
常 4–10 秒,取决于延迟目标。
没有 CDN 能测吗?
能,在本机或任意网页服务器。
结果怎么播放?
把 .m3u8 URL 粘贴到 HLS 播放器。