Как я могу запустить прямой поток без использования API

Я хочу запускать cv2.videocapture в фоновом потоке, не обращаясь к API URL. Сейчас я использую приведенный ниже код, но он запускает поток, только я обращаюсь к серверу http://10.11.20.85:8089/.

from django.shortcuts import render
from django.views.decorators import gzip
from django.http import StreamingHttpResponse
import cv2
import threading

@gzip.gzip_page
def Home(request):

    try:
        cam = VideoCamera()
        return StreamingHttpResponse(gen(cam), content_type="multipart/x-mixed-replace;boundary=frame")
    except:
        pass
    return render(request, 'home.html')


class VideoCamera(object):

    def __init__(self):
        self.video = cv2.VideoCapture()
        (self.grabbed, self.frame) = self.video.read()
        t = threading.Thread(target=self.update, args=())
        t.daemon = True
        t.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')
Вернуться на верх