IP kamery
Požadavky na kamerový systém
- Možnost přehrávat video v reálném čase
- Možnost umístit jpg obrázky na webové stránky, generování jejich miniatur
- Co nejmenší zátěž na místní síti
- Kamerový server umístěný co nejblíže k páteři sloužící jako video proxy a web server pro obrázky
- Snížení zátěže pokud kamery nikdo nesleduje
- Možnost načíst všechny kamery jako seznam skladeb(playlist) do VLC
- Možnost zobrazit souhrnně obrázky ze všech kamer na jedné stránce
- Archív, možnost prohlížení obrázků a videa z předchozích dnů
- Zobrazení volitelných informací v obraze
Kamery
Edimax IC-3030
- velmi levná kamera, cena okolo 1600 Kč
- vnitřní použití (indoor)
- HD rozlišení 1280 x 1024
- video kodek H.264 při max. rozlišení 15 snímků za sekundu, proměnný bitrate (VBR)
- dostupná také varianta s wifi-n
Adresy pro přístup k videu
Jeden snímek:
http://kamera/snapshot.jpg
MJPG video:
http://kamera/mjpg/video.mjpg
MPEG4 video:
rtsp://kamera:554/video.sdp
H.264 video:
rtsp://kamera:554/video_h264.sdp
VLC video proxy
Pro nízké zatížení sítě a dosažení maximální kvality je vhodné použít video s kodekem H.264. Díky efektivní kompresi se i při maximálním rozlišení a FPS kamery zatížení sítě v klidu pohybuje kolem 500-1000 kbit/s. Přitom IP kamery většinou zabírají především statická místa, kde je minimální jen občasný pohyb.
vlc-wrapper -vvv --intf=dummy rtsp://kamera:554/ipcam_h264.sdp \ --sout '#rtp{dst=server_ip,port=50000,sdp=rtsp://server_ip:8080/test.sdp}'
Jednotlivé snímky
K získání jednotlivých snímků z videa lze použít VLC filtr scene. Perioda generování snímků je určena parametrem scene-ratio, kde 15 znamená, každý 15-tý snímek. Přitom samotné video se pak musí celé průběžně dekódovat, aby snímky mohly být generovány z rozdílových i klíčových snímků. To pak vyžaduje určitý výpočetní výkon.
vlc --video-filter=scene --vout=dummy --aout=dummy --intf=dummy \ --scene-format=jpg --scene-ratio=15 \ --scene-prefix=snap \ --scene-path=/var/vlc/image rtsp://kamera:554/ipcam_h264.sdp vlc://quit
Vnější odkazy
- Edimax IPCamera CGI API
- Edimax IC-3030
- VLC command-line help
- Examples for advanced use of VLC's stream output
- Edimax IC-3030 Motion detection - anglická diskuse ke kameře
Ubiquity AirCam
- Získání snímku v nižším rozlišení přes wget:
# First it does a dumb GET to kick things in gear curl -s -S -L -H 'Expect:' -b cookies -c cookies -o loginpage.html http://kamera/login.cgi # now we log in and get the cookie curl -s -S -L -H 'Expect:' -b cookies -c cookies -o loginresult.html --form username=jmeno --form password=heslo --form Submit=Login http://kamera/login.cgi # finally use the cookie and get the image wget -q --load-cookies cookies "http://kamera/snapshot.cgi" -O webcam.jpg
- Získání snímku jpeg v plném rozlišení přes ffmpeg:
ffmpeg -i rtsp://kamera/live/ch00_0 -y -f image2 -sameq -t 0.001 spanshot.jpg
- Získání snímku jpeg v plném rozlišení přes přehrávač VLC:
vlc --video-filter=scene --vout=dummy --aout=dummy --intf=dummy --scene-format=jpg --scene-ratio=100 --scene-prefix=webcam_ --run-time=1 \ --scene-path=/tmp/webcam \ rtsp://kamera:554/live/ch00_0 vlc://quit