File size: 919 Bytes
bbabbc7
 
 
 
ff2145f
 
bbabbc7
 
ff2145f
bbabbc7
 
 
 
 
 
ff2145f
bbabbc7
5f7d165
bbabbc7
 
 
 
5f7d165
bbabbc7
 
 
 
 
 
 
 
5f7d165
ff2145f
93aae57
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
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)