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 Guia de Programação do Media Foundation.
O diagrama a seguir mostra uma exibição de alto nível da arquitetura do Media Foundation.
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 fonte ou os 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.
- 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 Media Foundation Platform fornecem algumas funcionalidades principais 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, transformação ou 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.
- MFTs (Transformações de 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 vídeo na tela, 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 do 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 descompactados de uma fonte de mídia e usar o gravador de 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 dá ao aplicativo mais controle sobre o fluxo de dados e também fornece ao aplicativo acesso direto aos dados da origem.
Tópicos relacionados