SRS使用说明

  1. SRS使用说明
    1. 方法一: Docker 使用SRS
    2. 方法二: 源码编译 使用SRS
    3. Oryx 的使用
    4. SRS 接入 GB28181 (docker方式)
    5. SRS WebRTC
    6. 其他问题
      1. WHIP 和 WHEP

SRS使用说明

方法一: Docker 使用SRS

  • 启动命令:

    docker run --rm -it -p 1935:1935 -p 1985:1985 -p 8080:8080 registry.cn-hangzhou.aliyuncs.com/ossrs/srs:5
    
  • 使用ffmpeg推流:

    ffmpeg -re -i ./doc/source.flv -c copy -f flv rtmp://localhost/live/livestream
    
  • 打开下面的页面播放流(若SRS不在本机,请将localhost更换成服务器IP):

方法二: 源码编译 使用SRS

  • 下载源码:

    git clone -b develop https://gitee.com/ossrs/srs.git
    
  • 编译,注意需要切换到srs/trunk目录:

    cd srs/trunk
    ./configure
    make
    
  • 启动服务器:

    # conf文件夹下有很多配置,这里默认选用srs.conf
    ./objs/srs -c conf/srs.conf
    
  • 检查SRS是否成功启动,可以打开 http://localhost:8080/ ,或者执行命令:

    # 查看SRS的状态
    ./etc/init.d/srs status
    
    # 或者看SRS的日志
    tail -n 30 -f ./objs/srs.log
    
    # 启动SRS:
    ./etc/init.d/srs start
        
    # 停止SRS:
    ./etc/init.d/srs stop
        
    # 重启SRS:
    ./etc/init.d/srs restart
        
    # Reload SRS:
    ./etc/init.d/srs reload
    
  • 推流同上

Oryx 的使用

Oryx(SRS Stack)是一个基于Go、Reactjs、SRS、FFmpeg、WebRTC等的轻量级、开源的视频云解决方案。

  • 使用Docker启动:

    docker run --restart always -d -it --name oryx -v $HOME/data:/data -p 80:2022 -p 443:2443 -p 1935:1935 -p 8000:8000/udp -p 10080:10080/udp registry.cn-hangzhou.aliyuncs.com/ossrs/oryx:5
    
  • 直接访问80端口即可使用Orys

    SRS5对于推拉流暂时只下图所列出的:

SRS 接入 GB28181 (docker方式)

必须是 6.0 才支持 HEVC

HEVC(High Efficiency Video Coding,高效视频编码)是视频编码标准,也称为 H.265

  • 启动容器
    首先本地创建一个gb28181.conf文件,用于配置协议的参数。

    # 拉取镜像
    docker pull registry.cn-hangzhou.aliyuncs.com/ossrs/srs:6
    # 启动容器
    CANDIDATE="192.168.110.115" # 本机ip
    docker run -itd --restart always -p 1935:1935 -p 1985:1985 -p 8080:8080 -p 5060:5060 -p 5060:5060/udp -p 9000:9000/udp --name srs6.0 --network host registry.cn-hangzhou.aliyuncs.com/ossrs/srs:6 ./objs/srs -c conf/gb28181.conf
    
  • 启动服务器:

    # conf文件夹下有很多配置,这里默认选用srs.conf
    ./objs/srs -c conf/gb28181.conf
    
  • 摄像头设置:


  • 查看实时流:

    访问webui控制台,可以查看流状态:

    点击预览即可查看:

总体来说,SRS6 目前也只支持 TCP 模式,且不支持密码认证和录像回放(需摄像头以NVR接入)等功能,所以整体体验下来是没有基于ZLMediakitwvp-GB28181-pro好用的。

SRS WebRTC

SRS是一个媒体服务器,提供了Signaling和SFU Server的能力。和其他SFU比如Janus不同的是,SRS是基于Stream的,尽管房间中 可以有多个参与者,本质上都是有人在推流,其他人在订阅这个流。这样可以避免将房间中的所有流,都耦合到一个SFU传输,可以分散到 多个SFU传输,这样可以支持更多人的会议。

SRS支持的Signaling就是WHIP和WHEP,具体请参考HTTP API部分。和直播很不一样的是,由于Signaling和Media分离, 因此需要设置Candidate。Media默认使用UDP传输,若UDP不可用也可以用TCP参考TCP。若遇到不可用的情况,很有可能是Candidate设置不对,也有可能是防火墙或端口不通,请参考Connectivity使用工具检查。SRS还支持了不同协议的转换,比如推流RTMP后用WebRTC观看参考RTMP to WebRTC,或者用WebRTC推流后用HLS观看参考RTC to RTMP

下面是WHIP和WHEP的交互图:

其他问题

WHIP 和 WHEP

WHIP (WebRTC-HTTP Ingestion Protocol) 和 WHEP (WebRTC-HTTP Egress Protocol) 是用于 WebRTC 流媒体传输的两种协议,旨在简化和优化 WebRTC 应用中的流媒体传输过程。WHIP 通常用于上传媒体流,而 WHEP 用于下载媒体流。这两个协议通过提供简单的 HTTP 接口,简化了 WebRTC 的信令过程,使 WebRTC 应用的开发和部署更加容易。它们通常在实时流媒体、直播和其他需要实时通信的场景中使用。


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 1430797759@qq.com

文章标题:SRS使用说明

字数:1k

本文作者:花落阁

发布时间:2024-04-28, 15:25:10

最后更新:2024-05-06, 09:54:14

原始链接:https://hualog.dns.navy/2024/04/28/SRS%E4%BD%BF%E7%94%A8%E8%AF%B4%E6%98%8E/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。