在直播场景下,主播可以通过 RTMP 推流工具将音视频流推送到 ZEGO 服务器,实现低延迟的效果。观众可以使用 ZEGO Express SDK 拉流。
RTMP 推流工具指的是通过 RTMP 地址进行推流的第三方工具,主要包括硬件推流设备、软件 OBS 等。
请联系 ZEGO 技术支持开通服务,通过 RTMP 推流调度 服务端接口获取 RTMP 推流地址。
下文以 OBS 为例介绍 RTMP 工具的推流操作。
单击 “推流” 进入流设置页签,选择服务类型为“自定义流媒体服务器”。
将获取到的 RTMP 推流地址填写到“服务器”和“串流密码”字段中。
服务器:对应 RTMP 推流地址,即 rtmp://hosts/AppName/
请注意,RTMP 推流地址 URL,与 CDN 推流鉴权 中的推流地址 URL 不同,不可混用,使用时请您注意区分。
串流密码:对应 RTMP 推流流名,即 “streamID”。
在底部工具栏的“来源”页签单击 “+” 按钮。
按需选择输入源,例如“显示器捕获”。
使用 RTMP 工具推流后,用户无法通过 roomStreamUpdate 回调来收到音视频流新增或删除的通知,可以通过以下两种方式获取:
调用 startPlayingStream 接口,传入 RTMP 推流的 “streamID” (即 3.2.1 章节中设置的“串流密码”)进行拉流播放。
<template>
<!-- #ifdef APP-PLUS -->
<zego-remote-view :streamID="playStreamID" style="height: 403.84rpx;flex: 1"></zego-remote-view>
<!-- #endif -->
<!-- #ifdef H5 -->
<video id="remote_video" style="height: 403.84rpx;flex: 1;" autoplay playsinline :muted="true"></video>
<!-- #endif -->
</template>
/** 开始拉流 */
this.playStreamID = "StreamID_1"
const stream = await ZegoExpressEngine.instance().startPlayingStream(this.playStreamID)
// #ifdef H5
document.querySelector("#remote_video video").srcObject = stream
// #endif
调用 stopPlayingStream 接口,传入 RTMP 推流的 “streamID”(即 3.2.1 章节中设置的“串流密码”)停止拉取远端推送的音视频流。
// 停止拉流
ZegoExpressEngine.instance().stopPlayingStream("streamID");
1. 业务服务器如何知道 RTMP 推流工具是否已开始推流或停止推流?
ZEGO 提供了 publish_start
开始推流和 publish_stop
停止推流回调通知,如有需要请联系 ZEGO 技术支持配置。
联系我们
文档反馈