Compartilhar via


Para configurar Quality-Based VBR

[O recurso associado a esta página, Windows Media Format 11 SDK, é um recurso herdado. Ele foi substituído por Leitor de Origem e Gravador de Coletor. O Leitor de Origem e o Gravador do Coletor foram otimizados para Windows 10 e Windows 11. A Microsoft recomenda fortemente que o novo código use o Leitor de Origem e o Gravador do Coletor em vez do SDK do Windows Media Format 11, quando possível. A Microsoft sugere que o código existente que usa as APIs herdadas seja reescrito para usar as novas APIs, se possível.]

Você pode usar a codificação de VBR (taxa de bits variável) baseada em qualidade em um fluxo para especificar um nível de qualidade que será mantido para todo o fluxo, independentemente dos requisitos de taxa de bits resultantes.

Para fluxos de vídeo VBR baseados em qualidade, você deve especificar um nível de qualidade de 1 a 100, com 100 representando a mais alta qualidade. Atualmente, há apenas 30 configurações de qualidade discretas. Os seguintes níveis de qualidade equivalem a configurações de qualidade discretas: 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. Os números entre dois valores consecutivos na lista anterior equivalem à mesma configuração de qualidade que o número inferior. Por exemplo, 1 e 4 são listados, portanto, 2 e 3 resultam na mesma configuração de qualidade que 1.

Para fluxos de áudio, você pode enumerar os modos disponíveis e recuperar um objeto de configuração de fluxo. Para obter mais informações, consulte Para enumerar formatos codec.

Ao usar o vídeo VBR baseado em qualidade, você deve definir o membro dwBitrate da estrutura WMVIDEOINFOHEADER como um valor positivo. Esse valor não é usado pelo gravador, mas passar zero ou um número negativo pode causar erros ao gravar.

Para configurar um fluxo em um perfil a ser codificado com VBR baseada em qualidade, execute as etapas a seguir.

  1. Crie um objeto do gerenciador de perfil chamando a função WMCreateProfileManager .
  2. Abra um perfil existente ao qual você deseja adicionar suporte à VBR. Para obter mais informações sobre como abrir perfis, consulte Trabalhando com perfis.
  3. Obtenha um objeto de configuração de fluxo para o fluxo que você deseja usar chamando IWMProfile::GetStream ou IWMProfile::GetStreamByNumber.
  4. Obtenha um ponteiro para a interface IWMPropertyVault do objeto de configuração de fluxo chamando IWMStreamConfig::QueryInterface.
  5. Habilite a VBR para o fluxo chamando IWMPropertyVault::SetProperty para a propriedade g_wszVBREnabled .
  6. Defina o nível de qualidade para o fluxo de VBR chamando IWMPropertyVault::SetProperty para a propriedade g_wszVBRQuality .
  7. Defina g_wszVBRBitrateMax e g_wszVBRBufferWindowMax como zero com IWMPropertyVault::SetProperty.
  8. Salve as alterações feitas no fluxo chamando IWMProfile::ReconfigStream.
  9. Salve o perfil ou passe-o para o objeto writer e comece a gravar.

Configurando fluxos de VBR