近期在研究QT的過程中有發現QWebView并不能有效的解析mjpg‐streamer視頻流數據,而僅僅能夠解析到單幀圖片。下面我們來討論一下如何解決這種問題。
本文引用地址://www.bsfkj.cn/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();
}
效果:
當然這個解決辦法是有缺點的,如果網絡不好的情況下可能會造成閃爍過多的情況,網上還有其他的解決辦法大家可以自行查找下。