Flask(python)http://blog.miguelgrinberg.com/post/video-streaming-with-flask中的视频流式应用程序运行完美。
但是我想使用一种方法来保存相机中的所有相框(我已经有了功能)。
问题是,一旦我启动Flask应用程序,我最多只能存储在localhost中打开网页时捕获的帧。我希望能够在应用程序运行时执行其他代码(保存图片),以便在我在浏览器上打开页面时保存所有图片并显示到localhost。
如何实现这些同步任务?
Flask app:
app = Flask(__name__)
@app.route('/')
def index():
return render_template('index.html')
def gen(camera):
while True:
frame = camera.get_frame()
yield (b'--frame\r\n'
b'Content-Type: image/jpeg\r\n\r\n' + frame + b'\r\n')
@app.route('/video_feed')
def video_feed():
return Response(gen(Camera()),
mimetype='multipart/x-mixed-replace; boundary=frame')
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5001)
#want to be able to run code while localhost webpage is closed
在开始时,index()被调用一次,如果我随时打开网页,video_feed()会调用gen()。如果我关闭网页,我得到error: [Errno 10053] An established connection was aborted by the software in your host machine
并且.py文件崩溃,可能是因为我已经停止向客户端传输。我需要能够在客户端关闭连接后运行代码,并且仍然为下一个客户端运行应用程序。
我希望能够在应用程序仍在运行时执行代码,但是没有打开localhost网页。因此,打开网页的人会从正常代码中断一下,直到网页关闭。