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.