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