Motion je software pro záznam z kamer, který umí zaznamenávat video i jednotlivé snímky při zjištění pohybu, a současně streamovat téměř živý pohled přes webové rozhraní. Využívá infrastruktury v4l (video for Linux). Pro Raspberry PI a jeho „originální“ kameru dlouho neexistovaly v4l ovladače, pouze řádkové utility raspivid a raspistill. Na internetu naleznete většinou návody, jak rozchodit upravenou verzi motion_mmal. To je naštěstí minulost, už to jde rozchodit „nativně“. Takže začneme nezbytným
sudo apt-get update sudo apt-get upgrade sudo rpi-update
(poslední příkaz je aktualizace firmwaru). Pro další předpokládám, že uživatel má zprovozněnou a připojenou kameru, otestovanou například raspistill jako funkční.
Teď se podíváme na zařízení. Zadáme:
pi@raspberrypi ~ $ v4l2-ctl --info
a pokud dostaneme odpověď
Failed to open /dev/video0: No such file or directory
je prozatím všechno v pořádku. Nyní zadáme
sudo modprobe bcm2835-v4l2
a zopakujeme dotaz.Měli bychom dostat výstup podobný následujícímu:
pi@raspberrypi ~ $ v4l2-ctl --info Failed to open /dev/video0: No such file or directory pi@raspberrypi ~ $ sudo modprobe bcm2835-v4l2 pi@raspberrypi ~ $ v4l2-ctl --info Driver Info (not using libv4l2): Driver name : bm2835 mmal Card type : mmal service 15.1 Bus info : platform:bcm2835-v4l2 Driver version: 3.12.25 Capabilities : 0x85000005 Video Capture Video Overlay Read/Write Streaming Device Capabilities Device Caps : 0x05000005 Video Capture Video Overlay Read/Write Streaming
Takže jsme z ruky nahráli ovladač kamery a máme zařízení /dev/video0. Pokud chceme ovladač nahrát automaticky při restartu, stačí zapsat jeho název, tj. bcm2835-v4l2, na samostatný řádek do souboru /etc/modules. Ten musíme pochopitelně editovat přes sudo, jinak na něj nemáme právo.
Nyní nainstalujeme motion:
sudo apt-get install motion
Nahraje se nám spousta závislých balíčků. Nyní si v oblíbeném editoru otevřeme konfigurační soubor /etc/motion/motion.conf. Ještě si musíme rozmyslet, kam budeme zachycené obrázky, videa atd. ukládat, protože souborový systém by se nám asi rychle zaplnil. Já ukládám na windowsové sdílení, přimountované do /mnt/camera (návod někdy příště). Pro základní otestování změníme pár parametrů.
width 1296 height 1024 framerate 2 pre_capture 2 post_capture 2 gap 60 max_mpeg_time 600
width a height jsou šířka a výška, framerate kolik obrázků za sekundu, pre_ a post_capture je kolik snímků před a po zachyceném pohybu se přidá k záznamu, gap je počet sekund, v jehož rámci se ještě detekce pohybu považuje za jeden „event“, max_mpeg_time je maximální délka jednoho videa. Parametry jsou popsané v komentářích, je možno nahrávat video během pohybu, jednotlivé snímky všechny nebo jeden během pohybu, a pomaloběžné video a snímky s daným intervalem pořád, bez ohledu na to, zda je detekován pohyb. Pokud nám nevyhovuje defaultní formát videa, což je SWF, můžeme se přepnout na microsoftí AVI:
ffmpeg_video_codec msmpeg4
Kam se mají věci ukládat, je zde:
target_dir /mnt/camera
a pokud nemá být živé video přístupné jen z Raspberry samého, nastavíme
webcam_localhost off
Teď už můžeme pustit motion (sudo motion) a připojit se k našemu raspberry prohlížečem na portu 8081 (pokud jsme port nezměnili v konfiguračním souboru). Až si dostatečně vyhrajeme s parametry (přerušení běžícího motion přes Ctrl-C), je možno pustit motion jako démona (to se udělá editací dvou souborů, /etc/default/motion, zde se změní start_motion_daemon=no
na yes, a pak v samotném /etc/motion/motion.conf je hned ze začátku souboru daemon off, tak to přepíšeme na on).
Budu rád, dáte-li mi vědět, jaké jste udělali zkušenosti s framerate a rozlišením. Já jsem se k běžícímu Raspberry s motion připojil ještě druhým SSH terminálem a pustil jsem si top, a zdá se mi, že vytížení procesoru při rozlišení a frameratu, které jsem uvedl v příkladu, je kolem 1%, čili relativně nízké. Uvědomme si, že chudák Raspberry musí přebírat data z kamery, počítat rozdíly mezi snímky, pak počítat komprese snímků a videa a ještě to ukládat do souborového systému, takže práce dost pro hračku za pár dolarů.
zdravim, postupoval sem podle navodu a krome toho, ze ukladam obrazky primo na kartu, tak mi to funguje tak, ze mam spozdeni asi 25-30 sekund a jeden obr. za 3-5s. Kdyz sem razantne snizil rozliseni kamery, tak je obraz v prohlizeci temer online, ale zas nic nerozeznam. Neslo by nejak nastavit, aby se nic neukladalo, jen sel kontinuelni online obraz, jak sem zvykly z normalni IP kamery? Nebo kde je chyba?
Ale zpoždění čeho? Jsou prakticky 4 výstupy: 3 do souborů – JPG náhled, AVI s pohybem případně timelapse všeho. A pak je online MJPEG na portu 8081. Záznamy samozřejmě mají zpoždění – musí se detekovat pohyb podle předchozích obrázků a pak spočítat a uložit na disk. A video trvá ještě dýl. Ale ten webový MJPEG sice má určité zpoždění, ale neřekl bych že je to tolik. Samozřejmě pokud se vypne detekce pohybu, bude menší zátěž.
vystupu na portu 8081. To co mi z toho leze mi prijde jako jpg obrazky se spozdenim 20-30s a cetnosti obrazek za cca 5 s. pokud detekuje pohyb tak jde procesor na plno a vse trva strasne dlouho.
Zdravím, rád bych Raspberry Pi použil jako náhradu DVR rekordéru, protože chci pouze jeden prostor monitorovat jedinou kamerou, nepotřebuji pořizovat 4 kanálový rekordér a to za mnohem vyšší cenu než je Raspberry Pi. Otázky z toho vyplývají 3:
1) je možné k Raspberry Pi připojit jinou kameru než co se uvádí? Mám vlastní s nočním viděním.
2) pokud je možné připojit jinou kameru, bude fungovat s programem Motion?
3) je možné záznam videa ukládat na externí úložiště, např. připojený externí disk a ponechávat tam zpětně záznamy, kde byl detekovuán pohyb do doby, než se disk zaplní?
Mám to přesně tak, druhé PI mám s kamerou Logitech přes USB, a video ukládám na Windows 2003 server, share mám mountnutý ve fstab, takže je omažitě po restartu k dispozici. Ukládat na externí USB disk nemám vyzkoušené, je to otázka propustnosti USB (kamera a disk), pro disk by byl patrně potřeba powered USB hub a mazání lze automatizovat přes cron (find … -mtime +14 -delete)
Mam nejlevnejsi cinskou noname ip kameru za cca 800 korun. http://www.ebay.com/itm/251705556134?_trksid=p2059210.m2749.l2649&ssPageName=STRK%3AMEBIDX%3AIT
Ta, bohuzel streamuje jen rtsp/h264, takze vyzadalo to prelozit motion s podorou rtsp (existuje!). Jinak – pracuje celkem slusne, kdyz nepouzivam stream v hd rozliseni, ale ten druhy, z polovicnim rozlisenim. S zapnutym nocnim videnim pozoruji v noci i rybicky v akvariu :)
zkracene
1) ano (ip, usb)
2) ano (dokonce i s rtsp streamem)
3) ano (odmazavani starych zajistit pres cron)
Jak na to, když mam IP kameru jen s tým rtsp streamem?
Děkují
Ahoj, taky by mě zajímal nějaký podrobný návod pro h264 RTSP. Respektive, než začnu experimentovat, zajímalo by mě několik maličkostí, pokud můžu poprosit o odpovědi:
1) Mám 3 kamery (ze všech dostávám obraz přes RTSP/H264 2xFullHD, 1x720p). Lze je dostat do Rapsberry?
2) Pokud ano, lze se na ně potom občas podívat přes web (ideálně live přes https) – zkrátka všechny kamery na jednom místě v jednom rozhraní?
3) Prozatím neuvažuji o nahrávání, ale kdyby někdy ano, nahrávat streamy na připojený HDD nebo Flash?
4) Byl by někdo ochoten nahodit podrobný návod, případně pomoci s rozchozením nebo dát k dispozici obraz hotového OS (klidně i za nějakou „rozumnou“ úplatu)?
Moc a moc děkuji za jakékoliv informace.
Rozchodil někdo motion s Jessie? Mám zprovozněné /dev/video0, ale motion nefunguje a na internetu je vidět, že i jiní s tím dost bojují.
Tak páni, zkusil jsem to taky dle návodu, ale nic mě nejede. Když tak zde je moje konzole :-)
pi@RaspBerryPi ~ $ sudo apt-get install motion
Reading package lists… Done
Building dependency tree
Reading state information… Done
The following extra packages will be installed:
ffmpeg libav-tools libavcodec54 libavdevice53 libavfilter2 libavfilter3
libavformat54 libavresample1 libavutil52 libmysqlclient18 libopencore-amrnb0
libopencore-amrwb0 libopencv-core2.3 libopencv-core2.4 libopencv-imgproc2.3
libopencv-imgproc2.4 libopus0 libpq5 libswscale2 libvo-aacenc0
libvo-amrwbenc0 libx264-130 mysql-common
Suggested packages:
frei0r-plugins opus-tools mysql-client postgresql-client
The following NEW packages will be installed:
ffmpeg libav-tools libavcodec54 libavdevice53 libavfilter2 libavfilter3
libavformat54 libavresample1 libavutil52 libmysqlclient18 libopencore-amrnb0
libopencore-amrwb0 libopencv-core2.3 libopencv-core2.4 libopencv-imgproc2.3
libopencv-imgproc2.4 libopus0 libpq5 libvo-aacenc0 libvo-amrwbenc0
libx264-130 motion mysql-common
The following packages will be upgraded:
libswscale2
1 upgraded, 23 newly installed, 0 to remove and 22 not upgraded.
Need to get 963 kB/14.1 MB of archives.
After this operation, 39.4 MB of additional disk space will be used.
Do you want to continue [Y/n]? y
Err http://mirrordirector.raspbian.org/raspbian/ wheezy/main libavfilter2 armhf 6:0.8.17-2+rpi1+deb7u2
404 Not Found
Err http://mirrordirector.raspbian.org/raspbian/ wheezy/main mysql-common all 5.5.53-0+deb7u1
404 Not Found
Err http://mirrordirector.raspbian.org/raspbian/ wheezy/main libmysqlclient18 armhf 5.5.53-0+deb7u1
404 Not Found
Err http://mirrordirector.raspbian.org/raspbian/ wheezy/main ffmpeg armhf 6:0.8.17-2+rpi1+deb7u2
404 Not Found
Failed to fetch http://mirrordirector.raspbian.org/raspbian/pool/main/liba/libav/libavfilter2_0.8.17-2+rpi1+deb7u2_armhf.deb 404 Not Found
Failed to fetch http://mirrordirector.raspbian.org/raspbian/pool/main/m/mysql-5.5/mysql-common_5.5.53-0+deb7u1_all.deb 404 Not Found
Failed to fetch http://mirrordirector.raspbian.org/raspbian/pool/main/m/mysql-5.5/libmysqlclient18_5.5.53-0+deb7u1_armhf.deb 404 Not Found
Failed to fetch http://mirrordirector.raspbian.org/raspbian/pool/main/liba/libav/ffmpeg_0.8.17-2+rpi1+deb7u2_armhf.deb 404 Not Found
E: Unable to fetch some archives, maybe run apt-get update or try with –fix-missing?
pi@RaspBerryPi ~ $ ffmpeg_video_codec msmpeg4
bash: $’ffmpeg_video_codec\302\240msmpeg4′: command not found
pi@RaspBerryPi ~ $ v4l2-ctl –info
Driver Info (not using libv4l2):
Driver name : bm2835 mmal
Card type : mmal service 16.1
Bus info : platform:bcm2835-v4l2
Driver version: 4.1.19
Capabilities : 0x85200005
Video Capture
Video Overlay
Read/Write
Streaming
Device Capabilities
Device Caps : 0x05200005
Video Capture
Video Overlay
Read/Write
Streaming
pi@RaspBerryPi ~ $
pi@RaspBerryPi ~ $ sudo motion
sudo: motion: command not found
pi@RaspBerryPi ~ $ sudo modprobe bcm2835-v4l2
bash: $ sudo\302\240modprobe\302\240bcm2835-v4l2′: command not found
pi@RaspBerryPi ~ $
Asi chyba při kopírování.
Zkus to napsat ručně.
je třeba mít aktualizované prostředí
1. sudo apt-get update
1. sudo apt-get upgrade
Pak to pojede