Java 获取连接到Android上我的WiFi热点的IP摄像头(无线摄像头)的URL

Java 获取连接到Android上我的WiFi热点的IP摄像头(无线摄像头)的URL,java,android,soap,rtsp,onvif,Java,Android,Soap,Rtsp,Onvif,我有无线摄像头连接到Android设备上的WiFi热点。我已经从/proc/net/arp获得了相机的IP地址。我还能够运行已知rtsp URL的视频,用于测试摄像头。但最终用户可以通过热点连接到任何摄像头。因此,我需要在运行时知道rtsp URL。对于android上的RTSP,RTSP端口始终为554。我可以访问该设备,并且也可以使用SOAP 此外,该应用程序正在安卓7.0及更高版本上运行 非常感谢您的帮助。您必须执行以下步骤: 查找设备(如果您不知道设备服务的IP地址和XAddr) 通过调

我有无线摄像头连接到Android设备上的WiFi热点。我已经从/proc/net/arp获得了相机的IP地址。我还能够运行已知rtsp URL的视频,用于测试摄像头。但最终用户可以通过热点连接到任何摄像头。因此,我需要在运行时知道rtsp URL。对于android上的RTSP,RTSP端口始终为554。我可以访问该设备,并且也可以使用SOAP

此外,该应用程序正在安卓7.0及更高版本上运行


非常感谢您的帮助。

您必须执行以下步骤:

  • 查找设备(如果您不知道设备服务的IP地址和XAddr)
  • 通过调用设备服务上的GetServices或GetCapabilities,获取媒体服务的XAddr。这可能是相同的,但有些摄像头没有针对所有服务的唯一XAddr
  • 在媒体服务上调用GetProfiles
  • 在传递所需配置文件的媒体服务上调用GetStreamingUri
  • 从上一步中获得的URI请求流式传输
  • 其他信息

    • 在安卓系统上,你可能想使用
    • GetProfiles返回您可以看到的配置文件列表。您不能从GetProfilesResponse获取流URI,您必须在要获取RTSP播放地址的配置文件上调用GetStreamURI
    • 通常
      XAddr
      指服务,
      URI
      指流媒体或快照的地址
    • 知道IP地址可以节省您猜测相机已开启设备服务的时间
      http:///onvif/device_service
      ,这是最常见的entyr点,但我发现一些设备没有遵循它(不同的端口,只运行https、ooo)

    我对你们的相机不熟悉,但我更相信松下的相机,而不是中国的。正如你所看到的,松下的相机有一个公开的ONVIF档案S文档。不要相信ONVIF网站上没有列出有效文档的任何东西。

    谢谢您的回复。我能在Windows上做这件事。但问题出在Android上。不完全支持从SOAP开始。我正在使用设备发现来获取XADDR,但当获取配置文件时,响应似乎不一致。例如,当我尝试使用panasonic BL-VP104W时,XADDR中没有提及端口号,使用配置文件检索端口,提供端口80(android中的默认端口,但rtsp的URL是否应为554?),但rtsp URL为空字符串;在使用中国相机时(不确定型号),我能够检索RTSP。困惑于如何使其在Android上保持一致。另外,忘了提及,我在Android上通过/proc/net/arp获得了IP和Mac地址,它能帮助更快地获取URL吗?