Obtendo estatísticas de codificação (Microsoft Media Foundation)
As informações sobre o que está acontecendo em uma sessão de codificação geralmente estão disponíveis imediatamente na forma de códigos de erro retornados ao processar amostras. No entanto, há algumas estatísticas que você pode recuperar do codec sobre vários aspectos de codificação.
Informações de quadro de vídeo
Algumas estatísticas de vídeo que você pode recuperar lidam com o número de quadros processados pelo codificador. Há três propriedades de número de quadro que você pode ler no codificador de vídeo:
- MFPKEY_TOTALFRAMES é o número de quadros processados por meio do fluxo de entrada do DMO.
- MFPKEY_CODEDFRAMES é o número de quadros codificados. Ao subtrair esse valor do número total de quadros passados, você pode determinar quantos quadros foram removidos.
- MFPKEY_ZEROBYTEFRAMES é o número de quadros não codificados porque eles duplicaram o conteúdo já incluído. Esse valor não é subtraído do número de quadros codificados relatados pelo DMO.
Você pode ler as propriedades do quadro de vídeo a qualquer momento durante a codificação. Isso pode ser útil para determinar se as configurações de codificação são apropriadas para seu conteúdo; se houver uma grande diferença entre quadros totais e quadros codificados, o conteúdo compactado poderá não atender aos seus requisitos de qualidade. Você pode ler os valores finais depois de concluir a codificação.
Estatísticas do buffer VBR
Dependendo do modo de codificação usado, algumas ou todas as configurações de buffer podem ser determinadas durante a codificação (por exemplo, a taxa de bits da VBR baseada em qualidade não é conhecida até que o conteúdo seja codificado). Há quatro propriedades de buffer VBR que você pode obter usando o método IPropertyBag::Read :
- MFPKEY_RAVG é a taxa média de bits do conteúdo da VBR.
- MFPKEY_BAVG é a janela de buffer para a taxa média de bits.
- MFPKEY_RMAX é a taxa de bits de pico do conteúdo da VBR.
- MFPKEY_BMAX é a janela de buffer de pico.
Depois de começar a processar exemplos, você não deve ler nenhuma das propriedades da VBR até terminar de codificar o fluxo. Se você fizer isso, o codificador interpretará sua solicitação como um sinal de que a codificação está concluída. O próximo exemplo que você processar é tratado como uma nova sessão de codificação.
Tópicos relacionados