У меня есть проект, который использует libmpv с виджетом opengl (в соответствии с примерами, поставляемыми с libmpv) вместе с виджетом QtWebEngine, который отображает информацию, графику и анимацию (например, тикер прокрутки).
Я обнаружил, что из опций воспроизведения видео в Qt mpv был самым плавным и надежным. Он будет отлично воспроизводить любое видео до 1080p.
Однако во время воспроизведения видео все анимации в QtWebEngine не являются плавными и нервными. Видео также немного менее плавное, когда что-то движется на веб-странице.
Система, с которой я тестирую, не борется за ресурсы (загрузка процессора составляет около 45%). Также нет никакого декодирования видео, поскольку оно воспроизводит необработанное видео (но пока оно воспроизводит закодированное видео, эффект одинаков, независимо от того, включено аппаратное ускорение или нет).
Я полагаю, что виджет mpv прерывает поток MainWindow, пока он обрабатывает кадры, и заставляет его зависать каждые несколько миллисекунд.
Насколько я знаю, нет никакого способа отделить поток mpv от потока MainWindow.
Не знаю, удастся ли сделать так, чтобы mpv и webengine работали без сбоев. Я чувствую, что должен быть какой-то способ запустить два виджета одновременно в одном окне, чтобы они не мешали друг другу.
Я тестирую с Ubuntu 18.04, QT 5.11 и последним mpv из git.
У кого-нибудь есть какие-либо советы или указания относительно того, что попробовать в первую очередь? Я понимаю, что это довольно широкий вопрос, но мои знания графики ограничены. Если у кого-то есть совет на концептуальном уровне (мне не нужно, чтобы кто-то кодировал мне исправление), я могу исследовать себя.
Спасибо.