本文主要介绍转推直播的定义、类型、适用场景、计费方式及实现方式。
转推直播是指将 RTC 房间内的音视频内容通过 RTMP 协议推送到 CDN,观众无需进入房间,通过一个标准的直播地址即可观看,从而扩大音视频内容的分发范围。支持以下两种转推类型:
类型 | 行业 | 场景 |
---|---|---|
单流转推 | 互动直播 | 当前直播间没有观众上麦和主播实时音视频互动前,指定将直播间主播的音视频流直接转推到直播服务。 |
合流转推 | 互动直播 | 同一 RTC 房间内主播之间、主播与上麦观众之间进行实时音视频互动,或不同 RTC 房间中主播之间、主播与上麦观众之间跨房间连麦互动,其他未进房的观众可观看音视频互动。 |
在线教育 | 在线直播公开课,同一 RTC 房间内老师和学生进行音视频互动,通过 CDN 将互动音视频流发布给更多观众。 |
关于转推直播的详细计费方式,参看转推直播计费。
通过服务端实现
你可以通过 Open API 在服务端实现合流转推。
在 RTC 控制台开启转推直播功能。
(可选)开通消息通知服务获取转推相关任务状态的消息通知。
调用 StartPushMixedStreamToCDN 开启合流转推。
4. 调用 UpdatePushMixedStreamToCDN 更新合流转推的参数。
(可选)调用 GetPushMixedStreamToCDNTask 查询合流转推任务状态,会收到任务相关返回信息。
调用 StopPushStreamToCDN 结束合流转推任务。
通过客户端实现
具体实现方式,参看客户端发起转推直播。
你可以通过 Open API 在服务端实现单流转推。
Q1: 什么情况下视频帧会携带 SEI,携带 SEI 的频率是固定的吗?
通常情况下,只会在关键帧中携带SEI,携带SEI的频率为你在接口中设置的 GOP
。以下场景会在额外的视频帧中携带SEI:
VolumeIndicationInterval
设置的间隔检测订阅到的流的音量信息是否有变化。如果有变化,服务端会立即在最新编码生成的一个视频帧中携带 SEI,SEI 内容中包括布局信息以及最新的音量信息。如果检测周期内,音量信息没有变化,那么依旧只会在关键帧中携带SEI。Q2:为什么转推直播流的 1 个视频帧里带有多个通过 RTC SDK API 发送的 SEI?
在转推直播场景中,如果用户调用了RTC SDK API sendSEIMessage
传入 SEI,转推直播服务端会订阅该用户的流并从视频帧中提取出 SEI 做透传。如果短时间内单个用户调用 sendSEIMessage
发送了多条 SEI 信息,或者多个用户同时调用 sendSEIMessage
发送 SEI 信息,转推直播服务端会将订阅到的视频流中的所有 SEI 信息做透传,可能会导致转推直播流的 1 个视频帧中包含多个 SEI 信息。
Q3: 为什么转推直播流的 SEI 中既有来自 RTC 客户端透传的 SEI 又有服务端自动生成的 SEI?
若服务端自动生成 SEI 时,用户也调用客户端 SDK API sendSEIMessage
传入了 SEI,那此时转推直播流中会出现多种 SEI 信息。