簡體   English   中英

Onvif 獲取配置文件

[英]Onvif get profiles

今天我正在使用 VDX 相機,我想使用 Onvif 協議控制它。 在我的程序中,我需要執行“GetProfiles”請求。

對於其他相機(Bosh、Lumens、Axis、ec...),我的方法可以正常工作,但對於 VDX,我有很多問題。 特別是如果我使用以下代碼段(使用端口 80),服務器會拋出異常(錯誤 414 URI 太大):

    var httpTransport = new HttpTransportBindingElement
{
    AuthenticationScheme = AuthenticationSchemes.Digest
};

var binding = new CustomBinding(new TextMessageEncodingBindingElement
    (MessageVersion.None, Encoding.Default), httpTransport);

    var builder = new UriBuilder("http", "10.0.34.32", 80, "/onvif/media_service");
    var mediaAddress = builder.Uri;

    var mediaClient = new MediaClient(binding, new EndpointAddress(mediaAddress));
    mediaClient.ClientCredentials.HttpDigest.ClientCredential.UserName = username;
    mediaClient.ClientCredentials.HttpDigest.ClientCredential.Password = password;

    var getProfilesResponse = await mediaClient.GetProfilesAsync();
    var profiles = getProfilesResponse.Profiles;
}

如果我用 81 更改端口號,服務器響應沒有錯誤,但配置文件是 null(實際上有 2 個配置文件)。

使用相機網頁訪問我發現了這個端口號: 在此處輸入圖像描述

使用 Onvif 設備管理器它可以正常工作......有人可以告訴我我的錯誤嗎? 有任何想法嗎?

您如何選擇使用相對 URI /onvif/media_service連接到端口80上的媒體服務? 可能您沒有使用正確的版本(並且將它們硬編碼在代碼中是不好的,因為較新版本的固件可能會改變它)。

您應該從 設備管理服務調用GetServices並使用正確的 URI 來訪問所需的服務。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM