转推直播可以帮助你将音视频房间内的会话分发给房间外的其他观看者。转推直播分为单流转推和合流转推:
通过单流转推,你可以将一路流通过 RTMP 协议推送到指定的 CDN 推流地址。单流转推过程不进行编解码。
通过合流转推,你可以将多个房间的音视频内容合并为一路流,推送至 RTMP 服务器,再由 CDN 进行分发。合流转推过程会进行编解码。
你可能在多种行业的多种场景下使用到转推直播功能:
类型 | 行业 | 场景 |
---|---|---|
单流转推 | 互动直播 | 当前直播间没有观众上麦和主播实时音视频互动前,指定将直播间主播的音视频流直接转推到直播服务。 |
合流转推 | 互动直播 | 同一 RTC 房间内主播之间、主播与上麦观众之间进行实时音视频互动,或不同 RTC 房间中主播之间、主播与上麦观众之间跨房间连麦互动,其他未进房的观众可观看音视频互动。 |
更新历史,参看客户端 SDK 发版说明。
更新历史,参看 服务端 OpenAPI 发版说明 。
计费说明,参看 计费规则 。
你可以通过 Open API,在服务端使用合流转推功能。参看以下时序图:
在控制台开启转推直播功能。
【可选】开通消息通知服务获取转推相关任务状态的消息通知。
调用 StartPushMixedStreamToCDN
开启合流转推。
调用 UpdatePushMixedStreamToCDN
更新合流转推的参数。
【可选】调用 GetPushMixedStreamToCDNTask
查询合流转推任务状态 ,会收到任务相关返回信息。
调用 [
StopPushStreamToCDN](https://www.volcengine.com/docs/6348/1163748)
结束合流转推任务。
你可以通过 Open API,在服务端使用单流转推功能。看以下时序图:
在控制台开启转推直播功能。
【可选】开通消息通知服务获取转推相关任务状态的消息通知
调用 StartPushSingleStreamToCDN
开启单流转推。
【可选】调用 GetPushSingleStreamToCDNTask
查询单流转推任务状态,会收到任务相关返回信息。
调用 StopPushStreamToCDN
结束单流转推任务。
Q1: 什么情况下视频帧会携带 SEI,携带 SEI 的频率是固定的吗?
A1: 通常情况下,只会在关键帧中携带SEI,携带SEI的频率为你在接口中设置的 GOP
。以下场景会在额外的视频帧中携带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 信息。