2017-04-18 85 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