欧洲日韩在线观看,www.天天射,a级片在线免费观看,国产中文区二幕区2012,91精品系列,一本一道波多野结衣一区二区,婷婷深爱五月

 首頁(yè) > 技術(shù) > 技術(shù)文摘 > 基于IP Multicast的傳輸和實(shí)現(xiàn)

基于IP Multicast的傳輸和實(shí)現(xiàn)

2004-06-10 00:00:00   作者:   來(lái)源:   評(píng)論:0 點(diǎn)擊:




 。1)前端監(jiān)控現(xiàn)場(chǎng)由監(jiān)控現(xiàn)場(chǎng)主機(jī)及一些外圍設(shè)備組成。外圍設(shè)備包括攝像機(jī)、電動(dòng)鏡頭、云臺(tái)、防護(hù)罩、監(jiān)視器、多功能解碼器及報(bào)警器。監(jiān)控現(xiàn)場(chǎng)主機(jī)運(yùn)行客戶(hù)前端軟件,實(shí)現(xiàn)視頻、音頻數(shù)據(jù)的實(shí)時(shí)采集、壓縮、解壓縮(音頻)(視頻傳輸 單向的,音頻傳輸是雙向的)及打包傳送;對(duì)壓縮的視(音)頻數(shù)據(jù)進(jìn)行經(jīng)存儲(chǔ)(也可在分近中心進(jìn)行)。存儲(chǔ)方式為循環(huán)存儲(chǔ)、定時(shí)存儲(chǔ)、手動(dòng)存儲(chǔ)及運(yùn)動(dòng)視頻檢測(cè)啟動(dòng)存儲(chǔ)。接收來(lái)自分控中心的控制指令(也可在本地實(shí)施),對(duì)云臺(tái)動(dòng)作(上、下、左、右及自動(dòng))電動(dòng)鏡頭的三可變(光圈、焦距和聚焦)。

可以通過(guò)setsocket函數(shù)設(shè)置套接字的屬性,如地址重用,緩沖區(qū)是接收還是發(fā)送。

  M_localAddr.sin_family = AF_INET;

  M_localAddr.sin_port=m_iPort;//本地端口號(hào)

  M_localAddr..sin _addr.S_un.S_addr=m_uLocalIP;//本地IP地址;

  (3)綁定(將新創(chuàng)建的套字節(jié)與本地插口地址進(jìn)行綁定):

  bind(m_socket,(PSOCKADDR)&(m_localAddr),sizeof(m_localAddr);

  (4)設(shè)置生存時(shí)間(即數(shù)據(jù)包最多允許路由多少個(gè)網(wǎng)段):

  WSAIoctl(m_socket,SIO_MULTICAST_SCOPE,//設(shè)置數(shù)據(jù)報(bào)生存時(shí)間;

  &iMcastTTL,//生存時(shí)間大;

  sizeof(iMcastTTL),NULL,0,&cbRet,NULL,NULL);

  (5)配置Loopback,以決定組播數(shù)據(jù)幀是否回送:

  int bLoopback=FALSE;

  WSAIoct(m_socket,SIO_MULTIPOINT_LOOPBACK,//允許或禁止組播數(shù)據(jù)幀回送;

  &bLoopback,sizeof(bLoopback),NULL,0,&cbRet,NULL,NULL);

  (6)收發(fā)數(shù)據(jù):

  在發(fā)送方(前端、客戶(hù)端)響應(yīng)發(fā)送的消息函數(shù)中調(diào)用下面函數(shù):

  WSASendTo (m_socket,&stWSABuf,&cbRet,0,(struct sockaddr*)&stDestAddr,//發(fā)送的目的地址;

  sizeof(struct(sockaddr),NULL,NULL);

  在發(fā)送方(前端、客戶(hù)端)響應(yīng)接收消息函數(shù)中調(diào)用下面函數(shù):

  WSARecvFrom(m_socket,&stWSABuf,1,& cbRet,&Flag,(struct sockaddr*)&stSrcAddr,//源地址;

  &iLen,NULL,NULL);

 。7)將組播套接字設(shè)置為異步I/O工作模式,在該套節(jié)字上接收事件為基礎(chǔ)的網(wǎng)絡(luò)事件通知:

  WSAEventSelect(m_socket,m_hNetworkEvent,//網(wǎng)絡(luò)事件句柄;將此套字節(jié)與該事件句柄并聯(lián)在一起;

  FD_WRITE|FD_READ);//發(fā)生此兩個(gè)事件之一,則將m_hNetworkEvent置為有信號(hào)狀態(tài);

 。8)在工作線(xiàn)程中設(shè)置:

  WSAWaitForMultipleEvent(3,//等待事件的個(gè)數(shù));

  p->m_eventArray,//存放事件句柄的數(shù)組;

  FALSE,WSA_INFINITE,F(xiàn)ALSE);

 。9)關(guān)閉組播套字節(jié):

  closesocket(m_socket);

  接收端(后端、服務(wù)器端)實(shí)現(xiàn)步驟:

 。1)-(3)與發(fā)送端(客戶(hù)端)相同;

  (4)調(diào)用WSAJLoinLeaf加入組播組:

  SOCKET NetSock=WSAJoinLeaf(sock,//必須為組播標(biāo)志進(jìn)行創(chuàng)建,否則調(diào)用失敗;

  (PSOCKADDR)&(m_stDestAddr,//組播導(dǎo)址,與發(fā)送方的目的地址相同;

  sizeof(m_stDestAddr),UNLL,NULL,NULL,NULL,

  JL_BOTH));//允許接收和發(fā)送;

 。5)與客戶(hù)端(6)相同;(6)與客戶(hù)端(7)相同;(7)與客戶(hù)端(8)相同;(8)離開(kāi)組播組;closesocket(NewSock);//NewSock是調(diào)用WSAoinLeaf()返回的套節(jié)字。

  2.3 在監(jiān)控系統(tǒng)中網(wǎng)絡(luò)傳輸模塊的設(shè)計(jì)

  網(wǎng)絡(luò)傳輸模塊流程如圖2所示。

  發(fā)送端(前端監(jiān)控現(xiàn)場(chǎng)主機(jī)、客戶(hù)端)監(jiān)控主機(jī)運(yùn)行客戶(hù)端程序。在主線(xiàn)程中,啟動(dòng)視同、音頻兩個(gè)線(xiàn)程分別對(duì)視頻及音頻進(jìn)行采集,放入視(音)頻緩沖區(qū);視頻在本地回放;同時(shí),監(jiān)聽(tīng)分控中心的連接請(qǐng)求,收到連接請(qǐng)求,TCP三次握手,建立TCP連接(信令通道);通過(guò)信令通道,向分控心發(fā)送二組組播地址及端口號(hào)(對(duì)應(yīng)視頻及音頻,音頻兩個(gè)線(xiàn)程;分別在視(音)頻線(xiàn)程中完成;利用Winsock2建立視(音)頻數(shù)據(jù)通道(UDP)(源碼前已述及);對(duì)視(音)頻進(jìn)行壓縮編碼、組播發(fā)送;音頻線(xiàn)程接收分控中心的音頻數(shù)據(jù)包,解碼并播放;實(shí)現(xiàn)視頻的單向傳輸和音頻的雙向傳輸。

  接收端(后端分控中心、服務(wù)器端)分控中心主機(jī)運(yùn)行服務(wù)器端程序,在主線(xiàn)程中向前端監(jiān)控現(xiàn)場(chǎng)主機(jī)發(fā)出連接請(qǐng)求(CALL),三次握手建立TCP連接(信令通道);后端接收到組播地址及端口號(hào)后,啟動(dòng)視(音)頻兩個(gè)線(xiàn)程,完成;利用Winsock2建立視(音)頻數(shù)據(jù)通道(UDP),加入視(音)頻組播組,接收壓縮視(音)頻包,并解碼顯示(播放);其中音頻線(xiàn)程,還要完成音頻數(shù)據(jù)包解碼顯示(播放);其中音頻線(xiàn)程,還要完成音頻數(shù)據(jù)包的壓縮、發(fā)送;實(shí)現(xiàn)視頻的單向傳輸、音頻的雙向傳輸。

  一個(gè)后端分控中心可同時(shí)監(jiān)控12路前端視頻及音頻信號(hào),在設(shè)計(jì)服務(wù)器端監(jiān)控程序時(shí),采用多線(xiàn)程技術(shù),每建立一對(duì)前端監(jiān)控主機(jī)與后端分控中心(服務(wù)器)的TCP連接,就開(kāi)兩個(gè)接收線(xiàn)程(一個(gè)接收視頻線(xiàn)程;一個(gè)接收音頻線(xiàn)程),視頻線(xiàn)程接收視頻數(shù)據(jù)包進(jìn)行解壓縮及回放;音頻線(xiàn)程接收音頻數(shù)據(jù)包進(jìn)行解壓縮及播放。對(duì)云臺(tái)及攝像機(jī)的控制指令通過(guò)信令通道傳輸。

  本系統(tǒng)運(yùn)行在Win2000平臺(tái)上,用VC++6.0開(kāi)發(fā)工具開(kāi)發(fā)。

  在遠(yuǎn)程數(shù)字音視頻監(jiān)控系統(tǒng)的傳輸模塊設(shè)計(jì)中,根據(jù)音頻頻數(shù)據(jù)傳輸及控制信號(hào)傳輸?shù)奶攸c(diǎn),運(yùn)用IP組播技術(shù)極大地減輕了網(wǎng)絡(luò)負(fù)擔(dān),避免了資源的浪費(fèi),節(jié)省了網(wǎng)絡(luò)帶寬;利用TCP/IP協(xié)議設(shè)計(jì)了信令通道(TCP)和數(shù)據(jù)通道(UDP);運(yùn)用Windows多線(xiàn)程機(jī)制實(shí)現(xiàn)了音頻數(shù)據(jù)的實(shí)時(shí)、多點(diǎn)傳輸和控制信號(hào)的可靠傳,提高了程序運(yùn)行的效率。在該系統(tǒng)的基礎(chǔ)上進(jìn)行改造和擴(kuò)展,可以應(yīng)用到遠(yuǎn)程教學(xué)、遠(yuǎn)程醫(yī)療等多種多媒體通信;因此,遠(yuǎn)程數(shù)字音視頻監(jiān)控系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)不僅具有監(jiān)控方面的現(xiàn)實(shí)意義,而且對(duì)于許多應(yīng)用都有借鑒和參考價(jià)值。

中國(guó)通信網(wǎng)(www.c114.net)—電子技術(shù)應(yīng)用

相關(guān)閱讀:

分享到: 收藏

專(zhuān)題