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