在 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 视频。

  • 可能无法始终匹配确切的分辨率。

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