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