【发布时间】:2014-09-10 13:19:02
【问题描述】:
我的输入源为 DVD 播放器,视频格式为 UYVY。我想开发一个 Qt 应用程序,它将 UYVY 数据作为输入并显示视频帧。我在 Qt 中使用 v4l2 Linux 命令进行捕获,使用 Qt 小部件显示视频帧。我猜 Qt QImage 类不接受 UYVY 格式,它只接受 RGB 。那么我如何将我的数据转换为 RGB?有没有其他方法??谢谢..
【问题讨论】:
我的输入源为 DVD 播放器,视频格式为 UYVY。我想开发一个 Qt 应用程序,它将 UYVY 数据作为输入并显示视频帧。我在 Qt 中使用 v4l2 Linux 命令进行捕获,使用 Qt 小部件显示视频帧。我猜 Qt QImage 类不接受 UYVY 格式,它只接受 RGB 。那么我如何将我的数据转换为 RGB?有没有其他方法??谢谢..
【问题讨论】:
我刚刚找到了支持 UYVY http://doc.qt.io/qt-5/qvideoframe.html 的 QVideoFrame,也许有一些方法可以使用 QVideoFrame::imageFormatFromPixelFormat 将其转换为 QImage
QVideoFrame cloneFrame(frame);
cloneFrame.map(QAbstractVideoBuffer::ReadOnly);
const QImage img(cloneFrame.bits(),
cloneFrame.width(),
cloneFrame.height(),
QVideoFrame::imageFormatFromPixelFormat(cloneFrame .pixelFormat()));
...
【讨论】: