Отображение нескольких видео на пользовательском интерфейсе блокировки Panels - с помощью Refresh() / Invalidate()

Я пытаюсь показать 32 разных видео (768 * 532 pixels а также 25 fps) в заявлении в виде двух 4x4 дисплеи. Каждое видео отображается на Player класс, который имеет Panel объект.
Я получаю потоки RTP из сети и конвертирую их в растровое изображение, используя FFmpeg и установите растровые изображения в качестве фоновых изображений панели, а затем Refresh() панель.
Когда количество отображаемых видео увеличивается (17-18), пользовательский интерфейс начинает блокироваться, он не отвечает.
Тогда я использую Invalidate()на этот раз пользовательский интерфейс не блокируется, он реагирует на любые события даже для 32 дисплеев, но после 17-18 дисплеев не может догнать частоту обновления (25fps). Видео отображаются путем пропуска некоторых кадров.
Я устанавливаю фоновые изображения Panelи обновлять их в разных темах. Нужно ли делать одно обновление для всех панелей. Или использовать другой метод освежения?
Любая помощь будет оценена, спасибо.

0 ответов

Другие вопросы по тегам