Partilhar via


Visão geral do sistema DirectShow

[O recurso associado a esta página, DirectShow, é um recurso herdado. Foi substituído por MediaPlayer, IMFMediaEnginee Audio/Video Capture in Media Foundation. Esses recursos foram otimizados para Windows 10 e Windows 11. A Microsoft recomenda vivamente que o novo código utilize MediaPlayer, IMFMediaEngine e Captura de Áudio/Vídeo no Media Foundation em vez de DirectShow, quando possível. A Microsoft sugere que o código existente que usa as APIs herdadas seja reescrito para usar as novas APIs, se possível.]

O Desafio da Multimédia

Trabalhar com multimédia apresenta vários desafios importantes:

  • Os fluxos multimédia contêm grandes quantidades de dados, que devem ser processados muito rapidamente.
  • O áudio e o vídeo devem ser sincronizados para que iniciem e parem ao mesmo tempo e sejam reproduzidos na mesma velocidade.
  • Os dados podem vir de muitas fontes, incluindo arquivos locais, redes de computadores, transmissões de televisão e câmeras de vídeo.
  • Os dados vêm em uma variedade de formatos, como Audio-Video Interleaved (AVI), Advanced Streaming Format (ASF), Motion Picture Experts Group (MPEG) e Digital Video (DV).
  • O programador não sabe de antemão quais dispositivos de hardware estarão presentes no sistema do usuário final.

A Solução DirectShow

O DirectShow foi projetado para enfrentar cada um desses desafios. Seu principal objetivo de design é simplificar a tarefa de criar aplicativos de mídia digital na plataforma Windows, isolando os aplicativos das complexidades de transporte de dados, diferenças de hardware e sincronização.

Para obter a taxa de transferência necessária para transmitir vídeo e áudio, o DirectShow usa Direct3D e DirectSound sempre que possível. Essas tecnologias processam dados de forma eficiente para as placas de som e gráficas do usuário. O DirectShow sincroniza a reprodução encapsulando dados de mídia em amostras com carimbo de tempo. Para lidar com a variedade de fontes, formatos e dispositivos de hardware possíveis, o DirectShow usa uma arquitetura modular, na qual o aplicativo combina diferentes componentes de software chamados filtros.

O DirectShow fornece filtros que suportam dispositivos de captura e ajuste baseados no WDM (Windows Driver Model), bem como filtros que suportam placas de captura de vídeo para Windows (VfW) mais antigas e codecs escritos para as interfaces ACM (Audio Compression Manager) e VCM (Video Compression Manager).

O diagrama a seguir mostra a relação entre um aplicativo, os componentes do DirectShow e alguns dos componentes de hardware e software suportados pelo DirectShow.

arquitetura de alto nível

Como ilustrado aqui, os filtros DirectShow se comunicam e controlam uma ampla variedade de dispositivos, incluindo o sistema de arquivos local, sintonizador de TV e placas de captura de vídeo, codecs VfW, a exibição de vídeo (através de DirectDraw ou GDI) e a placa de som (através de DirectSound). Assim, DirectShow isola o aplicativo de muitas das complexidades desses dispositivos. O DirectShow também fornece filtros nativos de compactação e descompactação para determinados formatos de arquivo.

Sobre o DirectShow