【发布时间】:2018-02-04 23:37:46
【问题描述】:
我正在尝试使用树莓派从 USB 摄像头捕获图像并使用 Django 框架进行流式传输 我尝试使用 StreamingHttpResponse 从 Opencv2 流式传输帧。 但是,它只显示 1 帧而不替换图像。
如何实时替换图片?
这是我的代码。
from django.shortcuts import render
from django.http import HttpResponse,StreamingHttpResponse
import cv2
import time
class VideoCamera(object):
def __init__(self):
self.video = cv2.VideoCapture(0)
def __del__(self):
self.video.release()
def get_frame(self):
ret,image = self.video.read()
ret,jpeg = cv2.imencode('.jpg',image)
return jpeg.tobytes()
def gen(camera):
while True:
frame = camera.get_frame()
yield(frame)
time.sleep(1)
def index(request):
# response = HttpResponse(gen(VideoCamera())
return StreamingHttpResponse(gen(VideoCamera()),content_type="image/jpeg")
【问题讨论】:
-
客户端可能只需要一个图像,因为 content_type 是
image/jpeg。这个问题可能有用。 stackoverflow.com/questions/21197638/… -
感谢您的回复!我已经能够使用 multipart/x-mixed 流式传输我的相机输入帧!
-
你能解释一下你是如何使用多部分的吗?或者也许有一个代码sn-p?我也有同样的问题。
标签: python django opencv django-views real-time-data