Media Player c # плагин, Измененное событие не запускается при правильном fps? - PullRequest
0 голосов
/ 04 октября 2011

Я пытаюсь использовать класс System.Windows.Media.MediaPlayer для воспроизведения и захвата видеофайлов.Это для приложения камеры безопасности, и здесь нет никаких проблем с авторскими правами - на самом деле, я делаю это так, потому что я хочу получить доступ к полной библиотеке кодеков Windows Media Player для открытия файлов AVI (и других форматов тоже).

Я думал, что у меня все работает отлично.Я прикреплял событие к mediaPlayer.Changed и использовал DrawingContext и т. Д. Для захвата и сохранения кадра.

Однако я только что обнаружил, что .Changed не всегда срабатывает для каждого кадра.Если скорость видео ниже 6 к / с, кажется, что он работает нормально, но выше этого значения «Чангед» не запускает более 6-7 к / с.Похоже, что он падает каждый третий кадр в случае видео 10 кадров в секунду.Я также попробовал его на 25-мегапиксельном файле со скоростью 25 к / с, и он достиг скорости захвата 12 к / с.

Я не думаю, что это проблема с компьютерными ресурсами, так как машины, которые я использую, являются i7s с большим количеством оперативной памяти.Кроме того, если я изменю mediaplayer.SpeedRatio = 0.5, скорость воспроизведения упадет до половины, но скорость захвата тоже снизится, и та же пропорция кадров упадет.

Есть ли какой-то параметр, который я должен изменить (илиэто ошибка медиаплеера?)

...