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

时间:2017-04-18 20:48:32

标签: java android soap rtsp onvif

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

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

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

您必须执行的步骤如下:

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

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

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