我已经配备了一台IP摄像机。然后我发现它使用了一个名为ONVIF的标准。我搜索了它,发现它是一个很好的方式,可以将世界上所有的摄像机以同样的方式实现。
当然,我已经阅读了ONVIF规范PDF。我对其工作原理的理解如下:
有一个WSDL文件描述了如何访问摄像机(或其他东西)。比如,可以修改哪些设置,接受哪些方法等等。当我读取这个WSDL文件时,我将选择一个方法并发送一种名为SOAP的消息,它将是一个包含对WSDL文件上某些方法的响应的XML。 SOAP是一种可以通过HTTP(因此它可以通过防火墙)的XML,但也可以通过其他协议发送。
所以,据我所知,如果我想告诉我的相机开始流式传输视频,我只需要找到描述如何启动流的WSDL方法,然后发送SOAP消息告诉它我需要在某个端口上通过某些协议启动视频流。然后,我可以读取和解码流。
通过了解我给出的这个简单例子,我可以做其他事情,比如控制相机等等。我不知道ONVIF上的PDF所针对的公众,但我不能理解它,所以我可以探索我的相机。例如:我不知道如何接收此WSDL文件。我已经在某个地方读过我应该访问http://ip_of_camera/onvif/device_service来获取文件,然后我应该向它发送一条SOAP消息并观察响应。
我甚至试图通过wireshark分析数据包,但它们对我来说似乎是无稽之谈。这很困难,因为我甚至无法让我的相机使用iSpy软件。它只能在我的Android应用程序中完美地工作(但没有音频或说话),所以我在我的覆盆子pi中设置了代理,然后分析了数据包。
有人能给我一个如何接收WSDL文件的基本示例,然后如何调用它的一个方法?我想看看它在网络层面是如何工作的,但我只能找到如何在C#中调用已准备好处理它的库。
例如:我想知道我需要通过TCP或TCP / HTTP发送到相机,以及如何启动流。所有这些都在网络层面,根本不需要代码。
我只是想在这里学习,但这看起来并不像一个真正的开放式的#34;标准。如果你从来没有编过类似的东西,那就很难理解了。所以我猜那些PDF是供那些使用它的人。我知道TCP和UDP是如何工作的以及如何通过它们发送原始消息,因此所有问题都是通过示例找到一个好的资源,所以我可以理解ONVIF的真正含义。
网络联合起来不能让它更清晰吗?为什么没有关于它的帖子?
谢谢,令人惊叹的社区< 3