使用srs搭建直播服务器

发布于 2021-11-07  340 次阅读


本文在官方教程的基础下稍作修改,改了一些原文没提到的地方,可以让大家少踩点坑

Note: 如果觉得Github的Wiki访问太慢,可以访问 Gitee 镜像。

SRS支持HLS的详细步骤。

假设服务器的IP是:192.168.1.170

第一步,关闭防火墙

systemctl disable firewalld
systemctl stop firewalld
systemctl disable ufw
systemctl stop ufw

第二步,获取SRS。详细参考GIT获取代码

git clone https://github.com/ossrs/srs
cd srs/trunk

或者使用git更新已有代码:

git pull

第三步,编译SRS。详细参考Build

./configure && make

第四步,编写SRS配置文件。详细参考HLS分发

将以下内容保存为文件,譬如conf/hls.conf,服务器启动时指定该配置文件(srs的conf文件夹有该文件)。

# conf/hls.conf
listen              1935;
max_connections     1000;
http_server {
    enabled         on;
    listen          8080;
    dir             ./objs/nginx/html;
}
vhost __defaultVhost__ {
    hls {
        enabled         on;
        hls_path        ./objs/nginx/html;
        hls_fragment    10;
        hls_window      60;
    }
}

备注:我们使用SRS内置的HTTP服务器分发HLS切片,也可以使用Nginx等Web服务器分发。

备注:hls_path必须存在,srs只会自动创建${hls_path}下的app的目录。参考:HLS分发: HLS流程

第五步,启动SRS。详细参考HLS分发

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

第六步,用OBS Studio、FFMPEG或FMLE推流。详细参考HLS分发

使用OBS Studio推流:

打开设置-推流,服务器使用rtmp拉流地址(不要最后一个路径)推流,秘钥就是拉流地址最后一个路径

例子:我拉流地址是example.com/live/livestream

服务器:example.com/live

秘钥:livestream

使用FFMPEG命令推流:

    for((;;)); do \
        ./objs/ffmpeg/bin/ffmpeg -re -i ./doc/source.200kbps.768x320.flv \
        -vcodec copy -acodec copy \
        -f flv -y rtmp://192.168.1.170/live/livestream; \
        sleep 1; \
    done

或使用支持h.264+aac的FMLE推流(若不支持h.264+aac,则可以使用srs转码,参考Transcode2HLS):

FMS URL: rtmp://192.168.1.170/live
Stream: livestream

生成的流地址为:

  • RTMP流地址为:rtmp://192.168.1.170/live/livestream
  • HLS流地址为: http://192.168.1.170:8080/live/livestream.m3u8

第六步,观看RTMP流。详细参考HLS分发

RTMP流地址为:rtmp://192.168.1.170/live/livestream

可以使用VLC观看。

或者使用在线SRS播放器播放:srs-player

备注:请将所有实例的IP地址192.168.1.170都换成部署的服务器IP地址。

第七步,观看HLS流。详细参考HLS分发

HLS流地址为: http://192.168.1.170:8080/live/livestream.m3u8

可以使用VLC观看。

或者使用在线SRS播放器播放:srs-player

备注:请将所有实例的IP地址192.168.1.170都换成部署的服务器IP地址。

注意:VLC无法观看纯音频流,jwplayer可以观看。

分发纯音频流参考:HLS audio only

让用户在线观看直播看我另外一篇文章:搭建一个可以在线看直播的网站