from flask import Flask, Response, render_template from flask_socketio import SocketIO from flask_cors import CORS import time app = Flask(__name__) CORS(app, resources={r"/video_stream": {"origins": "*"}}) socketio = SocketIO(app) latest_frame = None @socketio.on('frame') def handle_frame(data): global latest_frame latest_frame = data # data is bytes def generate_mjpeg_stream(): while True: if latest_frame: yield (b'--frame\r\n' b'Content-Type: image/jpeg\r\n\r\n' + latest_frame + b'\r\n') time.sleep(0.1) @app.route('/video_stream') def video_stream(): return Response(generate_mjpeg_stream(), mimetype='multipart/x-mixed-replace; boundary=frame') @app.route('/') def index(): return render_template('index.html') if __name__ == '__main__': socketio.run(app, host='0.0.0.0', port=7860, allow_unsafe_werkzeug=True)