文档中心
hybrid_hierarchical_delivery_system 超低延迟直播
文档中心
体验 App
SDK 中心
API 中心
常见问题
代码市场
进入控制台
立即注册
登录
中文站 English
  • 文档中心
  • 超低延迟直播
  • 直播能力
  • RTMP 推流到 ZEGO 服务器

RTMP 推流到 ZEGO 服务器

更新时间:2024-09-23 18:23

1 功能简介

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

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

2 前提条件

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

3 使用步骤

3.1 获取 RTMP 推流地址

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

3.2 使用 RTMP 工具推流

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

3.2.1 设置推流地址

  1. 打开 OBS 工具,在底部工具栏的“控件”页签单击“设置”进入设置界面。

  1. 单击 “推流” 进入流设置页签,选择服务类型为“自定义流媒体服务器”。

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

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

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

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

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

3.2.2 设置推流引导

  1. 在底部工具栏的“来源”页签单击 “+” 按钮。

  2. 按需选择输入源,例如“显示器捕获”。

3.2.2 使用 OBS 推流

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

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

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

3.3 使用 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");

4 常见问题

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

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

本篇目录
  • 免费试用
  • 提交工单
    咨询集成、功能及报价等问题
    电话咨询
    400 1006 604
    咨询客服
    微信扫码,24h在线

    联系我们

  • 文档反馈