tencent cloud

文档反馈

OBS WebRTC 推流

最后更新时间:2024-07-22 16:36:54
    OBS(Open Broadcaster Software)支持 WebRTC 协议推流功能,这意味着您可以在 PC(Windows/Mac/Ubuntu) 端像使用 RTMP 协议推流一样,简单快速地将直播流基于 WebRTC 协议推送至腾讯云直播。
    本文将以 Windows 端的 OBS v30.0 版本为例,介绍如何使用 OBS 在 PC 端进行 WebRTC 协议推流操作。
    您还可以在 Web 端进行 WebRTC 协议推流,关于 Web 推流的具体操作步骤,请参考 Web 推流

    码协议支持

    视频

    H.264(兼容性最好,几乎所有客户端可直接播放)
    AV1(与 H.264 相比压缩率提高40%+,同画质下可以节省40%+的带宽和存储成本,大部分浏览器可直接播放)
    HEVC(依赖推流设备编码器支持,相比 H.264 压缩率更高,浏览器支持较差,云直播终端 SDK可直接播放)

    音频

    Opus(浏览器 WebRTC 可直接播放)

    准备工作

    您可以到 OBS 官网 下载,确保您已安装支持 WebRTC 推流的 OBS 版本( v30.0 或更高版本,使用 AV1 或 HEVC 编码协议需要 v30.2 或更高版本,请勿使用 v30.1.x 版本,此版本会导致网络丢包时画面花屏)。
    若您无法进行 OBS 版本升级,请参见 使用 OBS 插件进行 WebRTC 推流,或使用 RTMP 推流。
    开通云直播服务,并准备已备案的域名,添加为 推流域名(系统提供默认的推流域名可以使用,也可以添加自定义域名推流)。

    注意事项

    请勿使用 OBS v30.1.x 版本,此版本会导致网络丢包时画面花屏。
    云直播默认提供测试域名 xxxx.livepush.myqcloud.com,您可通过该域名进行推流测试,但不建议您在正式业务中使用这个域名作为推流域名。
    使用 WebRTC 协议推流,每个推流域名默认限制1000路并发推流数,如您需要超过此推流限制,可通过 提交工单 的方式联系我们进行申请。

    获取 WebRTC 推流地址

    1. 登录 云直播控制台,选择直播工具箱 > 地址生成器,进行如下配置:
    1.1 选择地址类型:推流地址
    1.2 选择您已添加到域名管理里对应的域名。
    1.3 AppName 为区分同一个域名下多个 App 的地址路径,默认为 live。
    1.4 填写自定义的流名称 StreamName,例如:Stream_01
    1.5 您需要选择一种加密类型,请根据您的安全需求和性能考虑进行权衡。加密类型可以选择MD5SHA256 ,默认MD5
    1.6 选择地址过期时间,例如:2024-07-19 12:18:33
    2. 单击生成地址即可获取 WebRTC 推流地址。
    
    
    

    OBS 在线推流

    步骤一:设置 WHIP 服务器地址与 WebRTC 推流地址

    1. 打开 OBS,您可通过底部工具栏的控件 > 设置进入设置界面。
    
    
    
    2. 单击直播进入推流地址设置界面。
    选择服务类型为:WHIP
    服务器中填写腾讯云直播 WHIP 服务器地址:
    默认地址:https://webrtcpush.tlivewebrtcpush.com/webrtc/v2/whip
    备用地址:https://webrtcpush.tlivewebrtcpush2.com/webrtc/v2/whip
    Bearer 令牌中填写您获取的 WebRTC 推流地址,示例: webrtc://domain/AppName/StreamName?txSecret=xxxxx&txTime=xxxxx
    
    
    

    步骤二:设置推流参数

    1. 通过控件 > 设置 > 输出。进入推流参数设置界面,选择输出模式为高级
    2. 选择直播选项,配置编码器、码率、关键帧间隔等参数。
    3. 若您在播放端采用的是快直播 WebRTC 方案,请根据不同的编码协议按照以下配置进行推流设置:
    使用 H.264 视频编码
    视频编码器请选择 x264 或其他设备支持的 H.264 编码器。
    
    
    
    使用 AV1 视频编码
    视频编码器请选择 AOM AV1 或其他设备支持的 AV1 编码器。
    
    
    
    使用 HEVC 视频编码
    视频编码器请选择设备支持的 HEVC 编码器,如 Apple VT HEVC 硬件/软件编码器等。
    
    
    
    注意:
    OBS WebRTC 推流的默认音频编码格式为 Opus。当您使用快直播在 Web 端进行播放时,由于 Web 端默认支持 Opus 音频格式,因此不再需要像 RTMP 协议推流时那样进行云端音频转码(从 AAC 转换为 Opus),可以直接进行播放。
    关于 x264 选项的配置请参见:x264 多slice编码参数
    4. 单击确定保存设置信息。

    步骤三:直播推流

    1. 单击 OBS 底部工具栏中的控制 > 开始直播即可将媒体流推送到您设置的 WebRTC 地址。
    
    
    
    说明:
    OBS 是基于 WHIP(WebRTC-HTTP Ingestion Protocol)协议实现的 WebRTC 推流,WHIP 是一种基于 HTTP 的标准协议,该协议允许您使用 HTML5 和不同的客户端向流媒体服务器或 CDN 推送/拉取 WebRTC 实时流。
    若您需要了解更多关于 OBS 推流的用法,可以参见 OBS 推流

    OBS WebRTC 推流与 RTMP 协议推流的端到端延时对比

    端到端延时受到设备性能、编码参数、网络传输、播放器缓存等多个因素的影响,并在直播过程中可能出现一定范围的波动。在此场景中,我们将比较 x264 多slice编码单slice编码在端到端延时方面的差异。推流端使用 OBS工 具,播放端采用 Web 快直播。

    x264 多slice编码参数

    当您在 OBS 的微调(Tune)选项中配置了zerolatency(零延迟)模式后,OBS 会自动启用多slice编码,以提高编码速度并降低延迟。
    如果您在播放端采用的是快直播 Web 端方案,需要注意的是,部分旧版本浏览器的 WebRTC 对多slice编码存在兼容性问题。在这种情况下,开启多slice编码可能会导致弱网丢包场景下播放端出现花屏现象。为避免这一问题,您可以在 x264 选项中配置sliced_threads=0以关闭多slice编码。但是,关闭多 slice编码可能会引入额外的几百毫秒编码延时。因此,在配置时,请根据您的实际需求权衡兼容性和延迟。
    推流方式
    描述
    WHIP 推流
    约300 ~ 500ms。
    
    
    
    RTMP 推流
    约450~650ms。
    
    
    

    单slice编码

    采用单slice编码时,端到端延时受设备性能影响较大。以下数据仅供参考,实际延时可能因设备性能和其他因素而有所不同:
    推流方式
    描述
    WHIP 推流
    约700 ~ 850ms。
    
    
    
    RTMP 推流
    约850~1000ms。
    
    
    
    注意:
    这些延时数据可能因网络状况、编码参数、播放器缓存等因素而有所波动。在实际应用中,可以根据需求和设备性能调整编码参数和推流协议,以达到理想的延时和画质表现。

    使用 OBS 插件进行 WebRTC 推流

    OBS 低于 v30.0 Beta 1 的版本无法直接进行 WebRTC 协议推流,腾讯云直播为您提供了集成 OBS 插件的方式进行 WebRTC 推流。

    注意事项

    目前对 OBS 版本要求:26.0 ≤ OBS版本 ≤ 29.0.2,可通过 OBS 归档版本 下载安装。
    WebRTC 推流插件当前只支持 Windows 端,若您想要实现在 Mac/Linux 上进行 WebRTC 推流,可以使用 Web 推流

    配置 OBS 插件

    1. 配置插件数据
    1.1 下载 OBS 插件,根据本地 OBS 版本,把对应版本内 data 文件里面的两个 services.jsonpackage.json 文件,挪动到对应的 data > obs-plugins > rtmp-services 目录进行覆盖。(obs-studio 默认安装在 C 盘,对应的目录为:C:\\obs-studio\\data\\obs-plugins\\rtmp-services,请根据您的实际情况进行配置。)
    
    
    1.2 将上述两个 JSON 文件复制至C:\\Users\\<计算机名>\\AppData\\Roaming\\obs-studio\\plugin_config\\rtmp-services目录下进行覆盖。(<计算机名>根据您的实际情况填写即可)。
    2. 配置插件动态库。 将 obs-plugins\\64bit 中的 dll 文件,挪动到对应的 obs-studio > obs-plugins > 64bit 目录下。(obs-studio 默认安装在 C 盘,对应的目录为:C:\\obs-studio\\obs-plugins\\64bit,请根据您的实际情况进行配置。)
    
    
    

    配置推流链接

    1. 生成 WebRTC 推流地址
    登录云直播控制台,选择直播工具箱 > 地址生成器 生成推流地址,具体操作请参见地址生成器
    
    
    
    2. 配置 OBS 推流服务
    2.1 打开 OBS,您可通过底部工具栏的控件 > 设置进入设置界面。
    2.2 单击推流进入流设置页签,选择服务类型为Tencent webrtc,服务器为Default,串流密钥中输入之前生成的 WebRTC 推流地址
    2.3 当前 OBS 插件支持 OBS 29 版本,如需推流,单击直播进入流设置页签,选择服务类型为Tencent webrtc,服务器为Default,推流码中输入之前生成的 WebRTC推流地址 即可。
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持