自建 M3U8 流媒体服务器方案
Nginx + RTMP 模块
经典方案,通过 nginx-rtmp-module 接收 RTMP 推流并切片为 HLS:
rtmp {
server {
listen 1935;
application live {
live on;
hls on;
hls_path /var/www/hls;
hls_fragment 5s;
}
}
}
优点:成熟稳定、资源占用低。缺点:配置较繁琐。
SRS 流媒体服务器
SRS 是国人开发的高性能流媒体服务器,原生支持 HLS、HTTP-FLV、WebRTC:
- 配置简单,单文件即可启动。
- 支持低延迟直播(SRT/WebRTC)。
- 文档完善,社区活跃。
FFmpeg 切片 + 静态服务器
对于点播场景,可用 FFmpeg 将视频切片为 HLS,再用 Nginx 提供静态文件服务:
ffmpeg -i input.mp4 -c:v libx264 -c:a aac -f hls \
-hls_time 10 -hls_list_size 0 output.m3u8
生成的 m3u8 和 ts 文件放到 Web 服务器即可被播放器访问。
方案选择
- 直播:SRS 或 Nginx-rtmp。
- 点播:FFmpeg 切片 + 静态服务器 / CDN。
- 低延迟互动:SRS + WebRTC。