ONVIF協議學習筆記

 1、理解

1.1 技術理解

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

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

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

Web Services具攝像頭控制具體到技術交互實現上,其實和http差很少,客戶端以相似http post的格式向服務端發送請求,而後服務端響應客戶端請求。ide

好比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>

參考:http://www.javashuo.com/article/p-zmiyzfkt-ka.htmlpost

 

1.2 位置說明

這裏直接盜用一張圖,原文連接:https://wenku.baidu.com/view/a2ba36327fd5360cba1adb5a.html測試

 

 

2、檢測工具

2.1 ONVIF Device Test Tool

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

下載連接:http://www.happytimesoft.com/download.html(20190219更新:當前彷佛該頁面也已不提供下載).net

2.1.1 基本使用方法

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

打開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支持的操做,本身隨便點便可。

相關文章
相關標籤/搜索