作者:admin 日期:2023-09-10 瀏覽: 次
Qt編寫(xiě)視頻監(jiān)控系統(tǒng)72
之前監(jiān)控系統(tǒng)中原創(chuàng)的onvif協(xié)議解析機(jī)制,已經(jīng)能夠滿(mǎn)足絕大部分用戶(hù)的需要,比如搜索設(shè)備、獲取視頻流地址并播放、云臺(tái)控制、預(yù)置位管理、圖片亮度色彩飽和度等參數(shù)設(shè)置等,近期又多了一個(gè)需求,那就是通過(guò)onvif國(guó)際標(biāo)準(zhǔn)協(xié)議來(lái)對(duì)攝像頭的OSD進(jìn)行增刪改查,可以通過(guò)協(xié)議添加OSD、刪除OSD、修改OSD、查詢(xún)所有OSD集合信息等,在早期的廠家監(jiān)控設(shè)備,很多廠家是不支持該協(xié)議的,所以一直也沒(méi)有去實(shí)現(xiàn),目前測(cè)試下來(lái)是幾個(gè)大廠比如海康大華宇視天地偉業(yè)等實(shí)現(xiàn)了,僅限于官方的標(biāo)準(zhǔn)過(guò)檢的設(shè)備,如果是一些冒牌的設(shè)備,盡管后臺(tái)看起來(lái)極其相似或者一模一樣,也未必支持,目前經(jīng)歷過(guò)N多形形色色的用戶(hù)現(xiàn)場(chǎng)測(cè)試,發(fā)現(xiàn)有些廠家做的設(shè)備兼容了海康大華的私有協(xié)議,然后后臺(tái)也做的極其相似,搞得跟真的一樣,其實(shí)很多都是冒牌的,基本上只實(shí)現(xiàn)了基礎(chǔ)的功能比如拉音視頻流,當(dāng)你遇到這些設(shè)備時(shí),會(huì)發(fā)現(xiàn)很多需求比較少的功能其實(shí)是沒(méi)有的。
由于qsoap等框架比較臃腫而且api接口極其難用,所以特意從底層協(xié)議解析來(lái)實(shí)現(xiàn)的onvif交互,其實(shí)底層就兩個(gè),搜索采用udp組播,交互采用http請(qǐng)求,還是萬(wàn)變不離其中,無(wú)非就是udp/tcp,在Qt中udp組播先綁定指定網(wǎng)卡udpSocket->bind(QHostAddress(localIP), 0, QUdpSocket::ShareAddress);,然后指定固定的onvif組播地址239.255.255.250和端口3702發(fā)送xml格式的文本信息,只要是局域網(wǎng)內(nèi)和該網(wǎng)卡地址相通的支持onvif協(xié)議的設(shè)備,都會(huì)返回,告知自己的設(shè)備地址等信息。
onvif協(xié)議的常規(guī)功能: