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


Использование кодировки Two-Pass (Microsoft Media Foundation)

Двухпроходное кодирование можно использовать для константной скорости (CBR) и для кодирования переменной скорости (VBR) с некоторыми кодеками Windows Media. Чтобы узнать максимальное количество проходов кодирования, поддерживаемое кодеком, извлеките свойство MFPKEY_PASSESRECOMMENDED. Ни один из кодеков не поддерживает более двух проходов. Настройте DMO для использования двух проходов, установив для свойства MFPKEY_PASSESUSED значение 2.

Доставляйте образцы в кодировщик DMO по одному за раз, как это делается в режиме однократного прохода. При обработке входных примеров для предварительной обработки вызовы IMediaObject::ProcessInput или IMFTransform::ProcessInput возвращают значение S_FALSE, чтобы указать, что выходные данные не создаются.

В конце первого прохода (после обработки последних входных данных в первый раз) необходимо задать свойство MFPKEY_ENDOFPASS, чтобы уведомить кодек о том, что следующий ввод является первым вводом второго прохода. Для этого свойства не требуется никакого значения, поэтому следует использовать пустую структуру VARIANT.

Windows Media Codecs