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).
- 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 |
Argomenti correlati