我目前使用的樹莓派是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可以保存動作發生時的圖片和視頻

