Compartir a través de


Para configurar Quality-Based VBR

[La característica asociada a esta página, WINDOWS Media Format 11 SDK, es una característica heredada. Se ha reemplazado por lector de origen y escritor receptor. Lector de origen y escritor receptor se han optimizado para Windows 10 y Windows 11. Microsoft recomienda encarecidamente que el nuevo código use lector fuente y escritor receptor en lugar del SDK de Windows Media Format 11, siempre que sea posible. Microsoft sugiere que el código existente que usa las API heredadas se reescriba para usar las nuevas API si es posible.

Puede usar la codificación de velocidad de bits variable basada en calidad (VBR) en una secuencia para especificar un nivel de calidad que se mantendrá para toda la secuencia, independientemente de los requisitos de velocidad de bits resultantes.

Para las secuencias de vídeo vbR basadas en calidad, debe especificar un nivel de calidad de 1 a 100, con 100 que represente la máxima calidad. En la actualidad, solo hay 30 configuraciones de calidad discretas. Los siguientes niveles de calidad equivalen a valores de calidad discretos: 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. Los números entre dos valores consecutivos de la lista anterior equivalen al mismo valor de calidad que el número inferior. Por ejemplo, se muestran 1 y 4, por lo que 2 y 3 dan como resultado el mismo valor de calidad que 1.

En el caso de las secuencias de audio, puede enumerar los modos disponibles y recuperar un objeto de configuración de secuencia. Para obtener más información, vea Para enumerar formatos de códec.

Al usar vídeo VBR basado en calidad, debe establecer el miembro dwBitrate de la estructura WMVIDEOINFOHEADER en un valor positivo. El escritor no usa este valor, pero pasar cero o un número negativo puede provocar errores al escribir.

Para configurar una secuencia en un perfil que se va a codificar con VBR basado en calidad, realice los pasos siguientes.

  1. Cree un objeto de administrador de perfiles llamando a la función WMCreateProfileManager .
  2. Abra un perfil existente al que desea agregar compatibilidad con VBR. Para obtener más información sobre cómo abrir perfiles, vea Trabajar con perfiles.
  3. Obtenga un objeto de configuración de flujo para la secuencia que desea usar mediante una llamada a IWMProfile::GetStream o IWMProfile::GetStreamByNumber.
  4. Obtenga un puntero a la interfaz IWMPropertyVault del objeto de configuración de flujo mediante una llamada a IWMStreamConfig::QueryInterface.
  5. Habilite VBR para la secuencia llamando a IWMPropertyVault::SetProperty para la propiedad g_wszVBREnabled .
  6. Establezca el nivel de calidad de la secuencia de VBR llamando a IWMPropertyVault::SetProperty para la propiedad g_wszVBRQuality .
  7. Establezca g_wszVBRBitrateMax y g_wszVBRBufferWindowMax en cero con IWMPropertyVault::SetProperty.
  8. Guarde los cambios realizados en la secuencia llamando a IWMProfile::ReconfigStream.
  9. Guarde el perfil o páselo al objeto writer y empiece a escribir.

Configuración de secuencias de VBR