树莓派Raspberry Pi 4b+实现摄像头拍照和实时监控

it2026-04-02  7

树莓派Raspberry Pi 4b+实现摄像头拍照和实时监控

硬件设备摄像头测试 方案A motion效果展示 方案B mjpg-streamer安装需求包和mjpg-streamer编译mjpg-streamer开启实时摄像头显示效果后台运行ubuntu 20.04 系统下运行端口8080查看实时画面 评价

硬件设备

1、树莓派4b+ 2、树莓派自带摄像头模块(CSI接口)(分辨率2592*1944)

摄像头测试

sudo vcgencmd get_camera #输出 supported=1 detected=1 说明发现摄像头设备一个支持一个 # raspi自带的拍照和视频测试 sudo raspistill -o image.jpg sudo raspivid -o video.h246 -t 1000

方案A motion

1、安装 motion包

sudo apt-get install motion

2、修改etc/default/motion 文件让motion成为守护进程,后台运行

sudo nano /etc/default/motion

改成

start_motion_daemon=yes

3、修改/etc/motion/motion.conf配置文件

sudo nano /etc/motion/motion.conf

rotate 180 #画面旋转 0 90 180 270 度 width 1920 # 宽度 height 1080 # 高度 framerate 60 #画面帧率 2-100 stream_port 8081 #视频流端口 stream_maxrate 70 #视频流速率 >1 stream_localhost off #仅限于本地端口访问 webcontrol_port 8080 #网络TCP/IP端口 webcontrol_localhost off #限制网络TCP/IP端口控制 target_dir /var/lib/motion # 图像和视频的存储位置 movie_max_time 60 # 视频的录制时长,60s movie_codec mkv # 视频格式 mkv movie_filename %t-%v-%Y%m%d%H%M%S #视频命名 其他参数见说明

4、重启树莓派后开启motion进程

sudo reboot #等待数分钟重新连接树莓派 sudo motion

5、查看和关闭实时监控 在树莓派连接的同一内网(WiFi)下,电脑浏览器或者手机端输入 树莓派IP:8081 比如 http://192.168.1.103:8081/ 即可访问 关闭motio后台进程

# top 可以查看motion的进程ID, kill -9 PID #或者 sudo killall -TERM motion #或者 service motion stop

效果展示

方案B mjpg-streamer

Github地址

https://github.com/jacksonliam/mjpg-streamer

mjpg-stream

安装需求包和mjpg-streamer

sudo apt-get install cmake libjpeg8-dev # gcc g++编译器 Raspberry Pi的Debian系统自带 # 更新系统版本 sudo apt-get update # 安装git 来获取mjpg-streamer包 sudo apt-get install git sudo git clone https://github.com/jacksonliam/mjpg-streamer.git

编译mjpg-streamer

cd mjpg-streamer/mjpg-streamer-experimental sudo make all sudo make install

开启实时摄像头

sudo mjpg_streamer -o "output_http.so -w ./www" -i "input_raspicam.so -x 1920 -y 1080 -fps 30 -ex night -rot 180 -p 8080" # -p指定端口 -fps 帧率 -rot 旋转 -x/y 分辨率

更多设置参考Github链接input_raspicam 同样在电脑端浏览器或手机端输入:

http://树莓派IP:8080/?action=stream

显示效果

后台运行

直接加 &,会显示出进程PID,ctr+c关闭就可以后台一直运行

sudo mjpg_streamer -o "output_http.so -w ./www" -i "input_raspicam.so -x 1920 -y 1080 -fps 30 -ex night -rot 180 -p 8080" &

关闭的话,top找出mjpg-streamer的进程PID,sudo kill -9 PID就好了。

ubuntu 20.04 系统下运行

如果树莓派装的是ubuntu 系统而不是raspbian系统,mjpg-streamer编译的时候是不会编译得到 input_raspicam.so 的动态链接库,这时候可以采用ubuntu系统下的摄像头开启方法(要确认摄像头正常工作)。

cd mjpg-streamer/mjpg-streamer-experimental sudo ./start.sh # 简单粗暴 默认分辨率640*480

或者采用通用的 input_uvc.so This plugin provides JPEG data from V4L/V4L2 compatible webcams.

sudo mjpg_streamer -o "output_http.so -w ./www -p 8080" -i "input_uvc.so -r 1920x1080 -f 60 -rot 0 -ex 100 -br 49 -sa 50 "

端口8080查看实时画面

http://树莓派IP:8080/?action=stream 或者打开地址,里面可选控制插件 http://树莓派IP:8080

评价

同样1080p 30fps的情况下,mjpg-stream的实时视频比motion流畅许多。。。

最新回复(0)