Panoramica della codifica in Media Foundation
Questo argomento è una panoramica delle API di codifica dei file fornite in Microsoft Media Foundation.
Terminologia
La codifica è un termine generale che copre diversi processi distinti:
- Codifica di un flusso audio o video in formati compressi. Ad esempio, codificare un flusso video nel video H.264.
- Multiplexing ("muxing") uno o più flussi in un singolo flusso di byte. In genere, i flussi in ingresso vengono codificati per primo. Questo passaggio potrebbe comportare la creazione di pacchetti dei flussi codificati.
- Scrittura di un flusso di byte multiplexed in un file, ad esempio un file MP4 o Advanced Systems Format (ASF). In alternativa, il flusso multiplexed può essere inviato tramite la rete.
Il diagramma seguente illustra questi tre processi:
Le varianti di questo processo includono la transcodatura e la remuxing:
- La trascodazione significa decodificare un file esistente, codificare nuovamente i flussi e ri-multiplexing dei flussi codificati. La trascodazione potrebbe essere eseguita per convertire un file da un tipo di codifica a un altro; ad esempio, per convertire il video H.264 in Windows Media Video (WMV). Può essere fatto anche per modificare la velocità di bit codificata; dimensioni del fotogramma video; frequenza dei fotogrammi; o altri parametri di formato.
- Remultiplexing o remuxing significa demultiplexing di un file e ri-multiplexing dei flussi, senza alcun passaggio decodifica/codifica. Questa operazione può essere eseguita per modificare il modo in cui i pacchetti audio/video sono multipli, per rimuovere un flusso o per combinare flussi da due file di origine diversi.
- La transratzione è un caso speciale di transcodatura, in cui la velocità di bit viene modificata senza modificare il tipo di compressione. Ad esempio, è possibile convertire un file a velocità elevata a bit in una frequenza di bit inferiore. Uno scenario tipico in cui la transratizzazione può essere usata quando si sincronizza il contenuto multimediale da un PC a un dispositivo portatile. Se il dispositivo portatile non supporta una frequenza di bit elevata, il file potrebbe essere traslitterato prima che venga copiato nel dispositivo portatile.
Il diagramma a blocchi seguente mostra il processo di transcodifica.
Il diagramma a blocchi seguente illustra il processo di remuxing.
Questa documentazione a volte usa la codifica del termine per includere la transcodatura e la remuxing. Quando è importante distinguere tra di essi, la documentazione noterà la differenza.
Vedere anche : Media Foundation: Concetti essenziali.
Architettura di codifica Media Foundation
Al livello più basso dell'architettura di Media Foundation, i tipi di componente seguenti vengono usati per la codifica:
- Per la transcodatura, le origini multimediali vengono usate per demultiplex il file di origine.
- Per il processo di codifica, le trasformazioni di Media Foundation vengono usate per decodificare e codificare i flussi.
- Per il processo di multiplexing, i sink multimediali vengono usati per multiplexing dei flussi e scrivere il flusso multiplexed in un file o in una rete.
Il diagramma seguente illustra il flusso di dati tra questi componenti in uno scenario di transcoding:
La maggior parte delle applicazioni non userà direttamente questi componenti. In alternativa, un'applicazione userà API di livello superiore che gestiscono questi componenti di livello inferiore. Media Foundation offre due API di livello superiore per la codifica:
-
La sessione multimediale fornisce una pipeline end-to-end che sposta i dati dall'origine multimediale, tramite i codec e infine nel sink multimediale. L'applicazione controlla la sessione multimediale e riceve gli eventi di stato dalla sessione multimediale.
-
Il lettore di origine esegue il wrapping dell'origine multimediale e facoltativamente i decodificatori. Fornisce esempi codificati o decodificati dell'applicazione. Il writer sink esegue il wrapping del sink multimediale e facoltativamente i codificatori. L'applicazione passa esempi al writer sink.
Il diagramma seguente mostra la sessione multimediale:
L'API Transcode (la casella ombreggiata blu) è un set di API introdotte in Windows 7, che semplificano la configurazione della sessione multimediale per la codifica.
Il diagramma successivo mostra il writer lettore di origine e sink:
Argomenti correlati