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