返回

python-Flask应用程序,它获取流并将其放在html页面上

发布时间:2022-06-11 19:57:08 373
# node.js

我正在尝试创建一个flask应用程序,它接受一个流并将其放在html页面上。

当我使用我的网络摄像头进行测试时,该项目工作正常,但当我连接我的IP摄像头时,出现以下错误:

1、错误

127.0.0.1 - - [08/Jun/2022 19:00:42] "←[37mGET / HTTP/1.1←[0m" 200 -
Debugging middleware caught exception in streamed response at a point where response headers were already sent.
Traceback (most recent call last):
  File "C:\Users\diego\anaconda3\envs\k38\Lib\site-packages\werkzeug\wsgi.py", line 506, in __next__
    return self._next()
  File "C:\Users\diego\anaconda3\envs\k38\Lib\site-packages\werkzeug\wrappers\base_response.py", line 45, in _iter_encoded
    for item in iterable:
  File "C:\Users\diego\codes\videostream\main.py", line 19, in gen
    frame = camera.get_frame()
  File "C:\Users\diego\codes\videostream\face.py", line 33, in get_frame
    ret, jpeg = cv2.imencode('.jpg', frame)
cv2.error: OpenCV(4.5.5) D:\a\opencv-python\opencv-python\opencv\modules\imgcodecs\src\loadsave.cpp:976: error: (-215:Assertion failed) !image.empty() in function 'cv::imencode'
127.0.0.1 - - [08/Jun/2022 19:01:12] "←[37mGET /video_feed HTTP/1.1←[0m" 200 -

  1. 主要的py公司
@app.route('/')
def index():
    # rendering webpage
    return render_template('index.html')


def gen(camera):
    while True:
        #get camera frame
        frame = camera.get_frame()
        yield (b'--frame\r\n'
               b'Content-Type: image/jpeg\r\n\r\n' + frame + b'\r\n\r\n')


@app.route('/video_feed')
def video_feed():
    return Response(gen(VideoCamera()),
                    mimetype='multipart/x-mixed-replace; boundary=frame')
  1. 照相机py公司
class VideoCamera(object):
    def __init__(self):
       #capturing video
       self.video = cv2.VideoCapture(0)
       #self.video = cv2.VideoCapture(URL, cv2.CAP_FFMPEG)
    
    def __del__(self):
        #releasing camera
        self.video.release()
    
    def get_frame(self):
       #extracting frames
        ret, frame = self.video.read()
 
        #encode OpenCV raw frame to jpg and displaying it
        ret, jpeg = cv2.imencode('.jpg', frame)
        return jpeg.tobytes()


据我所知,IP摄像头的帧变量变为空,我在互联网上寻找解决方案,但迄今为止没有成功。

如果我只是将流强制转换为python shell,它就可以工作,但我的目标是获取流并将其放入html页面中

特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(0)
按点赞数排序
用户头像