logo
超低延迟直播
当前页

RTMP 推流到 ZEGO 服务器


功能简介

在直播场景下,主播可以通过 RTMP 推流工具将音视频流推送到 ZEGO 服务器,实现低延迟的效果。观众可以使用 ZEGO Express SDK 拉流。

RTMP 推流工具指的是通过 RTMP 地址进行推流的第三方工具,主要包括硬件推流设备、软件 OBS 等。

前提条件

  • 已联系 ZEGO 技术支持,开通 RTMP 工具推流到 ZEGO 服务器的相关权限。
  • 准备 RTMP 推流工具,例如 OBS。

使用步骤

获取 RTMP 推流地址

请联系 ZEGO 技术支持开通服务,通过 RTMP 推流调度 服务端接口获取 RTMP 推流地址。

使用 RTMP 工具推流

下文以 OBS 为例介绍 RTMP 工具的推流操作。

设置推流地址

  1. 打开 OBS 工具,在底部工具栏的“控件”页签单击“设置”进入设置界面。
  1. 单击 “推流” 进入流设置页签,选择服务类型为“自定义流媒体服务器”。

  2. 将获取到的 RTMP 推流地址填写到“服务器”和“串流密码”字段中。

  • 服务器:对应 RTMP 推流地址,即 rtmp://hosts/AppName/

    请注意,RTMP 推流地址 URL,与 CDN 推流鉴权 中的推流地址 URL 不同,不可混用,使用时请您注意区分。

  • 串流密码:对应 RTMP 推流流名,即 “streamID”。

  1. 单击“确定”保存以上设置信息。

设置推流引导

  1. 在底部工具栏的“来源”页签单击 “+” 按钮。
  1. 按需选择输入源,例如“显示器捕获”。

使用 OBS 推流

  1. 在底部工具栏的“控件”页签单击“开始推流”,即可将音视频流推送到所设置的推流地址,底部出现绿灯,则表示推流成功。
  1. 若需停止推流,单击“控件”页签的“停止推流”即可。
注意

使用 RTMP 工具推流后,用户无法通过 onRoomStreamUpdate 回调来收到音视频流新增或删除的通知,可以通过以下两种方式获取:

  • 使用 RTMP 工具推流后,业务服务器通过业务信令下发第三方推流 “streamID” 给房间内的其他用户,通知房间内的其他用户有流新增或删除。
  • 可以使用 ZEGO 服务端的 增加房间流删除房间流 接口向指定房间增加或删除一路流信息,将 “streamID” 信息下发给房间内的其他用户,此时其他用户可以就通过 onRoomStreamUpdate 回调收到音视频流新增或删除的通知。

使用 SDK 拉流/停止拉流

调用 startPlayingStream 接口,传入 RTMP 推流的 “streamID” (即 3.2.1 章节中设置的“串流密码”)进行拉流播放。

// 开始拉流,设置远端拉流渲染视图,视图模式采用 SDK 默认的模式,等比缩放填充整个 View
// 如下 playView 为 UI 界面上 View.
ZegoCanvas playCanvas = new ZegoCanvas(playView);
engine.startPlayingStream("streamID", playCanvas);

调用 stopPlayingStream 接口,传入 RTMP 推流的 “streamID”(即 3.2.1 章节中设置的“串流密码”)停止拉取远端推送的音视频流。

// 停止拉流
engine.stopPlayingStream("streamID");

常见问题

1. 业务服务器如何知道 RTMP 推流工具是否已开始推流或停止推流?

ZEGO 提供了 publish_start 开始推流和 publish_stop 停止推流回调通知,如有需要请联系 ZEGO 技术支持配置。

Previous

单流转码

Next

使用 Token 鉴权