admin管理员组

文章数量:1794759

直播平台搭建

直播平台搭建

一、直播系统架构介绍

1. 直播产品的种类:

  • 泛娱乐直播 例如:花椒、映客等娱乐直播,斗鱼、熊猫等游戏直播
  • 实时互动直播 例如:音视频会议、教育直播等,像Zoom、声网
二、搭建流媒体服务
  • 准备流媒体服务器(Linux或Mac)
  • 编译并安装Nginx服务
  • 配置RTMP服务并启动Nginx服务
三、Nginx源码下载
  • 下载nginx源码 nginx/en/download.html
  • 下载nginx-rtmp-module github/arut/nginx-rtmp-module.git
四、rtmp环境搭建
  • 编译安装nginx
./configure --add-module=/path/to/nginx-rtmp-module --prefix=/usr/local/nginx --with-openssl=../openssl
  • 配置nginx
#进入nginx/conf,打开nginx.conf文件在配置中添加以下配置项: #rtmp 服务 rtmp { server{ #指定服务端口 listen 1935; chunk_size 4000; #指定流应用 application live { live on; allow play all; } } }
  • 启动服务
./sbin/nginx -c conf/nginx.conf 五、SRS介绍

SRS(Simple Rtmp Server),它是单进程实现的。在同一台服务器上可以启动多个进程同时提供服务。它的定位是运营级的互联网直播服务器集群;它提供了非常丰富的接入方案,支持RTMP、HLS、HTTP-FLV等。 服务器接入方式比较:

FeatureSRSNGINXCRTMPDFMSWOWZA
RTMPStableStableStableStableStable
HLSStableStablexStableStable
HDSExperimentxxStableStable
HTTP FLVStablexxxx
HLS(aonly)StablexxStableStable
HTTP ServerStableStablexxStable

服务器性能比较:

FeatureSRSNGINXCRTMPDFMSWOWZA
Concurrency7.5k3k2k2k3k
MultipleProcessExperimentStablexxx
RTMP Latency0.1s3s3s3s3s
HLS Latency10s30sx30s30s

srs代码库:git clone github/ossrs/srs.git 编译:

cd srs/trunk ./configure --prefix=/usr/local/srs make

启动服务器:

./objs/srs -c conf/srs.conf

检查SRS是否成功启动,执行命令:

# 查看SRS的状态 ./etc/init.d/srs status # 或者看SRS的日志 tail -n 30 -f ./objs/srs.log

下面的命令显示SRS正在运行:

MB0:trunk $ ./etc/init.d/srs status SRS(pid 90408) is running. [ OK ] MB0:trunk $ tail -n 30 -f ./objs/srs.log [2021-08-13 10:30:36.634][Trace][90408][12c97232] Hybrid cpu=0.00%,0MB, cid=1,1, timer=61,0,0, clock=0,22,25,0,0,0,0,1,0

使用FFmpeg推流,localhost为你的IP地址:

ffmpeg -i source.mp4 -c:v libx264 -ar 22050 -crf 28 destinationfile.flv ffmpeg -re -i ./doc/source.flv -c copy -f flv rtmp://localhost/live/livestream

FLV文件分析工具:github/zymill/flvAnalyser

本文标签: 平台