Получение статистики кодирования (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, пока не завершится кодирование потока. В этом случае кодировщик интерпретирует запрос как сигнал о завершении кодирования. Следующий пример, который вы обрабатываете, рассматривается как новый сеанс кодирования.
Связанные темы