我正在使用 Google 的以下 API,https://developers.google.com/nest/device-access/traits/device/camera-live-stream
我已经成功地看到了我的设备列表和相关信息。我也可以提出成功的GenerateRtspStream
请求。我收到了他们 API 中记录的以下响应
{
"results" : {
"streamUrls" : {
"rtsp_url" : "rtsps://someurl.com/CjY5Y3VKaTZwR3o4Y19YbTVfMF...?auth=g.0.streamingToken"
},
"streamExtensionToken" : "CjY5Y3VKaTZwR3o4Y19YbTVfMF...",
"streamToken" : "g.0.streamingToken",
"expiresAt" : "2018-01-04T18:30:00.000Z"
}
}
但是问题是我无法访问视频源。我曾尝试使用 VLC 播放器和 Pot Player 之类的东西来查看实时提要,但他们说 URL 不存在。我也尝试过使用OpenCV
inpython
来尝试访问实时提要,但它也不起作用(我已经opencv
在本地文件上进行了测试,它们工作得很好)。
rtsps
我对网址做错了吗?如何在python
第三方应用程序或某些第三方应用程序中访问实时提要VLC Player
以下是我已经尝试过的一些示例:
import cv2 as cv
x = cv.VideoCapture(STREAM_URL)
# ret is False --- it works on local files as it returns True and I am able to view the media
ret, img = x.read()
这是使用 Pot Player/VLC 的尝试
我的目标是在 python 中处理这个视频馈送/图像,所以理想情况下我的解决方案是使用opencv
或类似的东西。我主要是使用VLC
和其他玩家先调试这个 url 的问题。
更新
我已经使用以下公共链接 rtsp://wowzaec2demo.streamlock.net/vod/mp4:BigBuckBunny_115k.mov 进行了测试:
MYURL = "rtsp://wowzaec2demo.streamlock.net/vod/mp4:BigBuckBunny_115k.mov"
MYURL = STREAM_URL
import cv2 as cv
x = cv.VideoCapture(MYURL)
while(True):
ret, img = x.read()
if not ret:
print('URL not working')
break
cv.imshow('frame', img)
cv.waitKey(1)
opencv
它与以及完美配合Pot Player
。那么问题可能出在 Google 设备访问 API 上?他们提供的网址可能不正确?或者我在这里错过了什么?
也许它与rtsps
URL vs rtsp
?我该如何解决?