Meet Media API 的视频编解码器要求

本页介绍了 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 层)的视频。测试解码器的输出必须与参考解码器的输出一致。