樹莓派上MJPG-streamer安裝手順
motion和MJPG-streamer異同
相同點:都是linux系統上監控用的程式。 不同點:
-
motion通過motion.conf配置檔案,可以設定動態感知的動作。比如有寵物進入攝像頭範圍內,motion自動捕獲截圖或者視訊,然後觸發既定的指令碼(sh,python等等)。MJPG-streamer好像不能動態感知(存疑)
-
motion比較吃資源,且重新整理率設定的不能太高,導致視訊不連續。MJPG-streamer就比較流暢。
-
motion安裝比較簡單,通過apt-get就可以。MJPG-streamer需要下載程式碼,自己make。當然也得安裝必要的依賴包。還好不算很多。
準備
- 樹莓派 3B(需要提前安裝系統和聯網)
- LOGICOOL C270(USB攝像頭,請提前測試一下攝像頭是否正常)
注意
樹莓派經常找不到video0,或者攝像頭顯示在video1。 現象:執行lsusb的時候,可以看到攝像頭的硬體。但是執行ls -l /dev/video*,只能看到video1,卻沒有video0
那麼進行下面的配置檔案修改 修改/etc/modules成下面的樣子
[email protected]:~ $ cat /etc/modules # /etc/modules: kernel modules to load at boot time. # # This file contains the names of kernel modules that should be loaded # at boot time, one per line. Lines beginning with "#" are ignored.
i2c-dev bcm2835-v4l2
安裝手順
更新一下apt-get
sudo apt-get update sudo apt-get upgrade
安裝依賴包
sudo apt-get install subversion libjpeg-dev imagemagick
下載原始碼
準備make,移動作業目錄
cd mjpg-streamer
make
make
安裝
sudo make install
※好像不執行安裝也可以,我沒實驗。建議走穩妥的辦法,還是安裝一下吧。
停止motion
如果motion 還在啟動中的話,先停掉
sudo service motion stop
啟動MJPG-streamer
sudo ./mjpg_streamer -i "./input_uvc.so -f 10 -r 320x240 -d /dev/video0 -y -n" -o "./output_http.so -w ./www -p 8080"
內網訪問
效果圖
320x240也可以修改為640x480。
設定外網能夠訪問
-
在路由器中設定樹莓派的內網IP(我的是192.168.0.7)和外網的IP的繫結
-
使用外網IP訪問監控攝像頭 http://此處是外網IP:8080/stream.html 效果圖
手機4G網路訪問效果圖
安全
- 保險起見,還是設定一下登陸帳號和密碼,basic認證一下。
關掉服務 一般Ctrl+C就可以,或者執行kill命令
kill -9
pidof mjpg_streamer
]
重啟服務 跟之前命令比較,多了一個-c userid:password。(帳號密碼改為自己想好的)
sudo ./mjpg_streamer -i "./input_uvc.so -f 10 -r 320x240 -d /dev/video0 -y -n" -o "./output_http.so -w ./www -p 8080 -c userid:password"
效果圖
啟動指令碼
利用指令碼執行來啟動服務,這樣就不用每次在命令列輸入一堆內容了。省事!建立目錄
cd ~ mkdir tool cd tool
做成啟動sh
vi ./stream.sh
#!/bin/sh
#This is Web-streaming server start up script.for raspi #No warrantly.
# Config PORT="8081" ID="basic認證ID" # 需要修改 PW=basic認證ID密碼" # 需要修改 SIZE="640x480" # 320x240也可以 F_RATE="15" MJPG_STREAMER=/usr/local/bin/mjpg_streamer
export LD_LIBRARY_PATH=/usr/local/lib $MJPG_STREAMER -i "input_uvc.so -f $F_RATE -r $SIZE -d /dev/video0 -y" -o "output_http.so -w /usr/local/www -p $PORT -c $ID:$PW" -b
執行指令碼
sh /home/pi/tool/stream.sh
加入自啟動中
# Print the IP address _IP=$(hostname -I) || true if [ "$_IP" ]; then printf "My IP address is %s\n" "$_IP" fi #以下兩行是新追加內容 # MJPG Streamer Start sh /home/pi/tool/stream.sh
exit 0
其他
- 刪除不用的程式碼資料夾
rm -r ~/mjpg-streamer/
作者:今後次 連結:https://www.jianshu.com/p/069c61315e8a 來源:簡書 簡書著作權歸作者所有,任何形式的轉載都請聯絡作者獲得授權並註明出處。