Configurazione di flussi video

I flussi video sono più flessibili nella loro configurazione rispetto ai flussi audio. Ciò è dovuto al fatto che le proprietà dei fotogrammi che costituiscono il video possono variare ampiamente da un file al successivo. Quando si recupera il formato codec per il codec usato, è necessario impostare i valori seguenti per gli oggetti di configurazione del flusso video.

Valore Descrizione
Velocità in bit Chiamare IWMStreamConfig::SetBitrate per impostare sul valore desiderato. Il codec video tenterà di comprimere i supporti per soddisfare le specifiche. Se i valori sono troppo bassi, il video compresso risultante sarà molto degradato.
Finestra buffer Chiamare IWMStreamConfig::SetBufferWindow per impostare sul valore desiderato. Il codec video tenterà di comprimere i supporti per soddisfare le specifiche. Se i valori sono troppo bassi, il video compresso risultante sarà molto degradato.
WMVIDEOINFOHEADER.rcSource L'angolo superiore sinistro deve essere impostato su 0.0. L'angolo inferiore destro deve essere impostato sulle dimensioni del fotogramma. Ad esempio, in un flusso 640x480, queste impostazioni saranno 0.0.640.480.
WMVIDEOINFOHEADER.rcTarget Deve corrispondere a rcSource.
WMVIDEOINFOHEADER.dwBitRate Deve corrispondere alla frequenza di bit impostata per il flusso.
WMVIDEOINFOHEADER. AvgTimePerFrame Impostare sul tempo approssimativo per intervallo.
BITMAPINFOHEADER.biWidth Impostare sulla larghezza, in pixel, delle dimensioni del fotogramma desiderate.
BITMAPINFOHEADER.biHeight Impostare sull'altezza, in pixel, delle dimensioni desiderate del frame.

 

Il contenuto video non viene riprodotto correttamente a meno che non sia codificato in una dimensione che sia un multiplo di quattro per la larghezza e l'altezza. L'eccezione è video non compresso RGB , che può essere qualsiasi dimensione. Se si tenta di impostare una dimensione che non è un multiplo di quattro, uno degli errori seguenti verrà restituito dal writer:

  • NS_E_INVALID_INPUT_FORMAT
  • NS_E_INVALID_OUTPUT_FORMAT
  • NS_E_INVALIDPROFILE

Se si usa la codifica a velocità di bit variabile, potrebbe essere necessario apportare altre modifiche. Per altre informazioni, vedere Configurazione dei flussi VBR.

Alcuni codec di Windows Media Video supportano più livelli di complessità. I livelli di complessità determinano gli algoritmi usati dal codec durante la codifica di un flusso video. L'uso di un livello elevato di complessità richiederà una maggiore potenza di elaborazione per la codifica e la decodifica.

Ogni codec che supporta le impostazioni di complessità espone le impostazioni seguenti che è possibile recuperare con il metodo IWMCodecInfo3::GetCodecProp .

Impostazione Descrizione
g_wszComplexityMax Livello di qualità massimo supportato dal codec.
g_wszComplexityOffline Livello di qualità consigliato per la riproduzione offline.
g_wszComplexityLive Livello di qualità consigliato per la riproduzione in streaming.

 

Per impostare la complessità per un flusso video in un profilo, usare il metodo IWMPropertyVault::SetProperty usando la proprietà g_wszComplexity. Il valore impostato deve essere minore o uguale alla complessità massima supportata per il codec.

Configurazione comune a tutti i flussi

Configurazione dei flussi

Impostazioni di complessità video