Partilhar via


Dissipadores de mídia ASF

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

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

  • do coletor de arquivos ASF é usado para arquivar dados de mídia ASF em um arquivo.
  • do 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, que representam os dados a serem gravados para cada fluxo no arquivo ASF de saída. Para aplicativos de codificação 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 de transcodificação rápida para criar a topologia, você não tem criar o coletor de mídia diretamente e o aplicativo não chama nenhum método no coletor de mídia ou qualquer um dos coletores de fluxo. Os objetos de transcodificação rápida 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 de transcodificação rápida, existem algumas restrições que se aplicam dependendo do tipo de codificação.

Modelo de objeto do coletor de mídia ASF

Os coletores de mídia ASF implementam a interfaceIMFMediaSinke 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 amostras de saída.

Interface Descrição
IMFMediaSink Necessário para todos os dissipadores 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 ASF ContentInfo é 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.
FMIMetadata Usado para descrever os metadados para o 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 de IMFMediaSink fornecido pela 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 da 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.

Aqui estã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ó da topologia de saída enumerando os coletores de fluxo ou controlando os 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

Apoio ASF na Media Foundation