使用OBS推RTS流(基于WHIP协议)

本文介绍基于WHIP协议使用OBS推WebRTC流的详细信息。

背景信息

WHIP协议(WebRTC-HTTP ingestion protocol)是一个简化的使用HTTP POST请求来推送实时视频流到云端或其他流媒体服务器的网络协议。WHIP是轻量级的,旨在使得通过WebRTC技术捕获的实时视频内容能够被轻松地传输到支持该协议的流媒体处理服务上。WHIP协议是WebRTC开源的标准化接入协议,具有低延时,兼容性好的优势。

准备工作

  1. 完成超低延时直播域名配置并跑通Demo。

  2. 开通WHIP。当前功能正在公测,如果您需要使用WHIP,请提交工单申请。关于如何提交工单,请参见联系我们

  3. 下载并安装OBS推流工具(OBS版本不低于29.1.0)。下载地址,请参见OBS Studio

使用OBS推流

  1. 使用地址生成器生成RTS的推流地址,例如artc://al.yun.com/live/live?auth_key=******。您也可以通过自定义拼接的形式生成地址。具体操作,请参见方法二:自定义拼接

    1. 登录视频直播控制台
    2. 在左侧导航栏选择地址生成器 > 直播地址生成器

    3. 完成相关配置生成RTS的推流地址。

      image

  2. 使用OBS工具推RTS流为例。

    1. 运行OBS推流工具。

    2. 在菜单栏中选择文件 > 设置

    3. 在设置页面选择直播,配置如下信息,单击确定

      参数

      描述

      服务

      选择WHIP

      服务器

      输入步骤1已经生成的RTS的推流地址。需要把artc替换成http(s),示例:https://al.yun.com/live/live?auth_key=******,如果是HTTPS则需要配置证书。具体请参见配置HTTPS安全加速

      Bearer Token

      串流密钥为空。

      image.png

  3. 在OBS主界面单击开始推流

  4. 在直播流管理页查看在线流。

    1. 在视频直播控制台左侧导航栏选择流管理

    2. 选择待查询的域名,输入AppNameStreamName

      image.png

    3. 单击查询,查询当前实时在线流数。

  5. 使用Web端播RTS流。

    1. 进入RTS Web播放器

    2. 单击拉流页签。

    3. 输入已开通超低延时直播的播流地址URL。

      image

    4. 单击开始拉流,播放RTS直播流。

编码相关

使用支持WebRTC的浏览器播放RTS时,浏览器默认支持OPUS音频格式,可直接播放源流而无需转码。使用OBS推流时,默认的音频格式为OPUS。

RTS 1.0

使用RTS 1.0推流,播放使用标准直播方式拉流时,如RTMP,FLV,HLS播放,由于其仅支持AAC音频编码,需在播放域名配置转码模板,将OPUS编码转码为AAC。转码模板配置详细信息请参见转码管理

示例:已有一对RTS 1.0域名,rts-push.ialicdn.comrts-pull.ialicdn.com,使用RTS 1.0模式推、拉流。若需要使用RTMP,FLV,HLS拉流时需执行以下配置:

  1. 在播放域名rts-pull.ialicdn.com配置音频转AAC的转码模板。如已有其他转码模板配置,则无需额外配置OPUS转AAC的转码模板,阿里云的转码模板会默认将音频转为AAC。

  2. 使用RTMP,FLV,HLS请求rts-pull.ialicdn.com,播放转码流。

RTS 2.0

当使用RTS 2.0推流,播放使用标准直播方式拉流,如RTMP,FLV,HLS播放,需开启旁路转推功能、开通传统直播域名,配置转码模板。转码模板配置详细信息请参见转码管理。旁路转推配置详细信息请参见实时直播:将延时降低至200~400ms

示例:已有一对RTS 2.0的域名,rtc-push.ialicdn.comrtc-pull.ialicdn.com,使用RTS 2.0模式推、拉流。且已有一对RTMP的域名,rtmp-push.ialicdn.comrtmp-pull.ialicdn.com,使用传统直播协议推、拉流。若需要使用RTMP,FLV,HLS拉流时需执行以下配置:

  1. rtc-push.ialicdn.com开启旁路转推功能,rtmp-push.ialicdn.com作为旁路转推域名,传统直播的播放域名需配置为rtmp-pull.ialicdn.com

  2. 在播放域名rtmp-pull.ialicdn.com配置音频转AAC的转码模板。如果已有其他转码模板配置,则无需额外配置OPUS转AAC的转码模板,阿里云的转码模板会默认将音频转为AAC。

  3. 使用RTMP,FLV,HLS请求rtmp-pull.ialicdn.com,播放转码流。

流管理MSID相关

  • 关于MSID详细信息,请参见The Msid Mechanism

  • 推流URL中的URL参数amsid,vmsid参数为可选项。使用RTS2.0模式进行推流时,必须使用URL参数来指定对应的amsidvmsid,否则播放端将订阅失败。

  • 阿里云的播放器目前支持的RTS 2.0播放默认msid分别为rts audiorts video,建议指定为默认的msid进行推流。更多信息,请参见RTS信令协议规范

  • 目前OBS支持纯音频、纯视频的推流场景,纯音频只需设置amsid,纯视频只需设置vmsid。

示例:指定msid参数的推流URL格式。

http://push-test.alicdn.com/app/name

https://push-test.alicdn.com/app/name

https://push-test.alicdn.com/app/name?amsid=rts%20audio&vmsid=rts%20video

说明

在推流URL中需要对rts video里的特殊字符,空格符" "进行转义,转义后的结果为"%20"