在直播场景下,主播可以通过 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 工具推流后,用户无法通过 onRoomStreamUpdate 回调来收到音视频流新增或删除的通知,可以通过以下两种方式获取:
调用 startPlayingStream 接口,传入 RTMP 推流的 “streamID” (即 3.2.1 章节中设置的“串流密码”)进行拉流播放。
createCanvasView 接口使用展示
获取预览用的 Widget,然后使用 viewID 创建一个 ZegoCanvas 对象,开始预览。
// 将此 Widget 加入到页面的渲染树中以显示预览画面
_playViewWidget = await ZegoExpressEngine.instance.createCanvasView((viewID) {
_playViewID = viewID;
// Set the playing canvas
ZegoCanvas canvas = ZegoCanvas.view(viewID);
// Start playing
ZegoExpressEngine.instance.startPlayingStream(streamID,
canvas: canvas,
config: ZegoPlayerConfig(ZegoStreamResourceMode.OnlyCDN,videoCodecID: ZegoVideoCodecID.Default, roomID: roomID));
});
调用 stopPlayingStream 接口,传入 RTMP 推流的 “streamID”(即 3.2.1 章节中设置的“串流密码”)停止拉取远端推送的音视频流。
// 停止拉流
ZegoExpressEngine.instance.stopPlayingStream(streamID);
如果拉流时使用了 createCanvasView,需要调用 destroyCanvasView 接口销毁。
// _playViewID 为调用 [createCanvasView] 时得到的 viewID
ZegoExpressEngine.instance.destroyCanvasView(_playViewID);
1. 业务服务器如何知道 RTMP 推流工具是否已开始推流或停止推流?
ZEGO 提供了 publish_start 开始推流和 publish_stop 停止推流回调通知,如有需要请联系 ZEGO 技术支持进行配置。

联系我们
文档反馈