HLS 直播架构概览

一套完整的 HLS 直播系统包含以下组件:推流端(OBS/FFmpeg)→ 流媒体服务器(Nginx-rtmp/SRS)→ 切片处理 → CDN 分发 → 播放端(HLS.js)。

使用 OBS 推流

OBS Studio 是最流行的免费推流软件。在「设置 → 串流」中配置 RTMP 服务器地址和推流码。推荐编码:H.264,码率 2500-6000 kbps,关键帧间隔 2 秒。

Nginx-rtmp 服务器配置

rtmp {
  server {
    listen 1935;
    application live {
      live on;
      hls on;
      hls_path /tmp/hls;
      hls_fragment 2s;
      hls_playlist_length 10s;
    }
  }
}
http {
  server {
    listen 8080;
    location /hls {
      types { application/vnd.apple.mpegurl m3u8; video/mp2t ts; }
      root /tmp;
      add_header Cache-Control no-cache;
      add_header Access-Control-Allow-Origin *;
    }
  }
}
延迟优化:hls_fragment 设置为 2 秒可显著降低端到端延迟,通常可达到 6-10 秒的延迟水平。

CDN 分发

生产环境中,M3U8 文件和 TS 片段应通过 CDN 分发。配置时需注意开启对 .m3u8 文件的缓存刷新机制,确保播放器始终获取最新的播放列表。