本页介绍了 Google Meet Media API 客户端视频编解码器的基本要求,以确保良好的用户体验。
功能要求
本部分指定了编解码器类型和功能的要求。
功能 | 要求 | ||
---|---|---|---|
个人资料 | AV1 | VP9 | VP8 |
Main |
Profile 0 |
不适用 | |
可伸缩性 | 如果给定编解码器类型和配置文件的编码规范要求,解码器必须支持时间可伸缩性、空间可伸缩性或同时支持两者。 | ||
原始视频格式 |
编解码器必须能够处理奇数分辨率(例如,当帧宽度或高度不是 2 的倍数时;例如,133×141)。对于子采样色度格式,当色度样本数从亮度样本数推导得出时,每个维度的色度样本数必须向上舍入。 不允许进行剪裁、填充或缩放。输出帧的分辨率必须与输入帧的分辨率一致。 |
操作要求
本部分针对视频编解码器预期运行的各种条件规定了要求。违反这些要求可能会将编解码器的使用限制在部分场景中,但不一定会阻止其使用。例如,如果编解码器实例的最大数量小于所需数量,该编解码器仍可与其他类型或实现的编解码器一起使用。
参数 | 要求 | |||
---|---|---|---|---|
最低分辨率(像素) | ≤ 128 × 128 | |||
最大分辨率(像素) | ≥ 2880 × 1800 | |||
最低帧速率 (FPS) | ≤ 1 | |||
帧速率上限(以 FPS 为单位) | ≥ 30 | |||
最低比特率,单位为 kbps | ≤ 30 | |||
最高比特率,单位为 kbps | ≥ 5000 | |||
解码器实例数上限 | ≥ 3 | |||
最大总解码吞吐量(像素/秒) | ≥ 3 × 2880 × 1880 × 30 |
性能要求
本部分规定了编解码器性能方面的要求。违反这些要求可能会严重影响用户体验,并且几乎肯定会阻止编解码器的使用。
参数 | 要求 |
---|---|
帧间处理时间上限(以秒为单位) | ≤ 1 / max(30, encode_target_frame_rate_fps) |
关键帧处理时间上限(秒) | ≤ 2 / max(30, encode_target_frame_rate_fps) |
帧处理时间是指两个事件之间的时间差:1) 解码器传送帧;2) 解码器接收帧。平均帧处理时间是在至少 10 秒的滑动窗口内计算的,该窗口至少包含 10 帧。最大帧处理时间是所有单个帧处理时间值中的最高值。
吞吐量的计算方式为:处理的帧数(包括丢弃的帧)除以两个事件之间的时间差:1) 解码器传送最后一帧;2) 解码器传送第一帧。
测试用例
以下是您可以使用的测试用例:
测试 | |
---|---|
解码吞吐量 | 同时解码最多三个 2880 × 1880 × 30 的视频流,并验证解码器是否违反性能要求。 |
解码器一致性 |
解码一组预编码的位流。测试解码器的输出必须与参考解码器的输出(VP8 和 VP9 为 libvpx ,AV1 为 libaom )一致。
|
时间可伸缩性 | 解码具有多个时间层(2 和 3)的视频。测试解码器的输出必须与参考解码器的输出一致。 |
空间可伸缩性 | 解码具有多个空间层(2 层和 3 层)的视频。测试解码器的输出必须与参考解码器的输出一致。 |