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

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

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

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

Особенность Требование
Профиль АВ1 VP9 VP8
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 и убедитесь, что декодеры не нарушают требования к производительности.
Соответствие декодера требованиям Decode a set of pre-encoded bitstreams. The output of the test decoder must match the output of a reference decoder ( libvpx for VP8 & VP9, libaom for AV1).
Временная масштабируемость Декодирование видео с несколькими временными слоями (2 и 3). Выход тестового декодера должен совпадать с выходом эталонного декодера.
Пространственная масштабируемость Декодирование видео с несколькими пространственными слоями (2 и 3). Выход тестового декодера должен совпадать с выходом эталонного декодера.