激情综合丁香-激情综合六月-激情综合婷婷亚洲图片-激情综合图区-激情综合网五月

ESM8000主板視頻圖像顯示方案簡(jiǎn)介

 2021-11-3     作者:黃志超         
文章標(biāo)簽:QMLQtESM8000系列圖像顯示

1、概述


  英創(chuàng)公司推出的ESM8000主板搭載了NXP i.MX8M Mini Quad 64位處理器,主CPU為主頻1.6GHz的四核ARM Cortex-A53,并且?guī)в幸粋€(gè)視頻處理單元(VPU),能夠提供硬件解碼和編碼的功能,解碼支持的格式有1080p60 HEVC/H.265,H.264,VP9,VP8等,編碼支持的格式有1080p60 H.264,VP8等。對(duì)視頻編解碼有一定需求的應(yīng)用,最好選擇帶有VPU的主板進(jìn)行開(kāi)發(fā)。因?yàn)樵跊](méi)有VPU的情況下,CPU只能通過(guò)軟件計(jì)算來(lái)進(jìn)行編解碼,效率很低并且會(huì)占用大量CPU資源,而通過(guò)VPU來(lái)編解碼能夠極大的節(jié)約CPU資源,并且處理的速度也比CPU快很多。


  在ESM8000主板中,已經(jīng)集成了Qt-5.15,用戶可以通過(guò)Qt來(lái)實(shí)現(xiàn)用戶圖形界面的開(kāi)發(fā),這部分我們已經(jīng)在《ESM8000主板圖形界面編程簡(jiǎn)介》中比較詳細(xì)的介紹過(guò)了,文章在最后提到了如果要想調(diào)用VPU進(jìn)行解碼,就需要通過(guò)QML界面或者Gstreamer工具。在ESM8000主板中已經(jīng)集成了Gstreamer工具和一些專用插件,這些插件就提供了使用VPU進(jìn)行編解碼的功能。為了支持在Qt中調(diào)用Gstreamer工具實(shí)現(xiàn)視頻的處理,ESM8000主板中移植了專用插件qmlsink,用戶無(wú)需進(jìn)行特殊的設(shè)置或者操作,使用標(biāo)準(zhǔn)的QML語(yǔ)言編程即可,當(dāng)涉及到視頻處理的部分,系統(tǒng)就會(huì)自動(dòng)通過(guò)Gstreamer的插件調(diào)用vpu來(lái)處理視頻。


  所以對(duì)于熟悉QML的用戶來(lái)說(shuō),可以在ESM8000主板上直接采用標(biāo)準(zhǔn)的qml語(yǔ)言編程來(lái)實(shí)現(xiàn)應(yīng)用,不需要其他特殊設(shè)置,十分方便。對(duì)于QML不太熟悉的用戶來(lái)說(shuō),英創(chuàng)公司提供了一個(gè)基于QML語(yǔ)言實(shí)現(xiàn)的視頻顯示界面,用戶可以通過(guò)在傳統(tǒng)Qt C++的實(shí)現(xiàn)的窗口中嵌入這個(gè)現(xiàn)成的界面來(lái)實(shí)現(xiàn)對(duì)應(yīng)的功能。我們想通過(guò)這種方式,讓客戶還是可以使用熟悉的Qt C++環(huán)境來(lái)編程,而不必花費(fèi)更多的時(shí)間去學(xué)習(xí)QML語(yǔ)言的使用。下面我們以顯示網(wǎng)絡(luò)攝像頭監(jiān)控畫(huà)面為例,來(lái)講解如何調(diào)用現(xiàn)成的QML界面。


2、Qt C++調(diào)用QML實(shí)現(xiàn)視頻顯示


  英創(chuàng)公司提供一個(gè)現(xiàn)成的基于QML語(yǔ)言實(shí)現(xiàn)的視頻顯示界面ipcamera1.qml,這個(gè)界面可以顯示本地視頻或者網(wǎng)絡(luò)攝像頭的畫(huà)面。方案的核心就是利用了Qt提供的quickWidget類來(lái)嵌入QML界面,這個(gè)widget類專門(mén)用于顯示Qt Quick(Qt提供支持QML語(yǔ)言的庫(kù)以及函數(shù))用戶界面。在Qt的官方網(wǎng)站中對(duì)quickWidget有詳細(xì)的說(shuō)明https://doc.qt.io/qt-5/qquickwidget.html,有興趣的客戶可以參考。


  首先在創(chuàng)建的工程中導(dǎo)入英創(chuàng)公司提供的視頻顯示界面ipcamera1.qml,在這里我們選擇導(dǎo)入到Qt Resource中。右鍵工程選擇添加新文件,在模板中選擇Qt Resource File,單擊下一步,然后輸入名稱,例程中輸入的名稱為qml。可參考下圖:


ESM8000主板視頻圖像顯示方案簡(jiǎn)介.png


  成功后,會(huì)自動(dòng)生成一個(gè)qml.qrc文件,這時(shí)需要進(jìn)行初始設(shè)置,并添加視頻顯示界面ipcamera1.qml。首先點(diǎn)擊添加按鈕,選擇添加前綴,在前綴中輸入想設(shè)置的路徑(在引用資源的時(shí)候會(huì)使用到),例程中設(shè)置為/,如下圖:


ESM8000主板視頻圖像顯示方案簡(jiǎn)介.png


  設(shè)置完后,再次點(diǎn)擊添加按鈕,選擇添加文件,在文件瀏覽框中選中復(fù)制到工程目錄下的ipcamera1.qml文件,成功后可以在qml.qrc的瀏覽窗中看到對(duì)應(yīng)的文件,如下圖:


ESM8000主板視頻圖像顯示方案簡(jiǎn)介.png


  導(dǎo)入QML文件的部分就已經(jīng)完成了,用戶只需要在程序中增加對(duì)quickWidget的初始化即可,可參考下面的代碼:


w = new QQuickWidget;  
w->move(0,0);  
w->resize(640, 360);  
w->setSource(QUrl(("qrc:/ipcamera1.qml")));

 

  如果需要和QML界面中的內(nèi)容進(jìn)行交互,可以通過(guò)信號(hào)與槽來(lái)實(shí)現(xiàn)。Qt C++中發(fā)送信號(hào),在QML界面中定義槽函數(shù)響應(yīng),或是在QML界面中發(fā)送信號(hào),在Qt C++中定義槽函數(shù)來(lái)響應(yīng)都是可以的。例程中實(shí)現(xiàn)了一些按鈕,對(duì)QML界面進(jìn)行簡(jiǎn)單的操作,比如開(kāi)始、停止等功能。在Qt的網(wǎng)站上也有比較詳細(xì)的說(shuō)明:https://doc.qt.io/qt-5/qtqml-cppintegration-interactqmlfromcpp.html。在英創(chuàng)公司提供的例程中,加入了開(kāi)始、停止、縮放、旋轉(zhuǎn)以及切換清晰度等操作,都是通過(guò)界面上C++的控件類(pushButton、comoBox等)發(fā)送信號(hào)來(lái)實(shí)現(xiàn)的,具體可以參考例程中的代碼。


  例程采用了比較常用的網(wǎng)絡(luò)攝像頭,測(cè)試效果如下:


ESM8000主板視頻圖像顯示方案簡(jiǎn)介.png


3、總結(jié)


  從程序的截圖中可以看出來(lái),在使用VPU解碼的情況下,幾乎不會(huì)對(duì)CPU造成負(fù)載,用戶可以利用CPU資源執(zhí)行其他操作。


  通過(guò)這種方式,我們希望讓用戶不必花過(guò)多時(shí)間對(duì)QML語(yǔ)言編程進(jìn)行學(xué)習(xí),以此能夠幫助用戶提升應(yīng)用程序開(kāi)發(fā)的時(shí)間。感興趣的客戶可以和英創(chuàng)的工程師聯(lián)系獲取完整的測(cè)試代碼。

文章標(biāo)簽:QMLQtESM8000系列圖像顯示
主站蜘蛛池模板: 影音先锋5566手机在线播放| 特级毛片aaaa级毛片免费| 日韩精品久久久久影院| 99草在线视频| 日本无翼乌邪恶彩色大全| 在线播放国产一区| 欧美日韩一区二区三区毛片| 性xxxxxxx18老师| 亚洲另类视频在线观看| 久久91精品国产91久久跳舞| 亚洲免费观看在线视频| 男人j桶进女人p无遮挡动态图二三| 国产成人盗拍精品免费视频| 黄色片网站日本| 国产在线视频在线| 亚洲国产最新| 高清国产亚洲va精品| 求一个黄色网址| 毛片免费软件| 国产亚洲精品久久久久久无| 爱色视频| 黄色国产在线观看| aⅴ一区二区三区无卡无码| 国产最爽的乱淫视频国语对 | 污免费网站| 国产 欧美 日韩在线| 国产成人精品日本亚洲专一区 | 免费影院在线| 婷婷色综合久久五月亚洲| 中文字幕有码在线视频| 一区二区三区精品国产欧美| 免费一级a毛片免费观看欧美大片| 国产片一级特黄aa的大片| 国产免费观看网站黄页| 国产精品99在线观看| 香蕉依依精品视频在线播放| 黄色免费看看| 黄色一级片观看| 黄色毛片三级| 黄色一级一毛片| 美国一级特黄|