python-将OpenCV视频捕获流传输到flask服务器
问候,我在一个无人机项目中工作,我想从我的无人机中提取流,在我的笔记本电脑上处理它,并基于处理发出命令,我使用的是同样的flask框架。
目前,作为第一步,我想从drone获取流并将其放到flask服务器上,然后在flask网站上查看,而不是现在进行处理部分。
我将视频压缩成jpg并使用base 64对其进行编码,然后最终使用json.dumps()
然后requests.put()
它
在flask服务器程序的服务器端,我使用request.json
使用json.loads()
,但我不清楚下一步该怎么办。
我对flask、web开发和有限的经验和知识制作程序没有足够的经验,但它会回来error 405在烧瓶程序上。
以下是程序
烧瓶服务器
import base64
import json
from flask import Flask, make_response, render_template, request
app = Flask(__name__)
def getFrames(img):
pass
@app.route('/video', methods=['POST', 'GET'])
def video():
if request.method == 'PUT':
load = json.loads(request.json)
imdata = base64.b64decode(load['image'])
respose = make_response(imdata.tobytes())
return respose
@app.route('/')
def index():
return render_template('index.html')
@app.route('/cmd')
def cmd():
pass
if __name__ == "__main__":
app.run(debug=True)
索引.html
<!DOCTYPE html>
<html>
<head>
<title>Video Stream</title>
</head>
<body>
<h1>
Live Stream
</h1>
<div>
<img src="{{ url_for('video') }}" width="50%">
</div>
</body>
</html>
无人机计划
import base64
import json
import requests
import cv2
cap = cv2.VideoCapture(1)
ip = '' #url returned by the flask program
while True:
success, img = cap.read()
cv2.imshow("OUTPUT", img)
_, imdata = cv2.imencode('.JPG', img)
jStr = json.dumps({"image": base64.b64encode(imdata).decode('ascii')})
requests.put(url=(ip + '/video'), data=jStr)
if cv2.waitKey(1) == 27:
break
任何帮助都非常感谢!!!