一、前言
視頻監控系統在整個(ge)安防(fang)領(ling)域(yu),已經做到了爛大街的程序,全國起碼幾(ji)(ji)百(bai)家公司做過類似的系統,當然這(zhe)一方面的需(xu)求量(liang)也(ye)是非(fei)常(chang)旺盛的,各種(zhong)(zhong)定制(zhi)化的需(xu)求越(yue)來(lai)越(yue)多,尤其是這(zhe)幾(ji)(ji)年借著人(ren)臉識別(bie)的東風,發展(zhan)更加迅猛,人(ren)臉識別(bie)相關的技術和應用這(zhe)幾(ji)(ji)年處于風口浪尖,衍生了特別(bie)多的應用產品(pin),各種(zhong)(zhong)人(ren)臉識別(bie)的產品(pin)遍(bian)地(di)開花(hua),刷臉門禁,車站機場人(ren)臉識別(bie),刷臉取票等,但是其實大部分內(nei)行人(ren)士(shi)可(ke)能都比較絕望,外行感覺像看科幻片一樣,老(lao)板們各種(zhong)(zhong)打雞血,今天幾(ji)(ji)個(ge)億明天幾(ji)(ji)個(ge)億。
縱觀Qt的(de)應用(yong)場景領域,在(zai)國(guo)內,基本(ben)上(shang)在(zai)安防、航天(tian)船(chuan)舶、教育、工業控(kong)制領域,占(zhan)有比(bi)較大(da)的(de)比(bi)例,其(qi)實個人非常喜愛Qt的(de),從沒見(jian)過如(ru)此完美的(de)API封裝(zhuang),包括命名(ming),最牛逼的(de)就是跨(kua)平(ping)臺特性,可以說(shuo)完爆.NET的(de)跨(kua)平(ping)臺,甚至連那種(zhong)幾十兆(zhao)的(de)嵌(qian)入式linux版本(ben)都能運行,這就使得成本(ben)大(da)大(da)降低,提高(gao)了(le)(le)產品的(de)豐富性。自(zi)從用(yong)了(le)(le)Qt以后,就再也(ye)不想用(yong)VC/VB/C#等(deng)。
國內安防領域,當屬海康大華第一第二,這兩(liang)個單位(wei)也是(shi)有(you)大量的(de)(de)Qt職位(wei),使得Qt這么(me)一個極其(qi)小眾(zhong)的(de)(de)編程開發環(huan)境能夠發揮(hui)出更(geng)大的(de)(de)魅力(li),本系列文章將會介紹(shao)如何用Qt來編寫(xie)一個基礎的(de)(de)視頻監控系統(tong),提(ti)供部分核心代碼(ma),歡迎(ying)各位(wei)提(ti)出建議。
二、文章導航
1-通道切換 //qtchina.blog.csdn.net/article/details/90511323
2-視頻播放 //qtchina.blog.csdn.net/article/details/90523408
3-通道交換 //qtchina.blog.csdn.net/article/details/90552699
4-刪除視頻 //qtchina.blog.csdn.net/article/details/90576963
5-視頻回放 //qtchina.blog.csdn.net/article/details/90612532
6-面板開關 //qtchina.blog.csdn.net/article/details/90638345
7-全屏切換 //qtchina.blog.csdn.net/article/details/90670765
8-雙擊節點 //qtchina.blog.csdn.net/article/details/90695302
9-自動隱藏光標 //qtchina.blog.csdn.net/article/details/90715481
10-視頻輪詢 //qtchina.blog.csdn.net/article/details/90718321
11-動態換膚 //qtchina.blog.csdn.net/article/details/90728296
12-異形布局 //qtchina.blog.csdn.net/article/details/90728455
13-視頻存儲 //qtchina.blog.csdn.net/article/details/103562642
14-本地回放 //qtchina.blog.csdn.net/article/details/103573970
15-遠程回放 //qtchina.blog.csdn.net/article/details/103591212
16-設備播放 //qtchina.blog.csdn.net/article/details/103609031
17-在線地圖 //qtchina.blog.csdn.net/article/details/103626644
18-云臺控制 //qtchina.blog.csdn.net/article/details/103652453
19-日志查詢 //qtchina.blog.csdn.net/article/details/103692935
20-錄像機管理 //qtchina.blog.csdn.net/article/details/103708637
21-攝像機管理 //qtchina.blog.csdn.net/article/details/103753750
22-攝像機搜索 //qtchina.blog.csdn.net/article/details/103766059
23-圖片地圖 //qtchina.blog.csdn.net/article/details/103815326
24-自定義懸浮條 //qtchina.blog.csdn.net/article/details/103868980
25-離線地圖 //qtchina.blog.csdn.net/article/details/103889983
26-硬件加速 //qtchina.blog.csdn.net/article/details/103901493
27-GPU顯示 //qtchina.blog.csdn.net/article/details/106985503
28-攝像機點位 //qtchina.blog.csdn.net/article/details/107021345
29-掉線重連 //qtchina.blog.csdn.net/article/details/107033233
30-GPS運動軌跡 //qtchina.blog.csdn.net/article/details/107061945
31-onvif設備搜索 //qtchina.blog.csdn.net/article/details/107098164
32-onvif信息獲取 //qtchina.blog.csdn.net/article/details/107126717
33-onvif云臺控制 //qtchina.blog.csdn.net/article/details/107136342
34-onvif事件訂閱 //qtchina.blog.csdn.net/article/details/107177879
35-onvif抓拍圖片 //qtchina.blog.csdn.net/article/details/107197616
36-onvif連續移動 //qtchina.blog.csdn.net/article/details/118218515
37-onvif預置位 //qtchina.blog.csdn.net/article/details/118273759
38-onvif校時 //qtchina.blog.csdn.net/article/details/118378680
39-onvif圖片參數 //qtchina.blog.csdn.net/article/details/118434513
40-onvif線程處理 //qtchina.blog.csdn.net/article/details/118479339
41-秘鑰認證 //qtchina.blog.csdn.net/article/details/118553977
42-用戶權限 //qtchina.blog.csdn.net/article/details/118599520
43-圖片回放 //qtchina.blog.csdn.net/article/details/118651529
44-視頻上傳 //qtchina.blog.csdn.net/article/details/118696714
45-圖文報表 //qtchina.blog.csdn.net/article/details/118750985
46-視頻存儲 //qtchina.blog.csdn.net/article/details/118851625
47-基本設置 //qtchina.blog.csdn.net/article/details/118891061
48-視頻參數 //qtchina.blog.csdn.net/article/details/118942889
49-多數據庫支持 //qtchina.blog.csdn.net/article/details/118993767
50-地圖配置 //qtchina.blog.csdn.net/article/details/119110943
51-功能激活 //qtchina.blog.csdn.net/article/details/119207443
52-顏色配置 //qtchina.blog.csdn.net/article/details/119274463
53-串口配置 //qtchina.blog.csdn.net/article/details/119303286
54-輪詢配置 //qtchina.blog.csdn.net/article/details/119351728
55-布局方案 //qtchina.blog.csdn.net/article/details/119418155
56-數據庫分頁 //qtchina.blog.csdn.net/article/details/119530006
57-子模塊1設備列表 //qtchina.blog.csdn.net/article/details/119593835
58-子模塊2窗口信息 //qtchina.blog.csdn.net/article/details/119709489
59-子模塊3圖文警情 //qtchina.blog.csdn.net/article/details/119747119
60-子模塊4云臺控制 //qtchina.blog.csdn.net/article/details/119793356
61-子模塊5設備控制 //qtchina.blog.csdn.net/article/details/119854815
62-子模塊6預置位 //qtchina.blog.csdn.net/article/details/119902750
63-子模塊7懸浮地圖 //qtchina.blog.csdn.net/article/details/120031405
64-子模塊8飛行軌跡 //qtchina.blog.csdn.net/article/details/120076547
65-子模塊9數據調試 //qtchina.blog.csdn.net/article/details/120162149
66-子模塊10網頁瀏覽 //qtchina.blog.csdn.net/article/details/120202642
三、體驗地址
體驗(yan)地址://pan.baidu.com/s/1d7TH_GEYl5nOecuNlWJJ7g 提(ti)取碼:01jf 文件名:bin_video_system.zip。
國(guo)內站點://gitee.com/feiyangqingyun
國(guo)際站點://github.com/feiyangqingyun
個人主頁://blog.csdn.net/feiyangqingyun
知乎主頁://www.zhihu.com/people/feiyangqingyun/
在線文檔://feiyangqingyun.gitee.io/qwidgetdemo/video_system/
四、功能特點
(一)軟件模塊
視頻監控模塊,各種(zhong)停靠小窗體子(zi)模塊,包括設備列表(biao)、圖文警情、窗口信(xin)息(xi)、云臺(tai)控制、預置位、巡航設置、設備控制、懸浮地(di)圖、網(wang)頁瀏覽等。
視(shi)頻(pin)回(hui)放(fang)(fang)模塊,包(bao)括(kuo)本地回(hui)放(fang)(fang)、遠(yuan)程回(hui)放(fang)(fang)、設備播放(fang)(fang)、圖片回(hui)放(fang)(fang)、視(shi)頻(pin)上傳(chuan)等。
電子地(di)圖模塊,包括(kuo)圖片地(di)圖、在線地(di)圖、離線地(di)圖、路徑規劃等。
日志查詢模塊,包(bao)括本(ben)地日志、設(she)備日志等。
系統設置模塊,包括系統設置(基本設置、視(shi)頻參(can)數(shu)、數(shu)據庫設置、地(di)圖配置、串口配置等)、錄像機管理、攝像機管理、輪詢配置、用戶管理等。
(二)基礎功能
支(zhi)持(chi)各種視(shi)頻流(rtsp、rtmp、http等)、視(shi)頻文件(mp4、rmvb、avi等)、本地USB攝像機播(bo)放。
支持多畫(hua)(hua)面切(qie)換(huan)(huan),包括(kuo)1、4、6、8、9、13、16、25、36、64畫(hua)(hua)面切(qie)換(huan)(huan)。
支持全(quan)屏切換,多(duo)種切換方式包括鼠標(biao)右鍵菜(cai)單、工(gong)具(ju)欄按(an)鈕、快捷鍵(alt+enter全(quan)屏,esc退出全(quan)屏)。
支持視頻輪(lun)詢,包括1、4、9、16畫面輪(lun)詢,可設(she)置輪(lun)詢分(fen)組(輪(lun)詢預案)、輪(lun)詢間隔、碼(ma)流類型等(deng)。
支持onvif協(xie)議,包括設備搜(sou)索、云臺控制、設備控制(圖(tu)片(pian)參數、校(xiao)對時間、系(xi)統重啟,抓(zhua)拍(pai)圖(tu)片(pian)等)。
支持權(quan)限管(guan)理,不同的用戶可以對(dui)應不同的模塊權(quan)限,比(bi)如刪除日志、關(guan)閉系統等。
數據庫支持多種,包括sqlite、mysql、sqlserver、postgresql、oracle、人大(da)金倉等。
本地USB攝像機支持設(she)置分辨率(lv)、幀(zhen)率(lv)等(deng)參(can)數(shu)。
所有停靠模塊(kuai)都自動生成對應的菜單(dan)用來控制顯示和隱藏(zang),在標題欄右(you)鍵可以彈(dan)出(chu)。
支持顯示所有模塊、隱藏所有模塊、復(fu)位(wei)普通布局、復(fu)位(wei)全屏(ping)布局。
雙擊設備(bei)彈出實時(shi)預覽視(shi)頻(pin),支持圖(tu)(tu)(tu)片地圖(tu)(tu)(tu)、在線地圖(tu)(tu)(tu)、離線地圖(tu)(tu)(tu)等(deng)。
攝像(xiang)機節點拖曳到對應(ying)窗(chuang)體播放視頻,同時支持(chi)拖曳本地(di)文件直(zhi)接播放。
刪除(chu)(chu)視頻(pin)支持(chi)鼠(shu)標右(you)鍵刪除(chu)(chu)、懸浮條關閉刪除(chu)(chu)、拖曳(ye)到視頻(pin)監控面(mian)板外(wai)刪除(chu)(chu)等(deng)多(duo)種方式。
圖(tu)片地圖(tu)上設(she)備按鈕可自由拖動,自動保存(cun)位置(zhi)信息。百度(du)地圖(tu)上可以(yi)鼠標單擊獲取經緯度(du)信息,用來更(geng)新設(she)備位置(zhi)。
視(shi)頻監控面板窗體(ti)中任意通道(dao)支持拖曳交換,瞬間響應。
封(feng)裝了百(bai)度(du)地圖,視(shi)圖切(qie)換,運動(dong)軌跡,設(she)備點位,鼠標按下獲取經緯(wei)度(du)等(deng)。
雙擊節點(dian)、拖(tuo)曳(ye)節點(dian)、拖(tuo)曳(ye)窗體交換(huan)位置等操作,均自(zi)動更新保(bao)存最后的(de)播放地址(zhi),下次軟(ruan)件打開自(zi)動應用。
右下角(jiao)音量條(tiao)控件(jian),失去(qu)焦點自動隱藏,音量條(tiao)帶靜音圖標。
支持視頻截圖,可指定單(dan)個或者對所有通道(dao)截圖,底(di)部(bu)小工具欄也(ye)有截圖按鈕。
支持(chi)超時(shi)自動隱藏鼠標指針、自動全屏(ping)機制。
支持onvif云臺控(kong)制,可上下左(zuo)右移動云臺攝像機,包括復位和(he)焦距調整等(deng)。
支持任意(yi)onvif攝像機,包括但不限(xian)于海康、大華(hua)、宇視、天地偉業、華(hua)為等。
可保(bao)存(cun)視頻(pin),可選(xuan)定時(shi)存(cun)儲或者單文件存(cun)儲,可選(xuan)存(cun)儲間隔時(shi)間。
可設置(zhi)視頻流(liu)通信方式tcp+udp,可設置(zhi)視頻解碼是速度優先、質(zhi)量優先、均衡等。
可(ke)設(she)置軟件中(zhong)文名(ming)稱、英文名(ming)稱、LOGO圖(tu)標等。
存儲(chu)的(de)視頻文件支(zhi)持(chi)導出到指定(ding)目錄,支(zhi)持(chi)批(pi)量上傳到服務器。
(三)特色功能
主界面采用(yong)停靠窗體(ti)模式(shi),各種組(zu)件以小模塊的形式(shi)加入(ru),可自定義(yi)任意模塊加入(ru)。
停靠模塊可拖動任意位置嵌(qian)入和懸浮,支(zhi)持最大(da)化全屏,支(zhi)持多(duo)屏幕。
雙重布(bu)局(ju)文件存儲機制,正常(chang)模式(shi)、全(quan)屏(ping)模式(shi)都對應(ying)不同的布(bu)局(ju)方(fang)案,自動切換(huan)和保存,比如全(quan)屏(ping)模式(shi)可以突出幾個模塊透明顯示在(zai)指定位置,更具科幻感現代化。
原創onvif協議機制(zhi),采用底層協議解析(udp廣播搜(sou)索+http請求執(zhi)行命(ming)令)更輕量(liang)易懂易學習(xi)拓展,不依賴(lai)任(ren)何第三方組件比(bi)如gsoap。
原創數據導入導出機制,跨平臺不依賴任何組件,瞬間導出數據。
內置(zhi)多個原創組(zu)(zu)件(jian)(jian)(jian),宇宙(zhou)超(chao)值超(chao)級牛逼,包(bao)括數(shu)據導入(ru)導出組(zu)(zu)件(jian)(jian)(jian)(導出到(dao)xls、pdf、打印)、數(shu)據庫(ku)組(zu)(zu)件(jian)(jian)(jian)(數(shu)據庫(ku)管理線(xian)程、自動(dong)清理數(shu)據線(xian)程、萬能分頁、數(shu)據請(qing)求等)、地圖組(zu)(zu)件(jian)(jian)(jian)、視頻監控組(zu)(zu)件(jian)(jian)(jian)、文件(jian)(jian)(jian)多線(xian)程收(shou)發(fa)組(zu)(zu)件(jian)(jian)(jian)、onvif通信組(zu)(zu)件(jian)(jian)(jian)、通用瀏覽器內核(he)組(zu)(zu)件(jian)(jian)(jian)等。
自定義信息框(kuang)+錯(cuo)誤框(kuang)+詢問(wen)框(kuang)+右下角(jiao)提示框(kuang)(包含(han)多種格式)等。
精美(mei)換(huan)膚(fu),高達17套(tao)皮(pi)膚(fu)樣(yang)式隨意更換(huan),所有樣(yang)式全部統(tong)一,包括菜單等。
視頻(pin)控件懸浮(fu)條可以自(zi)行增加(jia)多個按鈕,監控界面底部(bu)小工具欄也可自(zi)行增加(jia)按鈕。
雙(shuang)擊攝像機節點(dian)(dian)自(zi)(zi)動(dong)(dong)播放視頻(pin)(pin),雙(shuang)擊節點(dian)(dian)自(zi)(zi)動(dong)(dong)依(yi)次添(tian)加視頻(pin)(pin),會自(zi)(zi)動(dong)(dong)跳(tiao)到下一個,雙(shuang)擊父節點(dian)(dian)自(zi)(zi)動(dong)(dong)添(tian)加該節點(dian)(dian)下的(de)所有視頻(pin)(pin)。可選主碼(ma)流(liu)、子碼(ma)流(liu)。
錄像(xiang)機管(guan)理、攝(she)像(xiang)機管(guan)理,可(ke)添加刪除(chu)修改導入導出(chu)打(da)印信(xin)息,立(li)即應(ying)用(yong)新的設備(bei)信(xin)息生成樹狀列表,不需(xu)重啟。
可選多種內(nei)核自(zi)由切換(huan),ffmpeg、vlc、mpv等(deng),均可在(zai)pro中(zhong)設置。推薦用ffmpeg,跨平(ping)臺最多,默認提供好(hao)了linux和(he)mac平(ping)臺上編譯好(hao)的庫。
支持硬解(jie)碼,可設置硬解(jie)碼類型(qsv、dxva2、d3d11va等)。
默認采用opengl繪(hui)制(zhi)視(shi)頻(pin),超低的(de)CPU資源占用,支(zhi)持yuyv和(he)nv12兩種格式(shi)繪(hui)制(zhi),很牛逼。
高度可定(ding)制化,用戶可以很方便(bian)的(de)在此基礎上衍生自己的(de)功能(neng),比如增加自定(ding)義模塊,增加運(yun)行模式、機(ji)器人監控(kong)、無人機(ji)監控(kong)、挖(wa)掘機(ji)監控(kong)等。
支持xp、win7、win10、linux、mac、各(ge)種國(guo)產系統(UOS、中(zhong)標麒麟、銀河(he)麒麟等)、嵌(qian)入式(shi)linux等系統。
注釋(shi)完(wan)整,項目結構清晰,超級(ji)詳(xiang)細完(wan)整的(de)使用開發手冊,精確到(dao)每個代(dai)碼文件的(de)功能說明,不斷持續迭代(dai)版本。
五、效果圖









————————————————
版權聲(sheng)明:本(ben)文(wen)為CSDN博主「feiyangqingyun」的原創文(wen)章,遵循CC 4.0 BY-SA版權協(xie)議,轉載請附(fu)上原文(wen)出(chu)處鏈接(jie)及本(ben)聲(sheng)明。
原文鏈接(jie)://blog.csdn.net/feiyangqingyun/article/details/90484656
