ID.nl logo
Huis

Video streamen met Raspberry Pi Camera Module

In een eerder artikel vertelden we je over de mogelijkheden van de Camera Module voor de Raspberry Pi. In dit vervolg leggen we uit hoe je een videostream opzet.

Lees hier eerst hoe je de Raspverry Pi Camera Module installeert.

We gaan de Pi Zero W ‘headless’ gebruiken (wat in dit geval betekent: zonder grafische gebruikersinterface) met inlog via ssh. Begin met het flashen van de micro-sd-kaart met bijvoorbeeld Etcher, beschikbaar voor Windows, macOS en Linux. Hierin kun je direct het zip-bestand kiezen als bron. Haal de laatste versie van Jessie op uit het archief.

Haal na het flashen de kaartlezer even los zodat de kaart wordt herkend. Negeer meldingen over het formatteren van de kaart. De bootpartitie is toegankelijk en bevat onder meer het bestand kernel.img. Voeg hier twee bestandjes aan toe: een leeg bestand genaamd ssh (zodat direct na het booten ssh-toegang mogelijk is) en een tekstbestand genaamd wpa_supplicant.conf met de netwerkinstellingen (zodat verbinding met wifi wordt gemaakt). Het bestand wpa_supplicant.conf ziet eruit zoals hieronder. Bij wifinaam voer je de ssid van je wifi-netwerk in en bij wachtwoord het bijbehorende wachtwoord.

country=NL ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 network={ ssid="wifinaam" scan_ssid=1 psk="wachtwoord" }

Als de instellingen correct zijn, vind je na het booten het ip-adres van de Pi terug in de verbindingslijst van je router, de mobiele app Fing of via het Windows-programma Advanced IP Scanner. Als het niet werkt, kun je altijd een nieuw wpa_supplicant.conf-bestand maken en de Pi herstarten. Log nu in via ssh op dit ip-adres, met een programma zoals PuTTY. De standaard gebruikersnaam is pi met het wachtwoord raspberry.

Updaten en foto's maken

Zorg eerst dat de software up-to-date is met deze twee commando’s:

sudo apt-get update sudo apt-get dist-upgrade

Verder hoef je wat configuratie betreft maar één stap te doorlopen: open de configuratietool van de Pi met

sudo raspi-config

Activeer de camera onder Interfacing Options. Zorg ook dat onder Localisation Options de juiste tijdzone is geselecteerd. Ga naar Finish en herstart de Pi.

©PXimport

Je kunt al direct een foto maken vanaf de opdrachtprompt met de opdracht

opdracht raspistill -o beeld.jpg

Handige parameters zijn bijvoorbeeld -vf en/of -hf om het beeld respectievelijk verticaal en horizontaal te draaien. Om alle opties te zien, voer je alleen het commando raspistill uit. Met de tool kun je ook een time-lapse maken. Met onderstaande opdracht wordt gedurende 30 seconden (30.000 ms) iedere twee seconden (2.000 ms) een foto gemaakt:

raspistill -t 30000 -tl 2000 -o foto%04d.jpg

De %04d in de bestandsnaam zorgt er voor dat de losse foto’s worden genummerd (met 4 cijfers). Er bestaan diverse tools om van de foto’s een time-lapse video te maken. De Pi zelf is daar wat traag voor. Handiger is een Windows-programma als zoals Time-Lapse Tool of VirtualDub. Die laatste is gratis, maar minder gebruiksvriendelijk. Ook een tool om video te maken is aanwezig: met de opdracht

raspivid -o video.h264

h264 maak je een vijf seconden durende video. De tijd in milliseconden geef je aan met parameter -t. Voor een minuut is dat -t 60000.

Videostream voor Camera Module opzetten

Je kunt ook vrij simpel een videostream opzetten. Een aardige optie is cvlc, een ‘kale’ versie van de videospeler VLC. Je moet helaas wel het complete pakket installeren met de opdracht

sudo apt-get install vlc

De onderstaande opdracht start een rtsp-stream (real time streaming protocol) met 800 × 600 pixels en 25 frames per seconde.

raspivid -o - -t 0 -w 800 -h 600 -fps 25 -b 250000 | cvlc -vvv stream:///dev/stdin --sout '#rtp{access=udp,sdp=rtsp://:8554/stream}' :demux=h264

In bijvoorbeeld VLC onder Windows kun je de rtsp-stream openen via Media / Netwerkstream openen. Geef als adres rtsp://ip-adres:8554/stream op waarbij je ip-adres vervangt door het ip-adres van de Pi. De rtsp-stream kun je ook openen in bijvoorbeeld Surveillance Station (vanaf versie 7.1 bèta) op een nas van Synology.

Hoewel VLC een goed hulpmiddel is, blijkt de vertraging relatief groot door het bufferen. De minste vertraging krijg je met GStreamer, maar het vereist een script op zowel de server als client en werkt vooral efficiënt tussen de Pi en Linux of Mac. Een goed alternatief is mjpg-streamer, waarvoor een verbeterde doch experimentele versie op GitHub is te vinden. Instructies om de tool te compileren vind je er ook. Nadat je het streamen hebt gestart, krijg je in een browser een welkomstpagina te zien met linkjes naar de stream.

UV4L met WebRTC

Een nog mooier alternatief is de Userspace Video4Linux2 (UV4L) streamingserver met de WebRTC-uitbreiding, die sinds april ook beschikbaar is voor de Pi Zero (W). Daarmee kun je multimedia rechtstreeks naar een browser streamen. De installatie vergt iets meer stappen. Begin met het toevoegen van de bron met:

curl http://www.linux-projects.org/listing/uv4l_repo/lrkey.asc | sudo apt-key add –

Voeg met teksteditor nano via het commando

sudo nano /etc/apt/sources.list

de volgende regel toe aan de sources:

deb http://www.linux-projects.org/listing/uv4l_repo/raspbian/ jessie main

Bewaar de aanpassingen met Ctrl+O en verlaat nano met Ctrl+X. Werk de bronnen bij met

sudo apt-get update

en installeer UV4L samen met de driver voor de cameramodule en een servicescript met:

sudo apt-get install uv4l uv4l-raspicam uv4l-raspicam-extras

Start de service vervolgens met

sudo service uv4l_raspicam start

Je kunt ook opdrachten als restart, stop en status geven. Installeer vervolgens de streaming server met:

sudo apt-get install uv4l-server uv4l-uvc uv4l-xscreen uv4l-mjpegstream uv4l-dummy uv4l-raspidisp

De uitbreiding WebRTC voor de Raspberry Pi 1, Pi Zero en Pi Zero W installeer je met:

sudo apt-get install uv4l-webrtc-armv6

Voor een ander model Raspberry zoals de Pi 2 of 3 is dat:

sudo apt-get install uv4l-webrtc

En streamen maar!

Heb je alles geïnstalleerd, dan kun je de streamingserver starten via de volgende opdracht:

sudo uv4l -nopreview --auto-video_nr --driver raspicam --encoding h264 --width 640 --height 480 --framerate 20 --server-option '--port=9090' --server-option '--max-queued-connections=30' --server-option '--max-streams=25' --server-option '--max-threads=29'

Achter encoding kun je eventueel h264 vervangen door jpeg. Resolutie en framerate kun je naar wens aanpassen. Stop altijd eerst het huidige proces met

sudo pkill uv4l

voordat je een nieuwe stream start. Een stream kun je direct met bijvoorbeeld Firefox of Chrome bekijken door te browsen naar http://ip-adres:9090/stream waarbij je ip-adres vervangt door het ip-adres van de Pi. Een welkomstpagina vind je op http://ip-adres:9090. Optioneel kun je ook audio meesturen, zelfs audio en video in twee richtingen behoort tot de mogelijkheden.

▼ Volgende artikel
Waar voor je geld: 5 betaalbare all-in-one-printers met scanfunctie
© MG | ID.nl
Huis

Waar voor je geld: 5 betaalbare all-in-one-printers met scanfunctie

Heb je een kantoorbaan en werk je ook veel thuis? Dan loop je vast wel eens tegen het probleem aan dat je een document wil afdrukken of iets belangrijks moet inscannen of kopiëren, maar dat je dan weer moet wachten tot je op kantoor bent. Waarom niet gewoon thuis alles doen? Met een betaalbare all-in-one-printer met scanfunctie doe je alles vanuit je eigen werkkamer. Handig voor iedereen in huis.

Canon PIXMA TS3750i

Met de Canon PIXMA TS3750i haal je een inkjet all-in-one-printer in huis die printen, kopiëren en scannen combineert in één apparaat. Het is een kleureninkjet met een maximale printresolutie van 4800 x 1200 dpi en A4 als grootste papierformaat. Je legt papier in één papierlade met een capaciteit van 90 vellen, waarbij de invoer handmatig gebeurt. De printer ondersteunt standaard A4-papier en print zwart tot ongeveer 7 ipm en kleur tot 4 ipm. De scanner is een flatbed-type zonder automatische documentinvoer; je legt dus losse pagina’s op de glasplaat en scant enkelzijdig.

De verbinding met je netwerk verloopt via wifi, waardoor je via een laptop maar ook een tablet of telefoon kunt printen. De printer werkt uiteraard goed met Windows- en macOS-systemen en hij is compatibel met mobiele besturingssystemen als iOS en Android.

De TS3750i gebruikt twee cartridges (zwart en kleur) maar vier inkten, waarbij de kleuren in één gecombineerde kleurcartridge zitten.

HP DeskJet 2921

De HP DeskJet 2921 is een thermische inkjet-all-in-one die speciaal bedoeld is voor thuisgebruik. Je hebt één apparaat dat kan printen, kopiëren en scannen; de scanner is een flatbedscanner zonder automatische documentinvoer. De printtechniek gebruikt twee cartridges: een zwarte en een driekleurencartridge. De kleurfunctie is beschikbaar voor zowel printen als kopiëren. De papierlade biedt ruimte aan 60 vellen normaal papier en ondersteunt DL-enveloppen.

Als draadloze all-in-one-printer kan deze DeskJet via wifi op je netwerk worden aangesloten, maar het is ook mogelijk om de printer via een usb-kabel rechtstreeks met een computer aan te verbinden. De printsnelheid bij dit model is rond de 7 pagina's in zwart en 5,5 pagina's per minuut in kleur. Automatisch dubbelzijdig afdrukken wordt niet ondersteund.

Epson Expression Home XP-2200

Bij de Epson Expression Home XP-2200 draait het om een compacte kleureninkjet waarmee je zowel kunt printen als scannen en kopiëren. De printer werkt met vier afzonderlijke inkten en heeft een maximale printresolutie van 4800 x 1200 dpi. De maximale papiermaat is A4 en de papierlade kan 50 vellen bevatten. Printen gebeurt via een handmatige papierinvoer, zonder extra lade.

De XP-2200 heeft een flatbed-scanner zonder automatische documentinvoer; dubbelzijdig scannen wordt niet automatisch ondersteund. Op printsnelheid scoort dit model tot 27 pagina’s per minuut in zwart en tot 15 pagina’s per minuut in kleur in de snelste modus. Verbinden gaat via usb of draadloos via wifi. Via een fysieke WPS-knop maak je eenvoudig verbinding.

Epson Expression Home XP-3200

De Epson Expression Home XP-3200 is een all-in-one-printer met iets meer mogelijkheden aan de bedieningskant. De inkjet is voorzien van een 1,44-inch lcd-scherm en kan dubbelzijdig printen. De maximale afdrukresolutie is 5760 x 1440 dpi. Het apparaat ondersteunt diverse papierformaten tot en met A4 en ook verschillende envelop- en fotopapierformaten accepteert de printer.

De geïntegreerde flatbed-scanner haalt een optische scanresolutie van 1200 x 2400 dpi, met 48-bit kleurdiepte bij de invoer en 24-bit bij de uitvoer. De XP-3200 gebruikt vier losse cartridges en heeft een papierlade voor standaard papier; randloos printen behoort ook tot de mogelijkheden. De printsnelheid ligt rond de 10 pagina’s per minuut in zwart en 5 in kleur. Voor verbinding met je netwerk is wifi aanwezig, plus usb voor directe koppeling. Apple AirPrint wordt ondersteund.

HP Smart Tank 5108 - Multifunctionele printer

De HP Smart Tank 5108 is een inkjet all-in-one met navulbare inkttanks in plaats van losse cartridges. De printer kan scannen en kopiëren. De papierlade heeft volgens de gegevens plaats voor 100 vellen en ondersteunt verschillende formaten, met een formaatbereik tot ongeveer 215,9 x 355,6 mm.

Bij de printspecificaties wordt een snelheid van ongeveer 12 pagina’s per minuut in zwart en 5 in kleur genoemd en automatisch dubbelzijdig afdrukken is eveneens mogelijk. De scanner is een flatbedscanner en ondersteunt enkelzijdige scans; automatische documentinvoer en automatisch dubbelzijdig scannen zijn niet aanwezig. De verbinding met netwerk gaat via wifi en je kunt de printer direct via usb aansluiten.

▼ Volgende artikel
PlayStation State of Play: hier kijk je vanavond om 23:00 uur
Huis

PlayStation State of Play: hier kijk je vanavond om 23:00 uur

Sony PlayStation zendt aanstaande donderdagavond om 23:00 uur Nederlandse tijd een nieuwe State of Play-livestream uit. Martin, Simon en Jacco kijken live met je mee!

Er gingen al geruchten over de komst van de State of Play, en die blijken nu dus te kloppen. Nate the Hate, de insider die wel vaker de komst van aan games gerelateerde presentaties op voorhand lekt, claimde dat onlangs namelijk al.

Op PlayStation Blog schrijft Sony dat de presentatie meer dan zestig minuten beslaat en "nieuws, gameplay-updates en aankondigingen van gamestudio's verspreid over de wereld" bevat voor aankomende PlayStation 5-games. Daarbij zullen er zowel games van PlayStation Studios zelf als andere bedrijven de revue passeren.

Zoals gezegd wordt de State of Play op donderdag 12 februari om 23:00 uur Nederlandse tijd uitgezonden, en zal deze te zien zijn via YouTube en Twitch. De presentatie zal ook hieronder te zien zijn zodra hij begint. Uiteraard streamen we de presentatie ook op Twitch, YouTube en TikTok!

Over de precieze inhoud van de State of Play-presentatie is nog niets bekend. Wel is het opvallend dat de presentatie meer dan een uur duurt, wat het een van de langste State of Play-presentaties tot dusver maakt.

Watch on YouTube

Wat is er te zien in de nieuwe State of Play?

Sony brengt dit jaar in ieder geval Saros, Marathon en Marvel's Wolverine uit, maar van die laatste is inmiddels bevestigd dat de game in de lente van dit jaar een update krijgt.

Verder werd vorige week een nieuwe Horizon-game met een focus op multiplayergameplay aangekondigd, genaamd Horizon Hunters Gathering. We weten ook dat The Last of Us-ontwikkelaar Naughty Dog aan hun nieuwe game Intergalactic: The Heretic Prophet werkt, en volgens geruchten wordt er bij PlayStation Studios ook een nieuwe God of War-game ontwikkeld met metroidvania-elementen.

Andere titels die vermoedelijk voorbijkomen zijn: Resident Evil Requiem, Helldivers 2, Marvel Tokon: Fighting Souls, Ace Combat 8, Marathon en Phantom Blade Zero.

Kunnen we dan helemaal geen verrassingen verwachten? Volgens geruchten werkt Sony Santa Monica al een tijdje aan een tweedimensionale God of War-game met Kratos' broer Deimos in de hoofdrol, en vermoed wordt dat deze eindelijk wordt aangekondigd. Sowieso zijn er veel God of War-geruchten: ook zou er gewerkt worden aan een heruitgave van de eerste drie delen en spin-off met personages Atreus in de hoofrol.