Compartilhar via


Visão geral da codificação no Media Foundation

Este tópico é uma visão geral das APIs de codificação de arquivo fornecidas no Microsoft Media Foundation.

Terminologia

Codificação é um termo geral que abrange vários processos distintos:

  1. Codificar um fluxo de áudio ou vídeo em formatos compactados. Por exemplo, codificar um fluxo de vídeo para vídeo H.264.
  2. Multiplexação ("muxing") um ou mais fluxos em um único fluxo de bytes. Normalmente, os fluxos de entrada são codificados primeiro. Essa etapa pode envolver o empacotar os fluxos codificados.
  3. Gravar um fluxo de bytes multiplexado em um arquivo, como um arquivo MP4 ou ASF (Advanced Systems Format). Como alternativa, o fluxo multiplexado pode ser enviado pela rede.

O diagrama a seguir mostra estes três processos:

diagrama mostrando os processos de codificação e multiplexação

As variações desse processo incluem transcodificação e remuxing:

  • Transcodificação significa decodificar um arquivo existente, recodificar os fluxos e multiplexar novamente os fluxos codificados. A transcodificação pode ser feita para converter um arquivo de um tipo de codificação em outro; por exemplo, para converter o vídeo H.264 em Vídeo do Windows Media (WMV). Também pode ser feito para alterar a taxa de bits codificada; o tamanho do quadro de vídeo; a taxa de quadros; ou outros parâmetros de formato.
  • Remultiplexing ou remuxing significa demultiplexar um arquivo e multiplexar novamente os fluxos, sem a etapa de decodificar/codificar. Isso pode ser feito para alterar como os pacotes de áudio/vídeo são multiplexados, para remover um fluxo ou para combinar fluxos de dois arquivos de origem diferentes.
  • Transcalação é um caso especial de transcodificação, em que a taxa de bits é alterada sem alterar o tipo de compactação. Por exemplo, você pode converter um arquivo de taxa de bits alta em uma taxa de bits mais baixa. Um cenário típico em que a transcalação pode ser usada é ao sincronizar o conteúdo de mídia de um computador com um dispositivo portátil. Se o dispositivo portátil não der suporte a uma alta taxa de bits, o arquivo poderá ser transcalado antes de ser copiado para o dispositivo portátil.

O diagrama de bloco a seguir mostra o processo de transcodificação.

diagrama mostrando o processo de transcodificação

O diagrama de bloco a seguir mostra o processo de remuxing.

diagrama mostrando o processo de remuxing

Às vezes, essa documentação usa o termo codificação para incluir transcodificação e remuxing. Quando for importante distinguir entre eles, a documentação observará a diferença.

Confira também: Media Foundation: Conceitos essenciais.

Arquitetura de codificação do Media Foundation

Na camada mais baixa da arquitetura do Media Foundation, os seguintes tipos de componente são usados para codificação:

O diagrama a seguir mostra o fluxo de dados entre esses componentes em um cenário de transcodificação:

diagrama mostrando os componentes usados na transcodificação

A maioria dos aplicativos não usará esses componentes diretamente. Em vez disso, um aplicativo usará APIs de nível superior que gerenciam esses componentes de nível inferior. O Media Foundation fornece duas APIs de nível superior para codificação:

Sessão de Mídia

A Sessão de Mídia fornece um pipeline de ponta a ponta que move dados da fonte de mídia, por meio dos codecs e, por fim, para o coletor de mídia. O aplicativo controla a Sessão de Mídia e recebe status eventos da Sessão de Mídia.

Leitor de Origem mais Gravador de Coletor

O Leitor de Origem encapsula a fonte de mídia e, opcionalmente, os decodificadores. Ele fornece exemplos codificados ou decodificados do aplicativo. O Gravador do Coletor encapsula o coletor de mídia e, opcionalmente, os codificadores. O aplicativo passa exemplos para o Gravador do Coletor.

O diagrama a seguir mostra a Sessão de Mídia:

diagrama mostrando como a sessão de mídia executa a transcodificação

A API do Transcode (a caixa sombreada azul) é um conjunto de APIs introduzidas no Windows 7, o que facilita a configuração da Sessão de Mídia para codificação.

O próximo diagrama mostra o Leitor de Origem e o Gravador do Coletor:

diagrama mostrando a transcodificação com o leitor de origem e o gravador do coletor

Codificando e criando arquivos

Programação do Media Foundation: Conceitos essenciais