Я недавно запустил django и хотел посмотреть видео с камеры ноутбука в веб-приложение на Django 2.2. Я успешно просмотрел видео с камеры, напрямую отправив ответ в Интернет с помощью функции display_livefeed. Ниже приведен мой код views.py приложения 'camerafeed'
class mycamera(object):
def __init__(self):
self.frames = cv2.VideoCapture(0)
def __del__(self):
self.frames.release()
def get_jpg_frame(self):
is_captured, frame = self.frames.read()
retval, jframe = cv2.imencode('.jpg', frame)
return jframe.tobytes()
def livefeed():
camera_object = mycamera()
while True:
jframe_bytes = camera_object.get_jpg_frame()
yield (b'--frame\r\n'
b'Content-Type: image/jpeg\r\n\r\n' + jframe_bytes + b'\r\n\r\n')
@condition(etag_func=None)
def display_livefeed(self):
return StreamingHttpResponse(
livefeed(),
content_type='multipart/x-mixed-replace; boundary=frame'
)
Я использовал путь ('monitor /', display_livefeed, name = 'monitor'), для просмотра видео потоковая передача на http://127.0.0.1: 8000 / монитор / и она отлично работает >> Изображение из потокового видео << </a>
Теперь я хотел отобразить на html шаблон просто строка, это делается здесь: https://www.pyimagesearch.com/2019/09/02/opencv-stream-video-to-web-browser-html-page/ но это было сделано с помощью Flask. Но я хотел сделать то же самое, используя Django, и застрял. Вот файл html по вышеуказанной ссылке.
<html>
<head>
<title>Pi Video Surveillance</title>
</head>
<body>
<h1>Pi Video Surveillance</h1>
<img src="{{ url_for('video_feed') }}">
</body>
Я попытался сделать это, используя эту функцию:
def video_feed(request):
return StreamingHttpResponse(
livefeed(), # Calling livefeed() function
content_type='multipart/x-mixed-replace; boundary=frame'
)
Но он может видеть видео на html страница с использованием пути ('', homePageView.as_view (), name = 'home'), и размещения кода ниже в views.py
class homePageView(TemplateView):
template_name = 'home.html'
Я видел и пробовал следующее:
- Django StreamingHttpОтвет на шаблон
- Opencv Live Stream с камеры в Django Веб-страница
Но может быть из-за того, что я новичок во всех этих вещах, включая веб-разработку, я не смог бы это сделать. Пожалуйста, помогите объяснить мне, как это сделать.
Я использую python 3.7 и django 2.2