Condividi tramite


Architettura dei servizi di modifica DirectShow

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

[Questa API non è supportata e potrebbe essere modificata o non disponibile in futuro.]

La figura seguente illustra l'architettura di DirectShow Editing Services (DES).

architettura dei servizi di modifica directshow

  • Sequenza temporale: rappresenta una produzione video come raccolta di clip di origine, transizioni ed effetti, organizzati in un set di tracce annidate. Per altre informazioni, vedere Modello sequenza temporale.
  • Parser XML: analizza la sequenza temporale e genera un file di output oppure legge un file di input e genera una sequenza temporale. DES supporta un formato di persistenza basato su XML.
  • Motore di rendering: converte la sequenza temporale in un modulo di cui è possibile eseguire il rendering come supporto di streaming. Per impostazione predefinita, il motore di rendering produce un grafico di filtro DirectShow (vedere la sezione successiva).
  • Localizzatore multimediale: mantiene una cache di posizioni degli elementi multimediali. Quando un tentativo di apertura di un elemento multimediale ha esito negativo, DES usa la cache per individuare l'elemento, in base a una cronologia di apertura riuscita.

La sequenza temporale è una descrizione astratta di un progetto di modifica video. Specifica le clip di origine utilizzate nel progetto, i tempi di avvio e arresto, gli effetti e le transizioni e così via. La sequenza temporale non esegue tuttavia il rendering dei flussi video e audio. Al contrario, il motore di rendering converte la sequenza temporale in un grafico di filtro, per l'output di anteprima o file. Un'applicazione modifica la sequenza temporale anziché modificare direttamente il grafico dei filtri, che sarebbe complesso e soggetto a errori.

La tabella seguente elenca le attività principali eseguite da una tipica applicazione di modifica video, insieme alle interfacce che supportano ogni attività. Le sezioni successive descrivono queste attività e le interfacce in modo più dettagliato.

Attività Interfacce
Costruire o modificare una sequenza temporale. IAMTimeline e le altre interfacce IAMTimelineXXXX
Salvare e caricare i file di progetto. IXml2Dex
Visualizzare in anteprima un progetto o scriverlo in un file. IRenderEngine, ISmartRenderEngine

 

Inoltre, un'applicazione può eseguire alcune o tutte le attività secondarie seguenti.

Attività Interfacce
Ottenere informazioni sui file multimediali. (Numero di flussi; formato e durata di ogni flusso). IMediaDet
Impostare le proprietà sulle transizioni e sugli effetti. IPropertySetter
Ricevere una notifica quando si verificano errori durante il rendering. IAMSetErrorLog, IAMErrorLog
Recuperare i fotogrammi poster. IMediaDet, ISampleGrabber

 

Introduzione con DirectShow Editing Services