我想在QVideoWidget中显示QVideoFrame,可以吗? 我正在编写一个视频会议应用程序,并且我需要一种有效的方法来显示QVideoFrame,因为我可能需要同时显示几个(来自多个用户)。
我已经尝试过将视频帧转换为QImage,然后将其显示在QLabel中,但是该帧是颠倒的。这是我使用的代码:
QVideoFrame vf(frame); // frame is a QVideoFrame probed by a QVideoProbe
vf.map(QAbstractVideoBuffer::ReadOnly);
QImage img(vf.bits(), vf.width(), vf.height(), QVideoFrame::imageFormatFromPixelFormat(vf.pixelFormat()));
m_label->setPixmap(QPixmap::fromImage(img));
vf.unmap();
我猜想用QVideoWidget进行处理会效率更高,因为这是它的目的,但是我不知道它是如何工作的。我找到了一个用法示例,但这与我想做的事情(显示QVideoFrame)无关。
我在Windows 8.1和MSVC 2015上使用Qt 5.11。