Per configurare VBR non vincolato

[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 (Unconstrained Variable Bit Rate) in un flusso per specificare una frequenza media di bit che verrà mantenuta nel contenuto codificato. VBR non vincolato differisce dalla normale CBR in quanto la varianza in velocità di bit in tutto il flusso può essere maggiore.

La frequenza di bit del flusso, impostata con IWMStreamConfig::SetBitrate, viene usata come velocità media media desiderata. Al termine della codifica del flusso, è possibile usare IWMPropertyVault::GetPropertyByName per recuperare due proprietà aggiuntive: g_wszVBRPeak e g_wszBufferAverage. Queste proprietà descrivono rispettivamente la frequenza di bit massima del contenuto codificato e la finestra media del buffer del contenuto.

La VBR non vincolata deve essere usata in combinazione con la codifica a due passaggi. La codifica a due passaggi non è impostata nel profilo. È necessario configurare il writer per eseguire un passaggio di pre-elaborazione prima di scrivere il flusso. Per altre informazioni sull'uso della codifica a due passaggi, vedere Uso della codifica Two-Pass.

Per configurare un flusso in un profilo da codificare con VBR non vincolato, 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 la codifica VBR per il flusso chiamando IWMPropertyVault::SetProperty per la proprietà g_wszVBREnabled .
  6. Impostare g_wszVBRBitrateMax e g_wszVBRBufferWindowMax sia su zero con IWMPropertyVault::SetProperty.
  7. Salvare le modifiche apportate al flusso chiamando IWMProfile::ReconfigStream.
  8. Salvare il profilo o passarlo all'oggetto writer.
  9. Configurare il writer per eseguire un passaggio di pre-elaborazione.

Configurazione dei flussi VBR