Я пишу видеоплеер, где мой код декодирует видео на необработанные кадры YCbCr. Что было бы самым быстрым способом вывода данных через фреймворк Qt? Я хочу, чтобы не копировал данные слишком много, поскольку изображения находятся в формате HD.Высокопроизводительный видео выход с Qt
Я боюсь, что преобразование цвета программного обеспечения в QImage будет медленным, и что позже QImage будет снова скопирован при рисовании в графический интерфейс.
Я имел взгляд на QAbstractVideoSurface и даже работает код, , но не может понять, как это происходит быстрее, так как в примере VideoWidget (http://idlebox.net/2010/apidocs/qt-everywhere-opensource-4.7.0.zip/multimedia-videowidget.html), рендеринг по-прежнему делается путем вызова QPainter :: DrawImage с QImage , который должен быть в RGB.
Предпочитаемое решение кажется мне доступным для аппаратной поверхности напрямую , в которое я мог бы декодировать YCbCr или, по крайней мере, напрямую преобразовывать RGB (с libswscale) в. Но я не вижу, как я мог это сделать (без использования OpenGL, что дало бы мне тоже бесплатное масштабирование).
Меня это интересует. Вот лучший способ, который я нашел до сих пор, но я хотел бы знать, есть ли какие-то лучшие способы. http://stackoverflow.com/questions/1242005/what-is-the-most-efficient-way-to-display-decoded-video-frames-in-qt –
Какая платформа? Вы декодируете в GPU? –
Phonon? - https://qt-project.org/doc/qt-4.8/phonon-overview.html –