Flask接收摄像头视频流

Flask接收摄像头视频流

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接收摄像头视频流,实现视频直播功能。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程