2017-04-18 369 views
0

我的无线摄像头连接到我的Android设备上的WiFi热点。我已经从/ proc/net/arp获得了相机的IP地址。我也可以运行视频以查看已知的rtsp网址,以便测试相机。但最终用户可以使用他们的热点连接到任何相机。所以,我需要在运行时知道rtsp URL。对于Android端口上的RTSP,RTSP总是554。我可以访问该设备,并准备好使用SOAP。获取连接到我的Android WiFi热点的IP摄像头(无线摄像头)的URL

此外,应用程序运行在Android 7.0及更高版本上。

任何帮助真的很感激。

回答

0

必须执行的步骤如下:

  1. 发现设备(如果你不知道的IP地址和设备服务的XADDR)
  2. 获取媒体服务的XADDR通过调用设备服务上的GetServices或GetCapabilities。它可能是相同的,但是有摄像机对于所有服务没有唯一的XAddr
  3. 在媒体服务上调用GetProfiles
  4. 在媒体服务上调用GetStreamingUri传递所需的配置文件。
  5. 请求从您在上一步中获得的URI进行流式传输。

信息

  • 在Android上,你可能会想使用ksoap2-android
  • GetProfiles返回配置文件列表,如您所见here。您无法从GetProfilesResponse获取流媒体URI,您必须在要获取RTSP播放地址的配置文件上调用GetStreamURI。
  • 通常XAddr指的是服务,URI是指流媒体或快照
  • 地址知道IP地址,可以节省您的时间,猜测该相机具有上http://<ip_address>/onvif/device_service设备服务,这是最常见的entyr点,但我发现一些设备没有跟着它(不同的端口,只运行HTTPS,OOO)

我不熟悉你的相机,但我相信比中国人更多的松下相机。正如你可以看到here,松下的相机有一个公开的ONVIF Profile S DoC。不要相信没有在ONVIF网站上列出的有效DoC的任何内容。

+0

感谢您的回复。我可以在Windows上执行此操作。但问题出在Android上。从SOAP开始并不完全支持。我正在使用设备发现来获取xAddrs,但是当getProfiles时,响应似乎并不一致,例如,当我尝试使用panasonic BL-VP104W时,xAddrs中没有提及端口号并使用配置文件检索端口,并将端口80这是android中的默认端口,但是对于rtsp,它应该是554吗?),但rtsp URL是空字符串;而在中国的相机(不知道模型)我能够检索RTSP。一直困惑于如何使其在Android上工作。 – sgupta

+0

另外,忘了提及,我通过Android上的/ proc/net/arp获得了IP地址和Mac地址,它可以帮助某种方式让URL更快一些吗? – sgupta