近期在研究QT的过程中有发现QWebView并不能有效的解析mjpg‐streamer视频流数据,而仅仅能够解析到单帧图片。下面我们来讨论一下如何解决这种问题。
本文引用地址://www.hqyj.com/emb/Column/7498.html
开发环境: mingw32-g++ QT 5.0+
首先上解决思想:
通过解析单帧图片,然后将单帧图片逐个显示。
解决方法:
方法1:
通过获取单帧图片的方法获取图片:
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
socket = new QTcpSocket;
socket->connectToHost("192.168.1.1",2001);
QTimer *mytimer = new QTimer;
mytimer->start(800);
connect(mytimer,SIGNAL(timeout()),this,SLOT(flashPic()));
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::flashPic()
{
qDebug("flash!");
ui->webView->setUrl(QUrl("//192.168.1.1:8080/?action=snapshot"));
ui->webView->update();
}
效果:
当然这个解决办法是有缺点的,如果网络不好的情况下可能会造成闪烁过多的情况,网上还有其他的解决办法大家可以自行查找下。