作者:Vamei 出處:http://www.cnblogs.com/vamei 嚴禁任何形式轉載。
樹莓派官方出品有小型攝像頭,用於錄製視訊或拍攝圖片。嬌小的樹莓派和小型攝像頭,可以製作一個很好用的移動攝影裝置。當前的攝像頭版本是V2,配有8M畫素的Sony IMX219感光板。V2攝像頭又可以分為兩款,一款用於正常的可見光拍攝,另一款帶有紅外夜視功能。最近我入手了有紅外夜視功能的V2攝像頭。這款攝像頭名字是Pi NoIR Camera(The infrared Camera Module v2)。除了夜視功能之外,兩款攝像頭區別不大,呼叫程式也可以通用。所以這裡就以NoIR Camera為基礎,介紹樹莓派攝像頭的基本設定和用法。
NoIR Camera V2
攝像頭的安裝與設定
首先準備好樹莓派,上面已經安裝了官方的Raspbian系統。把攝像頭的排線插入樹莓派上的"camera"插口。注意在插入之前,要用兩指捏起插口的蓋子。排線放入後,蓋子要重新按回去:
攝像頭安裝
樹莓派開機後,首先更新Raspbian系統的軟體源並升級:
sudo apt-get update && sudo apt-get upgrade
其次,我們要在樹莓派設定中,啟動攝像頭模組。用命令進入到設定頁面:
sudo raspi-config
在設定頁面中啟動攝像頭:
攝像頭的基本使用
設定完成後,攝像頭就可以工作了。Raspbian提供了raspistill和raspivid兩個命令列工具,分別用於獲得圖片和視訊。首先,用raspistill獲得圖片:
raspistill -o image.jpg
圖片存入到image.jpg這個檔案中。
樹莓派攝像頭拍攝的照片
用raspivid獲得視訊:
raspivid -o video.h264 -t 10000
獲得10秒H.264壓縮格式的視訊,存入到檔案video.h264。
把H.264檔案轉換為MP4檔案,可以使用gpac中的MP4Box。安裝gpac:
sudo apt-get install gpac
轉換檔案為video.mp4:
MP4Box -fps 30 -add video.h264 video.mp4
樹莓派拍攝的視訊
在Raspbian中播放video.mp4:
omxplayer video.mp4
用VLC做網路攝像頭
除了直接錄製視訊檔案,樹莓派的攝像頭還能拍攝流媒體,用於網路播放。Raspbian下有很多工具可以實現這一功能。這裡介紹VLC的用法。
VLC是大名鼎鼎的視訊播放軟體,支援包括Raspbian在內的多個平臺。在Raspbian下安裝VLC,作為流媒體的伺服器:
sudo apt-get install vlc
利用Linux下的管道機制,把raspivid拍攝的內容匯入到VLC:
raspivid -o - -t 0 -n -w 480 -h 480 | cvlc -vvv stream:///dev/stdin --sout '#standard{access=http,mux=ts,dst=:8160}' :demux=h264
關鍵字-n說明了不顯示預覽視窗。隨後vlc作為伺服器,將流媒體送到樹莓派的8160埠。同一網路下的任意其他裝有VLC的裝置,就可以通過訪問樹莓派的IP地址和8160埠來播放攝像頭拍攝的內容。比如樹莓派在我的區域網中的IP地址是192.168.1.27,那麼在手機版VLC的網路媒體源中輸入下面網路源:
http://192.168.1.27:8160
可以檢視同一區域網下的視訊:
這樣,我們就用樹莓派製作了一個方便移動的網路攝像頭。更進一步,我們可以通過隧道的方式把視訊內容繫結到某個網際網路伺服器,從而可以在網際網路的範圍內訂閱該網路攝像頭。實現隧道的具體方式不在這裡贅述。
用Motion做動作捕捉
Motion是Linux下一款輕量級的監控軟體。在日常工作模式下,Motion可以提供網路攝像頭的功能。當拍攝過程中畫面發生變動時,Motion可以儲存動作發生時的圖片和視訊。這對於安保監控有很大幫助。Motion的使用很簡單。首先,下載安裝Motion:
sudo apt-get install motion
修改Motion的配置檔案/etc/motion/motion.conf,更改下面幾個值為:
daemon on
stream_localhost off
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
修改/etc/default/motion,更改守護程式的設定:
start_motion_daemon=yes
然後,啟動Motion:
sudo service motion start
在同一區域網下的其他電腦上,用瀏覽器開啟192.168.8.113:8081,可以直接看到即時拍攝的流媒體:
動作捕捉的圖片和視訊將儲存在目錄/var/lib/motion下。如果想改變動作捕捉的相關引數,例如動作捕捉的敏感度等,可以在/etc/motion/motion.conf中修改。
這篇文章主要介紹了一些比較高層的應用軟體。更底層一點,樹莓派攝像頭還可以通過Python進行程式設計。程式設計是經由PiCamera這一模組實現的。我將在另外一篇文章中專門介紹PiCamera。
歡迎閱讀“騎著企鵝採樹莓”系列文章