使用树莓派的摄像头

我目前使用的树莓派是3B+,操作系统是Raspbian-stretch。树莓派官方提供了小型摄像头,用于拍照和录制视频。目前官网上提供了两款摄像头,一个是用于正常的可见光拍摄,另一个带有红外夜视功能,我入手的是这款带红外夜视功能的摄像头,这款摄像头的名字叫PI NOIR CAMERA V2(The infrared Camera Module v2 (Pi NoIR)),具体可以参见树莓派官网

摄像头的安装与设置


首先准备好树莓派,已经安装好官方的Raspbian系统,如果没有安装好请参考开始使用树莓派。把摄像头的排线插入树莓派上的"camera"插口。摄像头对静电比较敏感,同时也不要在树莓派运行时插拔摄像头,不然很容爆掉。

树莓派开机后,首先更新源

sudo apt-get update && sudo apt-get upgrade 

然后设置摄像头的使能控制端,即开启摄像头功能,选择Interface Options选项,然后选择P1 Camera开启摄像头

        

 

使用摄像头


 

 设置完成后,摄像头就可以进行工作了,目前提供了三个应用程序,分别为:raspistill、raspivid、raspistillyuv。其中 raspistill 和 raspistillyuv 非常相似,并且都是用于捕捉图像,而 raspivid 用于捕捉视频。

1)用rasptill获取一张图片

raspistill -o image.jpg

2)用raspivid获取视频

raspivid -o video.h264 -t 10000

获得10秒H.264压缩格式的视频,存入到文件video.h264。

raspivid 通常会将录制的视频保存为 .h264 格式的文件,而我们使用的很多播放器可能无法正常播放该格式的视频文件。这就需要我们将生成的 .h264 格式的文件封装到播放器能够识别的视频容器格式中(比如封装为 mp4 格式)。有很多视频处理软件可以达到这个目的,可以直接在树莓派上进行封装。这里介绍的是“gpac”中的“MP4Box”。

安装gpac

$sudo apt-get update
$sudo apt-get install gpac

将.h264的文件转换成.mp4的文件

$sudo MP4Box -add video.h264 video.mp4

使用omxplayer播放视频

$omxplayer video.mp4 

这里仅仅是最基本的操作,如果要更深入的了解,还是要看这两个命令的帮助文档,可以执行

$raspistill --help
$raspivid --help

 

使用motion搭建视频监控系统


 motion是Linux下一款轻量级的视频监控软件,motion可以提供网络摄像头的功能,当拍摄过程中画面发生变动时,Motion可以保存动作发生时的图片和视频,这时如果将抓拍的图片或视频上传到百度云或者DropBox中就可以实现一个简单的监控系统。具体实现如下:

安装motion

$sudo apt-get install motion

配置motion选项时,先对配置文件进行备份

$sudo cp /etc/motion/motion.conf /etc/motion/motion.conf.bak

修改/etc/motion/motion.conf选项

$sudo vim /etc/motion/motion.conf
daemon on                           #开启守护进程(选配)
target_dir /home/pi/motion-images    #文件保存的路径,图像变化时图片保存的路径         
stream_localhost off                 #允许通过网页查看摄像头
width  640
height 480
stream_maxrate 30
framerate 30

值得注意的是target_dir选项,默认值为/var/lib/motion。这是motion存储文件的目标文件夹。所存储文件包括了运动捕捉产生的图片或视频。用户motion必须对该目标文件夹有写入权限。这里我们将默认的文件目标进行了修改。同时注意,流媒体的默认端口是8081,这里后面会使用到。

最后,在设置文件中,默认的视频设备(videodevice项)是/dev/video0。如果你连接好了摄像头,却无法在/dev下找到video0,那么可以尝试加载V4L2驱动:

sudo rpi-update
sudo modprobe bcm2835-v4l2 #加载驱动模块

这样每次启动都要重新加载v4l2驱动,如果你希望开机就加载v4l2驱动可以在/etc/modules文件中加入bcm2835-v4l2,这样每次开机就可以直接加载v4l2驱动模块。

 

修改/etc/default/motion,更改守护进程的设置:

start_motion_daemon=yes

然后,启动motion

sudo motion

在同一局域网下的其他电脑上,用浏览器打开192.168.23.122:8081,可以直接看到即时拍摄的流媒体:

动作捕捉的图片和视频将存储在目录/home/pi/motion-images下。如果想改变动作捕捉的相关参数,例如动作捕捉的敏感度等,可以在/etc/motion/motion.conf中修改,这里需要参考具体motion的使用。


当拍摄过程中画面发生变动时,Motion可以保存动作发生时的图片和视频

 

posted @ 2018-08-21 22:36  Trami  阅读(14667)  评论(0编辑  收藏  举报