直播平台搭建

一、直播系统架构介绍

1. 直播产品的种类:

  • 泛娱乐直播
    例如:花椒、映客等娱乐直播,斗鱼、熊猫等游戏直播
  • 实时互动直播
    例如:音视频会议、教育直播等,像Zoom、声网
    直播平台搭建_第1张图片

二、搭建流媒体服务

  • 准备流媒体服务器(Linux或Mac)
  • 编译并安装Nginx服务
  • 配置RTMP服务并启动Nginx服务

三、Nginx源码下载

  • 下载nginx源码
    http://nginx.org/en/download.html
  • 下载nginx-rtmp-module
    https://github.com/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等。
服务器接入方式比较:

Feature SRS NGINX CRTMPD FMS WOWZA
RTMP Stable Stable Stable Stable Stable
HLS Stable Stable x Stable Stable
HDS Experiment x x Stable Stable
HTTP FLV Stable x x x x
HLS(aonly) Stable x x Stable Stable
HTTP Server Stable Stable x x Stable

服务器性能比较:

Feature SRS NGINX CRTMPD FMS WOWZA
Concurrency 7.5k 3k 2k 2k 3k
MultipleProcess Experiment Stable x x x
RTMP Latency 0.1s 3s 3s 3s 3s
HLS Latency 10s 30s x 30s 30s

srs代码库:git clone https://github.com/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文件分析工具:https://github.com/zymill/flvAnalyser

你可能感兴趣的:(ffmpeg,nginx,服务器,运维)