2016-12-18 3 views
0

Я кодирую WPF + EmguCV 3.1.0, и я сталкиваюсь с некоторой проблемой производительности при воспроизведении видео. Разрешение входного потока - 1920 * 1800. Я использую ImageBox EmguCV для рендеринга каждого фрейма. Обновление пользовательского интерфейса выполняется в DispatcherTimer, который фиксирует каждые 1 мс.Проблема с выпуском emgucv с воспроизведением видео

Нет поддержки CUDA. Работает OpenCL + OpenCL GPU.

Результат - невыносимая медлительность при отображении каждого кадра. Это займет слишком много времени. Видео не является видео. Это похоже на просмотр кадра каждые 10 секунд или около того.

Любая идея о том, что может быть причиной?

С уважением

ответ

0

Я не попытался запустить в Imagebox в WindowsFormsHost в WPF на любой скорости. ImageBox довольно удобен при 30fps @ 1080p в простом приложении WinForm, которое я написал.

У меня есть приложение WPF, которое может работать удобно при 60fps @ 1080p, но я не использую ImageBox или объект WindowsFormsHost !!!!! Я использую Canvas и создаю объект BitmapSource из своего фрейма и назначаю его на фон Canvas.

Если я не прочитал ваш вопрос неправильно, вы пытаетесь обновить каждые 1 мс, это 1000 кадров в секунду, и нет возможности, чтобы он не отставал в этом. Я не знаю никакой комбинации процессора и видеокарты с самой высокой мощностью, которая может работать с такими частотами кадров в Windows! Я не уверен, что даже дисковая система на 12 Гбит/с будет подавать вам много кадров в секунду.

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

Doug