flask直播流 截图

devtools/2024/9/25 9:36:58/
python">class VideoCapture:def __init__(self, name):self.cap = cv2.VideoCapture(name)self.q = queue.Queue()t = threading.Thread(target=self._reader)t.daemon = Truet.start()# 帧可用时立即读取帧,只保留最新的帧def _reader(self):while True:ret, frame = self.cap.read()if not ret:breakif not self.q.empty():try:self.q.get_nowait()  # 删除上一个(未处理的)帧except queue.Empty:passself.q.put(frame)def read(self):return self.q.get()
python">@app.route('/ZL00132/front',methods=["GET"])
def index():# vehicle = request.args.get('vehicle')# direction = request.args.get('direction')# 直播流URL# stream_url = 'http://127.0.0.1:8096/z/live/'+vehicle+'/'+direction+'.flv'# 尝试打开直播流# 检查直播流是否成功打开# if not cap.isOpened():#     print("Error: Could not open video stream.")#     exit()# frame_count = 0  # 用于给截图命名的计数器stimestamp = time.time()while True:# 读取一帧frame = cap.read()now = datetime.datetime.now()date_str = now.strftime("%Y-%m-%d-%H:%M:%S")filename = f'/home/zhanyuan/static/{date_str}.jpg'cv2.imwrite(filename, frame)date_str1 = now.strftime("%Y-%m-%d-%H-%M-%S")etimestamp = time.time()print(f"文件 :{filename} 时间:{date_str1} 时间差: {etimestamp - stimestamp}")if etimestamp - stimestamp > 0.01:breakurl = f"http://127.0.0.1:10800/static/{date_str}.jpg"etimestamp1 = time.time()print(f"时间差: {etimestamp1 - stimestamp}")return f"{url}"

http://www.ppmy.cn/devtools/94533.html

相关文章

将A服务器上指定文件夹中的文件,批量同步到B服务器上

需求:最近有一个需求,需要定期将A服务器上的PDF文件,同步到B服务器上,于是便写个脚本记录一下! 下面是使用Python3脚本实现的方法 import os import paramikodef copy_pdf_files(source_ip, source_user, source_pas…

Unity射击游戏开发教程:(31)制造一定追踪行为的敌人

在本文中,我们将介绍如何在两种敌人行为之间切换。本文是前两篇文章的延续,分别介绍了敌人躲避玩家射击以及敌人不断旋转并向玩家射击的情况。我只是介绍如何在这两种行为之间进行转换。 这种新的敌人行为的目标: 当不开火时,敌人可以躲避玩家的射击。射击时,敌人无法躲避…

【LeetCode每日一题】——623.在二叉树中增加一行

文章目录 一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目示例】六【题目提示】七【解题思路】八【时间频度】九【代码实现】十【提交结果】 一【题目类别】 广度优先遍历 二【题目难度】 中等 三【题目编号】 623.在二叉树中增加一行 四【题目描述】…

【Qt】QPluginLoader 类学习

文章目录 一、简介二、常用方法2.1 构造函数2.2 动态加载方法——load()2.3 检查是否加载成功——isLoaded()2.4 访问插件中的根组件——instance()2.5 卸载插件——unload() 一、简介 QPluginLoader 类在运行时加载插件。 QPluginLoader 提供对Qt插件的访问。Qt插件存储在共享…

计算机网络中点到点与端到端协议的区别

计算机网络中的点到点协议和端到端协议的主要区别在于它们的服务层次、‌通信方式、‌可靠性和资源利用方面。‌ 服务层次和通信方式:‌点到点通信主要发生在物理层、‌数据链路层和网络层,‌它直接连接的两个节点之间的通信,‌不涉及程序或…

CentOS7下载与安装 即配置网卡

CentOS7是基于RHEL的企业级Linux操作系统,引入了Systemd、XFS文件系统和Docker支持。它提供了新的软件包、工具和性能调优选项,同时加强了系统安全和稳定性。总的来说,CentOS7是一个稳定、安全、长期支持的操作系统,适用于企业和个…

【Unity打包Android】Gradle报错,Deprecated Gradle features were used in this build ···

Unity 2020.3.41f1c1 打包Android 加入Google Admob广告SDK后,打包Android失败,具体报错如下: 报错1: Starting a Gradle Daemon, 2 stopped Daemons could not be reused, use --status for details> Configure project :l…

微信小程序预览PDF、H5预览PDF、网页预览PDF,并添加专属文字水印

下载PDF.js 点击PDF.js下载地址 引入预览PDF 文件 // const url new URL("./1.pdf", import.meta.url).href // 在本地项目获取pdf // const url "https://xxxx/05d833041f.pdf" // 在线上链接获取pdf const url query.get(url) // 在地址栏获取pdf c…