当前位置: 首页 > news >正文

超赞,用python实现流媒体服务器功能,寥寥几句搞定。

步骤:

要使用Python将实时摄像机传送流写入H5页面,可以使用以下步骤。

1、安装必要的软件包。您需要安装OpenCV和Flask以及gunicorn 与 gevent 。您可以通过在终端中运行以下命令来执行此操作。

pip install opencv-python
pip install Flask
pip install gunicorn 
pip install gevent 

2、创建Python文件。在工作目录中创建一个名为“app.py”的新Python文件。

3、导入必要的包。将以下行添加到“app.py”文件的顶部。

4、初始化Flask。将以下代码行添加到“app.py”文件中以初始化Flask

6、创建相机捕获对象。将以下代码行添加到“app.py”文件中,以创建相机捕捉对象。

7、创建HTML文件。在工作目录中创建一个名为“index.HTML”的新HTML文件。

8、添加HTML代码。将以下代码行添加到“index.HTML”文件中。

9、创建视频源路由。将以下代码行添加到“app.py”文件以创建视频源路径。

10、运行应用程序。在“app.py”文件底部添加以下代码行以运行应用程序。

服务端代码:

import cv2
from flask import Flask, render_template, Response
from gevent import pywsgiapp = Flask(__name__)@app.route('/')
def index():return render_template('index1.html')cap = cv2.VideoCapture(0)def gen_frames():while True:success, frame = cap.read()if not success:breakelse: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')if __name__ == '__main__':server = pywsgi.WSGIServer(('192.168.1.10', 5000), app)server.serve_forever() # server = make_server('192.168.1.10', 5000, app)# server.serve_forever()app.run()

网页端代码:py同级文件夹下创建templates文件夹,按如下内容创建网页,命名为index1.html

<!doctype html>
<html><head><title>Live Camera Stream</title></head><body><h1>Live Camera Stream</h1><img src="{{ url_for('video_feed') }}"></body>
</html>

效果如下所示:

1

http://www.lryc.cn/news/34385.html

相关文章:

  • 冥想第七百二十一天
  • 06-Oracle表空间与用户管理
  • Mysql 索引特点
  • 读书笔记-终身学习
  • 了解栈Stack一篇文章就够了
  • CNStack 助推龙源电力扛起“双碳”大旗
  • ruoyi-vue-plus1(控制台相关的输出日志)(p6spy插件)(jackson全局配置)(StopWatch)
  • 【Mybatis】| 如何创建MyBatis的工具类
  • 【Java】DT怎么写?
  • xcode14安装swift package设置github账户token
  • css面试题1
  • Hive基础
  • 信息收集-
  • 【sdx12】sdx12获取Serial Number操作方法及源码分享Serial Number的寄存器地址
  • 23种设计模式-工厂模式(安卓应用场景介绍)
  • sheng的学习笔记-服务熔断与降级组件Hystrix
  • 简单给WordPress怎么添加自定义字段面板
  • 大数据框架之Hive:第6章 查询
  • CentOS 8搭建EMQX集群
  • 基于神经网络的自监督学习方法音频分离器(Matlab代码实现)
  • yocto 如何添加python module
  • [深入理解SSD系列综述 2.1.2] SLC、MLC、TLC、QLC、PLC NAND_固态硬盘闪存颗粒类型
  • Matlab实现FFT变换
  • JVM调优面试题——垃圾回收专题
  • java启动命令中-D和--的区别
  • QML Popup详解
  • [2.1.6]进程管理——线程的实现方式和多线程模型
  • 小白做什么兼职项目赚钱?宝妈拍短视频赚钱的方法
  • 第十四届蓝桥杯第三期模拟赛 C/C++ B组 原题与详解
  • Linux中断操作