Я пытаюсь передавать потоковое видео с камеры Raspberry Pi, и из соображений безопасности я туннелирую свой сервер через защищенный сервер, даже если клиент находится в той же локальной сети.Однако это привело к ужасной задержке.Я пытаюсь сейчас потоковое видео по локальной сети, а не через сервер.Я знаю, что браузеры разрешают HTTP-соединения только через HTTPS-серверы только с пассивными элементами, такими как.
Мой сервер сохраняет изображение в виде локального файла JPEG, закодированного как base64:
camera = cv2.VideoCapture(0)
grabbed, frame = camera.read()
frame = cv2.resize(frame, (320, 240))
buffer = cv2.imencode('.jpg', frame)[1]
buffer = base64.b64encode(buffer)
buffer.decode('utf-8')
with open(ROOT + '/static/image.jpeg', mode='wb+') as image:
image.write(buffer)
myУ клиента есть тег изображения и простой скрипт для запроса сохраненного файла:
<img id='img'>
<script>
setInterval(function() {
var myImageElement = document.getElementById('img');
myImageElement.src = 'data:image/jpg;base64,http://10.0.0.35:8000/static/image.jpg?rand=' + Math.random();
}, 500);
</script>
Результатом является постоянный поток ошибок консоли, таких как:
data:image/jpg;charset=utf-8;base64,http://10.0.0.35:8000/static/image.jpg?rand=0.7520646586573345:1 GET data:image/jpg;charset=utf-8;base64,http://10.0.0.35:8000/static/image.jpg?rand=0.7520646586573345 net::ERR_INVALID_URL
Я проверил, что изображение доступно (введено http://10.0.0.35:8000/static/image.jpg в моем браузере и не получил никаких ошибок) Я также проверил, что это файл в формате base64 jpeg, используя онлайн-инструмент.Я посмотрел на этот вопрос , но там ничего не получалось, я не могу понять, почему я получаю эту ошибку и как ее решить.Может кто-нибудь, пожалуйста, направьте меня в правильном направлении?