一、架构说明

完整的直播链路由三个部分组成:

  • OBS(推流端):运行在主播电脑上,负责采集音视频并推送至服务器。
  • SRS(流媒体服务器):运行在香港服务器上,接收推流并转为HLS/HTTP-FLV等格式供观众播放。
  • CDN(分发层):将SRS产生的流通过边缘节点分发至全球,降低大并发时的服务器压力。

二、服务器配置要求

参数 单路直播(<100并发) 多路直播(<1000并发)
CPU 2核 4核以上
内存 2G 8G以上
带宽 10M独享 50M以上独享
系统 Ubuntu 22.04 Ubuntu 22.04

注意:1路720P推流约需2~4Mbps带宽,100名观众同时观看则需要200~400Mbps分发带宽,务必提前规划CDN分流。

三、安装SRS流媒体服务器

第一步:安装Docker

curl -fsSL https://get.docker.com | bash

第二步:通过Docker运行SRS

docker run --rm -it -p 1935:1935 -p 1985:1985 -p 8080:8080 ossrs/srs:5

启动后,SRS将在以下地址提供服务:

  • RTMP推流地址:rtmp://服务器IP/live/livestream
  • HLS播放地址:http://服务器IP:8080/live/livestream.m3u8
  • HTTP-FLV播放:http://服务器IP:8080/live/livestream.flv

第三步:开放防火墙端口

ufw allow 1935 && ufw allow 1985 && ufw allow 8080

四、配置OBS推流

  1. 打开OBS,进入"设置" → "推流"。
  2. 服务选择"自定义"。
  3. 服务器填写:rtmp://你的服务器IP/live
  4. 推流码填写:livestream(可自定义)
  5. 点击"确定"后,点击"开始推流"。

推流成功后,可通过SRS控制台(http://服务器IP:1985/console)查看推流状态。

五、配置播放器

网页端播放(HLS)

在网页中引入 hls.js,将播放地址指向HLS流:

<video id="video" controls></video>
初始化hls.js并加载 http://服务器IP:8080/live/livestream.m3u8

移动端播放

iOS原生支持HLS协议,直接将 m3u8 地址传入 AVPlayer 即可播放。Android推荐使用 ExoPlayer 库加载HLS流。

六、接入CDN降低带宽成本

当并发观众超过50人时,建议将SRS作为源站,接入CDN进行流量分发:

  1. 在CDN服务商创建直播加速域名,配置回源至服务器IP的8080端口。
  2. 将播放地址替换为CDN域名,SRS继续接收OBS推流。
  3. CDN按实际分发流量计费,100人观看的带宽成本通常比直接从服务器分发低60%以上。
香港服务器的低延迟特性非常适合实时直播场景,尤其是面向大陆观众的直播业务。网宝提供香港云服务器和CDN产品,可满足从小规模私域直播到中等规模公开直播的带宽需求。