当前位置: 首页 > 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

相关文章:

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

步骤&#xff1a; 要使用Python将实时摄像机传送流写入H5页面&#xff0c;可以使用以下步骤。 1、安装必要的软件包。您需要安装OpenCV和Flask以及gunicorn 与 gevent 。您可以通过在终端中运行以下命令来执行此操作。 pip install opencv-python pip install Flask pip ins…...

冥想第七百二十一天

1.3.3周五&#xff0c;又是周五了。今天又运动了5公里&#xff0c;很舒服轻松。 2.还是往常的生活&#xff0c;休息的也很好&#xff0c;开春后跑的一直很好。 3.早上30分钟健康操。中午转了圈&#xff0c; 给大哥说下周去上海。 4.感谢父母&#xff0c;感谢朋友&#xff0c;感…...

06-Oracle表空间与用户管理

本讲主要内容&#xff1a; 1.表空间管理&#xff1a;表空间的作用&#xff0c;创建&#xff0c;修改&#xff0c;删除及管理&#xff1b; 2.用户管理&#xff1a;创建用户&#xff0c;修改用户&#xff0c;删除用户&#xff0c;修改密码&#xff0c;解锁&#xff1b; 3.用户…...

Mysql 索引特点

承接上文Mysql Server原理简介聚簇索引、二级索引、联合索引分别具备什么样的特点&#xff1f;聚簇索引数据跟索引放在一起的叫聚簇索引&#xff1b;数据和索引分开存储的叫非聚簇索引&#xff1b;innodb存储引擎&#xff0c;数据和文件都放在ibd文件中&#xff0c;实际的数据是…...

读书笔记-终身学习

前言人需要终身成长&#xff0c;也需要终身学习&#xff0c;以下是记录个人读书学习的笔记总结&#xff0c;希望能给大家一点借鉴&#xff0c;仅供参考。笔记1、《匠人精神》秋山利辉是日本神奈川县横滨市都筑区“秋山木工”的经营者&#xff0c;从事订制家具制作业务。是一家小…...

了解栈Stack一篇文章就够了

什么是栈栈是一种特殊的线性表&#xff0c;只允许一端进行数据的插入和删除&#xff0c;即先进后出原则。类似于弹夹先装进去的子弹后面出&#xff0c;后放入的子弹先出。栈的底层原理栈是一种线性结构&#xff0c;所以既能使用数组实现&#xff0c;也能使用链表实现&#xff0…...

CNStack 助推龙源电力扛起“双碳”大旗

作者&#xff1a;CNStack 容器平台、龙源电力&#xff1a;张悦超 、党旗 龙源电力容器云项目背景 龙源电力集团是世界第一大风电运营商&#xff0c; 随着国家西部大开发战略推进&#xff0c;龙源电力已经把风力发电场铺设到全国各地&#xff0c;甚至是交通极不便利的偏远地区&…...

ruoyi-vue-plus1(控制台相关的输出日志)(p6spy插件)(jackson全局配置)(StopWatch)

Jackson配置在启动项目时&#xff0c;我们发现日志打印出这样几行字&#xff0c;初始化了jacdson配置&#xff0c;我们去查看一下来源找。我们找到了一个全局序列化配置类&#xff0c;其中重写了BigNumberSerializer.INSTANCE进去查看发现了这里对于部分范围的数字进行了转为为…...

【Mybatis】| 如何创建MyBatis的工具类

目录&#x1f31f;更多专栏请点击&#x1f447;一、前言二、实现过程1. 创建一个ThreadLocal对象2. 初始化SqlSessionFactory3. 获取并存储sqlSession对象4. 关闭sqlSession对象三、 总代码&#x1f31f;更多专栏请点击&#x1f447; 专栏名字&#x1f525;Elasticsearch专栏e…...

【Java】DT怎么写?

几个重要的注解 怎么用mockito写单元测试&#xff1f; package Biz;import Client.FileIOClient; import Req.FileRequest; import Res.FileResponse; import org.junit.Assert; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.InjectMocks;…...

xcode14安装swift package设置github账户token

这里写目录标题登录github账户,复制token打开xcode添加github账户选择swift package登录github账户,复制token 登录github点击上面菜单自己的头像,settings->Developer settings->Personal access tokens->Tokens (classic)->Generate new token (classic) Note名…...

css面试题1

一、css 1. 说一下css的盒模型 在HTML中所有元素都可以看成是一个盒子 盒子的组成&#xff1a; 内容content、内边距padding、边框border、外边距margin 盒模型的类型&#xff1a; 标准盒模型 margin border padding content IE盒模型 margin content(border padding) 控制…...

Hive基础

hive基本语法&#xff1a;查看数据库&#xff1a;hive (default)> show databases; -----查看所有数据库hive (default)> desc database test; ----查看数据库结构hive (default)> select current_database(); ---查看当前数据库创建数据库&#xff1a;hive (default)…...

信息收集-

url&#xff1a; https://en.wikipedia.org:443/wiki/hypertext_Transfer_Protocol?id123#HTTP/1.1_response_messages https&#xff1a;协议 en.wikipedia.org&#xff1a;域名 443&#xff1a;端口 wiki/hypertext_Transfer_Protocol&#xff1a;文件路径 id123&…...

【sdx12】sdx12获取Serial Number操作方法及源码分享Serial Number的寄存器地址

通过串口获取 系统启动时,在boot阶段会打印如下信息 Format: Log Type - Time(microsec) - Message - Optional Info Log Type: B - Since Boot(Power On Reset), D - Delta, S - Statistic S - QC_IMAGE_VERSION_STRING=BOOT.XXXX S - IMAGE_VARIANT_STRING=MAATANAZA S - …...

23种设计模式-工厂模式(安卓应用场景介绍)

工厂模式是一种创建型设计模式&#xff0c;它提供了一种创建对象的方式&#xff0c;而无需将具体的对象创建逻辑暴露给客户端。在Java中&#xff0c;工厂模式常常用于创建复杂对象或对象的构造过程涉及到多个步骤的情况。 在Android开发中&#xff0c;工厂模式也经常被使用&am…...

sheng的学习笔记-服务熔断与降级组件Hystrix

在微服务架构中&#xff0c;一个应用往往由多个服务组成&#xff0c;这些服务之间相互依赖&#xff0c;依赖关系错综复杂。例如一个微服务系统中存在 A、B、C、D、E、F 等多个服务&#xff0c;它们的依赖关系如下图。图1&#xff1a;服务依赖关系通常情况下&#xff0c;一个用户…...

简单给WordPress怎么添加自定义字段面板

今天一淘模板(56admin.com)WordPress怎么添加自定义字段面板&#xff1f;下面本篇文章给大家介绍一下WordPress添加自定义字段面板的方法&#xff0c;希望对大家有所帮助&#xff01; 我们在WordPress中编写文章的时候&#xff0c;经常会用到一些自定义字段&#xff0c;如网页描…...

大数据框架之Hive:第6章 查询

第6章 查询 6.1 基础语法 1&#xff09;官网地址 https://cwiki.apache.org/confluence/display/Hive/LanguageManualSelect 2&#xff09;查询语句语法&#xff1a; SELECT [ALL | DISTINCT] select_expr, select_expr, ...FROM table_reference -- 从什么表查[WHE…...

CentOS 8搭建EMQX集群

概览 EMQX (opens new window)是一款大规模可弹性伸缩的云原生分布式物联网 MQTT (opens new window)消息服务器。 EMQ X 设计目标是实现高可靠&#xff0c;并支持承载海量物联网终端的MQTT连接&#xff0c;支持在海量物联网设备间低延时消息路由: 1. 稳定承载大规模的 MQTT 客…...

进程地址空间(比特课总结)

一、进程地址空间 1. 环境变量 1 &#xff09;⽤户级环境变量与系统级环境变量 全局属性&#xff1a;环境变量具有全局属性&#xff0c;会被⼦进程继承。例如当bash启动⼦进程时&#xff0c;环 境变量会⾃动传递给⼦进程。 本地变量限制&#xff1a;本地变量只在当前进程(ba…...

Docker 运行 Kafka 带 SASL 认证教程

Docker 运行 Kafka 带 SASL 认证教程 Docker 运行 Kafka 带 SASL 认证教程一、说明二、环境准备三、编写 Docker Compose 和 jaas文件docker-compose.yml代码说明&#xff1a;server_jaas.conf 四、启动服务五、验证服务六、连接kafka服务七、总结 Docker 运行 Kafka 带 SASL 认…...

visual studio 2022更改主题为深色

visual studio 2022更改主题为深色 点击visual studio 上方的 工具-> 选项 在选项窗口中&#xff0c;选择 环境 -> 常规 &#xff0c;将其中的颜色主题改成深色 点击确定&#xff0c;更改完成...

Axios请求超时重发机制

Axios 超时重新请求实现方案 在 Axios 中实现超时重新请求可以通过以下几种方式&#xff1a; 1. 使用拦截器实现自动重试 import axios from axios;// 创建axios实例 const instance axios.create();// 设置超时时间 instance.defaults.timeout 5000;// 最大重试次数 cons…...

SpringCloudGateway 自定义局部过滤器

场景&#xff1a; 将所有请求转化为同一路径请求&#xff08;方便穿网配置&#xff09;在请求头内标识原来路径&#xff0c;然后在将请求分发给不同服务 AllToOneGatewayFilterFactory import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; impor…...

蓝桥杯3498 01串的熵

问题描述 对于一个长度为 23333333的 01 串, 如果其信息熵为 11625907.5798&#xff0c; 且 0 出现次数比 1 少, 那么这个 01 串中 0 出现了多少次? #include<iostream> #include<cmath> using namespace std;int n 23333333;int main() {//枚举 0 出现的次数//因…...

【C++特殊工具与技术】优化内存分配(一):C++中的内存分配

目录 一、C 内存的基本概念​ 1.1 内存的物理与逻辑结构​ 1.2 C 程序的内存区域划分​ 二、栈内存分配​ 2.1 栈内存的特点​ 2.2 栈内存分配示例​ 三、堆内存分配​ 3.1 new和delete操作符​ 4.2 内存泄漏与悬空指针问题​ 4.3 new和delete的重载​ 四、智能指针…...

MacOS下Homebrew国内镜像加速指南(2025最新国内镜像加速)

macos brew国内镜像加速方法 brew install 加速formula.jws.json下载慢加速 &#x1f37a; 最新版brew安装慢到怀疑人生&#xff1f;别怕&#xff0c;教你轻松起飞&#xff01; 最近Homebrew更新至最新版&#xff0c;每次执行 brew 命令时都会自动从官方地址 https://formulae.…...

Ubuntu Cursor升级成v1.0

0. 当前版本低 使用当前 Cursor v0.50时 GitHub Copilot Chat 打不开&#xff0c;快捷键也不好用&#xff0c;当看到 Cursor 升级后&#xff0c;还是蛮高兴的 1. 下载 Cursor 下载地址&#xff1a;https://www.cursor.com/cn/downloads 点击下载 Linux (x64) &#xff0c;…...

在树莓派上添加音频输入设备的几种方法

在树莓派上添加音频输入设备可以通过以下步骤完成&#xff0c;具体方法取决于设备类型&#xff08;如USB麦克风、3.5mm接口麦克风或HDMI音频输入&#xff09;。以下是详细指南&#xff1a; 1. 连接音频输入设备 USB麦克风/声卡&#xff1a;直接插入树莓派的USB接口。3.5mm麦克…...