Требования к видеокодекам для Meet Media API

На этой странице представлены основные требования к клиентским видеокодекам Google Meet Media API, обеспечивающие удобство использования.

Функциональные требования

В этом разделе указаны требования к типам и функциям кодеков.

Особенность Требование
Профиль АВ1 ВП9 ВП8
Main Profile 0 Н/Д
Масштабируемость Декодер должен поддерживать временную масштабируемость, пространственную масштабируемость или обе, если это требуется спецификацией кодирования для данного типа и профиля кодека.
Формат сырого видео

Кодек должен поддерживать обработку нечётных разрешений (например, когда ширина или высота кадра не кратны 2, например, 133 × 141). Для форматов с субдискретизацией цветности количество цветовых сэмплов на измерение должно быть округлено в большую сторону при вычислении из количества яркостных сэмплов.

Обрезка, заполнение и масштабирование не допускаются. Разрешение выходного кадра должно соответствовать разрешению входного кадра.

Эксплуатационные требования

В этом разделе указаны требования к различным условиям, в которых предполагается работа видеокодека. Нарушение этих требований может ограничить использование кодека определённым набором сценариев, но не обязательно исключает его использование. Например, если максимальное количество экземпляров кодека меньше требуемого, кодек по-прежнему может использоваться вместе с кодеками других типов или реализаций.

Параметр Требование
Минимальное разрешение, пиксели ≤ 128 × 128
Максимальное разрешение, пикселей ≥ 2880 × 1800
Минимальная частота кадров, FPS ≤ 1
Максимальная частота кадров, FPS ≥ 30
Минимальный битрейт, кбит/с ≤ 30
Максимальный битрейт, кбит/с ≥ 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 одновременно и убедитесь, что декодеры не нарушают требования к производительности.
Соответствие декодера Декодируйте набор предварительно закодированных битовых потоков. Выход тестового декодера должен совпадать с выходом эталонного декодера ( libvpx для VP8 и VP9, libaom для AV1).
Временная масштабируемость Декодируйте видео с несколькими временными слоями (2 и 3). Выходные данные тестового декодера должны совпадать с выходными данными эталонного декодера.
Пространственная масштабируемость Декодируйте видео с несколькими пространственными слоями (2 и 3). Выходные данные тестового декодера должны совпадать с выходными данными эталонного декодера.