两个 USB 摄像头(OV4689)接入树莓派 3B+,并通过 WiFi 实时上传到服务器,在网页上查看实时视频流。
项目准备阶段(硬件 + 系统)
📦 一、现在有的设备:
-
✅ 树莓派 3B+
-
✅ 两个 OV4689 USB 摄像头模组
-
✅ MicroSD 卡(建议 32GB、Class 10 以上)
-
✅ 电源(5V 2.5A 或更大)
-
✅ 键盘鼠标、显示器、HDMI 线(或 SSH 远程连)
-
✅ Wi-Fi 网络环境
📦 二、安装树莓派系统(Raspberry Pi OS)
1️⃣ 下载官方工具:
从官网下载 Raspberry Pi Imager(推荐): 👉 https://www.raspberrypi.com/software/
2️⃣ 写入系统到 TF 卡:
-
启动 Imager
-
选择系统:Raspberry Pi OS (32-bit)(或 "Lite" 版本,无桌面)
-
设置 SSH、WiFi(点击小齿轮设置)
-
写入 MicroSD 卡(格式化后写入)
3️⃣ 启动树莓派
-
把卡插入树莓派,接好电源
-
等待启动(首次可能要 1 分钟)
-
进行树莓派配置,配置方法见参考:
树莓派(Raspberry pi) 使用Pi Imager安装烧录操作系统_raspberry pi imager-CSDN博客
📦 二、安装树莓派系统(Raspberry Pi OS)
🔧 1. 更新系统
打开终端(黑底窗口)或者按下 Ctrl + Alt + T
,输入以下命令:
sudo apt update
sudo apt full-upgrade -y
sudo reboot
⚠️ 重启后系统会更稳定,也能识别更多设备。
🔌 2. 插上 USB 摄像头
-
把两个 OV4689 USB 摄像头接入树莓派的 USB 接口
-
然后再次打开终端,输入命令:
ls /dev/video*
应该看到类似:
/dev/video0
/dev/video1
📷 3. 检查摄像头是否被识别(重要)、
v4l2-ctl --list-devices
应该能看到每个摄像头的名字(可能是 HD USB Camera
、UVC Camera
等)
如果看到两个摄像头都被列出,说明树莓派成功识别它们!
✅ 第二步:安装 MJPEG-Streamer(视频流服务器)
🧰 1. 安装 MJPEG-Streamer
在终端中输入以下命令:
按照以下步骤操作,手动编译并安装 MJPEG-Streamer。
1️⃣ 安装编译工具和依赖库
首先,安装编译过程中需要的工具和依赖库:
sudo apt update
sudo apt install build-essential cmake git libjpeg9-dev libv4l-dev
2️⃣ 下载并编译 MJPEG-Streamer
-
在树莓派的浏览器中打开 mjpg-streamer GitHub 仓库。
-
点击页面右上角的绿色按钮 Code,然后选择 Download ZIP。
-
下载完 ZIP 文件后,在树莓派上使用以下命令解压:
unzip mjpg-streamer-master.zip(放在/home/pi)
cd mjpg-streamer-master
make
sudo make install
sudo apt install screen
3️⃣ 启动 MJPEG-Streamer
安装完成后,你就可以开始运行 MJPEG-Streamer 了!使用以下命令启动视频流:
第一个摄像头(端口 8080):
screen
mjpg_streamer -i "/usr/local/lib/mjpg-streamer/input_uvc.so -d /dev/video0 -r 640x480 -f 15" -o "/usr/local/lib/mjpg-streamer/output_http.so -p 8080 -w /usr/local/lib/mjpg-streamer/www"
然后ctrlA+D
第二个摄像头(端口 8081):
screen
mjpg_streamer -i "/usr/local/lib/mjpg-streamer/input_uvc.so -d /dev/video2 -r 640x480 -f 15" -o "/usr/local/lib/mjpg-streamer/output_http.so -p 8081 -w /usr/local/lib/mjpg-streamer/www"
然后ctrlA+D
-
第二个摄像头流会监听端口
8081
。
🖥️ 3. 访问视频流
-
在浏览器中输入
http://<树莓派的IP地址>:8080
,你应该可以看到第一个摄像头的视频流。 -
输入
http://<树莓派的IP地址>:8081
,第二个摄像头的视频流应该也可以打开。
注:若网页没内容,可能是手动安装时/usr/local/lib/mjpg-streamer里没有www文件,要自己复制一下。
如果没有权限,使用命令sudo chown -R pi:pi /usr/local/lib/mjpg-streamer
第三步:创建网页显示两个视频流
现在,我们将这两个流嵌入到一个网页中:
-
在树莓派上创建一个 HTML 文件:
sudo nano /var/www/html/cameras.html
-
在文件中粘贴以下内容:
双摄像头视频流 摄像头1
摄像头2
-
保存并退出
nano
编辑器(按Ctrl + X
,然后Y
,最后按Enter
)。 -
在浏览器中访问
http://<树莓派的IP地址>/cameras.html
,你就能看到两个摄像头的视频流!
🔄 最后步骤:让 MJPEG-Streamer 自动启动
为了让 MJPEG-Streamer 在每次树莓派开机时自动运行,你可以将启动命令添加到系统启动项。
-
编辑
rc.local
文件:
sudo nano /etc/rc.local
-
在
exit 0
行的前面添加启动命令:
mjpg_streamer -i "input_uvc.so -d /dev/video0 -n -f 10 -r 1280x720" -o "output_http.so -p 8080 -w www" & mjpg_streamer -i "input_uvc.so -d /dev/video2 -n -f 10 -r 1280x720" -o "output_http.so -p 8082 -w www"
-
保存并退出编辑器。
-
重启树莓派,确保摄像头流启动正常:
🖥️ 你现在应该能:
-
通过浏览器实时查看两个摄像头的视频流
-
配置好系统开机自动启动