Codificação com reconhecimento de conteúdo

Logotipo dos Serviços de Mídia v3


Aviso

Os Serviços de Mídia do Azure serão desativados em 30 de junho de 2024. Para obter mais informações, consulte o Guia de desativação do AMS.

Dica

Quer gerar miniaturas, costurar dois vídeos, gerar clipes de um vídeo ou girá-lo (entre outras coisas)? Você pode encontrar código de exemplo dos Serviços de Mídia na página de Exemplos.

Visão geral da predefinição de codificação com reconhecimento de conteúdo

A fim de preparar o conteúdo para entrega por streaming de taxa de bits adaptável, o vídeo precisa ser codificado em várias taxas de bits (de alta a baixa) e várias resoluções. Essa técnica permite que os atuais players de vídeo modernos no Apple iOS, no Android, no Windows e no Mac usem protocolos de streaming que transmitem conteúdo sem buffer. Essas diferentes representações de tamanho de exibição (resolução) e qualidade (taxa de bits) permitem que o player selecione a melhor versão do vídeo à qual as condições de rede atuais podem dar suporte. A rede pode variar muito de LTE, 4G, 5G, Wi-Fi público ou uma rede doméstica.

O processo de codificar o conteúdo em várias representações exige a geração de uma "escada de codificação", uma tabela de resoluções e taxas de bits que instruem o codificador o que deve ser gerado. Para obter um exemplo dessa escada, confira as predefinições de codificação interna dos Serviços de Mídia.

Em condições ideais, recomendamos que você esteja ciente do tipo de conteúdo que está codificando. Usando essas informações, você pode ajustar a escada de codificação para que ela corresponda à complexidade e ao movimento no vídeo de origem. Isso significa que, em cada tamanho de exibição (resolução) na escada, deve haver uma taxa de bits além da qual qualquer aumento na qualidade não seja perceptível (o codificador opera com esse valor de taxa de bits ideal).

O próximo nível de otimização que pode ser feito é selecionar as resoluções com base no conteúdo, por exemplo, um vídeo de uma apresentação do PowerPoint com um texto pequeno parecerá borrado quando codificado abaixo de 720 pixels de altura. Além disso, você também pode ter um vídeo que altere o movimento e a complexidade com base em como ele foi feito e editado. Isso fornece uma oportunidade para ajustar as configurações de codificação em cada cena ou limite de captura. Um codificador inteligente pode ser encarregado de otimizar as configurações de codificação de cada uma das capturas do vídeo.

Os Serviços de Mídia do Azure fornecem uma predefinição de Streaming Adaptável que resolve parcialmente o problema da variabilidade na taxa de bits e na resolução dos vídeos de origem. No entanto, essa predefinição não analisa o conteúdo de origem para ver o nível de complexidade dele ou a quantidade de movimento que ele contém.

A predefinição de codificação com reconhecimento de conteúdo estende o mecanismo de "streaming de taxa de bits adaptável" adicionando uma lógica que permite ao codificador buscar um valor de taxa de bits ideal para determinada resolução, mas sem exigir uma análise computacional extensiva. Essa predefinição gera uma "escada" exclusiva de MP4s alinhada por GOP com base no arquivo de origem. Dado um vídeo de origem, a predefinição executa uma análise inicial rápida do conteúdo de entrada e usa os resultados para determinar o número ideal de camadas, taxa de bits e resoluções necessárias para fornecer a experiência de streaming de taxa de bits adaptável de mais alta qualidade. Essa predefinição é efetiva com vídeos de baixa a média complexidade, em que os arquivos de saída terão taxas de bits mais baixas do que a predefinição mais estática de Streaming Adaptável, mas com uma qualidade que ainda oferece uma boa experiência aos públicos-alvo. A pasta de saída conterá vários arquivos MP4 com vídeo e áudio prontos para streaming.

Definir as configurações de saída

Além disso, os desenvolvedores podem controlar o intervalo de saídas que a predefinição de codificação com reconhecimento de conteúdo usa ao decidir as configurações ideais para codificar a escada de streaming de taxa de bits adaptável.

Usando a classe PresetConfigurations, os desenvolvedores podem transmitir um conjunto de restrições e opções para a predefinição de codificação com reconhecimento de conteúdo para controlar os arquivos resultantes gerados pelo codificador. As propriedades são especialmente úteis para situações em que você deseja limitar toda a codificação a uma resolução máxima específica para controlar a experiência ou os custos dos trabalhos de codificação. Também é útil ter a capacidade de controlar as taxas de bits máxima e mínima às quais o público-alvo pode dar suporte em uma rede móvel ou em uma região global que tenha restrições de largura de banda.

Codecs compatíveis

A predefinição de codificação com reconhecimento de conteúdo está disponível para uso com os seguintes codecs:

  • H.264
  • HEVC (H.265)

Detalhes técnicos sobre a predefinição com reconhecimento de conteúdo

Agora vamos nos aprofundar um pouco mais sobre como a predefinição de codificação com reconhecimento de conteúdo funciona. Os gráficos ilustrativos a seguir mostram a comparação usando métricas de qualidade como PSNR e VMAF. A fonte foi criada por meio da concatenação de pequenos clipes de capturas de alta complexidade de filmes e programas de TV, destinados a estressar o codificador. Por definição, essa predefinição produz resultados que variam de conteúdo para conteúdo – isso também significa que, para alguns conteúdos, pode não haver uma redução substancial na taxa de bits ou um aprimoramento significativo da qualidade.

Curva de taxa de distorção (RD) com uso de PSNR

Figura 1: curva de taxa de distorção (RD) usando a métrica PSNR para fonte de alta complexidade

Curva de taxa de distorção (RD) com uso de VMAF

Figura 2: curva de taxa de distorção (RD) usando a métrica VMAF para fonte de alta complexidade

Abaixo estão os resultados de outra categoria de conteúdo de origem, em que o codificador foi capaz de determinar que a entrada era de baixa qualidade (muitos artefatos de compactação devido à baixa taxa de bits). Com a predefinição com reconhecimento de conteúdo, o codificador decidiu produzir apenas uma camada de saída: a uma taxa de bits baixa o suficiente para que a maioria dos clientes possa reproduzir o streaming sem interrupções.

Curva de RD com uso de PSNR

Figura 3: curva de RD usando PSNR para entrada de baixa qualidade (em 1080p)

Curva de RD com uso de VMAF

Figura 4: curva de RD usando VMAF para entrada de baixa qualidade (em 1080p)

Exemplos de codificação

Confira a extensa lista de Exemplos de Codificação.

Obter ajuda e suporte

Você pode entrar em contato com os Serviços de Mídia com dúvidas ou seguir nossas atualizações por um dos seguintes métodos: