Spaces:
Sleeping
Sleeping
File size: 1,185 Bytes
2ea140a acaee24 2ea140a |
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 36 37 38 39 40 41 42 |
from flask import Flask, render_template, request, Response
import base64
import cv2
import numpy as np
from datetime import datetime
app = Flask(__name__)
latest_frame = None # Store the latest frame
@app.route('/')
def index():
return render_template('test_streaming_index.html')
@app.route('/upload_frame', methods=['POST'])
def upload_frame():
global latest_frame
data_url = request.json['image']
header, encoded = data_url.split(",", 1)
img_bytes = base64.b64decode(encoded)
nparr = np.frombuffer(img_bytes, np.uint8)
frame = cv2.imdecode(nparr, cv2.IMREAD_COLOR)
latest_frame = frame
return '', 204
def stream():
global latest_frame
while True:
if latest_frame is not None:
_, buffer = cv2.imencode('.jpg', latest_frame)
frame = buffer.tobytes()
yield (b'--frame\r\n'
b'Content-Type: image/jpeg\r\n\r\n' + frame + b'\r\n')
else:
yield b''
@app.route('/video_feed')
def video_feed():
return Response(stream(), mimetype='multipart/x-mixed-replace; boundary=frame')
if __name__ == '__main__':
app.run(host='0.0.0.0', port=7860)
|