美文网首页
SRS 搭建流媒体服务

SRS 搭建流媒体服务

作者: JinYx | 来源:发表于2022-02-27 01:31 被阅读0次

  SRS 是一个简单高效的实时视频服务器,支持 RTMP/WebRTC/HLS/HTTP-FLV/SRT/GB28181

一、Ubuntu / Mac 系统编译

  Linux 或 Mac 系统可以在 SRS git 仓库 中,选择对应版本的源码下载进行编译;根据 SRS 对 WebRTC 的支持,源码编译版本选择目前 4.x 最新版 4.0.198

  • SRS 4.0.14,支持了RTMP推流,WebRTC播放
  • SRS 4.0.76,支持了WebRTC推流,WebRTC播放
  • SRS 4.0.95,支持了WebRTC推流,RTMP播放
  • SRS 4.0.96,一对一通话DEMO
  • SRS 4.0.98,多人会议DEMO
  • SRS 4.0.98,会议录制,直播连麦DEMO
wget https://github.com/ossrs/srs/archive/refs/tags/v4.0.198.tar.gz
tar -xvf v4.0.198.tar.gz
cd srs-4.0.198/trunk
./configure   # Mac 执行 ./configure --osx
make    # 不需要 make install

  make 编译完之后,会出现如下提示,即告诉我们如何指定配置文件启动 SRS 服务:

You can:
      ./objs/srs -c conf/srs.conf
                  to start the srs server, with config conf/srs.conf.

二、Windows 安装

  Windows 系统,可以下载 Windows(Cygwin)安装包,双击运行安装之后,得到的目录结构如下:

  同样的,一些默认的配置文件都在 conf 目录下;启动 SRS 服务也和 Linux / Mac 类似;打开终端,进入到 SRS 目录,执行如下指令

objs\srs.exe -c conf\rtmp2rtc.conf

  SRS 目录下有三个 .bat 脚本文件,可以通过记事本打开,发现其对应的命令如下:

  • srs-cli.bat: objs\srs.exe -h
  • srs-live.bat: objs\srs.exe -c conf\live.conf
  • srs-rtc.bat: objs\srs.exe -c conf\rtc.conf

三、参数配置

listen              1935;
max_connections     1000;
daemon              off;
srs_log_tank        console;

http_server {
    enabled         on;
    listen          8080;
    dir             ./objs/nginx/html;
}

http_api {
    enabled         on;
    listen          1985;
}
stats {
    network         0;
}
rtc_server {
    enabled on;
    listen 8000;
    # @see https://github.com/ossrs/srs/wiki/v4_CN_WebRTC#config-candidate
    candidate $CANDIDATE;
}

vhost __defaultVhost__ {
    rtc {
        enabled     on;
        # @see https://github.com/ossrs/srs/wiki/v4_CN_WebRTC#rtmp-to-rtc
        rtmp_to_rtc on;
        # @see https://github.com/ossrs/srs/wiki/v4_CN_WebRTC#rtc-to-rtmp
        rtc_to_rtmp on;
    }
    http_remux {
        enabled     on;
        mount       [vhost]/[app]/[stream].flv;
    }
}
  • max_connections 默认值 1000,Mac 系统启动时,可能导致如下错误,需要将其设置到 248 或以下:

invalid max_connections=1000, required=1107, system limit to 256, total=1007(max_connections=1000, nb_consumed_fds=7). you can change max_connections from 1000 to 248, or you can login as root and set the limit: ulimit -HSn 1107

  • candidate 当我们开启 WebRTC 功能的时候,一定一定需要 配置 candidate;官方提供的配置方式如下:
  • 直接配置成固定的IP,比如:candidate 192.168.3.6;
  • 用命令ifconfig获取本机的内网IP,通过环境变量传递给SRS,比如:candidate $CANDIDATE;
  • 自动获取,先读取环境变量,然后获取本机网卡的IP,比如:candidate *;
  • 在url中通过?eip=x指定,比如:webrtc://192.168.3.6/live/livestream?eip=192.168.3.6
  • rtmp_to_rtc WebRTC 可以作为直播的一个播放器,播放直播流,延迟比 RTMP 还要低,更能抗网络抖动。

  • rtc_to_rtmp WebRTC 推流,可以转成 RTMP 流播放,SRS 只会对音频转码(Opus 转 AAC),因此要求视频是 H.264 编码。

四、FFmpeg 直播推流

  srs 服务的 ./doc/ 目录下,存在 source.flvsource.200kbps.768x320.flv 两个测试视频,FFmpeg 推流指令如下:

ffmpeg -re -i ./doc/source.flv -c copy -f flv rtmp://localhost:1935/live/livestream

  服务启动成功之后,可以在浏览器输入 localhost:8080 进入 SRS 管理后台

  而如果启动的 srs 服务开启了 rtc 功能,可以在 SRS 播放器中测试直播流的播放,rtmp 直播流也可以使用 vlc 播放器播放,Windows 平台还可以使用 PotPlayer 播放

相关文章

网友评论

      本文标题:SRS 搭建流媒体服务

      本文链接:https://www.haomeiwen.com/subject/calqrrtx.html