色yeye在线视频观看_亚洲人亚洲精品成人网站_一级毛片免费播放_91精品一区二区中文字幕_一区二区三区日本视频_成人性生交大免费看

當(dāng)前位置:首頁 > 嵌入式培訓(xùn) > 嵌入式學(xué)習(xí) > 講師博文 > Qt 5.6以上版本的MJPG-STREAMER視頻播放實現(xiàn)

Qt 5.6以上版本的MJPG-STREAMER視頻播放實現(xiàn) 時間:2017-10-25      來源:未知

主機(jī):Windows 7

Qt:5.9.1

MJPG-streamer是一款免費(fèi)基于IP地址的視頻流服務(wù)器,它的輸入插件從攝像頭讀取視頻數(shù)據(jù),這個輸入插件產(chǎn)生視頻數(shù)據(jù)并將視頻數(shù)據(jù)復(fù)制到內(nèi)存中,它有多個輸出插件將這些視頻數(shù)據(jù)經(jīng)過處理,其中重要的輸出插件是網(wǎng)站服務(wù)器插件,它將視頻數(shù)據(jù)傳送到用戶瀏覽器中,MJPG-streamer的工作就是將其中的一個輸入插件和多個輸出插件綁定在一起,所有的工作都是通過它的各個插件完成的。如果攝像頭直接支持MJPEG格式的話,MJPG-streamer可以快速獲得圖片,并發(fā)送給Web客戶端進(jìn)行顯示。整個過程中不涉及到圖片格式轉(zhuǎn)換,視頻壓縮處理方面工作,僅僅涉及到數(shù)據(jù)轉(zhuǎn)發(fā)的工作,所以在性能較低的嵌入式Linux平臺上也可以比較流暢的工作。

因為MJPG-streamer是基于HTTP協(xié)議的,所以只需要有一個Web瀏覽器,輸入正確的網(wǎng)址就能觀看到視頻。但如果要將視頻顯示在一個桌面應(yīng)用的話,則需要進(jìn)行一些編碼操作。在Qt5.4到Qt5.6的版本中繼承了Web Kit,可以很方便地請求網(wǎng)頁數(shù)據(jù)并進(jìn)行顯示。如果要播放MJPG-streamer視頻的話,則可以通過連續(xù)不斷地請求單張JPEG圖片并進(jìn)行顯示即可。對圖片的請求和顯示的典型代碼如下:

ui->webView->setUrl(QUrl("//192.168.1.1:8080/?action=snapshot"));

ui->webView->update();

但是在Qt 5.6之后,Web Kit被刪除了,取而代之的是更強(qiáng)大的WebEngine。要實現(xiàn)上面的功能,可以通過下面的代碼來實現(xiàn)。

class Widget : public QWidget

{

    Q_OBJECT

public:

    explicit Widget(QWidget *parent = 0);

    ~Widget();

protected slots:

    void showPicture();

private:

Ui::Widget *ui;

// 用于發(fā)送請求并獲得響應(yīng)

QNetworkAccessManager manager;

// 響應(yīng)的內(nèi)容

    QNetworkReply *reply;

};

Widget::Widget(QWidget *parent) :

    QWidget(parent),

    ui(new Ui::Widget)

{

    ui->setupUi(this);

// 發(fā)起獲取單張圖片的請求

    QUrl url("//127.0.0.1:8080/?action=snapshot");

reply = manager.get(QNetworkRequest(url));

// 完整接收到響應(yīng)的數(shù)據(jù)后調(diào)用showPicture槽函數(shù)

    connect(reply, SIGNAL(finished()), this, SLOT(showPicture()));

}

Widget::~Widget()

{

    delete ui;

}

void Widget::showPicture()

{

// 從響應(yīng)中獲取圖片數(shù)據(jù),并顯示在QLabel上

    QByteArray jpegData = reply->readAll();

    QPixmap pixmap;

    pixmap.loadFromData(jpegData);

    ui->labelPic->setPixmap(pixmap);

    delete reply;

// 繼續(xù)發(fā)起請求,以便以快速度刷新圖片

    QUrl url("//127.0.0.1:8080/?action=snapshot");

    reply = manager.get(QNetworkRequest(url));

    connect(reply, SIGNAL(finished()), this, SLOT(showPicture()));

}

注意,上面的代碼對圖片連續(xù)顯示形成視頻的核心在于:顯示完圖片后立即發(fā)起下一次請求。另外,因為reply每次都不一樣,所以要對新的對象建立信號和槽的連接。

上一篇:條件變量演示

下一篇:分析數(shù)據(jù)越界過程

熱點文章推薦
華清學(xué)員就業(yè)榜單
高薪學(xué)員經(jīng)驗分享
熱點新聞推薦
前臺專線:010-82525158 企業(yè)培訓(xùn)洽談專線:010-82525379 院校合作洽談專線:010-82525379 Copyright © 2004-2022 北京華清遠(yuǎn)見科技集團(tuán)有限公司 版權(quán)所有 ,京ICP備16055225號-5京公海網(wǎng)安備11010802025203號

回到頂部

主站蜘蛛池模板: 和尚伦流澡到高潮H在线观看 | 伊人久久大香线蕉av五月天 | 美美女高清毛片视频免费观看 | 免费国产乱理伦片在线观看 | 第一页在线 | 国产丝袜无码一区二区视频 | 无码GOGO大胆啪啪艺术 | 日本xxx在线观看免费播放 | 国内精品无码一区二区三区 | 无码人妻aⅴ一区二区三区69岛 | 在线.www资源 | 欧美日韩国产精品 | 汉服女装齐胸襦裙被c到喷水 | 亚洲人成网77777亚洲色 | 无码纯肉视频在线观看 | 在线精品无码AV不卡顿 | 无码精品人妻一区二区三区AP | 在线岛国片免费无码AV | 99久久亚洲精品无码毛片 | 丝袜捆绑vk | 亚洲人成人无码.WWW石榴 | 不卡一卡二卡三乱码免费网站 | 色多多WWW视频在线观看免费 | 黄色伊人网站 | 美女视频黄频A免费 | 午夜成人亚洲理论片在线观看 | 少妇AB又爽又紧无码网站 | 欧美黑人群一交 | 国产在线观看WWW污污污 | 农村熟女大胆露脸自拍 | 免费a级毛片18以上观看精品 | 成人无码精品1区2区3区免费看 | 色草视频| 日韩精品一区二区AV在线观看 | 欧美屁股xxxxx | 国产美女视频黄a片免费观看软件 | re久久| 亚洲AV无码京香无码AV | 日本乱子伦xxxx少妇 | 无码成A毛片免费 | 免费人成网站免费看视频 |