Media Foundation поддержка внешних кодеков

Я написал программу с использованием Media Foundation API, которая берет AVI-файлы и декодирует их образцы видео в несжатые RGB-кадры.

Недавно я нашел файл AVI, который содержал аудио и видео дорожки, но проигрыватель Windows Media не воспроизводил видео дорожку (воспроизводилось аудио).

Я попытался открыть файл с помощью другого проигрывателя (Gom Player), и он предложил мне загрузить дополнительный пакет кодеков: LEAD MJPG / MCMP Video Codec. После его установки WMP начал декодировать и воспроизводить видео дорожки. Но после этого я снова не смог расшифровать файл с помощью MF API.

Я предполагаю, что Media Foundation ограничен тем, что поставляется Windows. Это правильно?

Кроме того, есть ли способ сказать Media Foundation для декодирования с использованием установленного извне кодека?

1 ответ

Решение

Media Foundation API обеспечивает расширяемость, однако приемлемые Media Foundation кодеки должны предлагать соответствующий формат: они должны быть доступны и зарегистрированы как преобразования Media Foundation. Это редкий случай, поскольку Media Foundation в целом не пользуется популярностью, и большинство загружаемых кодеков имеют интерфейс API DirectShow или API Video for Windows, но не интерфейс Media Foundation.

Если бы у вас был подходящий кодек, Media Foundation подобрал бы его.

Проигрыватель Windows Media пытается воспроизвести с помощью Media Foundation или, в случае сбоя, возвращается к DirectShow. Это объясняет, почему загружаемый кодек исправляет проигрыватель Windows Media, а не Media Foundation.

Другие вопросы по тегам