Как использовать потоковое вещание с веб-камеры из приложения django?
Я пытаюсь протестировать потоковое вещание с веб-камеры в простом приложении Django с помощью только views.py и html. Оно показывает простой html-текст на экране, не открывая веб-камеру. Что я здесь упускаю?
Это мой views.py
from django.shortcuts import render
from django.views.decorators import gzip
from django.http import StreamingHttpResponse
import cv2
import threading
class VideoCamera(object):
def __init__(self):
self.video = cv2.VideoCapture(0)
(self.grabbed, self.frame) = self.video.read()
threading.Thread(target=self.update, args=()).start()
def __del__(self):
self.video.release()
def get_frame(self):
image = self.frame
_, jpeg = cv2.imencode('.jpg', image)
return jpeg.tobytes()
def update(self):
while True:
(self.grabbed, self.frame) = self.video.read()
def gen(camera):
while True:
frame = camera.get_frame()
yield(b'--frame\r\n'
b'Content-Type: image/jpeg\r\n\r\n' + frame + b'\r\n\r\n')
@gzip.gzip_page
def livef(request):
try:
cam = VideoCamera()
return StreamingHttpResponse(gen(cam), content_type="multipart/x-mixed-
replace;boundary=frame")
except: # This is bad! replace it with proper handling
pass
def index(request):
return render(request, 'home.html')
и это мой дом.html -
<html>
<head>
<title>Video Live Stream</title>
</head>
<body>
<h1>Video Live Stream</h1>
<img src="{% url 'livef' %}">
</body>
</html>