一、树莓派使用CSI摄像头
1、硬件连接:
找到 CSI 接口(树莓派3B、3B+、4B的CSI接口在HDMI接口和音频口中间),拉起 CSI 接口挡板,插入摄像头排线,注意插入方向
2、连接摄像头并检查当前摄像头是否可用:
(1)查看是否存在vchiq
设备节点:
ls /dev
如果没有,则可能是内核或者设备硬件存在问题,可尝试重刷系统或更换硬件
(2)查看当前摄像头是否可用:
vcgencmd get_camera
如果detected=0,说明摄像头模块没接好,重新排查下硬件。detected=1则说明CSI摄像头接入正常。supported=1说明摄像头已经使能,摄像头已经可以使用。supported=1则说明CSI摄像头没有使能,需要使能下摄像头模块
3、使能摄像头:
sudo raspi-config
重启树莓派
4、应用(可通过简单指令控制摄像头):
raspistill -o image.jpg #拍照,图片命名为:image ,保存为 .jpg 格式
raspistill --help #更多指令查询
二、利用mjpg-streamer通过网络使用摄像头
1、更新软件:
sudo apt-get update #更新软件列表
sudo apt-get upgrade #更新软件
2、安装依赖和相关工具:
sudo apt-get install subversion
sudo apt-get install libjpeg8-dev #JPEG支持库
sudo apt-get install imagemagick
sudo apt-get install libv4l-dev #4l是小写"L"
sudo apt-get install cmake #下载编译工具
3、克隆源码并编译安装:
(1)克隆源码:
sudo apt-get install git #下载 git 工具,如有可以忽略
git clone https://github.com/jacksonliam/mjpg-streamer.git
cd mjpg-streamer/mjpg-streamer-experimental #进入目录
#或者
wget https://github.com/Five-great/mjpg-streamer/archive/master.zip
unzip master.zip #解压缩
cd mjpg-streamer-master/mjpg-streamer-experimental #进入目录
(2)进入mjpg-streamer/mjpg-streamer-experimental
或mjpg-streamer-master/mjpg-streamer-experimental
目录后编译和安装:
make #编译
sudo make install #安装
4、确认树莓派的摄像头节点:
如果存在video*(*为数字,如video0)的设备节点,说明可以走uvc通道,直接运行start.sh脚本即可
如果不存在video* (*为数字,如video0)的设备节点,则需要修改start.sh脚步,修改在mjpg-streamer/mjpg-streamer-experimental
或mjpg-streamer-master/mjpg-streamer-experimental
目录下的启动脚本start.sh
,将input_uvc.so
修改为input_raspicam.so
:
vi start.sh
下方句段修改为上方句段或加#注释下方句段添加上方句段:
./mjpg_streamer -i "./input_raspicam.so" -o "./output_http.so -w ./www"
#./mjpg_streamer -i "./input_uvc.so" -o "./output_http.so -w ./www"
如图:
注意: 使用树莓派摄像头用input_raspicam.so
,input_uvc.so
是USB插口摄像头使用
5、开启摄像头:
(1)通过脚本启动,在mjpg-streamer/mjpg-streamer-experimental
或mjpg-streamer-master/mjpg-streamer-experimental
目录下:
./start.sh
(2)指令启动,绝对路径启动:
/usr/local/bin/mjpg_streamer -i "/usr/local/lib/mjpg-streamer/input_uvc.so -n -f 30 -r 1280x720" -o "/usr/local/lib/mjpg-streamer/output_http.so -p 8080 -w /usr/local/share/mjpg-streamer/www"
6、浏览器查看视频流:
如图端口号为 8080:
浏览器输入http://IP地址:端口号
:
http://192.168.43.97:8080 //我的树莓派此时的 ip地址为 192.168.43.97
此时,在树莓派上,打开其他终端,可通过wget命令对视频进行截图:
wget http://192.168.43.97:8080/?action=snapshot -O ./image1.jpg
#其中192.168.41.97为实际的 ip,image1.jpg为要保存到的图片名称
7、应用:
(1)创建并添加开机启动的配置文件,实现开机自动启动视频监控
① 在工作目录创建要使用的开机脚本:
cd
vi test.sh
内容:
#!/bin/bash
cd /home/pi/mjpg-streamer/mjpg-streamer-experimental/
./start.sh
或
#!/bin/bash
cd /home/pi/mjpg-streamer-master/mjpg-streamer-experimental/
./start.sh
根据实际文件名使用相应脚本👆
② 添加配置文件:
cd /etc/xdg/autostart/
sudo cp xcompmgr.desktop mjpg.desktop
sudo vim.tiny mjpg.desktop
[Desktop Entry]
Type=Application
Name=mjpeg-http
Comment=Start mjpeg-http compositor
NoDisplay=true
Exec=/home/pi/test.sh
(2)利用VLC串流实时输出网络视频流