参考
相关知识
什么是 MJPEG?
MJPEG Streaming Server(Motion JPEG Streaming Server)是一种通过网络传输Motion JPEG视频流的服务器。让我们来详细了解一下这个概念:
-
Motion JPEG (MJPEG): 这是一种视频编码技术,它将一系列JPEG格式的图像连续发送,形成一个视频流。与常见的视频压缩标准如H.264或MPEG-4不同,MJPEG不使用帧间压缩,而是对每一帧进行单独的JPEG压缩。
-
Streaming: 流式传输是指数据在发送过程中被连续接收和处理的方式,而不是等待整个文件下载完成后再播放或显示。
-
Server: 在计算机网络中,服务器是指提供服务或资源给其他设备(客户端)的计算机系统。
综上所述,MJPEG Streaming Server 是一种专门用于通过网络传输Motion JPEG视频流的服务器。这种类型的服务器通常用于安全监控系统、网络摄像头和其他需要实时视频流的应用场景。
由于MJPEG不使用帧间压缩,因此它的压缩效率通常低于H.264等现代视频编码标准,但它具有较低的延迟和实现上的简单性,这使得它在一些特定应用中仍然有用武之地,尤其是在网络带宽有限或者需要低延迟视频传输的情况下。
为什么采用 ESP32 CAM
-
集成度高:
- 集成了ESP32芯片,支持双核处理器,主频高达240MHz。
- 集成了摄像头模块,例如OV2640,支持高达1600x1200分辨率的图像采集。
- 内置WiFi和蓝牙模块,方便进行无线通信。
- 支持SD卡插槽,可以用于存储图像或视频数据。
-
小巧便携:
- ESP32-CAM尺寸小巧,便于携带和安装在各种环境中。
-
强大的处理能力:
- ESP32芯片具有双核处理器,能够快速处理复杂的任务。
-
低功耗设计:
- 适合用于电池供电的应用场景,可以在待机模式下保持较低的功耗。
-
丰富的外设接口:
- 支持SPI、I2C、UART等多种接口,可以方便地连接各种传感器和外设。
-
图像传输稳定:
- 通过WiFi传输视频时,稳定性较好,帧丢失的情况相对较少。
-
价格低廉:
- 相对于其他具有类似功能的模块来说,ESP32-CAM的价格较为亲民。
在tb上,二三十块钱就可以买到ESP32CAM来玩耍
ESP32CAM MJPEG SEVER 启动概要
- 尽量选择安信可的ESP32CAM,其他品牌可能会遇到一些问题
- Arduino 中设置 board 如下:
- 修改
WiFi.begin("your wifi name", "wifi password");
即可烧录 - 烧录完成后打开串口监视器,即可查看mjpeg视频流的url(
url:port/mjpeg/1
),浏览器可以访问,效果如图:
修改url后缀为/jpg
,可以获得当时的单张摄像头画面图片 - 至此,一个 ESP32 MJPEG SERVER 就启动了
其他 IDEA
- 可以在局域网下用其他设备,如电脑,访问 mjpeg 视频流信息,做一些算法处理,例如跑一个人脸识别,再把识别信息传回到 esp32 上
- 可以改成用 websocket 发送图像数据到你的公网服务器上,然后在公网服务器上起一个服务接受信息并显示,这样就可以在局域网外查看画面了,可以用于监控等用途