æè¿ãç§ã¯ãããªç£èŠã®ããã€ãã®å€èŠ³ãæ§ç¯ããå¿
èŠããããŸããã èŠä»¶ã¯éåžžã«ç°¡åã§ããïŒ
- ãªã³ã©ã€ã³ã§èŠèŽããæ©èœ
- ãªã¢ã«ã¿ã€ã ã¢ãŒãã¯å¿
èŠãããŸãããå€æ¹ã®æ¥ã®äž»èŠãªã€ãã³ããèŠãã ãã§ååã§ãïŒããšãã°ãä»äºäžã«èª°ãããæ°ã«å
¥ãã®ã³ã³ãã¥ãŒã¿ãŒã«åº§ã£ãŠãããã©ããã調ã¹ãŸãïŒ
- çµæã確èªããã®ã«äœæéãè²»ããå¿
èŠã¯ãããŸãã
- æé«ã®ç»è³ª
- æäœè²»çš
åºæºã«åºã¥ããŠãIPã«ã¡ã©ã®åœ¢ã§æ¢è£œã®ãœãªã¥ãŒã·ã§ã³ãæ€èšããããšãã§ããŸãã ãã ããåžå Žããã°ããåæãããšãããæ倧100ãã«ã®ããã€ã¹ã§ã¯ãç»åãµã€ãºã640x480ãã¯ã»ã«ãè¶
ããããšã¯ãã£ãã«ãªããåæã«ãœãããŠã§ã¢ãã»ããã¢ããããè¯ãæ©äŒãèªæ
¢ããããšã¯ã§ããŸããã§ããã ã€ãŸãããã®ãããªã«ã¡ã©ã賌å
¥ããå Žåãå·¥å Žã®ãã¡ãŒã ãŠã§ã¢ã®æ²çãšèšç»ãå®å
šã«å®çŸã§ããªãããšã«ææ
¢ããªããã°ãªããªãå¯èœæ§ãååã«ãããŸãã
æ¢è£œã®ãœãªã¥ãŒã·ã§ã³ãšã¯å¯Ÿç
§çã«ãRaspberry Piã§ã®èªå®¶è£œã®äœæ¥ã¯ããªã³ããŒãã®æ¬æ ŒçãªOSãšãããã奜ã¿ã®ãã©ãã€ãã®æ¢è£œãœãããŠã§ã¢ã®ãããã§ãéåžžã«å®äŸ¡ã§ãã¯ããã«åºæ¿çã§ãã¯ããã«æè»ã§ãã
äžèšã®åé¡ã解決ããããã«ã次ã®äœæ¥ã¢ã«ãŽãªãºã ãçºæãããŸããã
1æ¥ã®åãïŒã¹ã±ãžã¥ãŒã«ïŒã«ãã·ã¹ãã ã§ããã»ã¹ãéå§ãããäžå®ã®ééïŒããšãã°ã1åã«1åïŒã§åçãæ®åœ±ããããããã¡ã¢ãªã«ãŒãã«ããŒã«ã«ã«ä¿åããããã«WebDAVãããã³ã«ã䜿çšããŠã¯ã©ãŠããã£ã¹ã¯ã«ã¢ããããŒãããŸãã ããã¯ããã©ã€ãã芳å¯ã®ããã€ãã®å€èŠ³ãæäŸããŸããããã¯ãæ¡ä»¶ã«ãã£ãŠå¿
èŠã§ã¯ãããŸãããã楜ããããŒãã¹ã§ãã 1æ¥ã®çµããïŒã¹ã±ãžã¥ãŒã«ã©ããïŒã«ãæ®åœ±ããã»ã¹ãäžæãããåçããã®ãããªãã¡ã€ã«ã®ã¢ã»ã³ããªãéå§ãããŸãã ã¢ã»ã³ããªã®æåŸã«ããããªã¯åãã¯ã©ãŠããã£ã¹ã¯ã«ã¢ããããŒãããããããåçãã¡ã€ã«ãåãæ¿ããå¿
èŠãªããavi-flipå
šäœããã°ãããªã¢ãŒãã§è¡šç€ºã§ããŸãïŒ1æéããã1ãã¬ãŒã ããã10æéã®äœæ¥ã§ãåèšãããªã¿ã€ãã³ã°ãåŸãããŸã-çŽ1å10 fpsïŒã
ãã¡ããããã®ã¢ãããŒãã§ã¯ããããªç£èŠã¯éåžžã®åœ¢åŒã§ã¯å®è£
ãããŠããŸãããããã¹ãŠã®ã¿ã¹ã¯ã¯è§£æ±ºãããŠããŸãã ããã«ãã«ã¡ã©ã«çŽæ¥æ¥ç¶ããããã«ãããã€ããŒããå°çšIPã賌å
¥ããå¿
èŠã¯ãããŸããããŸããã¹ãã¬ãŒãžãšããŒã¿ã¢ã¯ã»ã¹æ©èœã¯ç¡æãµãŒãã¹ïŒ
Yandex.Diskãªã© ïŒã«è»¢éããããããå¥ã®ãããªç£èŠãµãŒããŒãèµ·åããå¿
èŠã¯ãããŸããã
ã ãããéïŒ
- Raspberry PiïŒãã®å°åã§ã¯50ã60ãã«ïŒïŒã¢ãã«Bãã€ãŒãµãããã2ã€ã®USBã256 MBã®RAMãæèŒããã¢ãã«ã䜿çšããŸãã
- Logitech C270ïŒ$ 20ïŒïŒUVCä»æ§ãæºããæ¯èŒçå®äŸ¡ã§äººæ°ã®ããHDïŒ1280x720ïŒWebã«ã¡ã©ïŒãã®çµæãLinuxã·ã¹ãã ã§åé¡ãªãåäœããŸãïŒ
- iPhoneããã®å
é»ïŒ$ 10ïŒïŒå®éãiPhoneã¯ãã¡ããããããšã¯äœã®é¢ä¿ããããŸããã1Aã®åºåé»æµãšmicro-USBã³ãã¯ã¿ãåããé»æºã§ããã°ååã§ãã äžåœã®ãã«ã¹å
é»ã¯1åããã2ãã«ä»¥äžã§ããã泚ææ·±ã確èªããå¿
èŠããããŸãã
- 4 GB SDã«ãŒãïŒ6ãã«ïŒïŒ4ã€ã®ã®ã°-å¿«é©ãªäœæ¥ã®ããã®æå°ã«ãŒããµã€ãºã
- ã©ãºããªãŒã®ã±ãŒã¹ïŒ$ 1ïŒïŒå€ããå°ãªããé©ããç®±ããã®ãã¬ã¡ã«ã䜿çšããŠäœããã建èšã®ãã€ããŒããŒã±ããã§è³Œå
¥ãããŸããã
ã¢ã»ã³ããªã§ã¯ããã¹ãŠã次ã®ããã«ãªããŸãã
ãããRaspberryã§ã®ç§ã®æåã®çµéšãªã®ã§ãããäžçŽã®ãŠãŒã¶ãŒã«æ¢ã«ç¥ãããŠããå¯èœæ§ã®ããããšã«ã€ããŠå°ã説æããŸãã
æåã®ãã¥ã¢ã³ã¹ã¯ãåšèŸºæ©åšã®ãã¯ãŒã§ãã å®éãã·ã³ã°ã«ã¢ã³ãã®ãœãŒã¹ããRaspberryããªã³ã«ãããšãUSBããŒãã®é»æµã¯ã»ãšãã©æµããŸããã ãã®çµæããŠã§ãã«ã¡ã©ãšUSB Wi-Fiãã³ã°ã«ããŸãã¯2ã€ã®ãŠã§ãã«ã¡ã©ã®äž¡æ¹ãæ¥ç¶ã§ããŸããã§ãããäžæ¹ã®ããã€ã¹ã¯å®å®ããŠåäœããããäžæ¹ã¯ã·ã¹ãã ã§èµ·åããããã«èŠããŸãããã1ååŸã«åäœãæåŠããŸããã
2çªç®ã®ãã¥ã¢ã³ã¹ã¯ãUSBããŒãã®æ°ã§ãã ã©ãºããªãŒã«ã¯2ã€ãããããŸãããã€ãŸããã«ã¡ã©ãããŒããŒããWi-Fiãåæã«æ¥ç¶ããŠãæ©èœããŸããã ãã ããããã€ãã®è§£æ±ºçããããŸãã
ãŸããé»æºãå
¥ããUSBãããRaspberryã«æ¥ç¶ããå¿
èŠãªãã¹ãŠã®åšèŸºæ©åšãRaspberryã«æ¥ç¶ããŸãã ããšãã°ãããã§ãã¹ãŠãããŸããããŸããïŒ
ããã«ãããå¥ã®220Vãœã±ãããå¿
èŠã«ãªããŸããã䜿çšå¯èœãªããŒãã®æ°ãå¢ããååãªé»æµãåŸãããŸãã
第äºã«ãSSHãä»ããŠã©ãºããªãŒã管çããããšã¯çã«ããªã£ãŠããŸããããŒããŒããããŠã¹ããŸãã¯ã¢ãã¿ãŒãæ¥ç¶ããå¿
èŠã¯ãããŸããã ãŸããã°ã©ãã£ã«ã«ã·ã§ã«ãæ¬åœã«èŠããå Žåã¯ãVNCãµãŒããŒãã€ã³ã¹ããŒã«ããŠããã¹ã¯ãããã«ãªã¢ãŒãã¢ã¯ã»ã¹ã§ããŸãã ããã¯æ¬¡ã®ããã«è¡ãããŸãã
èšå®ïŒ
sudo apt-get install tightvncserver
æåã®ããŒãã§ãµãŒããŒãèµ·åããïŒ
vncserver :1 -geometry 1200x700 -depth 16
ããã§ãåäœäžã®OSãããraspberryãVNCã¯ã©ã€ã¢ã³ãã«æ¥ç¶ã§ããŸãïŒããšãã°ãWindowsã®å Žåã
UltraVNCã¯æ£åžžã«åäœããŸãïŒã
ãœãããŠã§ã¢ã®éžæãšã€ã³ã¹ããŒã«ïŒ
OSãšããŠãç§ã¯RaspbianãéäžçŽãŠãŒã¶ãŒã«æãé©ãããã®ãšããŠäœ¿çšããŸããã ã·ã¹ãã ã€ã¡ãŒãžãããŠã³ããŒãããç¹å¥ãªãŠãŒãã£ãªãã£ïŒWin32DiskImager for WindowsïŒã䜿çšããŠã¡ã¢ãªã«ãŒãã«ã€ã³ã¹ããŒã«ããå¿
èŠããããŸãã ãããã¯ãã¹ãŠãå
¬åŒã®Raspberry Webãµã€ãã®ããŠã³ããŒãããŒãžïŒ
www.raspberrypi.org/downloadsïŒã§è©³çŽ°ã«èª¬æãããŠããŸãã
ã·ã¹ãã ã®æåã®èµ·ååŸãã€ã¡ãŒãžã®äœææéãæ£ãã衚瀺ãããããã«ã¿ã€ã ãŸãŒã³ãæ§æããããšã¯çã«ããªã£ãŠããŸãã
ãã¡ããããããåŸã§è¡ãããšãã§ããŸãã
sudo dpkg-reconfigure tzdata
ãŠã§ãã«ã¡ã©ããåçããã£ããã£ããã«ã¯ãmjpg-streamerã䜿çšããããšã匷ããå§ãããŸãã ãã®ãŠãŒãã£ãªãã£-ãã®éã®æ§æã§ãã¹ããããå¯äžã®ãŠãŒãã£ãªãã£ã¯ããæ£ããã解å床ã§åçãçºè¡ããããšãã§ããŸããã ç§ãããŸããŸçµéšãããã®ä»ã®ããŒã«ïŒã¢ãŒã·ã§ã³ãffmpegãã¹ããªãŒããŒïŒã¯ãHDç»åãæäŸããããããã640x480ããæäŸããªãã£ãããŸãã¯éå§ãæåŠããŸããã æ®å¿µãªãããmjpg-streamerã¯å®è¡å¯èœãã¡ã€ã«ãšããŠé
åžãããŠããŸããããæ¢è£œã®ããã±ãŒãžãã€ã³ã¹ããŒã«ãããããã³ã³ãã€ã«ã¯é£ãããããŸããã è¡ãããšïŒãã¹ãŠã®æäœã¯ãŠãŒã¶ãŒpiã®ä»£ããã«å®è¡ãããããšãåæãšããŠããŸãïŒã
ãŸããã€ã³ã¹ããŒã«å¯èœãªããã±ãŒãžã®ããŒã«ã«ã€ã³ããã¯ã¹ãæŽæ°ããŸãã
sudo apt-get update
å¿
èŠã«å¿ããŠãã·ã¹ãã ã«ãã§ã«ã€ã³ã¹ããŒã«ãããŠããããã±ãŒãžã®ã¢ããã°ã¬ãŒããéå§ããããšãã§ããŸãããå®éã«ã¯ãã¹ãŠãããã±ãŒãžãªãã§æ©èœããŸãã
sudo apt-get upgrade
åçã®äœææ¥æã衚瀺ããã«ã¯ãå€æãŠãŒãã£ãªãã£ãå«ãimagemagickããã±ãŒãžãå¿
èŠã§ãã ç»åãå€æŽããããã®çã«ç¡éã®å¯èœæ§ãããã®ã§ãå©ããåããŠæ°åã®æ°åãæžãããšã¯å®å
šã«ç°¡åã§ãã mjpg-streamerãã³ã³ãã€ã«ããã«ã¯åãããã±ãŒãžãå¿
èŠãªã®ã§ãããããããšãªãé
眮ããŸããã
sudo apt-get install imagemagick
aviconvããã°ã©ã ã¯ãäžé£ã®åçãããããªãæ¥çããããšã«é¢äžããŸããããã¯ãç¬èªã«ã€ã³ã¹ããŒã«ããã®ã§ã¯ãªããlibav-toolsããã±ãŒãžã䜿çšããŠãmjpg-streamerã®ã³ã³ãã€ã«ãæåããªãããã«ããŸãã ç§ãã¡ã¯çœ®ããŸãïŒ
sudo apt-get install libav-tools
ãŸããmjpp-streamerã«å¿
èŠãªã©ã€ãã©ãªãå«ãlibjpeg8-devããã±ãŒãžãå¿
èŠã§ãã
sudo apt-get install libjpeg8-dev
sourceforgeãããœãŒã¹ãããŠã³ããŒãããã«ã¯ãsubversionãå¿
èŠã§ãã
sudo apt-get install subversion
ãããŠãmjpg-streamerèªäœã®ããŠã³ããŒããšã³ã³ãã€ã«ã¯æ¬¡ã®ããã«è¡ãããŸãã
sudo svn co https://svn.code.sf.net/p/mjpg-streamer/code/mjpg-streamer/ mjpg-streamer cd mjpg-streamer make
æåŸã®ã¹ãããã¯ãWebDAVçµç±ã§ãªã¢ãŒããã¡ã€ã«ã·ã¹ãã ãæäœããããã®ããã±ãŒãžãã€ã³ã¹ããŒã«ããå®éã«ããŠã³ãããããšã§ãã
sudo apt-get install davfs2 sudo mkdir /mnt/dav sudo mount -t davfs https://webdav.yandex.ru /mnt/dav -o uid=pi,gid=pi
ã€ã³ã¹ããŒã«ããã»ã¹äžã«ããŠãŒã¶ãŒåãšãã¹ã¯ãŒããå
¥åããå¿
èŠããããŸãã
ã¯ãŒã¯ãããŒã®æé ïŒ
ããã§ãä»åŸã®äœæ¥ã«å¿
èŠãªãã¹ãŠãæããŸããã äž»ãªã³ãã³ãã«ã€ããŠç°¡åã«èª¬æããŸãããèšäºãé床ã«æžããªãããã«ãç¹ã«bashã«é Œã£ãŠã¯ããŸããã åã
ã®æäœãå®è¡ããèªåã¹ã¯ãªããã®èª¬æããå¥ã®ãšãã»ã€ã®çç±ãããããªããšæããŸãã
ãããã£ãŠãmjpg-streamerãå®è¡ããŸãã
cd mjpg-streamer ./mjpg_streamer -i "./input_uvc.so -r 1280x720 -f 1" -o "./output_file.so -f ./ -d 60000"
ãã®ã¢ãŒãã§ã¯ãçŸåšã®ãã£ã¬ã¯ããªïŒ-f ./ïŒã«1åããšïŒ-d 60000ïŒã«ã2013_10_04_12_11_30_picture_000000000.jpgã®ãããªçŸããååã®ãã¡ã€ã«ãäœæãããŸãã
ç»åã«ã¿ã€ã ã¹ã¿ã³ããæç»ããã«ã¯ã次ã®ãããªã¹ã¯ãªããã䜿çšããŸãã
filename="2013_10_04_12_11_30_picture_000000000.jpg" timestamp=`stat -c %y $filename` convert $filename -fill black -draw "rectangle 1130,695 1270,715" -fill white -pointsize 15 -draw "text 1135,710 '${timestamp:0:19}'" ./out.jpg.
圌ã¯ãç»åã®å³äžé
ã«ããŒã¯ãä»ããŠãçµæãout.jpgã«æžã蟌ã¿ãŸãã 次ã®ããã«ãªããŸãã
Yandex.Diskã«æžã蟌ãã«ã¯ãç®çã®ãã¡ã€ã«ã/ mnt / davã«ã³ããŒããã ãã§ãã
cp out.jpg /mnt/dav
ãªã¢ãŒããã¡ã€ã«ã·ã¹ãã èªäœãžã®ã³ããŒã¯2段éã§å®è¡ãããããšã«æ³šæããŠãã ããïŒæåã«ããã¡ã€ã«ã¯/ var / cache / davfs2ã®ã©ããã«ããããŒã«ã«ãã£ãã·ã¥ã«ã³ããŒããããã®åŸãdavfsã¯æ¢ã«ãããã¯ãŒã¯çµç±ã§ãã¡ã€ã«ãå®éã«è»¢éããŸãã ããã¯ããã¡ã€ã«ãYandex.Diskã§ç©ççã«äœ¿çšå¯èœã«ãªãåã«ãã³ããŒã³ãã³ããå®äºããããšãæå³ããŸãã ãããã£ãŠãYandexã§ã³ããŒããã°ããã®ãã¡ã€ã«ãèŠã€ãããªãå Žåã¯ãèœèããªãã§ãã ãããããããå°ãåŸ
ã€å¿
èŠããããŸãã
jpeg-sã®ã»ãããããããªãäœæããæºåãããå¿
èŠããããŸãããã¡ã€ã«åã¯ãç¹å®ã®ãã¿ãŒã³ã«åŸãäžé£ã®æ°åãå¢ããå¿
èŠããããŸãã 次ã«ãçŸåšã®ãã£ã¬ã¯ããªã«ãããã¹ãŠã®jpgãã¡ã€ã«ã®ååãå€æŽæå»ã®æé ã§å€æŽããaviãžã®å€æãéå§ããã¹ã¯ãªããã瀺ããŸãã
i=0 for f in `ls -tr *.jpg 2>/dev/null` do newf=`printf %06d $i`.jpg echo $f "-->" $newf mv $f $newf i=$((i+1)) done avconv -r 10 -i %06d.jpg -r 10 -vcodec mjpeg -qscale 1 out.avi
avconvã¯éåžžã«åŒ·åãªãŠãŒãã£ãªãã£ã§ãããã»ãšãã©äœã§ãäœçŸãã®ãã©ã¡ãŒã¿ãŒãæã€ãã®ã«ãšã³ã³ãŒãã§ããããšãèšããªããã°ãªããŸããã ãã ããRaspberryã§ãããªããšã³ã³ãŒã/ãã³ãŒããããœãããŠã§ã¢ã®æ§ãããªæ©èœãæ€èšãã䟡å€ã¯ãããŸãã ããšãã°ãçŽ600ãã¡ã€ã«ã®ã»ãããH.264ã§å§çž®ãããã ãŒããŒã«å€æããã®ã«çŽ2æéããããŸããã ãããã£ãŠãäžèšã®äŸã§ã¯ãMJPEGã®ã³ãŒãã£ã³ã°ã䜿çšããŸããããã¯åºæ¬çã«äœãå§çž®ãããäºãã«jpgã®ã¿ãæ¥çããŸãã ãã®ãããªå€æã¯æ°åã§å®è¡ãããåçã®å
ã®å質ã倱ãããããšã¯ãããŸããã
ããã«ãbashã¹ã¯ãªãããéçºããããã®ããã€ãã®åšçšããšã¹ãã«ã䜿çšããŠãã¹ã±ãžã¥ãŒã«ã«åŸã£ãŠãªã³/ãªããåãæ¿ããå®å
šãªèªåã·ã¹ãã ãèšå®ãããŽããåé€ãããªã¢ãŒããã£ã¹ã¯ã®ç©ºãé åã®å¯çšæ§ãç£èŠããããšãã§ããŸãã ãŸãããã£ã¹ã¯ãä»ããŠãããšãã°MalinkaèªäœãååŸããŠå®è¡ããç¹å®ã®ãã£ã¬ã¯ããªã«ã¹ã¯ãªãããã¬ã€ã¢ãŠããããªã©ãRaspberryã®ãªã¢ãŒãã³ã³ãããŒã«ãæŽçã§ããŸãã
çµè«ãšããŠãç§ã¯èªå®¶è£œã®ã¿ã€ã ã©ãã¹ãããªã®äŸãæäŸããŸãã å³äžé
ã®æéãééã£ãŠããããšã«æ³šæããŠãã ããã ããã¯ãRaspberryã«ã¯ãªã¢ã«ã¿ã€ã ã¯ããã¯ããªãããã§ããã€ã³ã¿ãŒãããã«æ¥ç¶ããã«ãªã³ã«ãããšãã¿ã€ã ãŸãŒã³ãé€ãæåŸã®å€åæéã䜿çšãããŸãã