上個禮拜又開始玩raspberrry,但攝像頭還沒沒玩熱乎,在裝 OpenCV想玩移動偵測的時候發(fā)現(xiàn)SD的卡套不夠緊固,總是沒法重啟,一怒之下買了新的SD。
但剛滿心歡喜的裝上新SD卡時,發(fā)現(xiàn)攝像頭沒辦法用了。之后開始懷疑系統(tǒng)、懷疑軟件設(shè)置,然后在網(wǎng)上各種找,終于找到了官網(wǎng)的這個帖子,無奈的承認是攝像頭壞了,或許就是前幾天頻繁啟動插拔電源的時候弄壞了。
然后就只能乖乖的去淘寶買了新的攝像頭。
但是新買的攝像頭沒辦法自動對焦,所以為了在線調(diào)試攝像頭,找了下教程,為此還裝了motion,但之后才發(fā)現(xiàn)motion只支持USB攝像頭,折騰了一段時間,大致成功后,有了此文,以作記錄。
實現(xiàn)方案
主要的教程是用樹莓派搭建網(wǎng)絡(luò)攝像頭,在此基礎(chǔ)上,有刪減,也有增加的說明。
- 設(shè)備:樹莓派B+、無線網(wǎng)卡、攝像頭
- 系統(tǒng)安裝和硬件驅(qū)動:略去不表
-
軟件實現(xiàn)方案:
用樹莓派加上相機模塊,可以實現(xiàn)實時監(jiān)控的功能,再將時時視頻流導(dǎo)入到 Web 界面中,就變成簡單的網(wǎng)絡(luò)攝像頭(Webcam)。Web 端用 Nodejs + WebSocket,既可以進行實時播放,同時又方便進功能的擴展。
軟件安裝
安裝 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)聽
進入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)控。
遠程調(diào)試
遠程調(diào)試需要修改文件stream-example.html
var client = new WebSocket( 'ws://RASPI_LOCAL_IP:8084/' );
在webcam目錄下開啟HTTP服務(wù)
python -m SimpleHTTPServer 8080
在遠程的瀏覽器中打開,其中,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)化。
附圖: