web調(diào)試樹莓派攝像頭

上個禮拜又開始玩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)化。
附圖:

屏幕快照 2016-06-07 下午11.31.03.png

參考與感謝

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容