from flask import Flask, render_template, Response, jsonify, request
import os
import cv2
import sys
import numpy
app = Flask(name)
@app.route("/")
def hello():
return render_template('form.html')
@app.route("/signin")
def signin():
global EmployeeId
#global cam1, cam2
EmployeeId = request.args.get('text','')
#camera1 = cv2.VideoCapture(0)
#messge1 = 'Warning: unable to open video source', 0
#camera2 = cv2.VideoCapture('rtsp://admin:aravind@[email protected]:554/1')
#messge2 = 'Warning: unable to open video source', 2
if len(EmployeeId) != 10 or len(EmployeeId) < 10:
return render_template('form.html')
else:
return render_template('serial.html')
@app.route("/signout")
def signout():
return render_template('form.html')
@app.route("/about")
def about():
return render_template('about.html')
@app.route("/get_data")
def get_data():
global SerialNo
SerialNo = request.args.get('SerialNo','')
TracerNo = request.args.get('TracerNo','')
Doomcamera = request.args.get('Doomcamera','')
Sparecasset = request.args.get('Sparecasset','')
Securitybolt = request.args.get('Securitybolt','')
print(len(SerialNo))
os.makedirs('/home/imran/Desktop/ramesh/python_test/14.9.19/' + EmployeeId + '/' + SerialNo)
SF = open('/home/imran/Desktop/ramesh/python_test/14.9.19/' + EmployeeId + '/' + SerialNo + '/' + 'data.txt', 'w+')
SF.write("Data got from the user \n\n")
SF.writelines("Serial Number:" + (SerialNo) + "\n")
SF.writelines("Tracer Number:" + (TracerNo)+ "\n")
SF.writelines("Doom Camera Number:" + (Doomcamera)+ "\n")
SF.writelines("Spare Cas-set Number:" + (Sparecasset)+ "\n")
SF.writelines("Security Bolt Number:" + (Securitybolt)+ "\n")
return render_template('index1.html')
def get_frame1():
global out1
cap1 = cv2.VideoCapture(0)
fourcc1 = cv2.VideoWriter_fourcc(*'XVID')
out1 = cv2.VideoWriter('/home/imran/Desktop/ramesh/python_test/14.9.19/' + EmployeeId + '/' + SerialNo + '/' + 'cam8.avi',fourcc1,20.0, (640,480))
while True:
sucess, data = cap1.read()
jpeg = cv2.imencode('.jpg',data)[1]
jpg_data = jpeg.tostring()
if sucess == True:
out1.write(data)
yield (b'--frame\r\n'
b'Content-Type: image/jpeg\r\n\r\n' + jpg_data + b'\r\n\r\n')
del(cap1)
def get_frame2():
global out2
cap2 = cv2.VideoCapture('rtsp://admin:aravind@[email protected]:554/h264/ch1/main/av_stream')
fourcc1 = cv2.VideoWriter_fourcc(*'XVID')
out2 = cv2.VideoWriter('/home/imran/Desktop/ramesh/python_test/14.9.19/' + EmployeeId + '/' + SerialNo + '/' + 'cam7.avi',fourcc1,30, (1280,720))
while True:
#global ret0, data0
sum1, data0 = cap2.read()
jpeg0 = cv2.imencode('.jpg',data0)[1]
jpg_data0 = jpeg0.tostring()
if sum1 == True:
out2.write(data0)
yield (b'--frame\r\n'
b'Content-Type: image/jpeg\r\n\r\n' + jpg_data0 + b'\r\n\r\n')
del(cap2)
@app.route('/videofeed1')
def videofeed1():
return Response(get_frame1(),mimetype='multipart/x-mixed-replace; boundary=frame')
@app.route('/videofeed2')
def videofeed2():
return Response(get_frame2(),mimetype='multipart/x-mixed-replace; boundary=frame')
@app.route('/start')
def start():
message = 'recording'
return render_template ('index.html',l=message)
@app.route('/stop')
def stop():
out1.release()
out2.release()
return render_template('serial.html')
@app.route('/previous')
def previous():
return render_template('serial.html')
if name == "main":
app.run(host='localhost',port='5002',debug=True, threaded=False)
.
.
.
when i am try stream multiple camera only (without getting any datas from user) i can stream the both camera without any error/page loading
code is:
from flask import Flask, render_template, Response
import cv2
import os, sys
import numpy as np
app = Flask(name)
@app.route('/')
def index():
return render_template('index1.html')
def get_frame1():
global out1, out2
cap1 = cv2.VideoCapture(0)
fourcc1 = cv2.VideoWriter_fourcc(*'XVID')
out1 = cv2.VideoWriter('/home/imran/Desktop/ramesh/07-01-2020/testing/video/cam8.avi',fourcc1,20.0, (640,480))
while True:
sucess, data = cap1.read()
jpeg = cv2.imencode('.jpg',data)[1]
jpg_data = jpeg.tostring()
if sucess == True:
out1.write(data)
yield (b'--frame\r\n'
b'Content-Type: image/jpeg\r\n\r\n' + jpg_data + b'\r\n\r\n')
del(cap1)
def get_frame2():
#global out2
cap2 = cv2.VideoCapture('rtsp://admin:aravind@[email protected]:554/h264/ch1/main/av_stream')
while True:
#global ret0, data0
sum1, data0 = cap2.read()
jpeg0 = cv2.imencode('.jpg',data0)[1]
jpg_data0 = jpeg0.tostring()
yield (b'--frame\r\n'
b'Content-Type: image/jpeg\r\n\r\n' + jpg_data0 + b'\r\n\r\n')
del(cap2)
@app.route('/videofeed1')
def videofeed1():
return Response(get_frame1(),mimetype='multipart/x-mixed-replace; boundary=frame')
@app.route('/videofeed2')
def videofeed2():
return Response(get_frame2(),mimetype='multipart/x-mixed-replace; boundary=frame')
@app.route('/start')
def start():
global out1, out2
cam1 = cv2.VideoCapture('rtsp://admin:aravind@[email protected]:554/1')
fourcc1 = cv2.VideoWriter_fourcc(*'XVID')
out2 = cv2.VideoWriter('/home/imran/Desktop/ramesh/07-01-2020/testing/video/cam7.avi',fourcc1,30, (1280,720))
while True:
ret0, frame0 = cam1.read()
if ret0 == True :
out2.write(frame0)
else:
break
#return message1
#return render_template('index.html', l = message1)
@app.route('/stop')
def stop():
out1.release()
out2.release()
return render_template('serial.html')
if name == 'main':
app.run(host='localhost',port=5050,threaded=True,debug=True)