我有16台模拟摄像机输入我的Defender DVR。我可以通过访问特定端口并使用IE中的ActiveX控件输入登录详细信息来本地访问摄像头。我还可以通过简单输入我的外部IP地址,端口号和登录凭据,通过Apple应用程序中的应用程序查看它们。
我的问题是,如果我想创建一个与应用商店类似的应用。我如何与DVR的视频/图像流进行通信?
我的图像我需要轮询IP地址以获取数据,但我不确定需要什么类型的连接以及期望什么类型。
似乎许多DVR都遵循市场上相同的应用程序,因此我猜测它们在输出数据时都符合某些标准。
谢谢。
答案 0 :(得分:1)
许多摄像机使用Mixed-Replace Content-Type通过HTTP传输数据。如果您可以在浏览器上访问您的相机,则很可能它使用HTTP。
假设这是你的情况,你必须找出你的相机用来提供流的URL。所以你可以:
获得URL后,您可以确定是否正在处理混合替换请求,如果您的终端有卷曲,则可以使用以下内容:
$ curl --head http://user:password@192.168.99.230/video.cgi
我的相机返回以下标题:
HTTP/1.0 200 OK
Server: alphapd
Date: Thu Jan 9 09:04:59 2014
Pragma: no-cache
Cache-Control: no-cache
Content-Type: multipart/x-mixed-replace;boundary=video boundary--
这意味着我有一个由“--video boundary--”字符串分隔的混合替换响应(查看Content-Type字段)。
请求正文如下所示:
--video boundary--
<metadata>
<image>
--video boundary--
<metadata>
<image>
...
(Neverending request body of real time delivered images)
现在,您的方法将取决于您要嵌入流的应用程序。在我的情况下,我只需要将它们放在网页上,因此Firefox帮了我一个忙,我可以将它整合到:
<img src="http://user:password@192.168.99.230/video.cgi">
但您可能必须自行解析并捕获每个传入的图像,具体取决于您的应用程序。
答案 1 :(得分:0)
有标准,所以你只需要环顾四周也不要指望任何dvr制造商给你api访问许多已经尝试过他们只是不要放弃任何方式你不想被束缚到一个具体的dvr实现我会建议你从ispy c#代码http://www.ispyconnect.com开始,这将让你了解它是如何工作的,因为Ispy支持多种类型的摄像头,无论是ip还是网络摄像头......
模拟摄像机的代码将更难找到好运......