想使用树莓派实现CSI摄像头和USB摄像头两种方式的监控。网上搜了一些例子,但或多或少存在一点问题,可能和树莓派版本有一定关系。
基本步骤大致相同:
第一步,下载源码
wget https://github.com/jacksonliam/mjpg-streamer/archive/master.zip
第二步,安装相关依赖包,解压
sudo apt-get install libjpeg8-dev
sudo apt-get install cmake
unzip master.zip
第三步,修改input_raspicam.c。可以通过后面的命令实现修改fps和分辨率等。
cd mjpg-streamer-master/mjpg-streamer-experimental/plugins/input_raspicam
vim input_raspicam.c,重点修改以下几个参数即可。
static int fps = 90;
static int width = 640;
static int height = 480;
static int quality = 85;
第四步,编译
cd mjpg-streamer-master/mjpg-streamer-experimental
make clean all
第五步,启动摄像头,这个步骤和网上的不太一样。
ls /dev/
tty28 tty34 tty40 tty47 tty53 tty6 tty9 vchiq vcs4 vcsa3 video0
tty35 tty41 tty48 tty54 tty60 ttyAMA0 vcio vcs5 vcsa4 video1
vedio0 对应CSI摄像头, vedio对应USB摄像头。
./mjpg_streamer -i "./input_raspicam.so -d /dev/video0 -fps 30 -x 1280 -y 720" -o "./output_http.so -p 8081 -w ./www
./mjpg_streamer -i "./input_uvc.so -d /dev/video1 -f 30 -r 854x480" -o "./output_http.so -p 8081 -w ./www
可以看到3B+下面,参数是不同的,这个可以查看对应的input_raspicam.c和input_uvc.c。也可以通过增加参数但不带实际值来查看提示。
在-o 参数中,如果不增加-p,默认是8080端口。
网上很多说
/mjpg_streamer -i "./input_raspicam.so -fps 30 -x 1280 -y 720" -o "./output_http.so -w ./www" 是开启csi摄像头。
./mjpg_streamer -i "./uvc.so -f 30 -r 1280x720" -o "./output_http.so -w ./www" 是开启usb摄像头。
我的树莓派上接了同时接了csi和usb,使用的时候都是csi摄像头。
PS:
-r后的参数是分辨率,开始写的是1280*720,提示错误,后来把字符“*”(乘号)改成了字母(x)就可以了。
有些文章说要加-y才能使用usb摄像头是不对的,-y在参数说明中是表示yuv输出。
第六步,查看视频监控
在任意一台和树莓派在同一网段的pc上,输入http://10.0.0.54:8080/?action=stream,即可以查看视频。
IP:PORT IP是树莓派的IP地址,PORT是-p制定的,默认是8080