You need to enable JavaScript to run this app.
导航

关于转推直播

最近更新时间2024.03.15 20:27:48

首次发布时间2021.07.18 15:06:04

如果你希望将音视频房间内的音视频会话分发给其他观看者,你需要将一个或多个房间中的音视频内容合成一路流,推送至 RTMP 服务器,再由 CDN 进行分发。你可以通过转推直播功能,将音视频内容推送至 RTMP 服务器。

RTC 提供了服务端转推直播功能。

适用场景

互动直播场景:同一 RTC 房间内主播之间、主播与上麦观众之间进行实时音视频互动,或不同 RTC 房间中主播之间、主播与上麦观众之间跨房间连麦互动,其他未进房的观众可观看音视频互动。
教育场景:在线直播公开课,同一 RTC 房间内老师和学生进行音视频互动,通过 CDN 将互动音视频流发布给更多观众。

功能说明

转推直播功能根据实现方式可分为以下 2 种:

说明:转推直播功能属于增值服务,单价和计费规则见计费规则

功能变更日志

  1. 自客户端 SDK v3.52,转推直播的接口名称变更。详见各端 3.52 版本的升级指南。
  2. 自客户端 SDK v3.43,扩展了转推直播配置参数结构体,支持图片合流。
  3. 自客户端 SDK v3.42,细化了转推直播的任务状态回调。
  4. 自客户端 SDK v3.36,支持本功能。

FAQ

Q1: 什么情况下视频帧会携带 SEI,携带 SEI 的频率是固定的吗?

A1: 通常情况下,只会在关键帧中携带SEI,携带SEI的频率为你在接口中设置的 GOP。以下场景会在额外的视频帧中携带SEI:

  • 转推直播任务订阅的流中,如果有来自 RTC 客户端透传的 SEI,此时会在最新编码生成的一个视频帧中携带上需要透传的客户端 SEI。
  • 如果布局信息发生了变化(主动调用更新布局接口等),在布局更新完成后,服务端会立即生成一个关键帧,且在关键帧中携带SEI。
  • 如果开启了音量指示模式,服务端会按照 VolumeIndicationInterval 设置的间隔检测订阅到的流的音量信息是否有变化。如果有变化,服务端会立即在最新编码生成的一个视频帧中携带 SEI,SEI 内容中包括布局信息以及最新的音量信息。如果检测周期内,音量信息没有变化,那么依旧只会在关键帧中携带SEI。

Q2:为什么转推直播流的 1 个视频帧里带有多个通过 RTC SDK API 发送的 SEI?

A2:在转推直播场景中,如果用户调用了RTC SDK API sendSEIMessage 传入 SEI,转推直播服务端会订阅该用户的流并从视频帧中提取出 SEI 做透传。如果短时间内单个用户调用 sendSEIMessage 发送了多条 SEI 信息,或者多个用户同时调用 sendSEIMessage 发送 SEI 信息,转推直播服务端会将订阅到的视频流中的所有 SEI 信息做透传,可能会导致转推直播流的 1 个视频帧中包含多个 SEI 信息。

Q3: 为什么转推直播流的 SEI 中既有来自 RTC 客户端透传的 SEI 又有服务端自动生成的 SEI?
A3: 若服务端自动生成 SEI 时,用户也调用客户端 SDK API sendSEIMessage 传入了 SEI,那此时转推直播流中会出现多种 SEI 信息。