gpt4 book ai didi

c# - C# 中的 ONVIF api 捕获图像

转载 作者:太空宇宙 更新时间:2023-11-03 23:29:29 73 4
gpt4 key购买 nike

我有一个 ONVIF 网络摄像头。

我想从相机捕捉图像,以便我可以处理该图像并将其保存到文件系统。

我发现有一个 onvif api 提供了一个方法 GetSnapshotUri,它应该为我提供一个图像快照:

http://www.onvif.org/onvif/ver10/media/wsdl/media.wsdl

我通过向它添加服务引用设法在 visual studio 中导入了这个 api:

enter image description here

我如何构造一个客户端来从该服务调用 GetSnapshotUri

最佳答案

因此,经过大量搜索后,我设法从相机中捕捉到了图像。

第一个问题是我使用了“添加服务引用->高级->添加 Web 引用”,而不是直接在“添加服务引用”框中键入服务地址。

在这里,我添加了地址:http://www.onvif.org/onvif/ver10/media/wsdl/media.wsdl

然后我可以使用 MediaClient 类,pepOS 在评论中正确指出,最终代码如下所示:

var messageElement = new TextMessageEncodingBindingElement();
messageElement.MessageVersion = MessageVersion.CreateVersion(EnvelopeVersion.Soap12, AddressingVersion.None);
HttpTransportBindingElement httpBinding = new HttpTransportBindingElement();
httpBinding.AuthenticationScheme = AuthenticationSchemes.Basic;
CustomBinding bind = new CustomBinding(messageElement, httpBinding);
EndpointAddress mediaAddress = new EndpointAddress("http://192.168.1.168:10001/onvif/Media");
MediaClient mediaClient = new MediaClient(bind, mediaAddress);
mediaClient.ClientCredentials.UserName.UserName = "admin";
mediaClient.ClientCredentials.UserName.Password = "admin";
Profile[] profiles = mediaClient.GetProfiles();
string profileToken = profiles[1].token;
MediaUri mediaUri = mediaClient.GetSnapshotUri(profileToken);

图像的 uri 然后可以在 MediaUri.Uri 地址

关于c# - C# 中的 ONVIF api 捕获图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32779467/

73 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com