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:

  1. Codifica di un flusso audio o video in formati compressi. Ad esempio, codificare un flusso video nel video H.264.
  2. 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.
  3. 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:

diagramma che mostra i processi di codifica e multiplexing

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.

diagramma che mostra il processo di transcoding

Il diagramma a blocchi seguente illustra il processo di remuxing.

diagramma che mostra 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:

Il diagramma seguente illustra il flusso di dati tra questi componenti in uno scenario di transcoding:

diagramma che mostra i componenti usati nella transcodifica

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:

Sessione multimediale

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.

Lettore di origine e writer sink

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:

diagramma che mostra come la sessione multimediale esegue la transcodatura

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:

diagramma che mostra la transcodatura con il lettore di origine e il writer sink

Codifica e creazione di file

Programmazione di Media Foundation: Concetti essenziali