Ubuntu V4l2中摄像头输出Mjpeg数据在Qt中显示

被这个问题纠结了一天,我的山寨zc301摄像头只能输出mjpeg压缩的数据帧,然而网上绝大多数人都是yuv,教程大多是yuv转rgb24,mjpeg转rgb24的几乎没有,反正我是没找到,被逼的走投无路,尝试了下面的方法。

解决方法

如果你已经了解了v4l2处理usb摄像头的步骤,就会知道有一个VIDIOC_DQBUF指令可以获取当前数据帧的缓冲区编号,通过这个编号,我们就可以找到这一帧的起始地址以及长度,观察QPixmap这个类,我们会发现它的其中一个构造函数就是使用内存的起始地址以及长度,事实证明,这是可以正确转换的,目前还不知道原理,难道mjpeg有特殊优待?下面附上与之相关的代码。

QPixmap m_pixmap;
m_pixmap.loadFromData(frame_data, frame_len);
ui->label->setPixmap(m_pixmap);
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值