Отображение потока rtsp на React Frontend - PullRequest
1 голос
/ 16 марта 2020

Мне нужно показать видеопоток на реагирующем компоненте с бэкэндом Python + Django.

ТЕКУЩАЯ СИТУАЦИЯ:

Я использую библиотеку opencv для получения потока:

import cv2
[...]
def read_data():
  cap = cv2.VideoCapture("rtsp://user:password/bla bla bla")
  while(cap.isOpened()):
    ret, frame              = cap.read()
    retval, buffer          = cv2.imencode('.jpg', frame)
    image_result_base64     = base64.b64encode(buffer)
    return HttpResponse(image_result_base64, 200)

В React, где this.state.response_data является значением responseText содержимого вызова бэкэнда:

render ()
{
  const img_data ="data:image/png;base64," + this.state.response_data;
  return <img id="overView" class="overView" alt="Stream" src={ img_data}  width="90%" />
}

Этот подход работает, и во внешнем интерфейсе я вижу рамку в своем компоненте.

К сожалению, чтобы создать какой-то поток, мне нужно вызывать backend как минимум 10 раз в секунду, чтобы получить 10fps. Это тяжелый бэкэнд.

Я читал о StreamingHttpResponse, но не знаю, подходит ли он моим потребностям.

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