Condividi tramite


Per configurare Quality-Based VBR

[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 Writer sink sono stati ottimizzati per Windows 10 e Windows 11. Microsoft consiglia vivamente che il nuovo codice usi Lettore di origine e Writer sink anziché 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.

È possibile usare la codifica VBR (Quality-Based Bit Rate) in un flusso per specificare un livello di qualità che verrà mantenuto per l'intero flusso, indipendentemente dai requisiti di velocità a bit risultanti.

Per i flussi video VBR basati sulla qualità, è necessario specificare un livello di qualità compreso tra 1 e 100, con 100 che rappresentano la qualità più elevata. Attualmente sono presenti solo 30 impostazioni di qualità discrete. I livelli di qualità seguenti equivalgono alle impostazioni di qualità discrete: 1, 4, 8, 11, 15, 18, 22, 25, 29, 33, 36, 40, 43, 47, 50, 54, 58, 61, 65, 68, 72, 75, 79, 83, 86, 90, 93, 97, 100. I numeri tra due valori consecutivi nell'elenco precedente corrispondono alla stessa impostazione di qualità del numero inferiore. Ad esempio, sono elencati 1 e 4, quindi 2 e 3 comportano la stessa impostazione di qualità di 1.

Per i flussi audio, è possibile enumerare le modalità disponibili e recuperare un oggetto di configurazione del flusso. Per altre informazioni, vedere Enumerare i formati di codec.

Quando si usa un video VBR basato sulla qualità, è necessario impostare il membro dwBitrate della struttura WMVIDEOINFOHEADER su un valore positivo. Questo valore non viene usato dal writer, ma passando zero o un numero negativo può causare errori durante la scrittura.

Per configurare un flusso in un profilo da codificare con VBR basato sulla qualità, seguire questa procedura.

  1. Creare un oggetto profile manager chiamando la funzione WMCreateProfileManager .
  2. Aprire un profilo esistente a cui si vuole aggiungere il supporto VBR. Per altre informazioni sull'apertura dei profili, vedere Uso dei profili.
  3. Ottenere un oggetto di configurazione del flusso per il flusso che si vuole usare chiamando IWMProfile::GetStream o IWMProfile::GetStreamByNumber.
  4. Ottenere un puntatore all'interfaccia IWMPropertyVault dell'oggetto di configurazione del flusso chiamando IWMStreamConfig::QueryInterface.
  5. Abilitare VBR per il flusso chiamando IWMPropertyVault::SetProperty per la proprietà g_wszVBREnabled .
  6. Impostare il livello di qualità per il flusso VBR chiamando IWMPropertyVault::SetProperty per la proprietà g_wszVBRQuality .
  7. Impostare g_wszVBRBitrateMax e g_wszVBRBufferWindowMax sia su zero con IWMPropertyVault::SetProperty.
  8. Salvare le modifiche apportate al flusso chiamando IWMProfile::ReconfigStream.
  9. Salvare il profilo o passarlo all'oggetto writer e iniziare a scrivere.

Configurazione dei flussi VBR