Flask接收摄像头视频流
在现代社会,视频直播已经成为人们获取信息和娱乐的主要方式之一。而Flask是一个轻量级的Web应用程序框架,可以简单快速地构建一个Web应用程序。本文将详细介绍如何使用Flask接收摄像头视频流。
准备工作
在开始之前,需要确保已经安装了Flask和OpenCV库。如果没有安装,可以使用以下命令进行安装:
pip install Flask
pip install opencv-python
实现视频流
首先创建一个名为app.py的Python文件,编写如下代码实现一个简单的视频流页面:
from flask import Flask, render_template, Response
import cv2
app = Flask(__name__)
camera = cv2.VideoCapture(0)
def gen_frames():
while True:
success, frame = camera.read()
if not success:
break
else:
ret, buffer = cv2.imencode('.jpg', frame)
frame = buffer.tobytes()
yield (b'--frame\r\n'
b'Content-Type: image/jpeg\r\n\r\n' + frame + b'\r\n')
@app.route('/')
def index():
return render_template('index.html')
@app.route('/video_feed')
def video_feed():
return Response(gen_frames(), mimetype='multipart/x-mixed-replace; boundary=frame')
if __name__ == '__main__':
app.run(debug=True)
实现前端页面
在同级目录下创建一个名为templates的文件夹,在其中创建一个名为index.html的HTML文件,编写如下代码:
<!DOCTYPE html>
<html>
<head>
<title>Video Stream</title>
</head>
<body>
<h1>Video Stream</h1>
<img src="{{ url_for('video_feed') }}" width="640" height="480">
</body>
</html>
运行程序
在命令行中执行以下命令启动Flask应用程序:
python app.py
然后在浏览器中输入http://127.0.0.1:5000/即可看到摄像头视频流的实时展示。
示例代码运行结果
浏览器中实时展示摄像头视频流
通过本文的详细介绍,我们可以轻松地使用Flask接收摄像头视频流,实现视频直播功能。