Compartilhar via


Coletores de Mídia ASF

O coletor de mídia ASF é o componente final no pipeline de codificação que permite que um aplicativo escreva um arquivo ASF.

O Media Foundation fornece dois tipos de coletores de mídia ASF:

  • O coletor de arquivos ASF é usado para arquivar dados de mídia ASF em um arquivo.
  • O coletor de streaming ASF é usado para gravar conteúdo ASF em um fluxo de bytes que pode ser transmitido pela rede.

Os coletores de mídia ASF contêm um ou mais coletores de fluxo, o que representa os dados a serem gravados para cada fluxo no arquivo ASF de saída. Para codificar aplicativos executados no Windows Vista, você deve configurar manualmente a topologia de codificação criando e configurando o coletor de mídia ASF e adicionando-o à topologia. No Windows 7, se você estiver usando os objetos transcodificados rápidos para criar a topologia, não terá criado o coletor de mídia diretamente e o aplicativo não chamará nenhum método no coletor de mídia ou qualquer um dos coletores de fluxo. Os objetos transcodificados rápidos instanciam os coletores de mídia necessários e os adicionam à topologia antes de retornar uma referência ao aplicativo chamador. No entanto, para objetos transcodificados rápidos, há algumas restrições que se aplicam dependendo do tipo de codificação.

Modelo de objeto coletor de mídia ASF

Os coletores de mídia do ASF implementam a interface IMFMediaSink e expõem as interfaces a seguir. Um aplicativo pode obter uma referência a essas interfaces chamando QueryInterface no coletor de mídia ASF que está usando para gerar exemplos de saída.

Interface Descrição
IMFMediaSink Necessário para todos os coletores de mídia.
IMFFinalizableMediaSink Implementado pelo coletor de arquivos ASF que grava o conteúdo de mídia gerado em um arquivo. Você pode usar os métodos nessa interface para liberar dados e atualizar o Objeto de Cabeçalho ASF do arquivo de saída final.
IMFClockStateSink Recebe notificações de alteração de estado do relógio de apresentação.
IMFASFContentInfo O objeto ContentInfo do ASF é um objeto de nível WMContainer que armazena principalmente informações de objeto de cabeçalho ASF. Isso é usado para criar coletores de mídia ASF.
IMFMetadata Usado para descrever os metadados do arquivo ASF.
IMFMetadataProvider Recupera uma coleção de metadados, seja para uma apresentação inteira ou para um fluxo na apresentação.

 

Coletor de Arquivos ASF

O coletor de arquivos ASF é uma implementação do IMFMediaSink fornecida pelo Media Foundation que um aplicativo pode usar para arquivar dados de mídia ASF em um arquivo.

Você precisa criar, configurar e chamar métodos no coletor de arquivos ou em qualquer um de seus coletores de fluxo se estiver usando os objetos de camada de pipeline para gravar um novo arquivo ASF. Depois de configurar o coletor de arquivos, você pode adicioná-lo ao pipeline de codificação.

Estas são as etapas gerais para usar o coletor de arquivos ASF:

  1. Crie o coletor de arquivos em processo ou fora do processo.
  2. Configure o coletor de arquivos com todos os fluxos, propriedades de codificação e informações de metadados.
  3. Associe o coletor de arquivos ao nó de topologia de saída enumerando os coletores de fluxo ou mantendo o controle dos números de fluxo com no coletor.

Os tópicos a seguir contêm informações detalhadas sobre como trabalhar com o coletor de arquivos ASF:

Componentes ASF da camada de pipeline

Suporte do ASF no Media Foundation