ONVIF協議網絡攝像機(IPC)客戶端程序開發(5):門外漢理解ONVIF協議


1. 專欄導讀

本專欄第一篇文章「專欄開篇」列出了專欄的完整目錄,按目錄順序閱讀,有助於你的理解,專欄前面文章講過的知識點(或代碼段),后面文章不會贅述。為了節省篇幅,突出重點,在文章中展示的示例代碼僅僅是關鍵代碼,你可以在「專欄開篇」中獲取完整代碼。

如有錯誤,歡迎你的留言糾正!讓我們共同成長!你的「點贊」「打賞」是對我最大的支持和鼓勵!

2. 前言

這次「ONVIF協議網絡攝像機(IPC)客戶端程序開發」專欄,到了這篇文章,才真正的開始介紹ONVIF,前面的文章都是為了介紹ONVIF做的鋪墊,如果前面的文章你還沒看過,建議你先去閱讀過再來瀏覽本文。

3. ONVIF背景

網絡攝像機是網絡設備,需要有通訊協議,早期的網絡攝像機硬件提供商都采用私有協議。

隨着視頻監控的網絡化應用,產業鏈的分工將越來越細。有些廠商專門做攝像頭,有些廠商專門做視頻服務器,有些廠商則可能專門做平台等,然后通過集成商進行集成,提供給最終客戶。私有協議無法勝任這種產業合作模式,行業標准化的接口由此應運而生。

目前,網絡攝像機的標准協議,國際標准上有三大類:ONVIF、PSIA和HDCCTV,國內標准有國標GB/T28181。ONVIF陣營日益壯大,與PSIA、HDCCTV相比,無論是支持廠商的數目、廠商的知名度,還是市場占有率都遙遙領先。ONVIF標准的廠商覆蓋芯片、視頻前端設備、存儲設備、系統平台、智能分析設備、門禁、傳感設備等各個安防相關領域。我們說的IPC攝像頭只是ONVIF標准里的一個分支而已,可見ONVIF的強大。

ONVIF(Open Network Video Interface Forum,開放型網絡視頻接口論壇)以公開、開放的原則共同制定開放性行業標准。

從ONVIF官網上可以了解到(https://www.onvif.org/about/member-list/),為適應各種不同的參與級別,ONVIF提供了不同等級的會員企業資格,其中不乏國內外著名的設備制造商與集成商,國內的華為、海康威視、浙江大華、波粒科技和佳信捷也是ONVIF論壇的高級會員。

4. ONVIF技術框架

ONVIF規范中設備管理和控制部分所定義的接口均以Web Services的形式提供。ONVIF規范涵蓋了完全的XML及WSDL的定義。每一個支持ONVIF規范的終端設備均須提供與功能相應的Web Service。服務端與客戶端的數據交互采用SOAP協議。ONVIF中的其他部分比如音視頻流則通過RTP/RTSP進行。

 


圖1

 

拿IPC攝像頭來說,IPC是Web Services服務端,其提供的WEB服務接口需符合ONVIF協議規范(這些接口在ONVIF規定的WSDL文檔中),我們開發的客戶端通過這些ONVIF規范接口跟IPC通訊,比如:

  1. 獲取IPC的基本信息(廠家信息、版本信息等);
  2. 修改IPC的系統日期、時間;
  3. 修改IPC的網絡配置(IP、子網掩碼等);
  4. 獲取/修改IPC攝像頭的各種參數(視頻分辨率、碼率、幀率、OSD,雲台控制等);

由於SOAP協議不適合傳輸音視頻流,ONVIF規范中的傳輸音視頻流采用的是已經很成熟的RTP/RTSP多媒體傳輸協議。

簡單粗暴的理解:IPC的各種參數獲取/配置都是通過ONVIF協議實現,而音視頻流多媒體傳輸采用的是RTP/RTSP協議實現。

5. ONVIF技術規格

ONVIF協議中,有一系列Profile的技術規格。ONVIF之所以引入了Profile的概念,使得終端用戶能夠更容易區分各個Profile所支持的特性,而無需確定ONVIF技術規格不同版本間的兼容性。截止目前,已經發布的Profile包括Profile S/C/G/A/Q五種。

 


圖2

 

以上截圖來源於官網https://www.onvif.org/profiles/中《ONVIF Profile Feature Overview》文檔。從這個圖能看出,各個Profile技術規格的發布是有時間先后順序的,並不是一起發布。Profile S作為profile發布系列中的排頭兵,於2011年發布,2016年做了一次修訂,Profile C於2013年發布,之后再依次發布Profile G/A/Q。

以下是我對這些Profile的理解:

  • Profile S:「網絡攝像機」的技術規格,包括如何發送音視頻流,音視頻編碼器配置,PTZ控制、中繼控制等。
  • Profile C:「門禁控制系統(PACS)設備」的技術規格。
  • Profile G:「視頻儲存和錄像」的技術規格,包括視頻儲存,搜索,檢索,以及媒體播放功能的技術規格。
  • Profile A:「常見的例行門禁控制功能」的技術規范,適用於負責授予和撤銷員工憑證、創建和更新計划表,以及對系統內門禁控制權限進行更改的安保人員、接待員或人力資源專員等用戶。
  • Profile Q:「傳輸層安全性(TLS)」的技術規格,該安全通信協議使ONVIF合標設備能夠以不受篡改和竊聽威脅的方式在網絡上與客戶通訊。

隨着ONVIF的發展,我估計,ONVIF指導委員會(Steering Committee)在未來還會有后續的Profiles發布以規范其他技術規格。

跟IPC攝像頭有關的主要是Profile S技術規格。

6. ONVIF接口規范

ONVIF接口被划分為不同模塊,包括:設備發現、設備管理、設備輸入輸出服務、圖像配置、媒體配置、實時流媒體、接收端配置、顯示服務、事件處理、PTZ控制等。

每個模塊的接口都有相對應的WSDL文檔進行描述,可以在ONVIF官網「Network Interface Specifications」中查閱,鏈接如下:
https://www.onvif.org/profiles/specifications/

如果想快速瀏覽ONVIF所有模塊的常用接口,請看這里「ONVIF 2.0 Service Operation Index」,鏈接如下:
https://www.onvif.org/onvif/ver20/util/operationIndex.html

注意:這里僅僅是列出常用接口,不是全部接口,每個模塊的全部接口需要進入每個模塊的WSDL中去看,點擊任意一個接口就會自動跳轉到對應的WSDL文檔鏈接處。

比如說GetServices接口以上頁面沒有顯示,但在http://www.onvif.org/ver10/device/wsdl/devicemgmt.wsdl中是的。所以想看全部的接口,還是得深入每個wsdl才行啊。

想要系統、全面的了解ONVIF的各個模塊,可以閱讀網上盛傳的《ONVIF2.0協議珍藏版》,「點擊下載」。

現在你對這些ONVIF模塊、接口不熟,沒關系,跟着我的專欄一步步往下走,以后就會有體會了。

7. 開發流程(不要自己造輪子)

 


圖3

 

這里先簡要的介紹下IPC客戶端開發流程,具體怎么操作在專欄后續文章中會陸續展示。ONVIF協議既然是Web Services框架,那就不需要自己造輪子,ONVIF協議部分由gSOAP工具幫我們自動生成代碼框架。

而RTP/RTSP音視頻傳輸部分則采用開源的FFmpge即可,FFmpge在音視頻處理方面,那是首屈一指。

 


圖4

 

IPC客戶端程序整個開發流程如下圖所示:

 


圖5

 

 
 
 
轉載自:https://blog.csdn.net/benkaoya/article/details/72453403


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM