Condividi tramite


Configurazione di flussi video

[La funzionalità associata a questa pagina, Windows Media Format 11 SDK, è una funzionalità legacy. È stata sostituita da Lettore di Origine e Writer Sink. lettore di origine e sink writer sono stati ottimizzati per Windows 10 e Windows 11. Microsoft consiglia vivamente che il nuovo codice usi Source Reader e Sink Writer invece di Windows Media Format 11 SDK, quando possibile. Microsoft suggerisce che il codice esistente che usa le API legacy venga riscritto per usare le nuove API, se possibile.

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

Valore Descrizione
Velocità in bit Chiamare IWMStreamConfig::SetBitrate per impostare il 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 il 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 frame. Ad esempio, in un flusso 640x480, queste impostazioni saranno 0,0,640,480.
WMVIDEOINFOHEADER.rcTarget Deve corrispondere a rcSource.
WMVIDEOINFOHEADER.dwBitRate Deve corrispondere alla velocità di bit impostata per il flusso.
WMVIDEOINFOHEADER.AvgTimePerFrame Impostare il tempo approssimativo per fotogramma.
BITMAPINFOHEADER.biWidth Impostare la larghezza, espressa in pixel, delle dimensioni desiderate del fotogramma.
BITMAPINFOHEADER.biHeight Impostare l'altezza, in pixel, della dimensione del frame desiderato.

 

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

  • NS_E_INVALID_INPUT_FORMAT
  • FORMATO_OUTPUT_NON_VALIDO_NS
  • NS_E_PROFILO_NON_VALIDO

Se si usa la codifica a velocità in bit variabile, potrebbe essere necessario apportare altre modifiche. Per ulteriori informazioni, vedere Configurare i flussi VBR.

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

Ogni codec che supporta 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à di 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 di flussi

impostazioni di complessità video