Поделиться через


Получение статистики кодирования (Microsoft Media Foundation)

Сведения о том, что происходит в сеансе кодирования, обычно доступны в виде кодов ошибок, возвращаемых при обработке примеров. Однако есть некоторые статистические данные, которые можно получить из кодека о различных аспектах кодирования.

Сведения о кадре видео

Некоторые статистические данные о видео, которые можно извлечь, касаются количества кадров, обработанных кодировщиком. Существует три свойства номера кадров, которые можно прочитать из кодировщика видео:

  • MFPKEY_TOTALFRAMES — количество кадров, обработанных во входном потоке DMO.
  • MFPKEY_CODEDFRAMES — это количество кадров, закодированных. Вычитая это значение из общего количества переданных кадров, можно определить, сколько кадров было удалено.
  • MFPKEY_ZEROBYTEFRAMES — это количество кадров, которые не закодированы, так как они уже включали дублированное содержимое. Это значение не вычитается из числа закодированных кадров, сообщаемых DMO.

Свойства видеокадров можно читать в любое время во время кодирования. Это может быть полезно для определения того, подходят ли параметры кодирования для вашего содержимого; если существует большая разница между общими кадрами и закодированными кадрами, сжатое содержимое может не соответствовать вашим требованиям к качеству. После завершения кодирования можно считывать окончательные значения.

Статистика буфера VBR

В зависимости от используемого режима кодирования некоторые или все параметры буфера могут быть определены во время кодирования (например, скорость передачи данных на основе качества VBR не известна, пока содержимое не закодировано). Существует четыре свойства буфера VBR, которые можно получить с помощью метода IPropertyBag::Read:

  • MFPKEY_RAVG — это средняя скорость передачи содержимого VBR.
  • MFPKEY_BAVG — это окно буфера для средней скорости битов.
  • MFPKEY_RMAX — это пиковая скорость передачи содержимого VBR.
  • MFPKEY_BMAX — это окно пикового буфера.

После начала обработки примеров не следует читать ни один из свойств VBR, пока не завершится кодирование потока. Если вы это сделаете, то кодировщик интерпретирует ваш запрос как сигнал о завершении кодирования. Следующий пример обработки рассматривается как новый сеанс кодирования.

Кодеки Windows Media