0

我正在努力从 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

关于如何扩展流的任何想法?您知道如何减少获取图像所需的持续时间吗?

4

0 回答 0