亚洲精品一二区_国产黄色片网站_99久久久成人国产精品_蜜臀网_国产精品一区二区三区免费_成人av中文字幕_91精品国产欧美一区二区成人

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

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

主機:Windows 7

Qt:5.9.1

MJPG-streamer是一款免費基于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客戶端進行顯示。整個過程中不涉及到圖片格式轉(zhuǎn)換,視頻壓縮處理方面工作,僅僅涉及到數(shù)據(jù)轉(zhuǎn)發(fā)的工作,所以在性能較低的嵌入式Linux平臺上也可以比較流暢的工作。

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

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

ui->webView->update();

但是在Qt 5.6之后,Web Kit被刪除了,取而代之的是更強大的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 北京華清遠見科技集團有限公司 版權(quán)所有 ,京ICP備16055225號-5京公海網(wǎng)安備11010802025203號

回到頂部

主站蜘蛛池模板: 99精品视频在线这里只有 | 国产三级网站 | 国产一级特黄高清免费大片dvd | 国产色av | 日本三级香港三级三级人!妇久 | 日日摸人人拍人人澡 | 亚洲一二三四2021不卡 | 精品国产免费久久久久久婷婷 | 精品久久一区二区三区 | 久久久精品免费热线观看 | 欧美一级亚洲一级 | 青青草99 | 色在线观看视频 | 免费高清特级毛片 | 欧美精品综合 | 人人人人人人 | 青青草原在线免费观看 | 一级aa毛片| 69式在线观看视频免费 | 欧美a在线| 欧美日韩国产色综合一二三四 | 国产亚洲精品bv在线观看 | 久草视频观看 | www.在线 | 欧美成人免费高清二区三区 | 久久精品无码一区二区日韩av | 手机在线看片国产日韩生活片 | 国产丝袜在线视频 | 亚洲综合网在线观看首页 | 麻豆视屏| 欧美日韩亚洲一区二区精品 | 亚洲国产成人久久一区二区三区 | 波多野结衣二区 | 成人a毛片在线看免费全部播放 | 日本人强jizz视频 | 天天草夜夜草 | 欧美日韩亚洲人人夜夜澡 | 全免费a级毛片免费看视频免 | 欧美久操 | 欧美另类xxxxhd高清 | 女人毛片a毛片久久人人 |