1. 程式人生 > >樹莓派上MJPG-streamer安裝手順

樹莓派上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 來源:簡書 簡書著作權歸作者所有,任何形式的轉載都請聯絡作者獲得授權並註明出處。