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

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

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

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

Кодеки Windows Media