树莓派:你是我的眼
作者:Vamei 出處:http://www.cnblogs.com/vamei 嚴(yán)禁任何形式轉(zhuǎn)載。
?
樹莓派官方出品有小型攝像頭,用于錄制視頻或拍攝圖片。嬌小的樹莓派和小型攝像頭,可以制作一個很好用的移動攝影裝置。當(dāng)前的攝像頭版本是V2,配有8M像素的Sony IMX219感光板。V2攝像頭又可以分為兩款,一款用于正常的可見光拍攝,另一款帶有紅外夜視功能。最近我入手了有紅外夜視功能的V2攝像頭。這款攝像頭名字是Pi NoIR Camera(The infrared Camera Module v2)。除了夜視功能之外,兩款攝像頭區(qū)別不大,調(diào)用程序也可以通用。所以這里就以NoIR Camera為基礎(chǔ),介紹樹莓派攝像頭的基本設(shè)置和用法。
NoIR Camera V2
?
攝像頭的安裝與設(shè)置
首先準(zhǔn)備好樹莓派,上面已經(jīng)安裝了官方的Raspbian系統(tǒng)。把攝像頭的排線插入樹莓派上的"camera"插口。注意在插入之前,要用兩指捏起插口的蓋子。排線放入后,蓋子要重新按回去:
?
攝像頭安裝
?
樹莓派開機(jī)后,首先更新Raspbian系統(tǒng)的軟件源并升級:
sudo apt-get update && sudo apt-get upgrade?
其次,我們要在樹莓派設(shè)置中,啟動攝像頭模塊。用命令進(jìn)入到設(shè)置頁面:
sudo raspi-config在設(shè)置頁面中啟動攝像頭:
?
攝像頭的基本使用
設(shè)置完成后,攝像頭就可以工作了。Raspbian提供了raspistill和raspivid兩個命令行工具,分別用于獲得圖片和視頻。首先,用raspistill獲得圖片:
raspistill -o image.jpg圖片存入到image.jpg這個文件中。
樹莓派攝像頭拍攝的照片
?
用raspivid獲得視頻:
raspivid -o video.h264 -t 10000獲得10秒H.264壓縮格式的視頻,存入到文件video.h264。
?
把H.264文件轉(zhuǎn)換為MP4文件,可以使用gpac中的MP4Box。安裝gpac:?
sudo apt-get install gpac?轉(zhuǎn)換文件為video.mp4:?
MP4Box -fps 30 -add video.h264 video.mp4?
?樹莓派拍攝的視頻
?
在Raspbian中播放video.mp4:
omxplayer video.mp4?
用VLC做網(wǎng)絡(luò)攝像頭
除了直接錄制視頻文件,樹莓派的攝像頭還能拍攝流媒體,用于網(wǎng)絡(luò)播放。Raspbian下有很多工具可以實(shí)現(xiàn)這一功能。這里介紹VLC的用法。?
?
VLC是大名鼎鼎的視頻播放軟件,支持包括Raspbian在內(nèi)的多個平臺。在Raspbian下安裝VLC,作為流媒體的服務(wù)器:
sudo apt-get install vlc?
利用Linux下的管道機(jī)制,把raspivid拍攝的內(nèi)容導(dǎo)入到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關(guān)鍵字-n說明了不顯示預(yù)覽窗口。隨后vlc作為服務(wù)器,將流媒體送到樹莓派的8160端口。同一網(wǎng)絡(luò)下的任意其他裝有VLC的設(shè)備,就可以通過訪問樹莓派的IP地址和8160端口來播放攝像頭拍攝的內(nèi)容。比如樹莓派在我的局域網(wǎng)中的IP地址是192.168.1.27,那么在手機(jī)版VLC的網(wǎng)絡(luò)媒體源中輸入下面網(wǎng)絡(luò)源:
http://192.168.1.27:8160可以查看同一局域網(wǎng)下的視頻:
?
這樣,我們就用樹莓派制作了一個方便移動的網(wǎng)絡(luò)攝像頭。更進(jìn)一步,我們可以通過隧道的方式把視頻內(nèi)容綁定到某個互聯(lián)網(wǎng)服務(wù)器,從而可以在互聯(lián)網(wǎng)的范圍內(nèi)訂閱該網(wǎng)絡(luò)攝像頭。實(shí)現(xiàn)隧道的具體方式不在這里贅述。
?
用Motion做動作捕捉
Motion是Linux下一款輕量級的監(jiān)控軟件。在日常工作模式下,Motion可以提供網(wǎng)絡(luò)攝像頭的功能。當(dāng)拍攝過程中畫面發(fā)生變動時,Motion可以保存動作發(fā)生時的圖片和視頻。這對于安保監(jiān)控有很大幫助。Motion的使用很簡單。首先,下載安裝Motion:
sudo apt-get install motion?
修改Motion的配置文件/etc/motion/motion.conf,更改下面幾個值為:
daemon on stream_localhost offstream_maxrate 30 framerate 30值得注意的是target_dir選項(xiàng),默認(rèn)值為/var/lib/motion。這是Motion存儲文件的目標(biāo)文件夾。所存儲文件包括了運(yùn)動捕捉產(chǎn)生的圖片或視頻。用戶motion必須對該目標(biāo)文件夾有寫入權(quán)限。同時留意,流媒體的默認(rèn)端口是8081,我們等下會用到。
此外,在設(shè)置文件中,默認(rèn)的視頻設(shè)備(videodevice項(xiàng))是/dev/video0。如果你連接好了攝像頭,卻無法在/dev下找到video0,那么可以嘗試加載V4L2驅(qū)動:
sudo rpi-update sudo modprobe bcm2835-v4l2?
修改/etc/default/motion,更改守護(hù)進(jìn)程的設(shè)置:
start_motion_daemon=yes然后,啟動Motion:
sudo service motion start?
在同一局域網(wǎng)下的其他電腦上,用瀏覽器打開192.168.8.113:8081,可以直接看到即時拍攝的流媒體:
動作捕捉的圖片和視頻將存儲在目錄/var/lib/motion下。如果想改變動作捕捉的相關(guān)參數(shù),例如動作捕捉的敏感度等,可以在/etc/motion/motion.conf中修改。
?
這篇文章主要介紹了一些比較高層的應(yīng)用軟件。更底層一點(diǎn),樹莓派攝像頭還可以通過Python進(jìn)行編程。編程是經(jīng)由PiCamera這一模塊實(shí)現(xiàn)的。我將在另外一篇文章中專門介紹PiCamera。
?
歡迎閱讀“騎著企鵝采樹莓”系列文章
總結(jié)
- 上一篇: 多媒体(1):MCI接口编程
- 下一篇: laravel 调试模式及日志配置