Compartilhar via


Para enumerar formatos codec

[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 de 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 de 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.]

Um formato codec é um objeto de configuração de fluxo preenchido com dados de um codec. Cada formato de codec contém uma configuração de mídia compatível com o codec. A maioria dos codecs de áudio dá suporte a um número finito de formatos, cada um dos quais é enumerado pelo codec e pode ser acessado usando os métodos de IWMCodecInfo. Os codecs de vídeo, por outro lado, fornecem apenas um único formato. Isso ocorre porque os fluxos de vídeo têm variáveis, como o tamanho do quadro, que são mais flexíveis do que as configurações de um fluxo de áudio. Com um fluxo de vídeo, você deve preencher alguns dos valores de configuração de fluxo; As configurações de fluxo de áudio só devem ser editadas para atribuir um nome, um nome de conexão e um número de fluxo. Para obter mais informações, consulte Configuração comum a todos os fluxos.

Os formatos de codec enumerados dependem das configurações atuais de enumeração codec, que são definidas usando IWMCodecInfo3::SetCodecEnumerationSetting. Atualmente, há suporte para apenas duas propriedades codec: g_wszNumPasses, que especifica o número de passagens de codificação que o codec executará e g_wszVBREnabled, que especifica se o codec usará a codificação de taxa de bits variável. O número máximo de passagens de codificação com suporte por qualquer um dos codecs é dois, portanto, há quatro configurações distintas para as quais você pode recuperar codecs, conforme mostrado na tabela a seguir.

  Fluxo cbr (taxa de bits constante) Fluxo CBR de 2 pass Fluxo de VBR (taxa de bits variável baseada em qualidade) Fluxo VBR baseado em taxa de bits (restrito ou não treinado)
g_wszVBREnabled FALSE FALSE TRUE TRUE
g_wszNumPasses 1 2 1 2

 

Para enumerar os formatos com suporte para um codec, use IWMCodecInfo::GetCodecFormatCount para localizar o número de codecs com suporte. Em seguida, chame IWMCodecInfo::GetCodecFormat para cada formato. Os índices de formato variam de zero a um menor que o número total de formatos com suporte. Você pode recuperar uma descrição do formato chamando IWMCodecInfo2::GetCodecFormatDesc. Ao usar GetCodecFormatDesc, você não precisa usar GetCodecFormat, pois o objeto de configuração de fluxo é recuperado por ambos os métodos. Os formatos de codec de vídeo não incluem uma descrição. Cada codec de vídeo tem apenas um formato usado para todos os fluxos desse tipo.

Ao recuperar um formato codec, você obtém a interface IWMStreamConfig de um objeto de configuração de fluxo que contém as configurações de formato.

Obtendo informações de configuração de fluxo de codecs