На этой странице представлены основные требования к клиентским видеокодекам 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). Выходные данные тестового декодера должны совпадать с выходными данными эталонного декодера. |