Я установил IP-камеру в моем Android и потоковое видео. Если я открою URL, он показывает живое видео в моем веб-браузере. Я могу успешно получать изображения из потокового видео в реальном времени, используя python на моей локальной машине. Но тот же код не работает в экземпляре виртуальной машины Google Compute Engine и через облачную функцию
Я пытался реализовать несколько решений, опубликованных в SO, но ни одно из них не сработало.
import requests
import numpy as np
import cv2
import os
path_output_dir = 'path-folder'
count = 6
img_res = requests.get("http://ipaddress:8080/shot.jpg")
img_arr = np.array(bytearray(img_res.content), dtype = np.uint8)
img = cv2.imdecode(img_arr,-1)
cv2.imwrite(os.path.join(path_output_dir, '%d.jpeg') % count, img)
Сообщение об ошибке в облачной функции:
TimeoutError: [Errno 110] Тайм-аут соединения Во время обработки вышеуказанного исключения произошло другое исключение: обратная связь (последний вызов был последним): файл "/env/local/lib/python3.7/site-packages/urllib3/ connectionpool.py ",
urllib3.exceptions.NewConnectionError:: Не удалось установить новое соединение: [Errno 110] Истекло время ожидания соединения Во время обработки вышеуказанного исключения произошло другое исключение: Traceback (последний вызов был последним):
ResponseError (причина)) urllib3.exceptions.MaxRetryError: HTTPConnectionPool (host = '192.168.0.24', port = 8080): превышено максимальное количество попыток с помощью url: /shot.jpg (вызвано NewConnectionError (': не удалось установить новое соединение: [Errno 110] Тайм-аут соединения ')) request.exceptions.ConnectionError: HTTPConnectionPool (host =' 192.168.0.24 ', port = 8080): Превышено максимальное количество попыток с помощью url: /shot.jpg (вызвано NewConnectionError (' : Не удалось установить новое соединение: [Errno 110] Время ожидания истекло '))