本文介绍使用 OBS 实现超低延时直播推流的详细内容。
背景信息
RTMP:兼容性好,OBS 通过「自定义」服务即可填入推流域名与串流信息,适合沿用既有 RTMP 工具链的场景。
WHIP(WebRTC-HTTP ingestion protocol):基于 HTTP POST 将实时音视频送入服务器的轻量协议,便于与 WebRTC 采集链路对接;WHIP 为 WebRTC 生态常见接入方式,具有低延时、易集成的特点。
准备工作
-
完成超低延时直播域名配置并跑通Demo。
-
下载并安装OBS推流工具(OBS版本不低于29.1.0)。下载地址,请参见OBS Studio。
-
确认本次推流使用RTMP或WHIP其中一种即可,无需同时配置两种方式。
使用OBS推流
步骤一:视频编码最佳实践(RTMP 与 WHIP 均需配置)
在 OBS 中选择文件 > 设置 > 输出,将视频编码调整为下列推荐组合,用于去除 B 帧、控制 GOP、降低端到端延时。该配置对 RTMP 推流与 WHIP 推流均适用。
-
输出模式:高级
-
关键帧间隔(秒,0=自动):1
说明关键帧间隔设置不超过3秒,此处推荐设置为1秒。
-
CPU使用预设(高=较少的CPU占用):veryfast
-
配置(Profile):baseline
-
微调(Tune):zerolatency
在输出页签的串流子选项卡中,将编码器设为 x264,码率控制设为 CBR,比特率设为 2500 Kbps。
步骤二:使用地址生成器生成推流地址
在视频直播控制台使用地址生成器获取推流信息。请按后续选用的方式只准备其中一种:RTMP推流需复制 RTMP 地址(见下方示例);WHIP推流需复制 RTS 的 artc://地址,供步骤四转换为 HTTP(S) 入口。也支持自定义拼接,具体操作请参见方法二:自定义拼接。
-
RTMP示例(以控制台实际生成为准):
rtmp://push.example.com/live/live?auth_key=****** -
ARTC(供 WHIP 转换)示例:
artc://al.yun.com/live/live?auth_key=******
- 登录视频直播控制台。
-
在左侧导航栏选择。
-
在生成器中完成域名、AppName、StreamName、鉴权等配置,查看并复制本次推流所需的RTMP或ARTC推流地址。
单击开始生成,页面将同时生成推流地址和原画播放地址(ARTC 格式,以
artc://开头)。
步骤三(可选):使用 RTMP 推流
-
运行 OBS,选择文件 > 设置 > 直播:
-
服务:选择自定义。
-
服务器与串流密钥:填入步骤二中复制的 RTMP 信息(按控制台展示拆分或合并;若页面提供完整 URL,可按 OBS 要求拆分为服务器与密钥两段)。单击确定保存。
-
步骤四(可选):使用 WHIP 推流
-
将步骤二中复制的 ARTC 推流地址转换为 WHIP 可用的 HTTP(S) URL。
-
将协议头由 ARTC 切换为 HTTP(S),示例:
-
原地址为:
artc://al.yun.com/live/live?auth_key=******。 -
修改为:
https://al.yun.com/live/live?auth_key=******。
-
-
若使用 HTTPS 推流,需按环境配置证书。具体请参见配置HTTPS安全加速。
-
-
在 OBS 中配置 WHIP。
-
运行 OBS。
-
选择文件 > 设置 > 直播。
-
按如下参数填写后单击确定。
参数
描述
服务
选择WHIP。
服务器
输入步骤2修改后的WHIP协议URL。
Bearer Token
串流密钥为空。
-
步骤五:开始推流并验证
-
在 OBS 主界面来源区域添加音视频来源后,单击开始推流。
-
在直播控制台流管理中确认在线流。
-
在视频直播控制台左侧导航栏选择流管理。
-
选择待查询的域名,输入AppName和StreamName。
单击在线流页签,单击查询按钮查看推流状态。
-
单击查询,查看当前实时在线流。
-
-
使用 Web 端播放 RTS 流做快速验证。
-
进入RTS Web播放器。
-
单击拉流页签。
-
输入已开通超低延时直播的播流地址URL。
在RTS Web播放器Demo页面选择拉流Tab页签,确认已勾选订阅音频和订阅视频,在拉流地址输入框中输入播流地址,然后单击开始拉流。
-
单击开始拉流,播放 RTS 直播流。
-