Qt:一次显示实时视频,一帧

时间:2015-04-07 21:32:38

标签: c++ qt

我有一个解码的视频帧来自分布式总线。目前,我正在使用QLabel通过Qt Signal/Slot接收帧缓冲区并设置它的像素图。

void VideoViewer::slot_update_view( unsigned char* frame, QSize size )
{
        QImage img( frame, size.width(), size.height(), QImage::Format_RGB888 );
        _label->setPixmap( QPixmap::fromImage( img ).scaledToWidth( width(), Qt::SmoothTransformation ) );
}

这很有效,但使用QLabel感觉很骇人。有更好的解决方案吗?最后我想在视频之上画画。

1 个答案:

答案 0 :(得分:1)

我会说,使它不那么“hacky”和更健壮的最好方法是使用一些低级图像类而不是缓冲区的原始指针。例如,您可以使用one in OpenCV之类的表示。

使用普通缓冲区可能非常危险,而且很难跟踪错误。