树莓派实现实时视频监控
目錄
- 1. 硬件設(shè)備
- 2. 軟件方法
- 2.1. motion
- 2.2. LJPG-streamer
- 2.3. python(Picamera+socket)
我理解的實(shí)時(shí)視頻監(jiān)控,是利用樹莓派的攝像頭采集到的視頻流通過無線或有線傳輸實(shí)現(xiàn)一個(gè)遠(yuǎn)程的觀看。
| USB、官方攝像頭 | motion、mjpg-streamer、python(Picamera+socket) |
1. 硬件設(shè)備
USB和官方攝像頭屬性上的差別我覺得是官方攝像頭是采用一個(gè)特殊的轉(zhuǎn)接線(CSI(Camera Serial Interface))與樹莓派進(jìn)行連接。
官方轉(zhuǎn)接線的攝像頭需要現(xiàn)在樹莓派配置上打開攝像頭功能,而USB攝像頭插上即用,在這里也說明攝像頭的啟用。
-
USB攝像頭
046d:0825 Logitech, Inc. Webvam C270
將USB攝像頭插入樹莓派;
lsusb查看USB攝像頭,找打相應(yīng)的攝像頭型號(hào),此處的是羅技攝像頭; -
官方轉(zhuǎn)接線攝像頭
將攝像頭轉(zhuǎn)接線連上樹莓派,那個(gè)卡槽可以往上掰開的,不要大力出奇跡了;
打開樹莓派的攝像頭功能:sudo raspi-config,然后依次選擇5 Interfacing Options,進(jìn)入之后選擇P1 Camera,然后在 Would you like the camera interface to be enabled? 對(duì)話框上選擇 Yes 。最后通過 Finish 退出,并重啟樹莓派;
檢驗(yàn)攝像頭是否啟用:在終端輸入raspistill -o test.jpg,如果成功則在主文件夾下有該圖片。
2. 軟件方法
| motion | 較為簡單,但是很耗CPU,相對(duì)延遲,有存儲(chǔ)功能 |
| mjpg-streamer | 相對(duì)motion速度較快,沒有找到存儲(chǔ)目錄。更加推薦這個(gè),在速度上比比python實(shí)現(xiàn)更快,也包含相應(yīng)的參數(shù)配置,在/plugins/input_raspicam文件夾下,后期補(bǔ)充其詳細(xì)配置,堪比第三種方法。 |
| python(Picamera+socket) | http.server編程 |
2.1. motion
我嘗試過用無論是USB還是官方轉(zhuǎn)接線的攝像頭motion都可以實(shí)現(xiàn)。
motion 是一款開源的支持多種攝像頭的監(jiān)控軟件。
如果不是第一次配置,可直接跳到第四步,即一些配置步驟只需要執(zhí)行一次即可。
第一步:安裝motion
第二步:接上攝像頭
如上所示。
第三步:配置motion
配置/etc/motion/motion.conf文件和/etc/default/motion文件
查看他的配置:樹莓派+motion實(shí)現(xiàn)局域網(wǎng)簡單監(jiān)控
-
/etc/default/motion文件:
//啟動(dòng)后臺(tái)的守護(hù)進(jìn)程 start_motion_daemon=yes -
/etc/motion/motion.conf文件:
//讓Motion作為守護(hù)進(jìn)程運(yùn)行 daemon on ... //用這個(gè)端口號(hào)來讀取數(shù)據(jù) stream_port 8081 ... //網(wǎng)絡(luò)上其它主機(jī)也可以看到 stream_localhost off ... //幀速率為每秒30幀 stream_maxrate 30 ... //攝像頭捕捉視頻的幀速率為每秒30 framerate 30
其他一些重要的配置進(jìn)行介紹。
(1)target_dir:該選項(xiàng)的默認(rèn)值為/var/lib/motion。這就是Motion存儲(chǔ)動(dòng)作捕捉結(jié)果的地方。Motion的進(jìn)程是以用戶motion的身份運(yùn)行的,所以用戶motion必須對(duì)該目標(biāo)文件夾有寫入權(quán)限。
(2)threshold:動(dòng)作捕捉閾值,默認(rèn)值為1500。如果有超過閾值的像素點(diǎn)發(fā)生變化,那么認(rèn)為有動(dòng)作發(fā)生。
(3)videodevice:該項(xiàng)默認(rèn)為路徑/dev/video0。這個(gè)路徑對(duì)應(yīng)了默認(rèn)的視頻設(shè)備。如果你無法在/dev下找到video0,那么可以嘗試加載V4L2驅(qū)動(dòng)來解決問題:
第四步:開啟服務(wù)
$sudo service motion start $sudo motion第五步:主機(jī)查看
在另一條能ping通的計(jì)算機(jī)上,輸入“http://樹莓派IP地址:8081/",就能看到攝像頭的信息啦,信息存儲(chǔ)在/var/lib/motion之下。
第五步:終止服務(wù)
參考鏈接:樹莓派(四):使用攝像頭實(shí)現(xiàn)拍照和遠(yuǎn)程監(jiān)控功能
2.2. LJPG-streamer
MJPG-streamer是一個(gè)優(yōu)秀的開源project,它可以通過HTTP的方式訪問linux上面的兼容攝像頭,從而做到遠(yuǎn)程視頻傳輸?shù)男Ч?/p>
其實(shí)現(xiàn)步驟大致需要先安裝mjpg-streamer依賴的庫,再從github上下載源碼進(jìn)行編譯,再嘗試解決官方攝像頭啟動(dòng)失敗的問題。前提為樹莓派上已連接攝像頭并且能夠開啟。
第一步:安裝必要的庫
第二步:下載源碼、修改配置并編譯
下載源碼(方式二選一即可):
編輯配置文件(可選,我沒有進(jìn)行配置):
$cd mjpg-streamer-master/mjpg-streamer-experimental $vim plugins/input_raspicam/input_raspicam.c編譯(在mjpg-streamer-master/mjpg-streamer-experimental路徑下):
$sudo apt-get install cmake $sudo apt-get install gcc g++ $make all $sudo make install第三步:嘗試開啟服務(wù)
使用下面指令啟動(dòng)普通USB攝像頭:
啟動(dòng)樹莓派專用攝像頭RaspiCamera的指令是:
./mjpg_streamer -i "./input_raspicam.so" -o "./output_http.so -w ./www"某些攝像頭在執(zhí)行這個(gè)指令時(shí)會(huì)有報(bào)錯(cuò),至少要是最后沒有退回到命令行提示符:
第四步:查看圖像
查看圖像,在PC端打開瀏覽器,輸入下面網(wǎng)址可以看到靜態(tài)截圖:
http://<樹莓派IP>:8080/?action=snapshot
輸入下面兩條網(wǎng)址可以看到動(dòng)態(tài)圖像(至于為什么端口號(hào)是8080在樹莓派上運(yùn)行后有相關(guān)的提示,至于為什么加"?action=stream",在進(jìn)入http://raspberry-ip-address:8080是一個(gè)網(wǎng)址,"?action=stream"專門存放視頻):
http://raspberry-ip-address:8080/?action=stream
動(dòng)態(tài)圖像的這個(gè)地址在有的瀏覽器不太好使,可以使用下面這個(gè)網(wǎng)址:
http://raspberry-ip-address:8080/javascript_simple.html
第五步:退出
ctrl+c or ctrl+d
參考鏈接:
「玩轉(zhuǎn)樹莓派」搭建智能家居遠(yuǎn)程監(jiān)控系統(tǒng)
樹莓派上MJPG-streamer的安裝過程
Raspberry pi 記錄3-關(guān)於Pi Camera和即時(shí)串流(MJPG Stream Server)
樹莓派新版系統(tǒng)上使用mjpg-streamer獲取USB攝像頭和樹莓派專用攝像頭RaspiCamera圖像
mjpg-streamer
2.3. python(Picamera+socket)
樹莓派上python的編程環(huán)境:
| Python3(IDLE) | 一個(gè)Python Shell,不適合大型代碼。 |
| Thonny Python IDE | mini版pycharm,有Python Shell和代碼書寫區(qū)域 |
| Visual Studio Code |
樹莓派上運(yùn)行python文件:
| 方法一 | sudo python3 xxx.py(sudo可選) |
| 方法二 | 在程序開頭加入#!/user/bin/python3 |
在樹莓派終端輸入:python3 ~/swift/rpi.python
此時(shí)監(jiān)控系統(tǒng)以及開始工作了。局域網(wǎng)內(nèi)的任何設(shè)備,打開瀏覽器地址欄輸入 http://樹莓派IP地址:8000,即可打開網(wǎng)絡(luò)監(jiān)控系統(tǒng)。視頻響應(yīng)的延時(shí)取決于你的樹莓派和路由器的性能。
參考鏈接
用樹莓派搭建一個(gè)實(shí)時(shí)視頻監(jiān)控系統(tǒng)
樹莓派PiCamera庫的基本使用
總結(jié)
以上是生活随笔為你收集整理的树莓派实现实时视频监控的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ios 中h5网页跳到第三方后回到项目字
- 下一篇: python中pip安装报错的一些总结