版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、作者:日期:3G監(jiān)控視頻控件編寫方案在現(xiàn)有已經(jīng)開發(fā)了 GIS平臺,想把電信的全球眼(天網(wǎng))或是自己安裝的一些遠(yuǎn)程監(jiān)控集成到這個GIS里面來,設(shè)備大多是??档腄VR,GIS是B/S結(jié)構(gòu)的,希望遠(yuǎn)控科技能提供一個可以融合到GIS的視頻軟件系統(tǒng)或IE插件,在GIS界面下點(diǎn)擊標(biāo)注的視頻點(diǎn),可以彈 出視頻監(jiān)控窗口進(jìn)行實(shí)時監(jiān)控。H黑* in芷IF*理沖愴衲GH和甲蛙E卜7 =XI華MMg Hp>0 風(fēng)譚亂J藍(lán)4-哉 命謡空n何薛囂衣鬻2。解決方案 可以采用兩種方式來整合:A. 最簡單的方式是:客戶提供現(xiàn)有 GIS的接口,由遠(yuǎn)控科技在軟件編 碼和數(shù)據(jù)庫里完成接入 .客戶根據(jù)實(shí)際需求自行開發(fā)最后的界面,
2、在 視頻調(diào)用方面遠(yuǎn)控科技予以配合 ;B。遠(yuǎn)控科技提供一個后臺支撐的 CMS 和流媒體轉(zhuǎn)發(fā)服務(wù)器,同時 提供一個B/S的入口,客戶來編寫調(diào)用代碼和數(shù)據(jù)庫系統(tǒng), 特別是數(shù) 據(jù)庫的對接。遠(yuǎn)控科技向客戶提供一個基于流媒體轉(zhuǎn)發(fā)服務(wù)器的OCX 接口,而這個接口,甲方可以很方便的可以嵌入到現(xiàn)有的 web 中,而這個 OCX 需要完成的功能是:說去訪問哪個視頻流就訪問哪 個視頻流,如果有必要,可以做 9 畫面 /16 畫面分割等等,在必要的 情況下,可以加入云臺、鏡頭控制功能, 目前只考慮??档脑O(shè)備接入, 將來有其他廠家的設(shè)備再做考慮。遠(yuǎn)控科技除了 OCX 文件,還會提 供一個 Demo 的實(shí)例,供客戶整合的
3、時候參考 .在寫代碼的時候,雙方 需要有個協(xié)議約定, 主要是數(shù)據(jù)如何統(tǒng)一到一起, 是手工還是自動。. 譬如 GIS 的界面上標(biāo)注增加一個攝像頭, 流媒體這邊的數(shù)據(jù)庫如何跟 著變動等等 .。乙方提供的程序文件有:1. CMS -中心管理服務(wù)器2。totalsvr 流媒體服務(wù)器3.ocxB/S 插件4. demo演示文件 5。說明文檔3.關(guān)于客戶提出的統(tǒng)一轉(zhuǎn)換視頻流格式通用播放器監(jiān)控的問題客戶希望在流媒體服務(wù)器上將視頻統(tǒng)一轉(zhuǎn)換為視頻流格式, 在遠(yuǎn) 端采用通用播放器來讀取碼流,遠(yuǎn)控通過嚴(yán)謹(jǐn)?shù)募夹g(shù)論證,不支持這樣的處理方式,主要原因是 :A。遠(yuǎn)程讀取視頻流的模式主要用于 VOD (視頻點(diǎn)播系統(tǒng)),比如
4、土豆網(wǎng)、優(yōu)酷網(wǎng)等等視頻網(wǎng)站,因?yàn)橐曨l點(diǎn)播讀取的不是實(shí)時的視頻流, 是視頻文件 ,如果要對實(shí)時監(jiān)控系統(tǒng)進(jìn)行轉(zhuǎn)碼,那轉(zhuǎn)碼的效率是非常 低的,本來遠(yuǎn)程監(jiān)控系統(tǒng)就有網(wǎng)絡(luò)延時, 如果再對前端的視頻服務(wù)器 做一次轉(zhuǎn)碼,那延時會變得非常大 ,因?yàn)檗D(zhuǎn)碼的時候有個采樣頻率, 到最終用戶在瀏覽器上看到的視頻已經(jīng)不是實(shí)時的視頻,幾乎可以說是錄像回放了,目前國際上都不會對實(shí)時的視頻監(jiān)控系統(tǒng)做轉(zhuǎn)碼處 理,那樣操作的話就不叫實(shí)時播放,而是延時回放;B。視頻流的轉(zhuǎn)碼對資源的消耗很大, 一臺頂級的服務(wù)器,如果同時轉(zhuǎn) 碼50路的視頻流就會全面崩潰,在視頻流的轉(zhuǎn)換過程中,CPU/內(nèi)存/ 顯存的消耗都是非常大的。C。很多廠家都不會
5、提供視頻流轉(zhuǎn)換為 AVI文件的接口,有的廠家的 DVR 根本就不能轉(zhuǎn)換為 AVI 文件,目前的技術(shù),任何廠家的實(shí)時視 頻流都無法轉(zhuǎn)換成 Flash 格式。以下就是基本??档?SDK 包開發(fā)出的視頻 IE 控件,可是直接復(fù)制 就可以用了,此控件是用VC+編寫的,環(huán)境是用VT2008。如需下載控件請至U 下載。文件名 :HkOcxCtl 。 h(3K)#if!defined(AFX_HKOCXCTL_H_51923F17_EE7E_4049_8D42_9E3FED8493DB_INCLUDED_)#defineAFX_HKOCXCTL_H_51923F17_EE7E_4049_8D42_9E3FE
6、D8493DB_INCLUDED_#if _MSC_VER 1000#pragma once#endif / _MSC_VER 1000/ HkOcxCtl.h : Declaration of the CHkOcxCtrl ActiveX Control class./ CHkOcxCtrl : See HkOcxCtl.cpp for implementation.class CHkOcxCtrl : public COleControlDECLARE_DYNCREATE(CHkOcxCtrl)/ Constructorpublic:CHkOcxCtrl( ) ;private:long
7、m_UserID ;long m_DevicePort;char m_UserName32;char m_DeviceIP16;char m_UserPassWord 32;/ Overrides/ ClassWizard generated virtual function overrides AFX_VIRTUAL(CHkOcxCtrl)public :virtual void OnDraw(CDC* pdc , const CRect rcBounds, const CRect rcInvalid) ; virtual void DoPropExchange ( CPropExchang
8、e pPX);virtual void OnResetState( );/ AFX_VIRTUAL/ Implementation public:CHkOcxCtrl();/ Class factory and guid/ GetTypeInfo/ Property page IDs/ Type name and misc statusDECLARE_OLECREA TE_EX ( CHkOcxCtrl) DECLARE_OLETYPELIB ( CHkOcxCtrl) DECLARE_PROPPAGEIDS ( CHkOcxCtrl) DECLARE_OLECTLTYPE(CHkOcxCtr
9、l)/ Message maps AFX_MSG(CHkOcxCtrl )/ NOTE - ClassWizard will add and remove member functions here 。/ DO NOT EDIT what you see in these blocks of generated code !/ AFX_MSGDECLARE_MESSAGE_MAP ()/ Dispatch maps/ AFX_DISPATCH ( CHkOcxCtrl ) afx_msg long GetUserID ( ); afx_msg LPCSTR GetUserName( ); af
10、x_msg LPCSTR GetUserPassWord( ) ; afx_msg LPCSTR GetDeviceIP( ) ;afx_msg long GetDevicePort() ; afx_msg long ConnectDevice ( ); afx_msg long StartPreviewVideo( ); afx_msg void SetDeviceIP ( LPCTSTR DeviceIP ); afx_msg void SetDevicePort ( long DevicePort); afx_msg void SetUserName ( LPCTSTR UserName
11、); afx_msg void SetUserPassWrod( LPCTSTR UserPass); / AFX_DISPATCHDECLARE_DISPATCH_MAP( )/ Event maps/ AFX_EVENT ( CHkOcxCtrl )/ AFX_EVENT DECLARE_EVENT_MAP( )/ Dispatch and event IDs public: enum /AFX_DISP_ID ( CHkOcxCtrl ) dispidGetUserID = 1L, dispidGetUserName = 2L , dispidGetUserPassWord = 3L ,
12、 dispidGetDeviceIP = 4L,dispidGetDevicePort = 5L, dispidConnectDevice = 6L , dispidStartPreviewVideo = 7L , dispidSetDeviceIP = 8L, dispidSetDevicePort = 9L, dispidSetUserName = 10L, dispidSetUserPassWrod = 11L, AFX_DISP_ID;/ AFX_INSERT_LOCA TION / Microsoft Visual C+ will insert additional declarat
13、ions immediately before the previous line. endif / ! defined (AFX_HKOCXCTL_H_51923F17_EE7E_4049_8D42_9E3FED8493DB_INCLUDED)文件名: HkOcxCtl 。 cpp/ HkOcxCtl。cpp :Implementation of the CHkOcxCtrl ActiveXControl class.#include” stdahX#include” HkO(hx"include "HkOcxCtl 。 h”# include ” HkOcxRpgp”i
14、fdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE#endifIMPLEMENT_DYNCREATE(CHkOcxCtrl , COleControl)/ Message mapBEGIN_MESSAGE_MAP ( CHkOcxCtrl, COleControl )/ AFX_MSG_MAP(CHkOcxCtrl )/ NOTE ClassWizard will add and remove message map entries/ DO NOT EDIT what you see in
15、these blocks of generated code !II AFX_MSG_MAPON_OLEVERB(AFX_IDS_VERB_PROPERTIES , OnProperties)END_MESSAGE_MAP ()IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII Dispatch mapBEGIN_DISPATCH_MAP(CHkOcxCtrl, COleControl ) /AFX_DISPATCH_MAP ( CHkOcxCtrl) DISP_FUNCTION(CHk
16、OcxCtrl , ” GetUserID", GetUserID, VT_I4,VTS_NONE)DISP_FUNCTION (CHkOcxCtrl, ”GetUserName”G, etUserName, VT_BSTR, VTS_NONE )DISP_FUNCTION ( CHkOcxCtrl, "GetUserPassWord ”,GetUserPassWord, VT_BSTR, VTS_NONE)DISP_FUNCTION(CHkOcxCtrl , ” GetDeviceIP,”GetDeviceIP, VT_BSTR, VTS_NONE)DISP_FUNCTI
17、ON(CHkOcxCtrl , "GetDevicePort", GetDevicePort, VT_I4, VTS_NONE )DISP_FUNCTION(CHkOcxCtrl, "ConnectDevice", ConnectDevice, VT_I4 , VTS_NONE )DISP_FUNCTION(CHkOcxCtrl, "StartPreviewVideo ” ,StartPreviewVideo, VT_I4, VTS_NONE)DISP_FUNCTION(CHkOcxCtrl, "SetDeviceIP ”, SetD
18、eviceIP, VT_EMPTY , VTS_BSTR)DISP_FUNCTION(CHkOcxCtrl , "SetDevicePort ” , SetDevice,PortVT_EMPTY , VTS_I4)DISP_FUNCTION (CHkOcxCtrl, "SetUserName”S, etUserName,VT_EMPTY , VTS_BSTR)DISP_FUNCTION(CHkOcxCtrl, "SetUserPassWrodSetUserPassWrod, VT_EMPTY , VTS_BSTR) /AFX_DISPATCH_MAPEND_DIS
19、PATCH_MAP()/ Event mapBEGIN_EVENT_MAP(CHkOcxCtrl, COleControl )/ AFX_EVENT_MAP (CHkOcxCtrl)/ NOTE - ClassWizard will add and remove event map entries/ DO NOT EDIT what you see in these blocks of generated code !/AFX_EVENT_MAPEND_EVENT_MAP()/ Property pages/ TODO: Add more property pages as needed。 R
20、emember toincrease the count!BEGIN_PROPPAGEIDS(CHkOcxCtrl , 1)PROPPAGEID(CHkOcxPropPage::guid)END_PROPPAGEIDS(CHkOcxCtrl)/ Initialize class factory and guidIMPLEMENT_OLECREATE_EX(CHkOcxCtrl , ”,0x22afffa4, 0x19ad, 0x4fef , 0xbc, 0x2f, 0x6d,0xad, 0x18, 0xa8)/ Type library ID and version0xc0, 0xd3,wVe
21、rMajor ,IMPLEMENT_OLETYPELIB(CHkOcxCtrl, _tlid , _wVerMinor)/ Interface IDsconst IID BASED_CODE IID_DHkOcx = 0xf37ec80d, 0x7fad, 0x4bc5, 0x83, 0xa5, 0xc3, 0x94,0xa3, 0xe,0x42, 0xe4 ;const IID BASED_CODE IID_DHkOcxEvents = 0xef9a1d1d, 0x5164, 0x40a0, 0x9a, 0x79, 0xdc, 0x35,0xe6, 0x8d, 0x4f, 0x16 ;/ C
22、ontrol type informationstatic const DWORD BASED_CODE _dwHkOcxOleMisc =OLEMISC_ACTIV ATEWHENVISIBLE |OLEMISC_SETCLIENTSITEFIRST |OLEMISC_INSIDEOUT |OLEMISC_CANTLINKINSIDE |OLEMISC_RECOMPOSEONRESIZE;IMPLEMENT_OLECTLTYPE(CHkOcxCtrl ,IDS_HKOCX,_dwHkOcxOleMisc )/ CHkOcxCtrl:CHkOcxCtrlFactory : UpdateRegi
23、stry -/ Adds or removes system registry entries for CHkOcxCtrlBOOL CHkOcxCtrl :CHkOcxCtrlFactory ::UpdateRegistry(BOOL bRegister)/ TODO: Verify that your control follows apartment-model threading rules./ Refer to MFC TechNote 64 for more information./ If your control does not conform to the apartmen
24、t-model rules, then/ you must modify the code below, changing the 6th parameter from / afxRegApartmentThreading to 0。if ( bRegister)return AfxOleRegisterControlClass(AfxGetInstanceHandle(), m_clsid, m_lpszProgID,IDS_HKOCX ,IDB_HKOCX, afxRegApartmentThreading, _dwHkOcxOleMisc,_tlid,_wVerMajor,_wVerMi
25、nor );elsereturn AfxOleUnregisterClass( m_clsid, m_lpszProgID); / CHkOcxCtrl:CHkOcxCtrl ConstructorCHkOcxCtrl: :CHkOcxCtrl ()InitializeIIDs (&IID_DHkOcx, &IID_DHkOcxEvents );m_UserID = 1;m_DevicePort = 0;0 EOXOOTO-二込XOOMHO 0-5gs Q 丄込 XOOMHO 二上 OXOOMHO _ 三三三三三三三三三三三三三三三三三三三三三三三三三二-(0COoDo/Vss
26、ed snLU)O5SIJU uu -(9LO.da>o>ecllE )a>SLU in cco0QLueN snlLU)a5SLU uu9L(p=e>uo 左40# 0 4SU8 .spunoE左40# 0 4SU8 6pd OQO)MeQUO 二三OXOOMHO P 一 0>Uo-Bua6£/veQ /veQUO:_40xoOMHO = 三三三三三三三三三三三三三三三三三三三三三三三三三二/ TODO : Replace the following code with your own drawing code。 pdc- FillRect(rcBo
27、unds, CBrush: :FromHandle(HBRUSH ) GetStockObject( BLACK_BRUSH);/ CHkOcxCtrl:DoPropExchange Persistence supportvoid CHkOcxCtrl:DoPropExchange( CPropExchange pPX)ExchangeVersion(pPX, MAKELONG ( _wVerMinor , _wVerMajor) );COleControl::DoPropExchange(pPX);/ TODO : Call PX_ functions for each persistent
28、 custom property。/ CHkOcxCtrl: : OnResetState Reset control to default statevoid CHkOcxCtrl ::OnResetState)(found inCOleControl:OnResetState( ); / Resets defaultsDoPropExchange/ TODO : Reset any other control state here./ CHkOcxCtrl message handlerslong CHkOcxCtrl: :GetUserID()/ TODO : Add your disp
29、atch handler code herereturn m_UserID;LPCSTR CHkOcxCtrl ::GetUserName()/return m_UserName。 AllocSysString();return m_UserName;LPCSTR CHkOcxCtrl:GetUserPassWord()/return m_UserPassWord。 AllocSysString( );return m_UserPassWord;LPCSTR CHkOcxCtrl :GetDeviceIP()/return m_DeviceIP。 AllocSysString(); retur
30、n m_DeviceIP;long CHkOcxCtrl:GetDevicePort()/ TODO: Add your dispatch handler code herereturn m_DevicePort;long CHkOcxCtrl ::ConnectDevice()if (m_UserID = 0)NET_DVR_Logout_V30 (m_UserID);NET_DVR_DEVICEINFO_V30 DVR_DEVICEINFO_V30; m_UserID = NET_DVR_Login_V30 ( m_DeviceIP, m_DevicePort, m_UserName, m_UserPassWor,d DVR_DEVICEINFO_V30) ;return m_Us
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 專業(yè)選擇講座模板
- 2025年度茶葉產(chǎn)品溯源體系建設(shè)合同范本4篇
- 2025年度場化項目服務(wù)類采購項目合同附件定制版4篇
- 2025年度電競主題商鋪?zhàn)赓U合作協(xié)議4篇
- 2025年度生態(tài)環(huán)保園區(qū)場地委托出租與環(huán)保技術(shù)服務(wù)合同樣本4篇
- 專業(yè)技能提升課程2024培訓(xùn)協(xié)議
- 人教版九年級化學(xué)上冊第1章開啟化學(xué)之門《第2節(jié) 化學(xué)研究什么》公開示范課教學(xué)課件
- 二零二四事業(yè)單位聘用合同四種類別適用范圍與條件3篇
- 2025年度文化演藝中心場地租用協(xié)議范本4篇
- 2025年度城市綜合體項目場地購置合同示范文本4篇
- 瀝青路面施工安全培訓(xùn)
- 機(jī)電設(shè)備安裝施工及驗(yàn)收規(guī)范
- 倉庫安全培訓(xùn)考試題及答案
- 中國大百科全書(第二版全32冊)08
- 初中古詩文言文背誦內(nèi)容
- 天然氣分子篩脫水裝置吸附計算書
- 檔案管理項目 投標(biāo)方案(技術(shù)方案)
- 蘇教版六年級上冊100道口算題(全冊完整版)
- 2024年大學(xué)試題(宗教學(xué))-佛教文化筆試考試歷年典型考題及考點(diǎn)含含答案
- 計算機(jī)輔助設(shè)計智慧樹知到期末考試答案章節(jié)答案2024年青島城市學(xué)院
- 知識庫管理規(guī)范大全
評論
0/150
提交評論