Hoe videostreaming uitvoeren met Raspberry Pi?

De Raspberry Pi is een goedkope computer in zakformaat die een aantal fundamentele apparatuur nodig heeft voor het maken van fascinerende projecten die in ons dagelijks leven kunnen worden gebruikt om ons leven eenvoudiger te maken. Een SD-kaart ingebed in de kaartsleuf op het bord fungeert als de Harde schijf voor de Raspberry Pi. De nieuwste Raspberry Pi-modellen hebben meestal drie tot vier Universal Serial Bus (USB) -poorten, één ethernetpoort en één High Definition Multimedia Interface (HDMI). Het kan alles doen wat u zou verwachten dat een werkstation zou moeten doen, zoals het afspelen van een video van superieure kwaliteit, het maken van spreadsheets, FM-radiostations en gamen, enz. Live streaming camcorders kunnen worden gebruikt voor beveiliging of individuele doeleinden. De webcams, camcorders, DSLR's en spiegelloze camera's voor live videostreaming zijn gemakkelijk verkrijgbaar op de markt, maar ze zijn duur. In dit project zullen we een live streaming camera maken met Raspberry Pi, een zuinig apparaat dat toegankelijk is via Wifi te. We zouden de live videostreaming op onze mobiele telefoons, tablets en desktop-pc's kunnen bekijken.

Hoe de Pi-camera in te stellen voor livestreaming?

De beste benadering om een ​​project te starten, is door een lijst met componenten te maken, omdat niemand midden in een project wil blijven staan ​​alleen omdat er een component ontbreekt.

Stap 1: Vereiste componenten

Stap 2: het Raspberry Pi-model selecteren

De selectie van Raspberry Pi is een zeer technische taak en het moet zorgvuldig worden gedaan, zodat u in de toekomst niet lijdt. De Raspberry Pi Zero heeft niet de voorkeur omdat dit het oudste model is dat op de markt verkrijgbaar is met een beperkt aantal specificaties en het opzetten van een netwerk daarop een zeer vermoeiende klus is. De nieuwste modellen zoals 3A +, 3B + kunnen worden gekocht. De Raspberry Pi 3 is de snelste en meest dominante gadget die de Raspberry Pi Foundation tot nu toe heeft uitgebracht. Dus in dit project zullen we de Raspberry Pi 3B + gebruiken.

Stap 3: Raspberry Pi instellen

Er zijn twee opties voor het instellen van Raspberry Pi. De eerste is om uw Pi met LCD te verbinden en alle benodigde randapparatuur aan te sluiten en aan het werk te gaan. De tweede is om Pi met de laptop in te stellen en op afstand toegang te krijgen. Het hangt af van de beschikbaarheid van LCD, als je het thuis hebt, kun je je Pi instellen met behulp van een LCD. Sluit het LCD-scherm aan op de HDMI-poort van de Raspberry door middel van een HDMI-naar-VGA-adapter. Als je op afstand toegang wilt tot je Pi, volg dan mijn artikel genaamd "Hoe toegang te krijgen tot de grafische gebruikersinterface (GUI) van Raspberry Pi met behulp van SSH en VNC Viewer?".In dit artikel wordt een gedetailleerde configuratie van Pi met een laptop beschreven en na het inloggen zou je externe toegang tot Pi kunnen krijgen.

Stap 4: zorg ervoor dat de Raspberry Pi up-to-date is

Na het instellen van Raspberry Pi zouden we ervoor zorgen dat onze Pi goed werkt en dat alle nieuwste pakketten erop zijn geïnstalleerd. Open het opdrachtvenster en typ de volgende twee opdrachten om Pi bij te werken.

sudo apt-get update

Dan,

sudo apt-get upgrade

Als er updates zijn geïnstalleerd, drukt u op Y en druk vervolgens op Enter om door te gaan met het downloaden van updates.

Stap 5: De Raspberry Pi-cameramodule inschakelen

We moeten de Raspberry Pi-cameramodule inschakelen voordat we deze kunnen gebruiken. Sluit het opdrachtvenster na het bijwerken van de pakketten en klik op het Raspberry-pictogram in de linkerbovenhoek van het bureaublad. Scroll naar beneden naar de Raspberry Pi-voorkeuren, klik op de optie Interfaces en schakel de Camera vanaf daar.

Het kan ook worden ingeschakeld door de volgende opdracht in het Terminalvenster:

sudo raspi-config

Na het typen van dit commando zullen we zien dat de Raspberry Pi-softwareconfiguratietool wordt geopend en blader omlaag naar Interfacing-opties en druk op Enter.

Een nieuw scherm zal verschijnen en we zouden het Camera bovenaan vermeld. Druk op Enter:

Nadat de camera is ingeschakeld, moet de Pi opnieuw worden opgestart om de wijzigingen door te voeren. We zullen onze Pi opnieuw opstarten voordat we verder gaan en dit kan worden gedaan door de volgende opdracht te typen.

sudo opnieuw opstarten

Stap 6: IP-adres van Pi noteren

We moeten later toegang krijgen tot de webserver voor videostreaming, dus we moeten het IP-adres weten dat aan de Raspberry Pi is toegewezen. Omdat we het IP-adres al hebben ontdekt tijdens het instellen van onze Pi, zullen we het noteren en verder gaan. Er is ook een alternatieve manier om het IP-adres te achterhalen en dat is door de volgende opdracht in het Terminal-venster te typen na het instellen van Wifi op onze Pi.

ifconfig

In mijn geval is het IP-adres dat aan mijn Pi is toegewezen “192.168.1.14“.

Stap 7: De cameramodule aansluiten

Nu zijn we klaar om onze cameramodule op de Pi aan te sluiten, maar voordat u dit doet, moet u er rekening mee houden dat de camera kan worden beschadigd door elektriciteit die wordt geproduceerd via statische ladingen. Voordat u de camera uit de grijze verpakking haalt, moet u ervoor zorgen dat u zichzelf heeft ontladen door wat aardingsmateriaal aan te raken. Schakel tijdens het installeren van de camera de Pi uit en sluit de camera aan op de CSI poort van de Pi en zorg ervoor dat de camera in de juiste richting is gekoppeld met de strook blauwe letters naar boven gericht, zoals weergegeven in de onderstaande afbeelding.

Stap 8: Op zoek naar een geschikt formaat voor webstreaming

Het is een beetje moeilijke taak omdat er geen videoformaten zijn die universeel worden ondersteund door alle webbrowsers. HTTP is in eerste instantie ontworpen om webpagina's te bedienen en sinds de lancering zijn er veel toevoegingen gedaan voor het downloaden van cateringbestanden, live streaming, enz. Daarom zouden we, met het oog op dit probleem, onze video streamen in een eenvoudig formaat genaamd MJPEG. De code die in de volgende stap wordt genoemd, gebruikt de ingebouwde the http.servermodule om videostreaming veel gemakkelijker te maken. Een geschikt formaat met code vind je bij de official Picamera website.

Stap 9: Het script schrijven voor videostreaming

We moeten het script voor videostreaming schrijven en het is te vinden op de officiële PiCamerawebsite. Maak eerst een nieuw bestand met de naamrpi_video_streaming.py door de volgende opdracht in het Terminal-venster te typen:

sudo nano rpi_video_streaming.py

Kopieer na het aanmaken van het bestand de onderstaande code of download de code van hier. Als u de code van de link downloadt, scrolt u naar beneden op de webpagina en controleert u 4.10. Webstreaming een deel.

import io import picamera import logging import socketserver uit threading import Voorwaarde van http import server PAGE = "" "\   picamera MJPEG streaming demo   

PiCamera MJPEG Streaming Demo

"" "class StreamingOutput (object): def __init __ (self): self.frame = Geen self.buffer = io.BytesIO () self.condition = Condition () def schrijven (self, buf): if buf.startwith (b '\ xff \ xd8'): # Nieuw frame, kopieer de inhoud van de bestaande buffer en meld alle # clients dat het beschikbaar is self.buffer.truncate () met self.condition: self.frame = self.buffer.getvalue () self.condition .notify_all () self.buffer.seek (0) retourneer self.buffer.write (buf) class StreamingHandler (server.BaseHTTPRequestHandler): def do_GET (self): if self.path == '/': self.send_response (301 ) self.send_header ('Location', '/index.html') self.end_headers () elif self.path == '/index.html': content = PAGE.encode ('utf-8') self.send_response ( 200) self.send_header('Content-Type', 'text/html') self.send_header('Content-Length', len(content)) self.end_headers() self.wfile.write(content) elif self.path == '/stream.mjpg': self.send_response (200) self.send_header ('Age', 0) self.send_header ('Cache-Control', 'no-cache, private') self.send_header ('P ragma ',' no-cache ') self.send_header (' Content-Type ',' multipart / x-mixed-replace; boundary = FRAME ') self.end_headers () probeer: while True: met output.condition: output.condition.wait () frame = output.frame self.wfile.write (b' - FRAME \ r \ n ') self .send_header ('Content-Type', 'image / jpeg') self.send_header ('Content-Length', len (frame)) self.end_headers () self.wfile.write (frame) self.wfile.write (b '\r\n') behalve uitzondering als e: logging.warning( 'Removed streaming client %s: %s', self.client_address, str(e)) else: self.send_error(404) self.end_headers() class StreamingServer (socketserver.ThreadingMixIn, server.HTTPServer): allow_reuse_address = True daemon_threads = True met picamera.PiCamera (resolutie = '640x480', framerate = 24) als camera: output = StreamingOutput () camera.start_recording (output, format = 'mjpeg ') probeer: adres = ('', 8000) server = StreamingServer(adres, StreamingHandler) server.serve_forever() tenslotte: camera.stop_recording()

Na het plakken van de code in het nieuw aangemaakte bestand, drukt u op Ctrl + X, type Y en druk op Enter.

Stap 10: De videostreaming uitvoeren

Nadat we het script hebben opgeslagen, zullen we het uitvoeren met Python3 door de volgende opdracht te typen:

python3 rpi_video_streaming.py

Na het schrijven van dit commando zal ons script beginnen te draaien en nu hebben we toegang tot onze webserver op http: //:8000. We zullen de browser openen en de link erin plakken en het IP-adres gebruiken dat door de router aan onze Pi is toegewezen. We kunnen naar de videostreaming gaan via onze mobiele telefoon, tablet, enz. Waarop een browser is geïnstalleerd en die is gekoppeld aan een vergelijkbaar netwerk als onze Pi. Ik schreef, “192.168.1.14:8000” voor het uitvoeren van de videostreaming.

Stap 11: de laatste hand leggen

Omdat we onze Pi-camera hebben getest en erachter kwamen dat hij goed werkt, zijn we klaar om hem op een geschikte plaats te installeren. Het kan bij de poort van het huis worden geïnstalleerd, zodat we elke persoon die het huis binnenkomt of verlaat, kunnen volgen. Alles wat we nodig hebben is stroomvoorziening AANonze camera met behulp van de adapter en het zou beter zijn om deze in een behuizing te plaatsen en de camerakant open te laten voor videostreaming.

Toepassingen

  1. Het kan om veiligheidsredenen in huizen worden geïnstalleerd.
  2. Het kan in kantoren worden gebruikt om de beweging van de werknemer te volgen.
  3. Het kan worden geïnstalleerd in winkelcentra, treinstations, enz. En is toegankelijk voor het administratief personeel voor controle en saldo in een specifiek gebied.
Facebook Twitter Google Plus Pinterest