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