flask+opencv:实时视频直播推流平台Demo

简介:推流,指的是把采集阶段封包好的内容传输到服务器的过程。其实就是将现场的视频信号传到网络的过程。网上调查、对话访谈、在线培训等内容现场发布到互联网上。利用互联网的直观、快速,表现形式好、内容丰富、交互性强、地域不受限制、受众可划分等特点,加强活动现场的推广效果。现场直播完成后,还可以随时为读者继续提供重播、点播,有效延长了直播的时间和空间,发挥直播内容的最大价值。

历史攻略:

sanic:通过API接口进行电脑截图或录像

Python+ADB截图、录屏、抓取日志

安装依赖库:

pip install flask opencv-python

操作步骤:

1、新建文件:app.py

# -*- coding: utf-8 -*-
# time: 2023/4/26 10:28
# file: app.py
# 公众号: 玩转测试开发
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('/video_feed')
def video_feed():
    return Response(gen_frames(), mimetype='multipart/x-mixed-replace; boundary=frame')

@app.route('/')
def index():
    return render_template('index.html')

if __name__ == '__main__':
    app.run(debug=True)

2、新建目录:templates

3、新建文件:index.html 放入templates

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>实时视频推流</title>
</head>
<body>
    <h1>实时视频推流</h1>
    <img src="{
    
    { url_for('video_feed') }}" alt="实时视频">
</body>
</html>

4、运行以下命令启动 Flask 服务器:

python app.py

在浏览器中打开 http://127.0.0.1:5000/,将看到实时视频流。

图片

推荐使用播放器来展示实时视频流,可以使用 video.js 这个开源的 HTML5 视频播放器或者使用 CDN。

注意:这个示例仅适用于本地开发环境。如果要将其部署到生产环境,请确保根据需求调整设置。

图片

猜你喜欢

转载自blog.csdn.net/hzblucky1314/article/details/130396361