金字塔框架:使用 Opencv 的流式摄像机

Pyramid Framework : Stream Camera using Opencv

我一直在尝试流式传输我的网络摄像头,使用金字塔框架,问题是生成的对象是一个生成器对象,当我将它传递给视图时,我确实在路由 (/video_feed) 但它滞后了很多。有人吗?

这是它的代码块

from pyramid.response import Response
from pyramid.view import view_config

from sqlalchemy.exc import DBAPIError

from ..models import MyModel
import cv2


class VideoCamera(object):
    def __init__(self):
         self.video = cv2.VideoCapture(0)

def __iter__(self):
    return self

def close(self):
    self.video.release()

def get_frame(self):
    success,image = self.video.read()
    ret, jpeg = cv2.imencode('.jpg', image)
    return jpeg.tobytes()
    __next__=get_frame

@view_config(route_name='home', renderer='templates/stream.jinja2')
def my_view(request):
    return {'project': 'my_project'}

def generate(camera):
    while True:
        frame = camera.__next__()
        yield (b'--frame\r\n'
               b'Content-Type: image/jpeg\r\n\r\n' + frame+ b'\r\n\r\n')

@view_config(route_name="video_feed")
def video(request):
    return Response(app_iter=generate(VideoCamera()),content_type="multipart/x-mixed-replace; boundary=frame")

求助!

您的 WSGI 服务器或任何其他上游代理可能正在缓冲流式响应。如果这是女服务员,我认为您可以将 send_bytes 设置为低于默认值的值。

https://docs.pylonsproject.org/projects/waitress/en/latest/arguments.html