Requisitos de codec de vídeo para a API Meet Media

Esta página fornece os requisitos básicos para codecs de vídeo do cliente da API Google Meet Media para garantir uma boa experiência do usuário.

Requisitos funcionais

Esta seção especifica os requisitos para os tipos e recursos de codec.

Recurso Requisito
Perfil AV1 VP9 VP8
Main Profile 0 N/A
Escalonabilidade O decodificador precisa ser compatível com escalonabilidade temporal, espacial ou ambas, se exigido pela especificação de codificação para determinado tipo e perfil de codec.
Formato de vídeo bruto

O codec precisa ser capaz de processar resoluções ímpares (por exemplo, quando a largura ou a altura do frame não são múltiplos de 2, como 133 × 141). Para formatos de croma subamostrados, o número de amostras de croma por dimensão precisa ser arredondado para cima quando derivado do número de amostras de luma.

Não é permitido cortar, adicionar padding ou dimensionar. A resolução do frame de saída precisa corresponder à do frame de entrada.

Requisitos operacionais

Esta seção especifica os requisitos para várias condições em que o codec de vídeo deve operar. A violação desses requisitos pode restringir o uso do codec a um subconjunto de cenários, mas não impede necessariamente que ele seja usado. Por exemplo, se o número máximo de instâncias de codec for menor do que o necessário, o codec ainda poderá ser usado com codecs de outros tipos ou implementações.

Parâmetro Requisito
Resolução mínima, pixels ≤ 128 × 128
Resolução máxima, pixels ≥ 2880 × 1800
Frame rate mínimo, QPS ≤ 1
Frame rate máximo, QPS ≥ 30
Taxa de bits mínima, kbps ≤ 30
Taxa de bits máxima, kbps ≥ 5.000
Número máximo de instâncias de decodificador ≥ 3
Capacidade total máxima de decodificação, pixels por segundo ≥ 3 × 2880 × 1880 × 30

Requisitos de desempenho

Esta seção especifica os requisitos de desempenho do codec. A violação desses requisitos pode afetar significativamente a experiência do usuário e quase certamente vai bloquear o uso do codec.

Parâmetro Requisito
Tempo máximo de processamento entre frames, em segundos 1 / max(30, encode_target_frame_rate_fps)
Tempo máximo de processamento de frame principal, em segundos 2 / max(30, encode_target_frame_rate_fps)

O tempo de processamento do frame é a diferença entre dois eventos: 1) o codec entrega o frame e 2) o codec recebe o frame. O tempo médio de processamento de frames é calculado em uma janela deslizante de pelo menos 10 segundos de duração com pelo menos 10 frames. O tempo máximo de processamento de frames é o maior valor entre todos os tempos individuais.

O cálculo é feito dividindo o número de frames processados, incluindo os descartados, pelo delta de tempo entre os dois eventos: 1) o codec entrega o último frame e 2) o codec entrega o primeiro frame.

Casos de teste

Confira alguns casos de teste que você pode usar:

Testes
Capacidade de decodificação Decodifique até três streams de 2880 × 1880 × 30 simultaneamente e verifique se os decodificadores não violam os requisitos de desempenho.
Conformidade do decodificador Decodifica um conjunto de fluxos de bits pré-codificados. A saída do decodificador de teste precisa corresponder à saída de um decodificador de referência (libvpx para VP8 e VP9, libaom para AV1).
Escalonabilidade temporal Decodificar vídeo com várias camadas temporais (2 e 3). A saída do decodificador de teste precisa corresponder à saída do decodificador de referência.
Escalonabilidade espacial Decodificar vídeo com várias camadas espaciais (2 e 3). A saída do decodificador de teste precisa corresponder à saída do decodificador de referência.