Получить собственное видео разрешение видео файла - PullRequest
1 голос
/ 28 февраля 2011

В настоящее время я пишу несколько пользовательских EVR для проигрывателя Media Foundation.

Пока все работает, но мне нужно найти исходное разрешение видеофайла, который я рендеринг.

Я пытаюсь использовать интерфейс IBasicFilter2 для использования getVideoSize, get_VideoHeight или другого get_SourceWidth и т. Д. ... но он всегда возвращает мне E_NOINTERFACE ...

Так что у кого-то есть способ получения разрешения esayвидео файла?Даже если он с хорошей легкой библиотекой ... просто размером больше ничего ... Windows удается найти его в файловом браузере, но я совершенно не могу получить его из кода ...

Спасибо!

1 Ответ

0 голосов
/ 31 марта 2011

Вы можете использовать IMediaDet в DirectShow для получения информации о потоках в мультимедийном файле, включая разрешение видеопотоков.

Однако есть некоторые предупреждения, поэтому вам может потребоваться способ резервного копирования.

Вам нужны подходящие зарегистрированные фильтры DirectShow, которые понимают исследуемый медиафайл. Возможно, у вас установлен фильтр, который дает неправильные результаты - например, Фильтр только аудио зарегистрирован для типа мультимедиа, который игнорирует любые видеопотоки в файле.

В настоящее время это устарело без указания на справочной странице MSDN того, что заменяет эту функцию. Сборка также может быть затруднена, поскольку заголовки были удалены из Windows SDK.

Вот один из примеров, где этот метод не работает ... Получить длины потока MP4

...