999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Mjpg-streamer的跨平臺無線視頻傳輸系統

2016-03-25 06:13:43祝朝政張毅偉程禹嘉嚴錫君
微型電腦應用 2016年1期
關鍵詞:跨平臺

祝朝政,張毅偉,程禹嘉,嚴錫君

?

基于Mjpg-streamer的跨平臺無線視頻傳輸系統

祝朝政,張毅偉,程禹嘉,嚴錫君

摘 要:為了解決基于Mjpg-streamer的遠程視頻系統只能通過特定瀏覽器查看與,可移植性差的問題,開發了采用QT框架的視頻解碼客戶端,實現了跨平臺的實時觀測,改變了原系統對于瀏覽器的依賴性,提高了Mjpg-streamer遠程視頻系統的可移植性,使得系統的適用范圍及使用方式更加寬泛及大眾化。

關鍵詞:視頻解碼;QT;跨平臺;Mjpg-streamer

0 引言

近年來,基于Mjpg-streamer的遠程視頻系統隨著嵌入式技術,多媒體技術,計算機網絡安全技術的快速發展也在不斷的更新與發展。但在某些特定的需求下,這個工程并不能達到我們的要求,隨著技術的不斷進步,人們對簡單、快捷、方便的追求日益提高,這就對項目的可移植性要求越來越高。

本文提出了一種基于ARM11+linux嵌入式的跨平臺的遠程視頻系統,鑒于QT框架強大的移植性,研究人員決定為基于Mjpeg-streamer的遠程視頻系統開發視頻解碼客戶端并采用QT開發框架,實現跨平臺的實時觀測,改變了對原系統依賴于瀏覽器的狹隘性,以便于在各個系統下更簡便的使用視頻監控系統。

1 系統總體設計

整個無線視頻傳輸系統包括客戶端和服務器端兩個部分。服務器端(嵌入式Linux系統平臺上基于Mjpg-streamer設計的服務器軟件)實現視頻數據的采集、處理以及發送;客戶端(基于Qt開發框架的視頻解碼程序)負責數據的接受以及顯示。首先服務器端通過攝像頭采集視頻數據,進行壓縮處理后通過無線wifi將數據發送到客戶端,客戶端對數據進行實時解碼并顯示視頻畫面。

該系統以S3C6410處理器為核心,外圍器件有Flash 、SDRAM、以太網卡DM9000以及USB接口的S608攝像頭,在Linux環境下對攝像頭采集到的原始圖像幀進行處理以及壓縮,通過網絡協議傳輸到上位機進行顯示,硬件平臺結構如圖1所示:

圖1 系統硬件平臺結構圖

2 系統軟件設計

系統采用C/S架構,服務器端采用嵌入式Linux系統作為軟件平臺,在該平臺上基于Mjpg-streamer設計服務器軟件。客戶端軟件是基于Qt開發框架的視頻解碼程序??傮w工作流程是由USB攝像頭采集視頻數據,服務器端通過無線wifi將數據發送到其他平臺的客戶端上進行顯示,同時服務器端采用了多線程機制,實現了多個客戶端可同時顯示視頻畫面。

2.1構建ARM+Linux嵌入式平臺

在系統硬件平臺上構建嵌入式Linux系統,需要引導程序BootLoader和Linux源碼,本系統一直BootLoader源碼,然后用MiniUSB接口將其燒寫到Flash中,從Flash中啟動,引導在PC機上交叉編譯后的Linux鏡像及根文件系統,之后啟動Linux系統[1]。

1)編譯NAND啟動方式的uboot.bin

本系統的BootLoader采用開源的uboot軟件,首先解壓源碼到虛擬機,然后進入源碼目錄執行編譯nand flash的啟動鏡像文件的命令,生成uboot.bin即為啟動文件。

2)編譯Linux2.6.28內核鏡像文件

Kernel文件采用linux-2.6.28,首先解壓內核源碼到虛擬機,然后,進入源碼目錄執行make menuconfig命令,按系統需求配置裁剪內核,最后,執行make命令生成zImage即為Linux內核文件。

3)使用BusyBox生成基本根文件系統

本系統使用BusyBox-1.13.4生成根文件系統,首先,解壓內核源碼到虛擬機,然后進入源碼目錄執行make menuconfig命令,按系統需求配置BusyBox,執行make;make install會得到相應的bin,linuxrc,sbin目錄文件,基于以上文件建立自己的根文件系統,最后通過mkyaffs2image工具生成根文件系統的鏡像文件[2]。

4)驅動的配置,將所有USB攝像頭驅動編譯進內核。

# make menuconfig

Device Drivers

Multimedia support

[*]Video capture adapters --->

[*] V4L USB devices --->

將上面兩個配置選項下的子選項全部選上,這樣本系統基本上可以支持市面上大多數的攝像頭,而不僅僅局限于采用OV511,ZC03控制器的攝像頭了。

2.2視頻服務器軟件的設計

Mjpg-streamer是一款免費的視頻流服務器軟件,采用的是V4L2視頻設備開發框架,它能從攝像頭采集圖像以JPEG格式通過TCP/IP網絡協議傳輸到上位機進行顯示。

Mjpg-streamer移植

由于開發板采用的是ARM11架構的S3C6410處理器,所以在進行交叉編譯的候需要將Mjpg-streamer源碼目錄中,所有Makefile文件的CC=gcc改成CC=arm-linux-gcc,然后進行編譯,生成input_uvc.so、input_control.so、output_http.so、output_file.so組件。

服務器軟件工作流程

首先是初始化,包括輸入初始化和輸出初始化。輸入初始化,主要是調用V4L2對攝像頭初始化,包括捕獲視頻尺寸等設置。輸出初始化,主要是根據啟動參數配置輸出,比如主頁文件的目錄,使用的端口號等。接下來運行輸入和輸出函數,二者都會創建線程,并且會將線程從進程中獨立出來。輸入線程會創建抓圖線程cam_thread。這個線程就是輸入線程的主體,它是一個循環,只要用戶沒有按下Ctrl+C循環就會永遠繼續下去。抓圖函數uvcGrab以阻塞方式等待圖像數據,當有一幀數據到達后先處理為JPEG文件,對于YUYV格式的圖像數據先要轉換成RGB格式,再調用libjpeg庫壓縮為JPEG文件,對于MJPEG格式的輸入需要插入Huffman數據表。捕獲并處理了一幀視頻之后再通知所有等待數據的客戶端線程。輸出線程分為兩大部分:并發服務器線程和客戶端處理線程。并發服務器線程server_thread負責監聽客戶端請求,一旦有請求就創建一個新的客戶端線程專門負責來自此客戶端的HTTP請求。這樣服務器線程就可以一直監聽客戶端請求,本系統設置的最大可以處理的客戶端數為10。一個客戶端線程client_thread只負責處理一個客戶端響應,也就是只響應一個IP地址的請求。進入client_thread之后,將會發送HTTP響應頭。通過設置了一些響應頭,使得服務器可以不斷地發送JPEG數據給客戶端。pthread_cond_wait以阻塞方式等待一幀數據的到來,一旦有JPEG數據就馬上把數據從全局緩沖區中取出,發送給客戶端。整個工作流程如圖2所示:

圖2 服務器端的工作流程圖

2.3視頻客戶端軟件的設計

為了能夠實現跨平臺的實時查看視頻,鑒于Qt開發框架強大的移植性,我們開發了Qt版的視頻解碼程序,并編譯了各個主流平臺的版本,實現了真正意義上的跨平臺??蛻舳说目傮w框架結構如圖3所示[3]:

圖3 客戶端總體框架結構

從Mjpg-Streamer源碼中的send_stream()函數可以看出,當客戶端向服務器端發送請求之后,服務器端會返回以http作為響應頭的視頻數據流。另外為了避免不斷的發送請求,響應,采用了服務器推送技術。即將content-type指定為:content-type:multipart/x-mixed-replace;bound

ary=BOUNDARY。由于jpeg圖片有固定的幀格式,我們只需將接收到的數據流按位分析,找到0xff 0xd8開頭,0xff 0xd9結尾的這個數據段,將其保存在字符數組中,并轉換成jpeg圖片,在label控件上顯示,就是一幀圖像的顯示了,依次循環,就完成了視頻流的解碼。具體的是解碼算法流程圖如圖4所示[4]:

圖4 視頻解碼算法

3 跨平臺的測試

為了測試跨平臺的視頻顯示效果,我們分別在ARM-Linux開發板、Fedora9系統和Android4.4系統下進行測試。

定制化手持式控制終端,采用ARM-Linux架構,通過無線網卡與服務器端進行ad-hoc連接,將視頻接收并顯示在TFT液晶屏上,如圖5所示:

圖5 在ARM-Linux開發板上測試客戶端的程序

在VMware虛擬機中安裝Fedora9,通過無線路由器做中介,使服務器端與Fedora9系統的客戶端進行連接,并將視頻顯示在客戶端中,如圖6所示:

圖6 在Fedora9系統上測試客戶端程序

小米4手機自建熱點網絡,服務器端通過無線網卡連接到熱點,與Android4.4系統的客戶端進行通信,點擊圖7中的紅點即可開始接收顯示視頻,如圖7所示[5]:

圖7 在Android4.4系統上測試客戶端程序

4 總結

該系統突破了以往只能通過特定瀏覽器查看的限定,實現了用戶在各個版本中觀看視頻的功能,使得操作簡單,攜帶設備更方便,解決了以往運行時必須使用某幾類瀏覽器的問題,讓該系統更加整體化。同時客戶端的圖像可以實時顯示,沒有延時,圖像清晰。該系統的用戶界面窗口簡潔大方,設計美觀,操作人員容易學習操作,任何人都可以輕易實現功能,解決了只有專業人員才能使用的限制。

參考文獻

[1] 肖兒良,毛海軍,鞠軍平,等.基于開源軟件MJPG_Streamer的智能視頻監控系統設計[J].微電子學與計算機,2013,6(6):84-87.

[2] 李亞東.基于ARM的履帶式目標檢測機器人研究與實現 [M].南京:河海大學,2013.

[3] 陳恒鑫,林 威,張欽宇.基于Mjpg-streamer的移動視頻監控系統設計[J].計算機測量與控制2014.22(11):3597-3599.

[4] 陳金輝.基于Mjpg-streamer的遠程視頻監控系統 [M].衡陽:湖南工學院,2012.

[5] 郭加貝.基于Android智能手機視頻監控的應用軟件開發[M].杭州:杭州電子科技大學,2011.

Cross-platform Wireless Video Transmition System Based on Mjpeg-streamer

Zhu Chaozheng, Zhang Yiwei, Cheng Yujia, Yan Xijun
(College of Computer and Information, Hohai University, Nanjing 210098, China)

Abstract:In order to solve the problems that remote video system based on Mjpg-streamer only can be viewed through a particular browser and has poor portability, video decoding using QT framework is developed in the client side to realize the real-time observation of cross-platform. It changes the dependence on browsers of original system, and enhances the portability of Mjpg-streamer remote video system, which makes the usage scope and mode of the system wider and more popular.

Key words:Video Decoding; QT ;Cross-platform;Mjpg-streamer

收稿日期:(2015.04.28)

作者簡介:祝朝政(1995-),男,信陽,河海大學計算機與信息學院,研究方向:計算機科學與技術,嵌入式系統,南京,210098;張毅偉(1993-),男,南通,河海大學計算機與信息學院,研究方向:計算機科學與技術,南京,210098;程禹嘉(1996-),女,吉林,河海大學計算機與信息學院,研究方向:計算機科學與技術,南京,210098;嚴錫君(1963-),男,南通,河海大學計算機與信息學院,副教授,研究方向:無線傳感器網絡、嵌入式系統,南京,210098;

文章編號:1007-757X(2016)01-0057-03

中圖分類號:TP393

文獻標志碼:A

猜你喜歡
跨平臺
跨層級網絡、跨架構、跨平臺的數據共享交換關鍵技術研究與系統建設
一款游戲怎么掙到全平臺的錢?
電腦報(2021年11期)2021-07-01 08:10:05
潛力雙跨平臺:進階:誰將跨入下一個“十大”?
跨平臺APEX接口組件的設計與實現
測控技術(2018年9期)2018-11-25 07:44:58
基于C++語言的跨平臺軟件開發的設計
數碼世界(2017年12期)2017-12-28 15:45:13
基于C++語言的跨平臺軟件開發
移動互聯網應用跨平臺開發
一種虛擬現實應用程序跨平臺方法的研究
基于QT的跨平臺輸電鐵塔監控終端軟件設計與實現
基于OPC跨平臺通信的電機監測與診斷系統
主站蜘蛛池模板: 手机在线看片不卡中文字幕| 国产精品视频久| 精品一区二区久久久久网站| 二级特黄绝大片免费视频大片| 中文字幕中文字字幕码一二区| 国模视频一区二区| 国产一级毛片高清完整视频版| 在线看片中文字幕| 中国毛片网| 国产日韩欧美在线播放| 日韩精品毛片| 亚洲精品男人天堂| 欧美精品三级在线| 谁有在线观看日韩亚洲最新视频| 亚洲福利片无码最新在线播放| 天天爽免费视频| 婷婷伊人五月| 黄色三级网站免费| 日韩最新中文字幕| 3p叠罗汉国产精品久久| 久久黄色视频影| 国产免费黄| 欧美三級片黃色三級片黃色1| 日韩精品视频久久| 思思热精品在线8| 99久久精品久久久久久婷婷| 亚洲第一区精品日韩在线播放| 九九线精品视频在线观看| 一级做a爰片久久免费| 久久久久国产精品熟女影院| 国产无码网站在线观看| 亚洲自拍另类| 午夜性刺激在线观看免费| 国产一级妓女av网站| 欧美精品H在线播放| 大陆精大陆国产国语精品1024| 亚洲国产精品日韩欧美一区| www亚洲精品| 欧美成人午夜视频| 国产黑丝视频在线观看| 无码国产伊人| 亚洲品质国产精品无码| 国产精品永久不卡免费视频| 强乱中文字幕在线播放不卡| 国产av无码日韩av无码网站| 99久视频| 成年女人a毛片免费视频| 亚洲人在线| 久久精品人妻中文视频| 中文无码日韩精品| 国产丝袜91| 亚洲日韩精品综合在线一区二区| 91年精品国产福利线观看久久| 国产99久久亚洲综合精品西瓜tv| 97精品国产高清久久久久蜜芽| 五月天福利视频| 国产精品美人久久久久久AV| jijzzizz老师出水喷水喷出| 亚洲一区黄色| 精品91在线| 国产屁屁影院| 国产性精品| 日韩欧美成人高清在线观看| 91系列在线观看| 国产v精品成人免费视频71pao | 婷婷色中文| 性视频一区| 国产一二三区在线| 国产亚洲精品精品精品| 无码一区中文字幕| 不卡视频国产| 亚州AV秘 一区二区三区| 国产毛片一区| 亚洲无线观看| 自拍偷拍欧美日韩| 欧美日韩精品一区二区视频| 精品国产黑色丝袜高跟鞋| 国产免费人成视频网| 91亚洲视频下载| 91极品美女高潮叫床在线观看| 九色最新网址| 久草视频一区|