You need to enable JavaScript to run this app.
导航
关于转推直播
最近更新时间:2024.05.13 19:12:07首次发布时间:2021.07.18 15:06:04

功能简介

转推直播可以帮助你将音视频房间内的会话分发给房间外的其他观看者。转推直播分为单流转推和合流转推:

  • 通过单流转推,你可以将一路流通过 RTMP 协议推送到指定的 CDN 推流地址。单流转推过程不进行编解码。

  • 通过合流转推,你可以将多个房间的音视频内容合并为一路流,推送至 RTMP 服务器,再由 CDN 进行分发。合流转推过程会进行编解码。

适用场景

你可能在多种行业的多种场景下使用到转推直播功能:

类型行业场景
单流转推互动直播当前直播间没有观众上麦和主播实时音视频互动前,指定将直播间主播的音视频流直接转推到直播服务。

合流转推

互动直播

同一 RTC 房间内主播之间、主播与上麦观众之间进行实时音视频互动,或不同 RTC 房间中主播之间、主播与上麦观众之间跨房间连麦互动,其他未进房的观众可观看音视频互动。

更新历史

客户端

更新历史,参看客户端 SDK 发版说明

服务端

更新历史,参看 服务端 OpenAPI 发版说明

计费说明

计费说明,参看 计费规则

功能说明

合流转推

调用 Open API

你可以通过 Open API,在服务端使用合流转推功能。参看以下时序图:

alt

  1. 控制台开启转推直播功能。

  2. 【可选】开通消息通知服务获取转推相关任务状态的消息通知。

  3. 调用 StartPushMixedStreamToCDN 开启合流转推。

  4. 调用 UpdatePushMixedStreamToCDN 更新合流转推的参数。

  5. 【可选】调用 GetPushMixedStreamToCDNTask 查询合流转推任务状态 ,会收到任务相关返回信息。

  6. 调用 [StopPushStreamToCDN](https://www.volcengine.com/docs/6348/1163748) 结束合流转推任务。

调用客户端 API

参看客户端发起转推直播

单流转推

调用 Open API

你可以通过 Open API,在服务端使用单流转推功能。看以下时序图:

alt

  1. 控制台开启转推直播功能。

  2. 【可选】开通消息通知服务获取转推相关任务状态的消息通知

  3. 调用 StartPushSingleStreamToCDN 开启单流转推。

  4. 【可选】调用 GetPushSingleStreamToCDNTask 查询单流转推任务状态,会收到任务相关返回信息。

  5. 调用 StopPushStreamToCDN 结束单流转推任务。

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 信息。