最近發(fā)現(xiàn)一種新的數(shù)據(jù)傳輸方式煌恢,樹莓派搭建網(wǎng)絡(luò)攝像頭,不僅速度流暢浸锨,效果感人稚机,而且可以多個(gè)用戶同時(shí)訪問(wèn)轮傍,爽歪歪~
給小伙伴們展示下PC端和手機(jī)端同時(shí)訪問(wèn)效果:
接下來(lái)給各位講解下搭建樹莓派網(wǎng)絡(luò)攝像頭的流程,主要有兩種方式。
方法一、motion方式
第一步:安裝motion包?
sudo apt-get install motion
第二步:打開 motion daemon 守護(hù)進(jìn)程加缘,讓它可以一直在后臺(tái)運(yùn)行
sudo nano /etc/default/motion
#no修改成yes:
start_motion_daemon=yes
第三步:修改motion的配置文件
sudo vim /etc/motion/motion.conf
#deamon off 改成 on
deamon on
#設(shè)置分辨率
width 800
height 600
#關(guān)閉 localhost 的限制
webcam_localhost off
第四步:運(yùn)行 motion
sudo motion
安裝好USB攝像頭,運(yùn)行后重啟樹莓派觉啊,現(xiàn)在我們的攝像頭已經(jīng)變成了一臺(tái)網(wǎng)絡(luò)攝像頭拣宏,在chrome瀏覽器下訪問(wèn) http://[your.domain]:8081 即可看到攝像頭當(dāng)前拍攝的畫面,需要注意有時(shí)候重啟樹莓派后網(wǎng)絡(luò)攝像頭可能未啟動(dòng)杠人,所以需要重新運(yùn)行motion勋乾。
需要注意,第一種網(wǎng)絡(luò)攝像頭搭建方式不便于Android手機(jī)端的訪問(wèn)嗡善,所以這里我并未使用辑莫,這里僅做拓展講解。
PC端使用Python訪問(wèn)非常簡(jiǎn)單滤奈,直接使用OpenCv模塊的VideoCapture()方法摆昧,輸入網(wǎng)絡(luò)攝像頭URL即可撩满。使用偽代碼如下:
'''
VideoCapture()中參數(shù)是0蜒程,表示打開電腦內(nèi)置攝像頭,
參數(shù)是1或2打開外部攝像頭
參數(shù)是視頻文件路徑則打開視頻文件
參數(shù)是URL打開網(wǎng)絡(luò)攝像頭
'''
cap = cv2.VideoCapture(URL)
方法二伺帘、MJPG-streamer方式
第一步:安裝所需模塊
sudo apt-get updatesudo
sudo apt-get install subversionsudo
sudo apt-get install libjpeg8-devsudo
sudo apt-get install imagemagicksudo
sudo apt-get install libv4l-devsudo
sudo apt-get install cmakesudo
sudo apt-get install git
第二步:git一個(gè)開源的project:MJPG-streamer
sudo git clone github.com/jacksonliam/mjpg-streamer.git
cd mjpg-streamer/mjpg-streamer-experimentalsudo
make all
sudo make install
git過(guò)程比較緩慢昭躺,大家可以耐心等待一段時(shí)間,等待100%后確認(rèn)完成后再執(zhí)行下一條命令伪嫁,啟動(dòng)USB攝像頭领炫,指令如下:?
./mjpg_streamer -i "./input_uvc.so" -o "./output_http.so -w ./www"
這里有一點(diǎn)需要注意,配置USB攝像頭和樹莓派專用攝像頭指令不一樣张咳,這里我配置的是USB攝像頭帝洪,具體指令分別如下:
指令啟動(dòng)普通USB攝像頭指令:
./mjpg_streamer -i "./input_uvc.so" -o "./output_http.so -w ./www"?
啟動(dòng)樹莓派專用攝像頭RaspiCamera的指令:
./mjpg_streamer -i "./input_raspicam.so" -o "./output_http.so -w ./www"
并且使用樹莓派專用攝像頭需要開啟專用攝像頭配置的,輸入指令如下:
sudo raspi-config
點(diǎn)擊攝像頭使能開啟即可脚猾。?
以上就實(shí)現(xiàn)了全部的網(wǎng)絡(luò)攝像頭搭建葱峡。不過(guò)每次我們啟動(dòng)樹莓派的時(shí)候還是需要手動(dòng)去執(zhí)行對(duì)應(yīng)的命令,比較麻煩龙助。那么接下來(lái)我們把當(dāng)前項(xiàng)設(shè)置為一個(gè)系統(tǒng)自啟動(dòng)項(xiàng)砰奕。
第三步:設(shè)置自啟動(dòng)
cd到系統(tǒng)home目錄下,新建一個(gè)sh可執(zhí)行文件,輸入如下命令即可:
sudo nano videoStart.sh
videoStart.sh文件中輸入內(nèi)容如下:
cd /home/pi/mjpg-streamer/mjpg-streamer-experimental/
./mjpg_streamer -i "./input_uvc.so" -d /dev/video0 -f 30 -r 1280x720?" -o?
"./output_http.so -p 8080 -w ./www"
然后退出保存军援,最后記得再給個(gè)可執(zhí)行權(quán)限仅淑,輸入命令:
sudo chmod +x /home/pi/videoStart.sh
接著再創(chuàng)建一個(gè)目錄,輸入命令如下:
sudo mkdir .config/autostart
繼續(xù)新建一個(gè)文件胸哥,輸入對(duì)應(yīng)命令如下:
sudo nano .config/autostart/my.desktop
文件內(nèi)容如下:
[Desktop Entry]
Type=shell
Exec=/home/pi/videoStart.sh
最后保存退出涯竟,這樣每次開機(jī)就自動(dòng)執(zhí)行對(duì)應(yīng)文件命令,省去了每次手動(dòng)執(zhí)行的麻煩空厌。
第四步:測(cè)試
查看圖像昆禽,在PC端打開瀏覽器,輸入下面網(wǎng)址可以看到靜態(tài)截圖:
http://<樹莓派IP>:8080/?action=snapshot?
我這里是地址:http://192.168.0.112:8080/?action=snapshot?
輸入下面兩條網(wǎng)址可以看到動(dòng)態(tài)圖像:
http://<樹莓派IP>:8080/?action=stream?
這里的樹莓派地址:http://192.168.0.112:8080/?action=stream
動(dòng)態(tài)圖像的這個(gè)地址在有的瀏覽器不太好使蝇庭,可以使用下面這個(gè)網(wǎng)址:
http://<樹莓派IP>:8080/javascript_simple.html?
總結(jié):經(jīng)過(guò)不斷探索樹莓派和PC視頻數(shù)據(jù)通信“三部曲”到此結(jié)束醉鳖,希望對(duì)小伙伴們有幫助~
那么局域網(wǎng)實(shí)現(xiàn)了實(shí)時(shí)視頻直播,有人肯定會(huì)問(wèn)互聯(lián)網(wǎng)上如何觀看哮内?那這里我就給大家推薦一款可以穿透局域網(wǎng)的軟件:花生殼盗棵,想必接觸過(guò)互聯(lián)網(wǎng)的朋友,應(yīng)該都對(duì)此有一定得了解北发,配合上自家的路由器均可實(shí)現(xiàn)局域網(wǎng)電腦與互聯(lián)網(wǎng)對(duì)接纹因。