【树莓派】通过HTTP服务器实时传输视频流

news2024/9/22 16:05:28

  • 前言
  • 一、树莓派端的代码
  • 二、网页端网址展示
  • 总结


前言

树莓派3B+的通过HTTP服务器实时传输MJPEG视频流


一、树莓派端的代码

注意在先安装完库

pip install Flask picamera

Flask 是一个用 Python 编写的轻量级 web 框架。它主要用于构建 web 应用和 web 服务。Flask 提供了许多功能来简化 web 应用的开发,包括:

  • 路由(Routing):Flask 允许你定义 URL 路由,将 HTTP 请求映射到相应的处理函数上。

  • 模板渲染(Templating):Flask 使用 Jinja2 模板引擎来生成 HTML 页面,允许你将 Python 数据嵌入到 HTML 模板中,从而动态生成页面内容。

  • 请求和响应处理:Flask 提供了简洁的 API 来处理 HTTP 请求和生成响应,包括表单数据、JSON 数据等。

  • 会话管理(Session Management):Flask 允许你管理用户会话,存储用户的状态信息。

  • 扩展支持(Extensions):Flask 具有许多第三方扩展,可以增加数据库支持、表单验证、文件上传等功能。

Flask 的核心理念是保持简单和灵活,它只提供了最基本的功能,开发者可以根据需要添加更多功能。相较于其他较为全面的框架如 Django,Flask 更加轻量,适合构建小型或中型的 web 应用,并且开发者可以自由选择和集成所需的工具和库。

from flask import Flask, Response
import picamera
import time

# 创建 Flask 应用程序实例
app = Flask(__name__)

def generate_frames():
	# 使用 PiCamera 创建摄像头实例
    with picamera.PiCamera() as camera:
        camera.resolution = (640, 480)  # 设置分辨率
        camera.framerate = 24          # 设置帧率
        time.sleep(2)  # 给相机时间来调整曝光和白平衡
        while True:
            # 生成 MJPEG 视频流
            with camera.capture_continuous(format='bgr', use_video_port=True) as stream:
                for frame in stream:
                    # 注意:stream 生成的是 numpy 数组格式的图像
                    # 通过 MJPEG 格式输出
                    yield (b'--frame\r\n'
                           b'Content-Type: image/jpeg\r\n\r\n' + frame + b'\r\n')
                    time.sleep(1 / 24)  # 控制帧率

@app.route('/video_feed')
def video_feed():
   # 使用 Response 对象将生成的帧流作为响应返回
    return Response(generate_frames(),
                    mimetype='multipart/x-mixed-replace; boundary=frame')

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=8080, debug=True)

这里需要注意一点python的语法点----就是那个奇怪的@

  • 装饰器 相关视频连接【Python三分钟】什么是装饰器?
    虽然看了 还是半知半解,但是这个视频是我找的的最简单的。

可以使用指令运行程序

二、网页端网址展示

你可以在浏览器中访问 http://<树莓派的IP地址>:5000/video_feed 来查看视频流。
注意树莓派的IP不需要用括号!!!!

Flask 默认端口设置为 5000 是因为这是 Flask 的默认配置

注意散热QAQ,因为忙于展示,就不散热啦。中秋快乐~~

在这里插入图片描述
运行结果展示,分辨率还行
在这里插入图片描述


总结

祝大家中秋快乐~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2155425.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【无标题】HG6201M路由的超级管理密码获取

这里写自定义目录标题 1、开启telnet http://192.168.1.1/cgi-bin/telnetenable.cgi?telnetenable1&keyXXXXX 注意&#xff1a;此处的XXXXX为路由背面标签的MAC地址&#xff0c;去掉“-”&#xff0c;且大写。 成功后会显示&#xff1a;telnet开启 2、登录telnet 此处采…

C++异常(基本知识)、C++模板类(基本知识)

什么是异常和异常处理&#xff1f; 异常就是程序运行过程中出现的问题。“异常”问题并不经常出现&#xff08;按道理来说我们写好的正常的程序是不应该频繁出现异常的&#xff09;&#xff1b;异常处理技术使得我们可以写程序解决出现的异常问题。很多情况下&#xff0c;处理异…

有女朋友后,怎么养成贤内助?为自己找个好伴侣,为孩子找个好妈妈,为母亲找个好儿媳

有女朋友后&#xff0c;怎么养成贤内助&#xff1f;为自己找个好伴侣&#xff0c;为孩子找个好妈妈&#xff0c;为母亲找个好儿媳 时代背景女生有点作怎么办&#xff1f;大商家族的爱情观 时代背景 一块钱的东西&#xff0c;赋予俩块钱的意义&#xff0c;三块钱卖出去。 用商…

【垃圾识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目选题+TensorFlow+图像识别

一、介绍 垃圾识别分类系统。本系统采用Python作为主要编程语言&#xff0c;通过收集了5种常见的垃圾数据集&#xff08;‘塑料’, ‘玻璃’, ‘纸张’, ‘纸板’, ‘金属’&#xff09;&#xff0c;然后基于TensorFlow搭建卷积神经网络算法模型&#xff0c;通过对图像数据集进…

vscode -ssh免密登陆

1.生成ssh使用的公钥/密钥对 请从客户端上的 PowerShell 或 cmd 提示符运行以下命令&#xff0c;具体使用方法详细见&#xff1a;微软官方 ssh-keygen -t rsa 一路回车&#xff0c;秘钥会生成到C:\Users\name\.ssh 2.将私钥配置到vscode的ssh中&#xff1a; 3.将本地公钥配置…

【计算机网络篇】数据链路层 功能|组帧|流量控制与可靠传输机制

&#x1f9f8;安清h&#xff1a;个人主页 &#x1f3a5;个人专栏&#xff1a;【计算机网络】 &#x1f6a6;作者简介&#xff1a;一个有趣爱睡觉的intp&#xff0c;期待和更多人分享自己所学知识的真诚大学生。 系列文章目录 【计算机网络篇】计算机网络概述 【计算机网络篇…

最新免费域名申请

在互联网时代&#xff0c;每个码农都想拥有一个免费的域名&#xff0c;方便开发调试&#xff0c;也可用作自己网站等。如何申请一个免费的域名&#xff0c;时间上先错过了freenom&#xff0c;后面又错过nic.eu.org申请(现在申请时间长且很难通过)&#xff0c;直到最近又有免费的…

[杂谈-黑神话:悟空] 中国3A游戏的崛起之路:挑战与机遇并存

[杂谈-黑神话:悟空] 中国3A游戏的崛起之路&#xff1a;挑战与机遇并存 《黑神话&#xff1a;悟空》的出现&#xff0c;让我们看到了中国3A游戏的希望和未来。对于中国游戏产业的从业者和爱好者来说&#xff0c;这是一个值得关注和期待的领域。 在游戏产业蓬勃发展的今天&#…

QT打包--windeployqt执行,运行程序提示缺少库

执行windeployqt.exe D:\Data\code\QtCode\Release\RegularExp\RegularExp.exe 生成相应的dll动态库 执行RegularExp.exe&#xff0c;出错&#xff1a;“由于找不到libgcc_s_seh-1.dll…” 找到安装的qt对应的libgcc_s_seh-1.dll拷贝到RegularExp.exe同级目录下&#xff0c; 执…

力扣题解2374

大家好&#xff0c;欢迎来到无限大的频道。 今日继续给大家带来力扣题解。 题目描述&#xff08;中等&#xff09;&#xff1a; 边积分最高的节点 给你一个有向图&#xff0c;图中有 n 个节点&#xff0c;节点编号从 0 到 n - 1 &#xff0c;其中每个节点都 恰有一条 出边。…

[大语言模型-论文精读] 以《黑神话:悟空》为研究案例探讨VLMs能否玩动作角色扮演游戏?

1. 论文简介 论文《Can VLMs Play Action Role-Playing Games? Take Black Myth Wukong as a Study Case》是阿里巴巴集团的Peng Chen、Pi Bu、Jun Song和Yuan Gao&#xff0c;在2024.09.19提交到arXiv上的研究论文。 论文: https://arxiv.org/abs/2409.12889代码和数据: h…

2024年9月19日

1.四个属性: 连接数据库 四个属性 操作数据库重要的对象 操作sql语句的对象 预编译 结果集 对象的属性和数据表的子弹 映射准备这条sql语句 文件:核心配置文件 2.创建 build success 做工具类 如果客户名不为空,否则客户名为空

Python中的IPython:交互式的Python shell

你是否曾经想要一个能让你与Python代码实时交互的环境&#xff1f;一个可以即时执行代码、查看结果&#xff0c;甚至可以在运行过程中修改变量的工具&#xff1f;如果是&#xff0c;那么IPython就是为你量身打造的利器&#xff01;在这篇文章中&#xff0c;我们将深入探讨IPyth…

CDVAE项目环境配置

CDVAE环境配置 1. 系统环境2. 设置环境变量3. 配置环境变量4. 安装CDVAE虚拟环境5. 资料下载 1. 系统环境 系统环境&#xff1a;Ubuntu22.04GeForce RTX 3090cuda12.6&#xff08;cuda版本11.1以上均适用&#xff09;。 2. 设置环境变量 先按照CDVAE中描述的设置环境变量。 …

金刚石切削工具学习笔记分享

CVD钻石-合成单晶钻石之一 金刚石具有极高的硬度和耐磨性、较低的摩擦系数、较高的弹性模量、较高的热导率、较低的热膨胀系数、与有色金属的亲和力较小等优点&#xff0c;是目前最硬的工具材料&#xff0c;主要分为单晶金刚石和聚晶金刚石两大类。单晶金刚石又分为天然单晶金…

优化内存工具 | RAM Saver Pro v24.9 便携版

RAM Saver是一款专业的RAM优化工具&#xff0c;旨在提高计算机的性能和运行速度。它通过多种优化技术&#xff0c;如内存碎片整理、CPU和主板缓存效率提升、恢复内存等&#xff0c;为应用程序提供更多的内存资源&#xff0c;从而使系统运行更加流畅。适合所有需要优化内存使用和…

2、StarGAN V2

2、StarGAN V2 StarGAN 论文链接&#xff1a;StarGAN StarGAN V2 论文链接&#xff1a;StarGAN V2 在介绍StarGAN V2之前&#xff0c;我们先对StarGAN有一定的了解&#xff0c;StarGAN V2只是在StarGAN的基础上做出了改进&#xff0c;基本的架构是没有变的&#xff0c;只是将…

探索AI编程新境界:aider库揭秘

文章目录 **探索AI编程新境界&#xff1a;aider库揭秘**背景&#xff1a;为何选择aider&#xff1f;简介&#xff1a;aider是什么&#xff1f;安装指南&#xff1a;如何安装aider&#xff1f;功能演示&#xff1a;aider的简单用法实战应用&#xff1a;aider在不同场景下的使用常…

【RabbitMQ】应用问题

RabbitMQ 应用问题 1. 幂等性保障1.1 幂等性介绍1.2 解决⽅案全局唯⼀ID业务逻辑判断 2. 顺序性保障2.1 顺序性保障介绍2.2 顺序性保障⽅案 3. 消息积压问题3.1 原因分析3.2 解决⽅案 1. 幂等性保障 1.1 幂等性介绍 幂等性是数学和计算机科学中某些运算的性质, 它们可以被多次…

华为静态路由(route-static)

静态路由的组成 在华为路由器中&#xff0c;使用ip route-static命令配置静态路由。 一条静态路由主要包含以下要素&#xff1a; 目的地址&#xff1a;数据包要到达的目标IP地址 子网掩码&#xff1a;用于指定目的地址的网络部分和主机部分 下一跳地址&#xff08;可选&#…