Прямая трансляция камеры с использованием Python и Redis pub / sub работает медленно - PullRequest
0 голосов
/ 06 апреля 2020

Я создал проект python, который открывает камеры с использованием протокола RTSP с использованием OpenCV и форматирует каждый кадр в .jpg и base64 string и, наконец, publi sh it к Redis Q.

Там у меня есть приложение NodeJS, которое подписывается каждому Q и отправляет его клиенту, используя socket.io .

, вот мой код python:

while(video_capture.isOpened()):
 ret, frame = video_capture.read()
 retval, buffer_img1 = cv2.imencode('.jpg', frame)
 jpg_as_text = base64.b64encode(buffer_img1)
 print('len1', len(buffer_img1))

 queue.publish('Camera_1Q', jpg_as_text)

, но ... это очень медленно !

в клиенте (ReactJs) это похоже на 2 кадра в секунду. и я думаю это из-за длинной строки, которая проходит через Redis .

3 вопроса:

1 . это .jpg лучший формат для этого?

2 . Как я могу сжать каждый кадр, чтобы помочь Redis быть быстрее?

3 . Как я могу отправить только те пиксели, которые изменились (frame1 - frame2).

Если у меня есть проблемы с архитектурой, дайте мне знать. Если я пришел к ложному выводу, дайте мне знать.

спасибо .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...