上個禮拜又開始玩raspberrry膳凝,但攝像頭還沒沒玩熱乎控妻,在裝 OpenCV想玩移動偵測的時候發(fā)現(xiàn)SD的卡套不夠緊固迂烁,總是沒法重啟看尼,一怒之下買了新的SD。
但剛滿心歡喜的裝上新SD卡時婚被,發(fā)現(xiàn)攝像頭沒辦法用了狡忙。之后開始懷疑系統(tǒng)、懷疑軟件設(shè)置址芯,然后在網(wǎng)上各種找灾茁,終于找到了官網(wǎng)的這個帖子窜觉,無奈的承認(rèn)是攝像頭壞了,或許就是前幾天頻繁啟動插拔電源的時候弄壞了北专。
然后就只能乖乖的去淘寶買了新的攝像頭禀挫。
但是新買的攝像頭沒辦法自動對焦,所以為了在線調(diào)試攝像頭拓颓,找了下教程语婴,為此還裝了motion,但之后才發(fā)現(xiàn)motion只支持USB攝像頭驶睦,折騰了一段時間砰左,大致成功后,有了此文场航,以作記錄缠导。
實現(xiàn)方案
主要的教程是用樹莓派搭建網(wǎng)絡(luò)攝像頭,在此基礎(chǔ)上溉痢,有刪減僻造,也有增加的說明。
- 設(shè)備:樹莓派B+孩饼、無線網(wǎng)卡髓削、攝像頭
- 系統(tǒng)安裝和硬件驅(qū)動:略去不表
-
軟件實現(xiàn)方案:
用樹莓派加上相機(jī)模塊,可以實現(xiàn)實時監(jiān)控的功能镀娶,再將時時視頻流導(dǎo)入到 Web 界面中立膛,就變成簡單的網(wǎng)絡(luò)攝像頭(Webcam)。Web 端用 Nodejs + WebSocket梯码,既可以進(jìn)行實時播放旧巾,同時又方便進(jìn)功能的擴(kuò)展。
軟件安裝
安裝 Nodejs/ffmpeg
install nodejs
教程中:
wget http://node-arm.herokuapp.com/node_latest_armhf.deb
sudo dpkg -i node_latest_armhf.deb
但是我這樣安裝后并未成功忍些,找了下stack Overflow,發(fā)現(xiàn)是版本問題坎怪,解決辦法如下:
wget https://nodejs.org/download/release/v0.10.0/node-v0.10.0-linux-arm-pi.tar.gz
cd /usr/local
sudo tar xzvf ~/node-v0.10.0-linux-arm-pi.tar.gz --strip=1
查看node版本罢坝,安裝成功
pi@raspberrypi~ $ node -v
v0.10.0
install ffmpeg
libx264 support
git clone git://git.videolan.org/x264
cd x264
./configure --host=arm-unknown-linux-gnueabi --enable-static --disable-opencl
make
sudo make install
ffmpeg
git clone git://git.ffmpeg.org/ffmpeg cd ffmpeg sudo
./configure --arch=armel --target-os=linux --enable-gpl --enable-libx264 --enable-nonfree
make
sudo make install
install ws
原教程沒提到安裝ws,如果你的樹莓派沒有的話搅窿,需要安裝下嘁酿。
npm install ws
軟件配置
創(chuàng)建 Node server 監(jiān)聽
進(jìn)入webcam目錄下 ,創(chuàng)建 Node server 監(jiān)聽 http://127.0.0.1:8082
git clone https://github.com/phoboslab/jsmpeg.git webcam
cd webcam && node stream-server.js password
打開視頻男应,并通過 ffmpeg 轉(zhuǎn)換視頻格式
raspivid -t 0 -w 320 -h 240 -o - | ffmpeg -i - -s 320x240 -f mpeg1video -b 800k -r 30 http://127.0.0.1:8082/password
本地監(jiān)控
用瀏覽器打開stream-example.html闹司,就可以在本地看到實時監(jiān)控畫面了。但我的樹莓派沒裝火狐沐飘,所以測試看不到視頻游桩,但這不重要牲迫,本來就不打算在本地監(jiān)控。
遠(yuǎn)程調(diào)試
遠(yuǎn)程調(diào)試需要修改文件stream-example.html
var client = new WebSocket( 'ws://RASPI_LOCAL_IP:8084/' );
在webcam目錄下開啟HTTP服務(wù)
python -m SimpleHTTPServer 8080
在遠(yuǎn)程的瀏覽器中打開借卧,其中盹憎,RASPI_LOCAL_IP是樹莓派的ip地址
http://RASPI_LOCAL_IP:8080
后續(xù)
初步的功能已經(jīng)調(diào)試成功,攝像頭的焦距現(xiàn)象也正常了铐刘。
但在調(diào)試的過程中發(fā)現(xiàn)延遲較大陪每,應(yīng)該可以做后續(xù)的優(yōu)化。
附圖: