Video streamamo s web kamere spojene na Raspberry Pi. Raspberry Pi. Povezivanje i rad s CSI kamerom Kako spojiti analognu kameru na raspberry pi

Kratke upute za spajanje i korištenje hardverske kamere za Raspberry Pi Imajte na umu da se kamera može oštetiti statičkim elektricitetom. Prije uklanjanja kamere, preporuča se dodirnuti uzemljeni predmet (na primjer, radijator) kako biste uklonili naboj. Kamera je spojena na ploču savitljivim kabelom. Konektor kabela nalazi se između Ethernet i HDMI priključaka. Leća kamere može biti prekrivena prozirnom zaštitnom folijom koju je potrebno ukloniti prije uporabe.

Omogućite podršku za kameru u Raspbianu

Pokrenite Raspberry Pi i prijavite se (zadano korisničko ime je pi, lozinka - kupina). U terminalu pokrenite naredbe za ažuriranje Raspbian distribucije na najnoviju verziju: sudo apt-get ažuriranje

sudo apt-get nadogradnja

Softver kamere

hrapav konzolna aplikacija za snimanje videa s kamere.

raspistill Aplikacije za primanje slika iz parametara kamere -o ili –output navodi naziv izlazne datoteke -t ili –timeout trajanje video snimanja (zadano 5 sekundi) -d ili –demo snimanje u načinu demonstracije značajki. Koristit će se svi mogući efekti

Primjeri: raspistill -o slika.jpg- snimanje slike u .jpg formatu

raspivid -o video.h264- snimanje videa od 5 sekundi u h264 formatu

raspivid -o video.h264 -t 10000- snimanje videa od 10 sekundi u h264 formatu

raspivid -o video.h264 -t 10000 -d- snimanje video zapisa od 10 sekundi u h264 formatu u demo modu

Sve moguće parametre za aplikacije raspivid i raspistill možete vidjeti na sljedeći način: raspivid | manje, raspistill | manje

Koristite kursor za pomicanje kroz popis ili unesite "q" za izlaz. Detaljni opisi parametara za softver kamere mogu se pronaći

Streaming videa preko mreže

Za prijenos videa pokrenite naredbu na Raspberry Pi

raspivid -t 999999 -o - | nc 5001

Za gledanje videa na klijentu morate instalirati mplayer i netcat i pokrenuti ih na sljedeći način: nc -l -p 5001 | mplayer -fps 31 -cache 1024 za Linux


Računalo s jednom pločom Raspberry Pi omogućuje stvaranje zaista zanimljivih i korisnih stvari: od multimedijskih centara do sustava kućne automatizacije. Spajanjem raznih modula na Raspberry Pi možete značajno proširiti funkcionalnost ovog miniračunala.



Jedan od tih dodatnih dodataka je kamera koja vam omogućuje snimanje fotografija ili videozapisa. Danas na tržištu postoji veliki broj kamera za Raspberry Pi, au ovom ćemo članku dati njihov kratki pregled.


Pogledajmo šest najpopularnijih kamera: ZeroCam Noir, ZeroCam FishEye, Raspberry Pi Compatible Fisheye Camera, Raspberry Pi Camera V2, Raspberry Pi Camera V2 Noir i Raspberry Pi Camera 1.3.



ZeroCam Noir je modul kamere za Raspberry Pi Zero ili Raspberry Pi Zero W, pa ako ga želite koristiti u Raspberry Pi 3 ili 2, trebat ćete koristiti adapterski kabel. Ovaj fotoaparat nema IR filter na objektivu, što ga čini idealnim za fotografiranje pri slabom osvjetljenju. Evo nekih od njegovih glavnih karakteristika: senzor od 5 megapiksela, 2592 × 1944 piksela, 1080p pri 30 FPS (ili 60 FPS pri 720p, 90 FPS pri 480p), žarišna duljina 3,60 mm, 53,50 stupnjeva vodoravno, 41,41 stupnjeva okomito, cca. dimenzije ploče s kamerom: 60 x 11,4 x 5,1 mm.



Ovo je fisheye verzija ZeroCam-a, što znači da ima širokokutnu sliku. Ova je kamera također napravljena za Pi Zero ili Pi Zero W, pa vam je za korištenje s drugim Pi panelom potreban adapterski kabel.



Ovo je Raspberry Pi kompatibilna fisheye kamera koja se lako može pronaći na raznim online trgovačkim platformama kao što su AliExpress, TaoBao, eBay. Karakterizira ga širokokutni pogled od 175º. Temelji se na Omnivision 5647 senzoru rezolucije 5 megapiksela (2592 x 1944 piksela).



Ova kamera opremljena je 8-megapikselnim senzorom slike Sony IMX219 s fiksnom žarišnom lećom, koja može prikazati 3280×2464 piksela statične slike, podržava 1080p30, 720p60 i 640×480p90 videozapise. Kamera je kompatibilna sa svim Raspberry Pi pločama, ali ako je želite koristiti s Pi Zero, potreban vam je adapterski kabel.



Ova kamera ima sve karakteristike Raspberry Pi Camera V2 modula, ali nema IR filter. To znači da je gotovo idealna kamera za snimanje u mraku.



Raspberry Pi Camera 1.3 je prethodnik V2 modula. Opremljen je OmniVision OV5647 senzorom od 5 megapiksela.

Usporedba vidnog polja i kvalitete slike kamera za Raspberry Pi

U ovom testu sve su kamere postavljene na udaljenosti od 1 metra od testne slike. Rezultati su sljedeći:











Usporedba kvalitete slike i prikaza boja Raspberry Pi kamera pri zumiranju











Usporedba kvalitete snimanja noću

Rezultati u nastavku pokazuju performanse nekoliko noćnih kamera koje snimaju istu testnu sliku pri vrlo slabom osvjetljenju u mraku.







zaključke

Sve kamere rade malo bolje od očekivanog od tako jeftinih modula. Nažalost, među njima nema sveobuhvatne kamere, a postoji kompromis jer se čini da nema nijedne širokokutne (riblje oko) kamere s uklonjenim IR filterom. Dakle, ako želite široki kut, trebat će vam redovito osvjetljenje, i obrnuto, noću teško da ćete dobiti širokokutne snimke.

Među zanimljivim dodacima za Raspberry Pi je modul video kamere dizajniran za spajanje na CSI sabirnicu pomoću vrpčastog kabela.

Sama ploča kamere je malena. Veličine je samo 25x20x9 mm, težine samo 3 grama i dolazi s trakastim kabelom od 15 cm.


Senzor kamere je od 5 MP, ima leću s fiksnim fokusom i omogućuje snimanje fotografija rezolucije 2592x1944. Video podrška: 1080p 30 sličica u sekundi (fps), 720p pri 60 fps i 640x480 razlučivost do 90 fps. Potpuna podrška za kameru dodana je u Raspbian OS, koji je potrebno ažurirati.

Recite "chee-ee-iz" za Wheezy

Prije nego što krenete dalje, potrebna vam je internetska veza. Modul kamere zahtijeva da se Raspian OS ažurira na najnoviju verziju kako bi se mogli instalirati potrebni upravljački programi i alati.

Ako to nije problem, onda možemo instalirati opremu.

Imajte na umu da se fotoaparat može oštetiti statičkim nabojem. Prije nego što uklonite sivu antistatičku vrećicu s fotoaparata, provjerite jeste li eliminirali naboj dodirivanjem uzemljenog predmeta (kao što je radijator ili vodovodna cijev).

Za kameru, namjenska sabirnica je trakasti konektor najbliži Ethernet priključku. Ima dizajn s nultom silom umetanja (ZIF): trebate samo zategnuti dvije bočne stezaljke da otpustite nosač.

Morate postaviti uvodnu traku od ruba veze u blizini Ethernet priključka do kraja priključka za napajanje Pi-ja. Držite traku na mjestu i razdvojite jezičke kako biste zaključali traku na mjestu. Obratite pažnju na fotografiju da je fleksibilni kabel umetnut sa srebrnim kontaktima prema HDMI priključku:


Spojite sve na Raspberry Pi i pokrenite sustav sa SD kartice, odabirom instaliranja osnovnog Raspbian "Wheezy" OS-a, zatim ponovno pokrenite sustav. Zadano korisničko ime i lozinka su "pi", odnosno "malina".

Prvo moramo ažurirati OS, da bismo to učinili, otvorimo terminal i unesemo sljedeće dvije naredbe, pritiskajući tipku return nakon svake. Za njihovo dovršenje može trebati dosta minuta, pa biste mogli popiti šalicu čaja.

sudo apt-get ažuriranje

sudo apt-get upgrade -y

Sada trebamo upotrijebiti Raspberry Pi alat za podešavanje kako bismo provjerili raspodjelu GPU memorije jer trebamo najmanje 128 kao međuspremnik za sve video podatke koji će se isprati u memoriju. Ovo zapravo aktivira sabirnicu kamere. Unesite u terminal:

sudo raspi-config

Prvo odaberite "Advanced > Memory_split" - već bi trebao biti postavljen na 128, ali ako nije, napravite promjene. Čini se da sustav kamere dobro radi čak i na 16, ali preporučuje se 128.

Na kraju, postoji opcija za podršku kamere Enable/Disable Camera (uključivanje/isključivanje kamere), odaberite Enable (omogući):



Odaberite Završi (gotovo), a zatim Ponovno pokreni za ponovno pokretanje:


Snimanje s Raspberry Pi

Postoje dva alata naredbenog retka za pristup modulu kamere - ovo su hrapav I raspistill .

Kamera nudi dobar izbor grafičkih efekata i općih postavki kamere koje se mogu primijeniti uživo, kako za fotografije tako i za video. Možete promijeniti načine rada ravnoteže bijele boje, fokusa, vrste fotografije, ekspozicije, ISO razine i EXIF ​​​​podataka.

Ispod su primjeri naredbi s terminala i što će učiniti, zadano vrijeme snimanja je 5 sekundi, upotrijebite opciju -t za određivanje duljeg razdoblja u milisekundama, tako da -t 20000 znači "za 20 sekundi".

Video

Prikaz pet sekundi u demo modu:raspivid -d

Prikazuje video od 10 s u demo modu: raspivid -o video.h264 -t 10000 -d

Prikaz 640x480 pregleda: raspivid -p 0,0,640,480

Snimite 20 sekundi videa u h264 formatu: raspivid -t 20000 -o video.h264

Korištenje opcija slike u naredbi hrapav

Sintaksa: RaspiVid[opcije]

Pomoć: Informacije za pomoć
. Zadano 1920
. Zadano 1080
-b , - brzina prijenosa: navedena brzina prijenosa. Koristite bitove u sekundi (na primjer, 10 Mbits/s bi bilo -b 10000000 )
-o , - izlaz: Izlazna datoteka (za pisanje u stdout koristite "-o - ")

-t , - vrijeme čekanja: Vrijeme (u ms) za snimanje fotografija i isključivanje. Ako nije navedeno, postavite na 5 sekundi

-fps - broj sličica u sekundi: Postavite broj sličica u sekundi za snimanje
-e , - penc: Prikaži slike pregleda *nakon* kodiranja (prikaži artefakte kompresije)

<"x,y,w,h">

Fotografija

Snimite sliku u JPEG formatu: raspistill -o image.jpg

Napravite fotografiju 640x480: raspistill -o image.jpg -w 640 -h 480

Napravite JPEG smanjene kvalitete: raspistill -o image.jpg -q 5

Korištenje opcija slike u naredbi RaspiStill

Sintaksa: RaspiStill [opcije]

Opcije naredbe slike

Pomoć: Informacije za pomoć
-w, -width: Postavite širinu slike
-h , - visina: Navedena visina slike
-q , - kvaliteta: Postavite JPEG kvalitetu<0 до 100>
-r , - raw: Dodaj neobrađene bayer podatke u JPEG metapodatke
-o , - izlaz: Izlazna datoteka (za pisanje u stdout koristite "-o -"). Ako nije navedeno, datoteka nije spremljena
-v , - verbose: ispisuje opširno tijekom rada
-t , - timeout: Vrijeme (u ms) za snimanje fotografije i isključivanje (ako nije navedeno, postavite na 5 sekundi)
-th , - thumb: Postavite parametre minijature (x:y:kvaliteta)
-d , - demo: Pokretanje demo načina rada (prolazak kroz nekoliko parametara kamere, bez snimanja)
-e , - kodiranje: Kodiranje koje se koristi za izlaznu datoteku (JPG, BMP, GIF, PNG)
-x, - exif: EXIF ​​​​oznaka za primjenu na snimke (format kao "ključ=vrijednost")
-tl , - timelapse: Intervalni način snimanja. Fotografira svaki ms

Pregled opcija naredbe

P, - pregled: Opcije prozora pregleda<"x,y,w,h">
-f , - cijeli zaslon: način gledanja preko cijelog zaslona
-n , - bez pregleda: Ne prikazuj prozor pregleda

Dodatne mogućnosti naredbe za video i sliku

Sh , - oštrina: Postavlja oštrinu slike (-100 do +100)
-co , - kontrast: Postavite kontrast slike (-100 do +100)
-br , - svjetlina: Postavite svjetlinu slike (0 do 100)
-sa , - zasićenost: Postavite zasićenost slike (-100 do +100)
-ISO , -ISO: Navedeni ISO za snimanje
-vs , - vstab: Omogući stabilizaciju videa
-ev , -ev: Postavite kompenzaciju ekspozicije
-ex , - ekspozicija: Postavite način ekspozicije
-awb , -awb: Postavite AWB način
-ifx, -imxfx: Postavite efekt slike
-cfx , - colfx: Postavite efekt boje (U:V)
-mm , - mjerenje: Postavite način mjerenja ekspozicije
-rot , - rotacija: Rotirajte sliku (0-359)
-hf , - hflip: vodoravno okretanje
-vf , - vflip: okomito okretanje

Zadana mapa za spremanje slika je "/home/pi" pa ako trebate samo reproducirati spremljeni video, lakše je pokrenuti GUI sa startxom, otvoriti "Upravitelj datoteka" i koristiti "LXTerminal" za naredbe kamere.

Kako prenositi video iz Raspberry Pi

Za gledanje kanala na Linuxu

Instalirajte potrebni softver pokretanjem sljedeće naredbe s terminala:

Dobar dan!

Na Staru godinu sinula mi je ideja da napravim nekakav video nadzor. Imao sam sve što mi je trebalo pri ruci:

  • Računalo s jednom pločom Raspberry Pi Model B
  • Web kamera LOGITECH HD Webcam C270
Nakon čitanja odlučio sam malo razviti autorovu ideju.
Poznanik
Dakle, prvo se upoznajmo s glavnom "komponentom":
Izgled Raspberry Pi:

Karakteristike:

  • Broadcom BCM2835 700MHz ARM1176JZFS procesor s FPU i Videocore 4 GPU
  • GPU pruža Open GL ES 2.0, hardverski ubrzani OpenVG i 1080p30 H.264 dekodiranje visokog profila
  • GPU je sposoban za 1Gpixel/s, 1.5Gtexel/s ili 24GFLOPS s filtriranjem teksture i DMA infrastrukturom
  • 512 MB RAM-a
  • Pokreće se sa SD kartice, radi verzija operativnog sustava Linux
  • 10/100 BaseT Ethernet utičnica
  • HDMI video izlazna utičnica
  • 2 x USB 2.0 utičnice
  • RCA kompozitna video izlazna utičnica
  • Utičnica za SD karticu
  • Napajanje iz microUSB utičnice
  • 3,5 mm audio izlazni priključak
  • Priključak za Raspberry Pi HD video kameru
  • Veličina: 85,6 x 53,98 x 17 mm"
pi@hall-pi ~ $ cat /proc/cpuinfo procesor: 0 naziv modela: ARMv6-kompatibilan procesor rev 7 (v6l) BogoMIPS: 2.00 Značajke: swp half thumb fastmult vfp edsp java tls CPU implementator: 0x41 CPU arhitektura: 7 CPU varijanta : 0x0 CPU dio: 0xb76 CPU revizija: 7 Hardver: BCM2708 Revizija: 000e Serijski: 000000005a82c372

Možete pronaći popis službeno podržanih distribucija. Izabrao sam Raspbian bez grafičke ljuske.

Proces instalacije je prilično jednostavan i ne zahtijeva detaljan opis, stoga ću navesti glavne činjenice na koje vrijedi obratiti pozornost:

  1. Postavljanje vremenske zone
  2. Postavljanje naziva računala
  3. Omogućavanje SSH pristupa
  4. Ažuriranje sustava
Nakon što izvršite sve potrebne postavke, možete započeti.
Priprema
Prvo instalirajmo sve potrebne pakete:
sudo apt-get instalacija imagemagick libav-tools libjpeg8-dev subverzija
Zatim preuzmite i sastavite mjpg-streamer:
sudo svn co https://svn.code.sf.net/p/mjpg-streamer/code/mjpg-streamer/ mjpg-streamer cd mjpg-streamer make
Jer Sve podatke ćemo pohraniti u oblak, podesit ćemo rad s udaljenim datotečnim sustavom putem WebDAV-a:
sudo apt-get install davfs2 sudo mkdir /mnt/dav sudo mount -t davfs https://webdav.yandex.ru /mnt/dav -o uid=pi,gid=pi
Kako ne biste svaki put unosili svoje korisničko ime i lozinku, morate ih dodati u datoteku
/etc/davfs2/tajne
/mnt/dav korisnička lozinka
Proces rada
Dodajmo naredbe u /etc/rc.local za montiranje WebDAV-a i pokretanje skripte za emitiranje na mrežu:
mount -t davfs https://webdav.yandex.ru /mnt/dav -o uid=pi,gid=pi cd /home/pi/mjpg-streamer && ./mjpg_streamer -i "./input_uvc.so" -o "./output_http.so -w ./www"
Sada, odlaskom na http://:8080/ dobit ćemo pristup kameri. Ostaje još samo proslijediti port na ruteru i možete pristupiti kameri izvan lokalne mreže.
Izrada timelapse videa
Prije svega, moramo dobiti sliku s kamere. Jer već je zauzeta (sliku emitira web poslužitelj), tada ćemo iskoristiti priliku za primanje trenutne slike s web poslužitelja:
curl http://localhost:8080/?action=snapshot > out.jpg
Ako želimo nacrtati datum fotografije na slici, onda možemo koristiti naredbu convert
timestamp=`stat -c %y out.jpg` convert out.jpg -fill black -fill white -pointsize 15 -draw "text 5.15 "$(timestamp:0:19)"" out_.jpg
Puna verzija skripte:
#!/bin/bash filename=$(perl -e "print time") foldername=$(date --rfc-3339=date) curl http://localhost:8080/?action=snapshot > $filename timestamp=` stat -c %y $filename` mkdir /mnt/dav/out/$foldername convert $filename -fill black -fill white -pointsize 15 -draw "text 5.15 "$(timestamp:0:19)"" /mnt /dav /out/$foldername/$filename.jpg rm $filename
Video se sastavlja pomoću naredbe avconv:
avconv -r 10 -i %06d.jpg -r 10 -vcodec mjpeg -qscale 1 out.avi
Puna verzija skripte videomontaže:
#!/bin/bash filename=$(date --rfc-3339=date) i=0 za f u `ls -tr /mnt/dav/out/$filename/*.jpg 2>/dev/null` do newf=`printf %06d $i`.jpg echo $f "-->" $newf mv $f $newf i=$((i+1)) done rmdir -R /mnt/dav/out/$filename/ avconv -r 10 -i %06d.jpg -r 10 -vcodec mjpeg -qscale 1 /mnt/dav/$filename.avi rm *.jpg
Sada preostaje samo registrirati izvršavanje skripti u Cron planeru:
* * * * * pi bash /home/pi/cam.sh 59 23 * * * pi bash /home/pi/build.sh
Primjer videa
Zaključak
Ovaj pristup pomaže eliminirati potrebu za trošenjem puno vremena na gledanje videa, a također smanjuje troškove konačnog proizvoda. Zahvaljujući prisutnosti punopravnog OS-a, postaje moguće proširiti funkcionalnost u pravom smjeru.

Jedan od najpopularnijih Raspberry Pi projekata je izrada poslužitelja za video nadzor s mogućnošću emitiranja na Internet. Mnogi ljudi koriste ove sustave kao sigurnosne sustave (uključujući i mene), ali postoje i druge upotrebe. Ako smislite nešto zanimljivo, o tome možete pisati u komentarima. Projekt kao što je ovaj koštao bi oko £60-£70, ali upotrijebio sam neke dodatne komponente koje sam imao uokolo (i na kraju nisam koštao ništa). Koristio sam Logitech Quickcam web kameru u svom projektu.

Što nam treba:

  • Raspberry Pi
  • SD kartica od 8 GB ili više
  • Web kamera
  • Pristup internetu putem Ethernet ili WiFi adaptera
  • USB hub s vanjskim napajanjem
  • Tipkovnica
  • Miš (za WiFi postavke)

Dakle, počnimo s instaliranjem najnovije verzije Debiana "Wheezy" na SD karticu, što možete. Da biste instalirali sliku na Windows računalo, možete koristiti uslužni program, a za Mac računala koristite ovaj program. (Više o instaliranju slika)

Nakon što je kopiranje slike završeno, umetnite SD karticu u Raspberry Pi. Povezujemo mrežni kabel ili bežični adapter, kao i tipkovnicu. Na kraju, ne zaboravite spojiti USB hub i napajati ga.

Nakon što uključite Raspberry Pi, pomoću uslužnog programa postavite vremensku zonu prema svojoj lokaciji raspi-config.

Imajte na umu da za prijavu na svježe instalirani sustav morate koristiti svoje korisničko ime pi sa lozinkom kupina.

Ako koristite WiFi mrežnu vezu:

Da biste konfigurirali bežični adapter i povezali se na WiFi pomoću grafičkog sučelja, morate unijeti naredbu:

Nakon toga možete postaviti bežičnu vezu. Kada završite, kliknite mišem u donjem lijevom kutu ekrana i odaberite Odjavite se za povratak na naredbeni redak.

Sada je vrijeme za ažuriranje sustava. Upišite u naredbeni redak:

Sudo apt-get update sudo apt-get upgrade

i čekati završetak. Sada trebate instalirati Motion - softver koji će emitirati video pomoću ugrađenog web poslužitelja. Da biste to učinili, unesite:

Sudo apt-get install motion

i čekati. Kada instalacija završi, povežite web-kameru s USB priključkom s napajanjem na svom čvorištu.

Sada morate napraviti promjene u konfiguracijskoj datoteci programa Motion. Da biste to učinili, pokrenite naredbu:

Sudo nano /etc/motion/motion.conf

Otvorit će se uređivač s konfiguracijskom datotekom koju možete mijenjati. Najvažniji su ovi parametri:

Daemon = OFF (ispravno na ON - ovaj parametar je negdje na početku datoteke) webcam_localhost = ON (ispravno na OFF - ovaj parametar je negdje na kraju datoteke)

Pritisnite Ctrl + X za spremanje, zatim 'y' za potvrdu operacije i na kraju Enter za navođenje naziva datoteke.

Sada možete pokrenuti Motion server:

Pokretanje pokreta usluge Sudo

Pričekajte oko 60 sekundi, a zatim unesite IP adresu Raspberry Pi u svoj preglednik. Najbolji izbor preglednika je najnovija verzija Firefoxa.

Adresa izgleda ovako: 192.168.X.X:8081

Provjerite je li port 8081 naveden na kraju retka kako biste vidjeli sliku. Za pristup postavkama koristite priključak 8080 umjesto 8081.

Port 8081 – video Port 8080 – konfiguracijsko web sučelje

Imajte na umu da ćete kameri moći pristupiti samo unutar svoje lokalne mreže. Nećete se moći spojiti na svoj kućni video poslužitelj s druge lokacije. Za povezivanje izvana, postavite preusmjeravanje dolazne veze na kućnom usmjerivaču.

Čestitamo! Upravo ste postavili vlastiti CCTV poslužitelj na Raspberry Pi! Želim vam uspjeh i slobodno podijelite ovaj članak!

Napomena: ako video poslužitelj prikazuje sivi pravokutnik umjesto slike, unesite naredbu ls /dev/video u terminal kako biste odredili naziv video uređaja. Prema zadanim postavkama, /etc/motion/motion.conf je postavljen na video0. Ako vaša web kamera ima drugačiji naziv, ispravite konfiguracijsku datoteku, a zatim ponovno pokrenite Motion.

Pažnja! Sve što je opisano u ovom članku ponavljate na vlastitu odgovornost! Ne odgovaram ni za kakve posljedice. Ovaj je članak samo vodič.