我正在努力从 Nest 相机获取视频流超过 5 分钟。我能够使用 OpenCV 和 python 获取流 URL 并从中读取图像。但 URL 每 5 分钟过期一次。我能够再次生成它,但这个过程相当耗时。(大约 10 秒,使用:cap = cv2.VideoCapture(rtspUrl))。为避免这种情况,谷歌提供了扩展直播的选项。我使用以下代码发送了延长持续时间的请求:
import cv2
_access_token = '...'
_project_id = '...'
device_id = '...'
extension_token = '...'
_headers = {'Content-Type': 'application/json', 'Authorization': 'Bearer ' + str(_access_token),}
raw_data = {"command" : "sdm.devices.commands.CameraLiveStream.ExtendRtspStream","params" : {"streamExtensionToken": extension_token}}
raw_data = str(raw_data)
response = requests.post(
'https://smartdevicemanagement.googleapis.com/v1/enterprises/' + _project_id + '/devices/' + device_id + ':executeCommand',
data=raw_data, headers=_headers)
response = response.json()
streamExtensionToken = response['results']['streamExtensionToken']
streamToken = response['results']['streamToken']
rtspUrl = 'rtsps://URL.com/sdm_live_stream/' + streamExtensionToken + '?auth=' + streamToken
cap = cv2.VideoCapture(rstp)
print('The camera opening is: ' + str(cap.isOpened()))
它返回以下内容:
OpenCV: Couldn't read video stream from file "rtsps://..."
The camera opening is: False
关于如何扩展流的任何想法?您知道如何减少获取图像所需的持续时间吗?