Visão geral da arquitetura do Media Foundation

Este tópico descreve o design geral do Microsoft Media Foundation. Para obter informações sobre como usar o Media Foundation para tarefas de programação específicas, consulte o Guia de Programação da Media Foundation.

O diagrama a seguir mostra uma exibição de alto nível da arquitetura do Media Foundation.

diagram showing a high-level view of the media foundation architecture.

O Media Foundation fornece dois modelos de programação distintos. O primeiro modelo, mostrado no lado esquerdo do diagrama, usa um pipeline de ponta a ponta para dados de mídia. O aplicativo inicializa o pipeline, por exemplo, fornecendo a URL de um arquivo a ser reproduzido e, em seguida, chama métodos para controlar o streaming. No segundo modelo, mostrado no lado direito do diagrama, o aplicativo efetua pull de dados de uma origem ou envia por push para um destino (ou ambos). Esse modelo é particularmente útil se você precisar processar os dados, pois o aplicativo tem acesso direto ao fluxo de dados.

Primitivos e Plataforma

A partir da parte inferior do diagrama, os primitivos são objetos auxiliares usados em toda a API do Media Foundation:

  • Os atributos são uma maneira genérica de armazenar informações dentro de um objeto, como uma lista de pares chave/valor.
  • Os Tipos de Mídia descrevem o formato de um fluxo de dados de mídia.
  • Os Buffers de Mídia contêm partes de dados de mídia, como quadros de vídeo e amostras de áudio, e são usados para transportar dados entre objetos.
  • Exemplos de mídia são contêineres para buffers de mídia. Eles também contêm metadados sobre os buffers, como carimbos de data/hora.

As APIs da Plataforma do Media Foundation fornecem algumas funcionalidades principais que são usadas pelo pipeline do Media Foundation, como retornos de chamada assíncronos e filas de trabalho. Alguns aplicativos podem precisar chamar essas APIs diretamente; além disso, você precisará deles se implementar uma fonte, uma transformação ou um coletor personalizado para o Media Foundation.

Pipeline de Mídia

O pipeline de mídia contém três tipos de objeto que geram ou processam dados de mídia:

  • Fontes de mídia introduzem dados no pipeline. Uma fonte de mídia pode obter dados de um arquivo local, como um arquivo de vídeo; de um fluxo de rede; ou de um dispositivo de captura de hardware.
  • As MFTs (Transformações do Media Foundation ) processam dados de um fluxo. Codificadores e decodificadores são implementados como MFTs.
  • Coletores de mídia consomem os dados; por exemplo, mostrando o vídeo na exibição, reproduzindo áudio ou gravando os dados em um arquivo de mídia.

Terceiros podem implementar suas próprias fontes personalizadas, coletores e MFTs; por exemplo, para dar suporte a novos formatos de arquivo de mídia.

A Sessão de Mídia controla o fluxo de dados por meio do pipeline e lida com tarefas como controle de qualidade, sincronização de áudio/vídeo e resposta a alterações de formato.

Leitor de Origem e Gravador de Coletor

O Leitor de Origem e o Gravador de Coletor fornecem uma maneira alternativa de usar os componentes básicos da Media Foundation (fontes de mídia, transformações e coletores de mídia). O leitor de origem hospeda uma fonte de mídia e zero ou mais decodificadores, enquanto o gravador do coletor hospeda um coletor de mídia e zero ou mais codificadores. Você pode usar o leitor de origem para obter dados compactados ou não compactados de uma fonte de mídia e usar o gravador do coletor para codificar dados e enviar os dados para um coletor de mídia.

Observação

O leitor de origem e o gravador de coletor estão disponíveis no Windows 7.

 

Esse modelo de programação fornece ao aplicativo mais controle sobre o fluxo de dados e também fornece ao aplicativo acesso direto aos dados da origem.

Media Foundation: conceitos essenciais

Arquitetura Media Foundation