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

基于Linux的MJPG-St r eamer視頻監(jiān)控系統(tǒng)實(shí)現(xiàn)

2015-04-24 14:24:40
科技視界 2015年32期
關(guān)鍵詞:嵌入式設(shè)備系統(tǒng)

劉 豪

(廣州海格通信集團(tuán)股份有限公司,廣東,廣州510006)

0 引言

當(dāng)前視頻監(jiān)控領(lǐng)域多采用嵌入式系統(tǒng)來實(shí)現(xiàn)。嵌入式系統(tǒng)涵蓋了嵌入式硬件平臺(tái)和嵌入式軟件平臺(tái),本文將從系統(tǒng)實(shí)現(xiàn)的角度來闡述基于嵌入式Linux的MJPG-Streamer視頻監(jiān)控系統(tǒng)。嵌入式Linux的視頻監(jiān)控技術(shù)已廣泛應(yīng)用于多個(gè)領(lǐng)域,因此該系統(tǒng)設(shè)計(jì)實(shí)現(xiàn)方案具有一定的實(shí)用性和參考價(jià)值。

1 系統(tǒng)設(shè)計(jì)方案

本系統(tǒng)設(shè)計(jì)方案中,硬件采用友善之臂的Mini2440開發(fā)平臺(tái),攝像頭采用中星微的USB2.0攝像頭,這是一款高性價(jià)比的圖像數(shù)據(jù)采集處理器,支持VGA和SXGA視頻模式,其像素最高達(dá)130萬。

如圖1所示為視頻監(jiān)控系統(tǒng)設(shè)計(jì)方案原理框圖。USB攝像頭通過USB接口與Mini2440的USB Host接口相連。軟件方面,需要在S3C2440上實(shí)現(xiàn)USB攝像頭驅(qū)動(dòng)軟件,同時(shí)在S3C2440處理器上運(yùn)行MJPG-Streamer軟件,利用MJPG-Streamer實(shí)現(xiàn)的web服務(wù)器功能提供網(wǎng)絡(luò)訪問支持,遠(yuǎn)程PC機(jī)通過瀏覽器訪問該視頻監(jiān)控系統(tǒng)的web服務(wù)器,MJPG-Streamer程序?qū)SB攝像頭采集到的視頻數(shù)據(jù)放到后臺(tái)進(jìn)行處理,然后通過web的http協(xié)議將視頻數(shù)據(jù)傳輸?shù)竭h(yuǎn)端的PC機(jī),然后通過瀏覽器顯示出來,從而達(dá)到遠(yuǎn)程視頻監(jiān)控的目的。

2 USB攝像頭驅(qū)動(dòng)實(shí)現(xiàn)

2.1 UVC驅(qū)動(dòng)程序?qū)崿F(xiàn)

中星微USB攝像頭的VC0345模塊是一個(gè)標(biāo)準(zhǔn)的UVC設(shè)備。本文將在Linux2.6.32內(nèi)核版本中移植和開發(fā)UVC驅(qū)動(dòng)代碼,該驅(qū)動(dòng)代碼路徑為drivers/media/video/uvc/,通過查看該目錄下的Makefile文件可知每個(gè)*.c文件生成對(duì)應(yīng)的一個(gè)*.o文件。最后鏈接成一

uvcvideo.o文件。Makefile代碼如下所示。

uvcvideo-objs:=uvc_driver.o uvc_queue.o uvc_v4l2.o uvc_video.o

uvc_ctrl.o uvc_status.o uvc_isight.o

obj-$(CONFIG_USB_VIDEO_CLASS)+=uvcvideo.o

在Linux內(nèi)核配置中,選擇Device?Drivers->Multimedia support->Video capture adapters->V4L USB devices->USB Video Class(UVC)配置,那么Makefile將生成的uvcvideo.o編譯進(jìn)Linux內(nèi)核。

在uvc_driver.c源碼文件中包含了典型的UVC模塊加載uvc_init和卸載uvc_cleanup的函數(shù)。

UVC設(shè)備驅(qū)動(dòng)初始化模塊函數(shù)uvc_init調(diào)用了usb_register注冊(cè)函數(shù),將UVC設(shè)備視為一個(gè)標(biāo)準(zhǔn)的USB設(shè)備。其中uvc_driver結(jié)構(gòu)體中的name將注冊(cè)進(jìn)USB?Core的驅(qū)動(dòng)名字,它會(huì)顯示在/sys/bus/usb/drivers/下,但它并不是應(yīng)用程序?qū)⒁x寫的設(shè)備文件。當(dāng)UVC設(shè)備插入的時(shí)候,會(huì)調(diào)用uvc_probe函數(shù)來探測(cè)視頻設(shè)備,包括視頻的格式和設(shè)備控制參數(shù)等,內(nèi)核需要id_table用來判斷插入的設(shè)備是否適配,然后將初始化USB的URB中斷,接收USB接口采集到的視頻數(shù)據(jù)。當(dāng)UVC設(shè)備拔出的時(shí)候,會(huì)調(diào)用uvc_disconnect函數(shù)。綜上所述,UVC驅(qū)動(dòng)模塊處理流程如圖2所示。

2.2 V4L2驅(qū)動(dòng)程序?qū)崿F(xiàn)

UVC驅(qū)動(dòng)程序雖然是一個(gè)模塊文件,但是它里面并沒有提供fops的文件操作函數(shù),而是把該操作的open、read、write、ioctl和mmap等用戶接口函數(shù)放在V4L2驅(qū)動(dòng)程序去實(shí)現(xiàn)。V4L2的fops名字叫做uvc_fops,定義在uvc_v4l2.c中。該結(jié)構(gòu)體代碼實(shí)現(xiàn)如下:

const struct v4l2_file_operations uvc_fops={

.owner=THIS_MODULE,

.open =uvc_v4l2_open,

.release=uvc_v4l2_release,

.ioctl =uvc_v4l2_ioctl,

.read =uvc_v4l2_read,

.mmap=uvc_v4l2_mmap,

.poll =uvc_v4l2_poll,

};

V4L2的子系統(tǒng)是圍繞video_device這個(gè)結(jié)構(gòu)體建立的,它代表的是一個(gè)V4L2設(shè)備。video_device的file_operations[2]結(jié)構(gòu)體包含常規(guī)的函數(shù)指針。視頻設(shè)備通常都包括open、read、write、release函數(shù),這取決于設(shè)備的功能是輸入還是輸出。對(duì)于視頻流設(shè)備而言,傳輸數(shù)據(jù)一般使用poll和mmap方法。同時(shí),視頻設(shè)備還定義了一系列的控制參數(shù),所有這些視頻參數(shù)一般都由ioctl函數(shù)實(shí)現(xiàn)。uvc_fops結(jié)構(gòu)體實(shí)現(xiàn)之后是通過uvc_driver.c中的uvc_register_video函數(shù)將UVC驅(qū)動(dòng)和V4L2驅(qū)動(dòng)關(guān)聯(lián)起來實(shí)現(xiàn)一個(gè)視頻驅(qū)動(dòng)的整體框架程序,因此用戶就可以通過V4L2接口函數(shù)操作UVC視頻設(shè)備了。

3 視頻數(shù)據(jù)采集和處理

本系統(tǒng)視頻采集流程如圖3所示,V4L2采用流水線的方式,操作更簡(jiǎn)單直觀,基本遵循打開視頻設(shè)備、設(shè)置視頻設(shè)備屬性和采集模式、處理采集數(shù)據(jù)、關(guān)閉視頻設(shè)備。

4 MJPG-Streamer軟件實(shí)現(xiàn)

MJPG-streamer是一個(gè)輕量級(jí)的視頻服務(wù)器開源軟件,該軟件基于IP協(xié)議網(wǎng)絡(luò),從USB攝像頭中獲取視頻數(shù)據(jù)并傳輸JPEG格式的圖像到瀏覽器,例如IE等瀏覽器,甚至是一個(gè)運(yùn)行了TCPMP播放器的Windows移動(dòng)設(shè)備。

本系統(tǒng)MJPG-streamer使用input_uvc輸入組件,其主要功能是獲取攝像頭拍攝的圖像并將其壓縮編碼,同時(shí)MJPG-Streamer使用了output_http作為輸出組件,該輸出組件采用httpd作為web服務(wù)器,其作用是可通過瀏覽器訪問該服務(wù)器并監(jiān)控和顯示視頻流。

MJPG-Streamer運(yùn)行過程流程如圖5所示。

5 系統(tǒng)測(cè)試與總結(jié)

本系統(tǒng)基于友善之臂的Mini2440開發(fā)平臺(tái),通過開發(fā)Linux的UVC-V4L2驅(qū)動(dòng)軟件和MJPG-Streamer應(yīng)用軟件成功實(shí)現(xiàn)了基于嵌入式Linux的視頻采集與web遠(yuǎn)程監(jiān)控系統(tǒng)。圖6是Windows7下通過IE瀏覽器遠(yuǎn)程訪問該視頻監(jiān)控系統(tǒng)看到的實(shí)時(shí)視頻流監(jiān)控圖像和控制視頻終端界面,在實(shí)際的項(xiàng)目和產(chǎn)品開發(fā)中具有一定的參考和使用價(jià)值。

圖5 實(shí)時(shí)視頻監(jiān)控圖像

[1][美]科波特(Corbet,J.)等.魏永明,耿岳,鐘書毅譯.Linux設(shè)備驅(qū)動(dòng)程序(第三版)[M].北京:中國(guó)電力出版社,2005.11.

[2]李俊編著.嵌入式Linux設(shè)備驅(qū)動(dòng)開發(fā)詳解[M].北京:人民郵電出版社,2008.3.

猜你喜歡
嵌入式設(shè)備系統(tǒng)
諧響應(yīng)分析在設(shè)備減振中的應(yīng)用
Smartflower POP 一體式光伏系統(tǒng)
WJ-700無人機(jī)系統(tǒng)
ZC系列無人機(jī)遙感系統(tǒng)
基于MPU6050簡(jiǎn)單控制設(shè)備
電子制作(2018年11期)2018-08-04 03:26:08
搭建基于Qt的嵌入式開發(fā)平臺(tái)
連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應(yīng)用
500kV輸變電設(shè)備運(yùn)行維護(hù)探討
原來他們都是可穿戴設(shè)備
主站蜘蛛池模板: 亚洲国产精品美女| 无码中字出轨中文人妻中文中| 国产精品hd在线播放| 亚洲成人www| 国产网友愉拍精品| 久久黄色小视频| 大香网伊人久久综合网2020| 亚洲精品福利视频| 精品一區二區久久久久久久網站| 呦女亚洲一区精品| 青青草91视频| 国产成人一区| 成人小视频在线观看免费| 成人福利在线观看| 999国内精品久久免费视频| 中文精品久久久久国产网址| 激情综合网址| 午夜丁香婷婷| 国产精品熟女亚洲AV麻豆| 亚洲国产精品日韩av专区| 高清不卡毛片| 国产一级做美女做受视频| 亚洲福利片无码最新在线播放| 伊在人亚洲香蕉精品播放| 国产人人射| 国产成人无码AV在线播放动漫 | 午夜毛片免费观看视频 | 女人一级毛片| 国产在线观看第二页| 美女被操黄色视频网站| 国产乱人免费视频| 精品少妇人妻av无码久久| 亚洲男人的天堂久久精品| 成年免费在线观看| 国产在线观看一区二区三区| 亚洲中文字幕23页在线| 国产乱肥老妇精品视频| 国产日韩精品一区在线不卡| 色综合久久综合网| 嫩草影院在线观看精品视频| 少妇高潮惨叫久久久久久| 国产精品综合色区在线观看| 三上悠亚在线精品二区| 香蕉久久永久视频| 丰满人妻一区二区三区视频| a毛片基地免费大全| 亚洲一区波多野结衣二区三区| 欧美中文字幕一区二区三区| 日本在线国产| 亚洲免费黄色网| 91亚洲免费| 亚洲另类国产欧美一区二区| 亚洲av无码成人专区| 99热精品久久| 色妞www精品视频一级下载| 美女内射视频WWW网站午夜| 亚洲美女久久| 台湾AV国片精品女同性| 香蕉伊思人视频| 欧美成人免费一区在线播放| 亚洲色欲色欲www网| 91精品网站| 青青青视频蜜桃一区二区| 久久精品aⅴ无码中文字幕 | 一级毛片高清| 亚洲精品国产乱码不卡| 99这里只有精品在线| 国产欧美精品一区二区| 欧美一级99在线观看国产| 亚洲精品中文字幕午夜| 欧美日韩一区二区三区在线视频| 欧美中日韩在线| 久久不卡精品| 丰满少妇αⅴ无码区| a级毛片视频免费观看| 免费不卡在线观看av| 日韩欧美中文字幕在线精品| 亚洲无码91视频| 91视频青青草| 亚洲精品高清视频| 99热精品久久| 久久www视频|