Condividi tramite


Panoramica del sistema DirectShow

[La funzionalità associata a questa pagina, DirectShow, è una funzionalità legacy. È stata sostituita da MediaPlayer, IMFMediaEnginee Acquisizione audio/video in Media Foundation. Queste funzionalità sono state ottimizzate per Windows 10 e Windows 11. Microsoft consiglia vivamente di scrivere nuovo codice utilizzando MediaPlayer, IMFMediaEngine e Acquisizione audio/video in Media Foundation piuttosto che DirectShow, quando possibile. Microsoft suggerisce che il codice esistente che usa le API legacy venga riscritto per usare le nuove API, se possibile.

La sfida del multimedia

L'uso dei contenuti multimediali presenta diverse sfide principali:

  • I flussi multimediali contengono grandi quantità di dati, che devono essere elaborati molto rapidamente.
  • L'audio e il video devono essere sincronizzati in modo che vengano avviati e arrestati contemporaneamente e riprodotti contemporaneamente.
  • I dati possono provenire da molte origini, tra cui file locali, reti informatiche, trasmissioni televisive e videocamere.
  • I dati sono disponibili in diversi formati, ad esempio Audio-Video Interleaved (AVI), Advanced Streaming Format (ASF), Motion Picture Experts Group (MPEG) e Digital Video (DV).
  • Il programmatore non sa in anticipo quali dispositivi hardware saranno presenti nel sistema dell'utente finale.

La Soluzione DirectShow

DirectShow è progettato per affrontare ognuna di queste sfide. Il suo obiettivo principale è quello di semplificare l'attività di creazione di applicazioni multimediali digitali sulla piattaforma Windows, isolando le applicazioni dalle complessità dei trasporti dati, le differenze hardware e la sincronizzazione.

Per ottenere la velocità effettiva necessaria per trasmettere video e audio, DirectShow usa Direct3D e DirectSound ogni volta che possibile. Queste tecnologie eseguono il rendering dei dati in modo efficiente sulle schede grafiche e audio dell'utente. DirectShow sincronizza la riproduzione incapsulando i dati multimediali in esempi con timestamp. Per gestire l'ampia gamma di origini, formati e dispositivi hardware possibili, DirectShow usa un'architettura modulare, in cui l'applicazione combina e abbina diversi componenti software denominati filtri.

DirectShow fornisce filtri che supportano i dispositivi di acquisizione e sintonizzazione basati sul modello di driver Windows (WDM), nonché filtri che supportano le schede di acquisizione Video for Windows (VfW) di tecnologia meno recente e codec scritti per le interfacce Audio Compression Manager (ACM) e Video Compression Manager (VCM).

Il diagramma seguente illustra la relazione tra un'applicazione, i componenti DirectShow e alcuni dei componenti hardware e software supportati da DirectShow.

architettura di alto livello

Come illustrato qui, i filtri DirectShow comunicano con e controllano un'ampia gamma di dispositivi, tra cui il file system locale, il tuner TV e le schede di acquisizione video, i codec VfW, la visualizzazione video (tramite DirectDraw o GDI) e la scheda audio (tramite DirectSound). Di conseguenza, DirectShow isola l'applicazione da molte delle complessità di questi dispositivi. DirectShow fornisce anche filtri di compressione e decompressione nativi per determinati formati di file.

Informazioni su DirectShow