ONVIF協議學習筆記


 一、理解

1.1 技術理解

ONVIF = 服務端 + 客戶端 =(Web Services + RTSP)+ 客戶端 = ((WSDL + SOAP) + RTSP) + 客戶端

WSDL是服務端用來向客戶端描述自己實現哪些請求、發送請求時需要帶上哪些參數xml組織格式;SOAP是客戶端向服務端發送請求時的參數的xml組織格式

Web Services實現攝像頭控制(比如一些參數配置、攝象頭的上下左右(PTZ)控制);RTSP實現報像頭視頻傳輸

Web Services具攝像頭控制具體到技術交互實現上,其實和http差不多,客戶端以類似http post的格式向服務端發送請求,然后服務端響應客戶端請求。

比如GetStatus請求長這樣(POST的data部份就是soap格式):

POST /onvif/device_service HTTP/1.1
Host: 192.168.220.128
Content-Type: application/soap+xml; charset=utf-8
Content-Length: 333

<?xml version="1.0" encoding="utf-8"?>
<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope" xmlns:tptz="http://www.onvif.org/ver20/ptz/wsdl" xmlns:tt="http://www.onvif.org/ver10/schema">
  <s:Body>
    <tptz:GetStatus>
      <tptz:ProfileToken>prof0</tptz:ProfileToken>
    </tptz:GetStatus>
  </s:Body>
</s:Envelope>

參考:https://blog.csdn.net/benkaoya/article/details/72453403

 

1.2 位置說明

這里直接盜用一張圖,原文鏈接:https://wenku.baidu.com/view/a2ba36327fd5360cba1adb5a.html

 

 

二、檢測工具

2.1 ONVIF Device Test Tool

ONVIF Device Test Tool是官方發布的onvif檢測工具,該工具只提供給ONVIF會員使用,官網不提供下載

下載鏈接:http://www.happytimesoft.com/download.html(20190219更新:當前似乎該頁面也已不提供下載)

2.1.1 基本使用方法

這里只講檢測報像頭支持哪些請求,更具體的可參考:https://wenku.baidu.com/view/510b1105a58da0116d174906.html

打開onvif device test tool之后:

第一步,下接選擇要用以收發探測數據包的網卡

第二步,點擊“Discover Devices”按鈕檢測局域網中的攝像頭(本質是向發239.255.255.250:3702發送組播數據包,要求所有收到數據包的攝像頭向本機3702端口進行回應)

第三步,檢測完成后左下方就會呈現攝像頭列表,雙擊要檢測的攝像頭,其信息就會自動填到右上方的相應內容框中

第四步,點擊“Probe”探測選中主機是否真的支持onvif協議,如果沒有彈框報錯那就是支持的

第五步,在username和password域中填入web管理員的用戶名密碼,然后點擊右方的“check”檢測用戶名密碼是否有誤。如果沒有錯誤右下方的幾個框將會呈現攝像頭的一些信息。該處用戶名密碼是要輸入的,因為其他選項卡的請求(如果要用到)會自動從該處讀取用戶名密碼發往服務端進行操作鑒權。

切換到Debug選項卡

第一步,將上面Discovery選項卡中,Device Service Address框的值復制到Debug選項卡的“Service Address”框中

第二步,在左下方“Templates”中雙出選擇要進行檢測的請求

第三步,在左上方“Authentication”中選擇權限驗證方式(None為不發送用戶名密碼,WS-Username token是onvif標准的用戶名密碼驗證方式,Digest是RTSP中的Digest形式,用戶名密碼就是從Discovery那里讀過來的)

第四步,點擊“Send Request”發送數據包,如果沒有問題在“Response”框中就會呈現返回結果

(以上操作基於我使用該工具的目的是:確認攝像頭支持onvif、獲取onvif請求報文以構造畸形報文測試攝像頭對報文處理是否有問題。)

 

2.2 ONVIF Device Manager

ONVIF Device Manager是一個第三方的onvif協議測試工具,具有以下功能

下載鏈接:https://sourceforge.net/projects/onvifdm/?source=navbar

 

2.2.1 基本使用方法

onvif device manager的感覺可以認為是onvif device test tool的簡化版,簡化的意思一是功能少了一些,二是功能少了同時操作起來更簡單明了。更具體使用可參考:https://wenku.baidu.com/view/3cb0bf1a3c1ec5da51e27002.html

第一步,打開onvif device manager,左側是當前檢測到的支持onvif的設備,可點擊“Refresh”按鈕刷新列表。實際使用發現不管怎么刷新該工具總是很難發現全部設備,此時可使用“Add”按鈕手動添加。

第二步,雙擊自己要檢測的設備,如果該設備真支持onvif那么在中部就會呈現支持的onvif操作。當前圖中告警是因為用戶名密碼錯誤。

第三步,如果設備要求用戶名密碼那就在左上方的name和password框中分別輸入攝像頭web端的用戶名密碼,然后點擊“Log in”。注意這里不管輸什么都會“登錄成功”,但真正發包時只有正確的用戶名密碼才能完成請求,所以一定要輸入正確的web端用戶名密碼。

 

輸入正確用戶名密碼后如下圖,中部那些鏈接就是onvif device manager支持的操作,自己隨便點即可。

 


免責聲明!

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



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