前提
vscodeでflaskを使ったpythonとラズベリーパイを活用した自転車管理システム(ラズパイは監視カメラのようなもの)を作成しています。
実現したいこと
カメラを起動したまま、別ページに飛びたい。
ログイン機能なども実装したのですが、カメラを起動したまま他ページに飛ぶとカメラが消えてしまいます。カメラを起動したまま他ページでも操作したいです。
監視カメラのイメージなので、カメラはずっと動いたまま管理する時間の設定やアカウントログインなどの操作をしたいです
該当のソースコード
python
1from http.server import HTTPServer, BaseHTTPRequestHandler 2import cv2 3from flask import Flask,render_template,request,g 4app = Flask(__name__,static_folder='./templates/images') 5@app.route('/') 6def index(): 7 return render_template('menu.html') 8@app.route('/move',methods=["POST"]) 9def move_post(): 10# カメラのデバイスをオープン 11 camera = cv2.VideoCapture(0) 12# Webサーバーのハンドラを定義 --- (*1) 13 class liveHTTPServer_Handler(BaseHTTPRequestHandler): 14 # アクセスがあったとき 15 def do_GET(self): 16 print("path=",self.path) 17 # 画像を送信する --- (*2) 18 if self.path[0:7] == "/camera": 19 # ヘッダ 20 self.send_response(200) 21 self.send_header('Cotent-Type', 'image/jpeg') 22 self.end_headers() 23 # フレームを送信 24 _, frame = camera.read() 25 img = cv2.resize(frame, (900,800)) 26 # JPEGにエンコード 27 param = [int(cv2.IMWRITE_JPEG_QUALITY), 80] 28 _, encimg = cv2.imencode('.jpg', img, param) 29 self.wfile.write(encimg) 30 # HTMLを送信する --- (*3) 31 elif self.path == "/": 32 # ヘッダ 33 self.send_response(200) 34 self.send_header('Content-Type', 'text/html') 35 self.end_headers() 36 # HTMLを出力 37 try: 38 f = open('live2.html', 'r', encoding='utf-8') 39 s = f.read() 40 except: 41 s = "file not found" 42 self.wfile.write(s.encode('utf-8')) 43 else: 44 self.send_response(404) 45 self.wfile.write("file not found".encode('utf-8')) 46 try: 47 # Webサーバーを開始 --- (*4) 48 addr = ('', 8081) 49 httpd = HTTPServer(addr, liveHTTPServer_Handler) 50 print('サーバーを開始', addr) 51 httpd.serve_forever() 52 except KeyboardInterrupt: 53 httpd.socket.close() 54if __name__ == '__main__': 55 app.debug = True 56 app.run(host='localhost',debug=True)
python
1<!DOCTYPE html> 2<html lang="jp"> 3<head> 4 <meta charset="UTF-8"> 5 <title>ログインページ</title> 6</head> 7<body> 8 <form > 9 <h1>ログイン成功</h1> 10 </form> 11 <form action='/move'> 12 <button type="submit" formmethod="POST">動画確認</button> 13 </form> 14 <form action='http://192.168.137.98'> 15 <button type="submit">動画</button> 16 </form> 17 <a href="#" onclick="location.href = 'http://192.168.137.98:8081'">Oracle Enterprise Manager</a> 18</body> 19</html>
試したこと
カメラを二個設置し、別々の操作ができるか
pythonファイルを二個動かして片方はカメラを実行したまま操作

回答1件
あなたの回答
tips
プレビュー
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。
また依頼した内容が修正された場合は、修正依頼を取り消すようにしましょう。
2022/11/11 03:12
2022/11/11 03:16
2022/11/11 03:36
2022/11/14 00:30
2022/11/15 02:15
2022/11/15 02:28