Flask video stream using OpenCV images Flask video stream using OpenCV images flask flask

Flask video stream using OpenCV images


for accessing camera other than your laptop's webcam, you can use RTSP link like this rtsp://admin:12345@192.168.1.1:554/h264/ch1/main/av_stream"

where

>        username:admin>         password:12345>         your camera ip address and port>         ch1 is first camera on that DVR

replace cv2.VideoCamera(0) with this link like this for your camera and it will work

camera.py

import cv2class VideoCamera(object):    def __init__(self):        # Using OpenCV to capture from device 0. If you have trouble capturing        # from a webcam, comment the line below out and use a video file        # instead.        self.video = cv2.VideoCapture(0)        # If you decide to use video.mp4, you must have this file in the folder        # as the main.py.        # self.video = cv2.VideoCapture('video.mp4')    def __del__(self):        self.video.release()    def get_frame(self):        success, image = self.video.read()        # We are using Motion JPEG, but OpenCV defaults to capture raw images,        # so we must encode it into JPEG in order to correctly display the        # video stream.        ret, jpeg = cv2.imencode('.jpg', image)        return jpeg.tobytes()

main.py

from flask import Flask, render_template, Responsefrom camera import VideoCameraapp = Flask(__name__)@app.route('/')def index():    return render_template('index.html')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')@app.route('/video_feed')def video_feed():    return Response(gen(VideoCamera()),                    mimetype='multipart/x-mixed-replace; boundary=frame')if __name__ == '__main__':    app.run(host='0.0.0.0', debug=True)

then you can follow this blog to increase your FPS

https://www.pyimagesearch.com/2015/12/21/increasing-webcam-fps-with-python-and-opencv/