亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        流媒體中間件在Linux下的設(shè)計(jì)與實(shí)現(xiàn)

        2014-11-20 08:19:30高譽(yù)菊
        電視技術(shù) 2014年5期
        關(guān)鍵詞:中間件攝像頭客戶端

        呂 鹍,高譽(yù)菊,張 剛

        (太原理工大學(xué)信息工程學(xué)院,太原山西030024)

        中間件[1]是一種獨(dú)立的系統(tǒng)軟件或服務(wù)程序,一般作用于服務(wù)端與客戶端之間,起到信息管理、傳遞等作用。而針對多媒體流的流媒體中間件可以極大地降低多媒體網(wǎng)絡(luò)通信的復(fù)雜性,很好地管理和規(guī)范數(shù)據(jù)流在系統(tǒng)網(wǎng)絡(luò)中的傳輸。但是當(dāng)今市面上針對視頻流媒體的中間件卻很難見到,大多數(shù)視頻監(jiān)控系統(tǒng)都是采取編碼服務(wù)器與客戶端直接進(jìn)行點(diǎn)對點(diǎn)連接的網(wǎng)絡(luò)通信模式,作為一種大數(shù)據(jù)流媒體,對于視頻流數(shù)據(jù)在網(wǎng)絡(luò)中進(jìn)行管理、調(diào)度、傳輸都有很高的要求,傳統(tǒng)的視頻通信原理已經(jīng)漸漸無法滿足這些需求。所以必須引入流媒體中間件技術(shù)來進(jìn)行管理。為此本設(shè)計(jì)在編碼服務(wù)器與客戶端之間加入視頻流媒體中間件來作為一個(gè)第三方軟件控制、集中管理、調(diào)配解碼客戶端對視頻數(shù)據(jù)的要求,實(shí)現(xiàn)多點(diǎn)對多點(diǎn)的通信模式,并且可以減少數(shù)據(jù)通道,最大化地利用網(wǎng)絡(luò)資源。

        1 技術(shù)比較

        “點(diǎn)—點(diǎn)”數(shù)據(jù)傳輸[2]:這種傳輸模式是直接對話,客戶端直接向編碼服務(wù)端呼叫,建立連接,然后編碼服務(wù)端向客戶端傳輸數(shù)據(jù)。在“一路對一路”的數(shù)據(jù)傳輸應(yīng)用中因其實(shí)現(xiàn)較為簡單、方便,所以使用較為廣泛,但隨著市場及客戶的需求,“多路對多路”的視頻數(shù)據(jù)傳輸模式在實(shí)際應(yīng)用中顯得越來越迫切,如果繼續(xù)基于“點(diǎn)—點(diǎn)”數(shù)據(jù)傳輸模式來實(shí)現(xiàn)“多路對多路”的傳輸模式(如圖1所示),有N路客戶端要與M路編碼端建立連接通信,那么就需要N×M路通道來實(shí)現(xiàn),如果M與N很大,則N×M更大,這樣網(wǎng)絡(luò)傳輸是很占用網(wǎng)絡(luò)資源并且相當(dāng)復(fù)雜,很容易產(chǎn)生網(wǎng)絡(luò)擁塞現(xiàn)象,幾乎不可能實(shí)現(xiàn)。

        圖1 “點(diǎn)—點(diǎn)”數(shù)據(jù)傳輸模式

        流媒體中間件[3]:流媒體中間件在兩個(gè)獨(dú)立應(yīng)用層之間起到管理、調(diào)度、交換信息、信息傳遞等作用。本設(shè)計(jì)中,流媒體中間件用來處理視頻監(jiān)控系統(tǒng)中視頻流數(shù)據(jù)在網(wǎng)絡(luò)上的傳遞和管理,如圖2所示,N路客戶端與M路編碼端連接通信,只需M+N路通道來實(shí)現(xiàn),占用網(wǎng)絡(luò)資源較少,而且規(guī)范了網(wǎng)絡(luò)傳輸?shù)臉?biāo)準(zhǔn),克服了網(wǎng)絡(luò)擁塞現(xiàn)象,使系統(tǒng)由原始的編碼端與客戶端之間的“點(diǎn)—點(diǎn)”數(shù)據(jù)傳輸升級到了“點(diǎn)—塊—點(diǎn)”傳輸,而且避免了客戶端與編碼端的直接對話,在數(shù)據(jù)通路數(shù)量比較大的時(shí)候,可以很大限度地減輕編碼端的資源占用,優(yōu)勢更加明顯。

        圖2 “點(diǎn)—塊—點(diǎn)”數(shù)據(jù)傳輸模式

        2 設(shè)計(jì)方案

        2.1 流媒體中間件工作原理

        本設(shè)計(jì)中間件在Linux平臺(tái)中用QT4[4]設(shè)計(jì)實(shí)現(xiàn),以SIP協(xié)議[5]作為控制協(xié)議來建立會(huì)話,利用RTP協(xié)議來傳輸視頻碼流。

        視頻流中間件的工作過程與數(shù)據(jù)的傳輸過程是相反的,如圖3所示,中間件在網(wǎng)絡(luò)上進(jìn)行SIP注冊以后,首先等待客戶端對中間件進(jìn)行呼叫,呼叫信息中包含了客戶端用戶名、用戶權(quán)限等級、用戶IP地址、申請的通道端口、想要呼叫哪路攝像頭的視頻信息等。中間件將這些信息進(jìn)行鑒別以后,根據(jù)客戶端不同用戶的權(quán)限,向相應(yīng)的編碼攝像頭發(fā)送呼叫,通過這些呼叫與對應(yīng)的編碼端建立SIP會(huì)話通道,然后通過RTP協(xié)議建立RTP數(shù)據(jù)傳輸通道,接收壓縮編碼的數(shù)據(jù),中間件首先將這些數(shù)據(jù)存入一定大小的緩沖區(qū),再給與對中間件發(fā)起呼叫的客戶端回應(yīng),并且與其建立會(huì)話通道,將剛收到的緩沖區(qū)內(nèi)數(shù)據(jù)傳送給客戶端進(jìn)行處理。

        圖3 流媒體中間件工作原理圖

        2.2 實(shí)現(xiàn)方案

        本設(shè)計(jì)的流媒體中間件是專門針對于連接編碼端與客戶端之間視頻流數(shù)據(jù)的中間件。作為視頻監(jiān)控系統(tǒng)的一部分,中間件啟動(dòng)后首先要在主線程中完成網(wǎng)上代理注冊,即向SIP注冊服務(wù)器登記自己的代理用戶名、IP地址、端口信息等。注冊完成后,可以從注冊服務(wù)器查看到中間件的一些信息,如圖4所示。

        當(dāng)客戶端想要獲取某路視頻信息的時(shí)候,向中間件發(fā)送呼叫請求,中間件接收到呼叫請求后,會(huì)對請求所攜帶的信息進(jìn)行鑒別,這時(shí)候分兩種情況來做出處理。

        第一種情況:若客戶端請求的這一路攝像頭編碼視頻信息之前沒有被其他的客戶端申請呼叫過,則中間件會(huì)先對這一路編碼攝像頭發(fā)出新的呼叫。當(dāng)中間件對編碼攝像頭的呼叫被編碼端響應(yīng)后,視頻流數(shù)據(jù)會(huì)沿著中間件與編碼攝像頭的會(huì)話通道傳送給中間件。中間件得到數(shù)據(jù)后,再給之前呼叫的客戶端發(fā)送響應(yīng)信息,從而再與客戶端建立會(huì)話通路,最后將視頻數(shù)據(jù)傳送給客戶端。

        第二種情況:客戶端請求視頻信息的編碼攝像頭之前已經(jīng)被其他客戶端呼叫過,也就是說已經(jīng)出現(xiàn)過第一種情況。這時(shí)中間件已經(jīng)開始從相應(yīng)的這一路攝像頭編碼端接收這一路編碼后的視頻數(shù)據(jù)。中間件就不再向那一路編碼端發(fā)送請求,而是開辟一條新的線程,然后直接響應(yīng)呼叫的客戶端,在新的線程中將數(shù)據(jù)傳輸過去。

        中間件處理客戶端的視頻數(shù)據(jù)請求呼叫的流程如圖5所示。在整體的工作流程實(shí)現(xiàn)之后,對中間件進(jìn)行了界面的設(shè)計(jì),管理者可以直接通過界面進(jìn)行操作實(shí)現(xiàn)相關(guān)功能。界面可以直接體現(xiàn)出當(dāng)時(shí)系統(tǒng)中訪問的客戶端的數(shù)量、IP地址、客戶端用戶名等,管理者也可以直接對其進(jìn)行操作,例如斷開某一客戶的鏈接等??蛻舳说男畔⑼ㄟ^中間件與客戶端的“交流”使中間件獲得,并且通過程序直接體現(xiàn)在界面中。

        圖5 中間件處理客戶端呼叫流程

        2.3 界面設(shè)計(jì)

        中間件的實(shí)現(xiàn)從最頂層、面向用戶的界面開始。在QT[6]中建立一個(gè)新的QT Gui應(yīng)用工程,這個(gè)工程里包含了4種不同的類別,分別是頭文件、源文件、界面文件、資源文件。其中頭文件和源文件用來存放要實(shí)現(xiàn)功能的具體程序,界面文件可以直接讓用戶通過對控件的選擇來完成對界面的基本設(shè)計(jì),然后通過對控件完成信號槽的鏈接,通過對控件的觸發(fā)運(yùn)行某些程序。資源文件是存放一些對界面進(jìn)行美化的圖、Logo等。

        如圖6所示,本文設(shè)計(jì)的中間件界面有2個(gè)按鈕可供用戶進(jìn)行點(diǎn)擊。這2個(gè)按鈕分別是注冊和退出,起到的功能也是注冊功能和退出功能。當(dāng)程序運(yùn)行時(shí),單擊界面的這2個(gè)按鈕,則會(huì)直接運(yùn)行這2個(gè)函數(shù)中的程序,完成注冊和退出的功能。這就是QT中的信號槽體制,也就是通過對界面控件的觸發(fā)而運(yùn)行相應(yīng)的程序。圖6中其他控件不可以通過用戶點(diǎn)擊直接運(yùn)行,則需要信號槽的另一種用法來進(jìn)行管理。例如“攝像頭連接狀態(tài)”這一控件要實(shí)現(xiàn)的功能是可以直接體現(xiàn)當(dāng)前這一路攝像頭是否有數(shù)據(jù)傳到中間件,當(dāng)有數(shù)據(jù)的時(shí)候,顯示為成功,可是這里無法點(diǎn)擊,要完成顯示狀態(tài)的改變,本文設(shè)計(jì)了利用定時(shí)器來進(jìn)行定時(shí)刷新的方法。

        圖6 管理4路攝像頭的中間件界面(截圖)

        定時(shí)器的設(shè)計(jì)有許多種,包括利用系統(tǒng)自帶庫,C語言庫等。本文選用QT自帶的定時(shí)器,運(yùn)用這種定時(shí)器要在serve2send.cpp中包含頭文件QTime.h。QTime的具體用法是:

        程序的含義是指每隔指定的時(shí)間運(yùn)行一次連接的函數(shù)。本文將間隔時(shí)間設(shè)定為1 s。通過定時(shí)器,每1 s運(yùn)行一次status()函數(shù)。status()函數(shù)的功能是得到客戶端的IP地址,呼叫本路攝像頭視頻信息的客戶端數(shù),以及中間件是否與攝像頭編碼端有數(shù)據(jù)傳遞。然后將這些信息在中間件的界面中顯示出來。通過每秒監(jiān)測,可以不停地刷新中間件當(dāng)前的狀態(tài),并且顯示給管理員進(jìn)行管理操作。

        2.4 數(shù)據(jù)轉(zhuǎn)發(fā)機(jī)制

        在之前的原理分析和設(shè)計(jì)方案中已經(jīng)確定了中間件的數(shù)據(jù)轉(zhuǎn)發(fā)機(jī)制的實(shí)現(xiàn)方案:當(dāng)某一路攝像頭編碼視頻信息在中間件中第一次被某客戶端呼叫的時(shí)候,中間件才會(huì)向該攝像頭進(jìn)行呼叫請求來獲取這一路編碼后的視頻信息,然后再傳遞給客戶端。具體的實(shí)現(xiàn)方法是利用SIP協(xié)議來進(jìn)行信令控制,然后利用RTP協(xié)議進(jìn)行傳輸數(shù)據(jù)。

        3 測試

        流媒體中間件是介于編碼服務(wù)器和多畫面[7]客戶端之間工作的,因此中間件的測試需要加入到整個(gè)視頻系統(tǒng)中,測試采用4路攝像頭進(jìn)行實(shí)時(shí)采集,然后在4個(gè)達(dá)芬奇平臺(tái)進(jìn)行D1分辨力的實(shí)時(shí)編碼,與流媒體中間建立連接,多畫面客戶端分別呼叫該4路進(jìn)行視頻數(shù)據(jù)請求。最后結(jié)果流媒體中間件工作界面如圖7所示,表明4路通道均通過流媒體中間件與編碼端連接成功;多畫面客戶端同步實(shí)時(shí)顯示4路攝像頭采集畫面(如圖8所示),視頻畫面質(zhì)量和實(shí)時(shí)性較好。

        圖7 流媒體中間件工作界面(截圖)

        圖8 多畫面客戶端實(shí)時(shí)顯示(截圖)

        4 結(jié)論

        本設(shè)計(jì)完全實(shí)現(xiàn)了流媒體中間件在視頻系統(tǒng)中的集中管理、數(shù)據(jù)調(diào)度、數(shù)據(jù)傳輸和轉(zhuǎn)發(fā)等功能,使系統(tǒng)由原始的編碼服務(wù)器端與客戶端之間的“點(diǎn)—點(diǎn)”數(shù)據(jù)傳輸升級到了“點(diǎn)—塊—點(diǎn)”傳輸,有效地降低了復(fù)雜視頻通信對網(wǎng)絡(luò)帶寬的需求,很大限度地減輕服務(wù)器的資源占用,優(yōu)勢明顯,真正滿足了用戶在任何地點(diǎn)、任何時(shí)間隨意觀看多路網(wǎng)絡(luò)視頻信息的需求,為網(wǎng)絡(luò)視頻通信的發(fā)展起到了一定推動(dòng)作用,實(shí)用價(jià)值很高。

        [1]谷和啟.中間件主流技術(shù)及其未來發(fā)展精解[EB/OL].[2013-06-02].http://articles.e-works.net.cn/soa/article28721.htm.

        [2]溫仁鳳,馮俊杰,陳金坤.點(diǎn)對點(diǎn)通信軟件設(shè)計(jì)[J].智能計(jì)算機(jī)與應(yīng)用,2013(1):13-16.

        [3]肖丹,祝家鈺.基于CORBA的自適應(yīng)流媒體中間件系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)與信息技術(shù),2007(8):8-10.

        [4]劉艷青,蘇桂蓮.基于Qt4的圖形用戶界面程序的設(shè)計(jì)與實(shí)現(xiàn)[J].現(xiàn)代計(jì)算機(jī),2009,3(3):170-172.

        [5]萬曉榆,張溢華,樊自甫.基于SIP的視頻會(huì)議系統(tǒng)視頻模塊的設(shè)計(jì)與實(shí)現(xiàn)[J].電視技術(shù),2009,33(8):99-102.

        [6]于邦偉,鄧華秋.基于Qt/Embedded的嵌入式數(shù)字監(jiān)控系統(tǒng)控制界面的實(shí)現(xiàn)[J].電視技術(shù),2011,35(24):25-28.

        [7]胡健生,張倩,蔡艷軍.基于ARM11+FPGA的多路視頻監(jiān)控系統(tǒng)關(guān)鍵技術(shù)研究[J].電視技術(shù),2011,35(21):120-123.

        猜你喜歡
        中間件攝像頭客戶端
        浙江首試公路非現(xiàn)場執(zhí)法新型攝像頭
        攝像頭連接器可提供360°視角圖像
        RFID中間件技術(shù)及其應(yīng)用研究
        電子制作(2018年14期)2018-08-21 01:38:10
        縣級臺(tái)在突發(fā)事件報(bào)道中如何應(yīng)用手機(jī)客戶端
        傳媒評論(2018年4期)2018-06-27 08:20:24
        孵化垂直頻道:新聞客戶端新策略
        傳媒評論(2018年4期)2018-06-27 08:20:16
        基于VanConnect中間件的設(shè)計(jì)與開發(fā)
        電子測試(2018年10期)2018-06-26 05:54:02
        基于Vanconnect的智能家居瘦客戶端的設(shè)計(jì)與實(shí)現(xiàn)
        電子測試(2018年10期)2018-06-26 05:53:34
        奔馳360°攝像頭系統(tǒng)介紹
        中間件在高速公路領(lǐng)域的應(yīng)用
        一種支持智能環(huán)境構(gòu)建的中間件
        亚洲一区二区视频免费看| 中文字幕人妻丝袜成熟乱| 免费无码一区二区三区a片百度| 国产69精品久久久久app下载| 欧美极品jizzhd欧美| 亚洲男人的天堂在线播放| 国产亚洲欧美精品一区| 亚洲乱在线播放| 91亚洲精品久久久蜜桃| 一区二区三区夜夜久久| 日本一区二区视频在线| 欧美午夜理伦三级在线观看| 中国丰满人妻videoshd| 欲妇荡岳丰满少妇岳| 国产av无码专区亚洲aⅴ| 字幕网中文字幕精品一区| 国产亚洲熟妇在线视频| 久久午夜精品人妻一区二区三区| 国内精品久久久久影院优| 玩弄丰满奶水的女邻居| 藏春阁福利视频| 香蕉国产人午夜视频在线观看| 亚洲精品美女久久久久99| 不卡av一区二区在线| 无码专区人妻系列日韩精品 | 98国产精品永久在线观看| av在线男人的免费天堂| 粉嫩国产av一区二区三区| 女人被狂躁c到高潮| 精品一区二区三区在线观看| 亚洲情精品中文字幕有码在线| 国产精品高清一区二区三区人妖| 国产av一区二区亚洲精品| 插我一区二区在线观看| 人妻丰满熟妇av无码片| 日韩中文字幕一区二区高清| 日本高清一区二区三区在线| 亚洲中文字幕舔尻av网站| 亚洲av无码久久| 天天弄天天模| 国产成人无码aⅴ片在线观看|