在 Meet 媒体 API 中管理视频作业

连接到会议后,系统会立即传输并提供请求的任何音频。不过,若要接收视频,客户端必须先为每个视频流定义画布。

画布有助于 Meet 了解客户端将如何使用视频流,并指定其分辨率(以像素为单位,例如 1280×720)、每秒帧数 (FPS) 和选择分配协议。分配协议用于指定当参与者数量多于 SSRC 时,Meet 应如何选择视频流。

视频分配请求

为了接收视频,客户端首先通过 VideoAssignment 数据通道发送视频分配 请求,为协商的视频流定义画布。

通过视频分配数据渠道发送视频分配请求。
图 1. 通过视频分配数据通道发送视频分配请求。

Meet 收到请求后,会开始根据以下因素选择“相关”参与者的视频:

  • 参与者是否在说话?
  • 参与者是否在展示?
  • 参与者是否在共享屏幕?

然后,Meet 会将“最相关”的参与者映射到可用的视频 SSRC,并开始传输视频,尽可能与画布参数保持一致。

如果会议中的参与者人数超过了 SSRC 的数量,Meet 会随着时间的推移替换流,以匹配最相关的参与者。

Meet 服务器接收请求并分配视频流。
图 2. Meet 服务器接收请求并分配视频流。

Meet 应用视频分配请求后,会通过 VideoAssignment 数据通道推送资源更新。此更新包含 SSRC 到画布的映射。借助此映射,客户端可以确定每个 SSRC 的视频流的分辨率和 FPS。相反,客户端知道在寻找特定分辨率和 FPS 时要使用哪个 SSRC。

通过视频分配数据渠道发送资源更新。
图 3. 通过视频分配数据渠道发送资源更新。

注意事项

  • Meet 决定 SSRC 与画布之间的关联。客户端未在请求中指定此参数。

  • Meet 不会确定性地分配 SSRC。例如,不要假设第一个 SSRC 是“最相关”的参与者。

  • 客户端不应请求超出其需求的更高分辨率。例如,如果模型仅使用 480p 视频,则不要请求 1080p 视频。

  • 可能无法始终实现完全匹配的分辨率。

  • 客户端不应发送过多的视频分配请求。这些请求将被限制或忽略。