доступ к кадрам в видео проигрывателе WPF - PullRequest
2 голосов
/ 23 января 2012

Какой самый простой способ получить индивидуальную частоту кадров видео, просмотреть кадры видео и настроить своего рода буфер кадров для предварительной загрузки последующих кадров с помощью видеопроигрывателя, созданного в WPF? Я знаю о DirectShow, но он кажется более полезным для людей, которые хотят изменить кадры видео. Я просто хочу иметь возможность пошагово просматривать видео по кадрам, переходить к определенному кадру и нормализовать частоту кадров для нескольких видео, воспроизводимых одновременно (например, три видео со скоростью 10 кадров в секунду, 20 кадров в секунду и 30 кадров в секунду соответственно играть одновременно со скоростью 10 к / с).

Ответы [ 2 ]

2 голосов
/ 31 июля 2016

В MSDN информация о пошаговом кадре скрыта в нижней части страницы, связанной с операцией очистки 1 :

https://msdn.microsoft.com/en-us/library/windows/desktop/ee892370(v=vs.85).aspx

Приложение может выполнять пошаговую смену кадров, устанавливая воспроизведение оценить до нуля, а затем передать PROPVARIANT, который установлен в VT_EMPTY в вызов IMFMediaSession :: Start.

Конечно, это COM interfaces, и ссылка говорит о Enhanced Video Renderer (EVR) и Windows Media Foundation, которые вряд ли готовы просто зайти в ваше приложение WPF. Я понимаю, что это то, что искал спрашивающий.

Так что я думаю, что ответ заключается в том, что, хотя это довольно гигантская задача, можно пошагово настроить видео в WPF, выполнив p / Invoking для DirectShowLib.dll, чтобы получить доступ к Media Foundataion и EVR. См. WpfMediaKit, упомянутый в другом месте на этой странице.


[edit:] дополнительная информация о пошаговом просмотре кадра здесь: https://msdn.microsoft.com/en-us/library/windows/desktop/bb530107(v=vs.85).aspx#implementingframestepping

1: управление просмотром видеофайла с помощью толчкового режима

0 голосов
/ 23 января 2012

Боюсь, медиаплеер для wpf не делает то, что вам нужно.Самое близкое, что он делает - это позволяет искать конкретное время, а не кадр.

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

Чтобы получить покадровое управление различными кодеками, вам придется использовать ffmpeg , который не настроен для wpf

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...