ID.nl logo
Zelfbouw ip-camera in 5 stappen
© Reshift Digital
Zekerheid & gemak

Zelfbouw ip-camera in 5 stappen

Een ip-camera hoeft niet veel te kosten. Met een Raspberry Pi Zero W en cameramodule kun je relatief eenvoudig een goede en bijzonder compacte camera maken, en daarmee bijvoorbeeld een rtsp-streamingserver opzetten. In dit artikel lees je hoe je dat doet, en hoe je de camera vervolgens in Surveillance Station op een Synology- of QNAP-nas kunt gebruiken.

Je kunt in China natuurlijk een spotgoedkope ip-camera met alles erop en eraan kopen, maar ze zijn doorgaans slecht beveiligd en lastig in te stellen. Het is niet direct goedkoper als je het zelf bouwt, maar je bent wel flexibeler en het is bovenal leuk en leerzaam. We gebruiken een Raspberry Pi Zero W (ongeveer 11 euro) samen met de officiële 8megapixel-cameramodule v2 (29,95 euro). Die beschikt over een prima Sony IMX219-sensor. Er is ook een NoIR-variant beschikbaar die een beter beeld geeft bij schemering. Als je die combineert met infrarood-leds heb je ook goede nachtbeelden (in grijswaarden). Wie wat wil besparen kan in China voordelige alternatieven vinden vanaf zo’n 8 euro. Verder heb je een micro-sd-kaart nodig voor de software en een voedingsadapter met micro-usb die bij voorkeur minimaal 1,2 ampère kan leveren.

©PXimport

01 Welke software?

Er zijn veel methodes om te streamen vanaf een Raspberry Pi Zero W. Naast de cameramodule ondersteunen de meeste methodes ook een usb-camera of webcam die je via een usb-on-the-go-kabel op de Pi Zero W aansluit. Welke methode je ook kiest: gezien de vrij beperkte processorkracht is het verstandig de bewegingsdetectie aan de videobewakingssoftware zoals Surveillance Station over te laten. Een bekende optie is motionEyeOS dat een mooie webinterface heeft voor de configuratie van de camera. Een nadeel is de relatief grote vertraging, zelfs met de optie Fast Network Camera waarmee je ook nog veel andere opties kwijt bent. Wij kiezen daarom voor het opzetten van een handmatige stream.

©PXimport

02 Installatie van Raspbian

We beginnen met de installatie van Raspbian Buster Lite. Haal de meest recente versie op. Pak het archief na het downloaden uit en gebruik balenaEtcher om het img-bestand op een micro-sd-kaartje te zetten. Voordat je de Pi opstart met het micro-sd-kaartje voeg je in de root (waar ook onder meer het bestand kernel.img staat) een tekstbestand genaamd wpa_supplicant.conf toe met onderstaande regels. Zet daarin achter ssid de naam van jouw wifi-netwerk en vul achter psk het wachtwoord in. Maak in dezelfde map een leeg bestand genaamd ssh zodat je via een shell kunt inloggen na het starten.

country=NL

update_config=1

ctrl_interface=/var/run/wpa_supplicant

network={

scan_ssid=1

ssid="jouwssid"

psk="jouwwachtwoord"

}

Nadat de Pi Zero W is gestart, kun je het ip-adres dat door de dhcp-server van je router is toegekend achterhalen via de configuratiepagina’s van de router (als het goed is). Log op dat ip-adres in via ssh met een programma als PuTTY en gebruik de standaard gebruikersnaam pi en het bijbehorende wachtwoord raspberry. Wijzig daarna bij voorkeur die inloggegevens.

©PXimport

03 De rtsp-server installeren

Zorg dat de Pi up-to-date is met de commando’s:

sudo apt-get update

sudo apt-get dist-upgrade

Met sudo raspi-config open je de configuratiepagina van de Pi. Activeer via Interfacing Options de cameramodule. De video-for-linux-kerneldriver activeer je met:

sudo modprobe bcm2835-v4l2

Controleer dat je een /dev/video0 hebt met:

sudo ls -la /dev/vid*

Installeer de tools git en cmake met:

sudo apt install git cmake

Hierna kun je met de volgende opdrachten de rtsp-server compileren en beschikbaar maken, die onder meer h.264 ondersteunt:

git clone https://github.com/mpromonet/v4l2rtspserver.git

cd v4l2rtspserver

cmake .

make

sudo make install

04 De rtsp-stream starten

Je start bijvoorbeeld een stream starten vanuit de map v4l2rtspserver met:

./v4l2rtspserver -F 10 -W 1920 -H 1080

Na het starten van de rtsp-server kun je eventuele foutmeldingen aflezen en een link naar de stream in de vorm rtsp://ipadres:8554/unicast. Die kun je gebruiken in bijvoorbeeld VLC player om verbinding met de camera te maken, maar ook in Surveillance Station zoals we verderop laten zien. Met de optie -U gebruiker:wachtwoord geef je een gebruiker en wachtwoord op om de stream af te schermen. De link naar de rtsp-stream krijgt in dat geval de vorm rtsp://gebruiker:wachtwoord@ipadres:8554/unicast. Netjes is dat de processorbelasting zeer beperkt blijft, de gpu doet het meeste werk.

05 Server automatisch opstarten

We willen dat de rtsp-server automatisch wordt gestart na het aanzetten van de Pi. Maak hiervoor een eenvoudig script met:

sudo nano /etc/systemd/system/v4l2rtspserver.service

Hierin komen de volgende regels:

[Unit]

Description=v4l2rtspserver rtsp-server

After=network.target

[Service]

ExecStartPre=/usr/bin/v4l2-ctl --set-ctrl vertical_flip=1

ExecStartPre=/usr/bin/v4l2-ctl --set-ctrl h264_i_frame_period=5

ExecStart=/home/pi/v4l2rtspserver/ v4l2rtspserver -F 10 -W 1280 -H 720

ExecReload=/bin/kill -HUP $MAINPID

Type=simple

User=pi

Group=video

Restart=always

[Install]

WantedBy=multi-user.target

Controleer achter ExecStart de locatie van v4l2rtspserver. Er staan enkele opties in waarmee je kunt experimenteren (zoals vertical_flip voor rotatie van het beeld). Maak het script actief met:

sudo systemctl enable v4l2rtspserver

En start het script met:

sudo systemctl start v4l2rtspserver

©PXimport

Camerabeeld toevoegen aan Surveillance Station

Het camerabeeld kun je eenvoudig in Surveillance Station gebruiken door handmatig een camera op te geven. Bij deze software blijkt de vertraging van het beeld behoorlijk beperkt. Waar dat bij VLC player ongeveer twee seconden is, is de vertraging in Surveillance Station maar ongeveer een seconde. Dat lijkt vrij veel maar veel andere methodes voor het streamen vanaf een Raspberry Pi hebben vaak een nog grotere vertraging van wel vier seconden of meer.

©PXimport

▼ Volgende artikel
Waarom je tv-beeld onnatuurlijk oogt (en hoe je dat oplost)
© DC Studio
Huis

Waarom je tv-beeld onnatuurlijk oogt (en hoe je dat oplost)

Je hebt net een klein fortuin uitgegeven aan een gloednieuwe 4K- of zelfs 8K-televisie. Je installeert hem, start je favoriete filmklassieker en zakt onderuit op de bank. Maar in plaats van een bioscoopervaring bekruipt je het gevoel dat je naar een goedkope soapserie of een homevideo zit te kijken. De acteurs bewegen vreemd soepel, de actiescènes lijken versneld en de magie is ver te zoeken. Geen zorgen, je televisie is niet stuk. Hij doet eigenlijk iets te goed zijn best.

Dit fenomeen is zo wijdverspreid dat er een officiële term voor is: het 'soap opera effect'. In technische kringen wordt dit ook wel bewegingsinterpolatie of 'motion smoothing' genoemd. Hoewel fabrikanten deze functie met de beste bedoelingen in hun televisies bouwen, is het voor filmfanaten vaak een doorn in het oog. Gelukkig is het eenvoudig op te lossen... als je tenminste weet waar je moet zoeken.

Nooit meer te veel betalen? Check
Kieskeurig.nl/prijsdalers!

Wat is het 'soap opera effect' precies?

Om te begrijpen wat er misgaat, moeten we kijken naar hoe films worden gemaakt. De meeste bioscoopfilms en veel dramaseries worden opgenomen met 24 beelden per seconde. Die snelheid geeft films hun karakteristieke, dromerige uitstraling. Een beetje bewegingsonscherpte hoort daarbij; dat is wat onze hersenen associëren met 'cinema'. Moderne televisies verversen hun beeld echter veel vaker: meestal 60 of zelfs 120 keer per seconde.

Om dat verschil te overbruggen, verzint je slimme televisie er zelf beelden bij. De software kijkt naar beeld A en beeld B, en berekent vervolgens hoe een tussenliggend beeld eruit zou moeten zien. Dit voegt de tv toe aan de stroom. Het resultaat is een supervloeiend beeld waarin elke hapering is gladgestreken.

Voor een voetbalwedstrijd of een live-uitzending is dat geweldig, omdat je de bal en spelers scherper kunt volgen. Maar bij een film zorgt die kunstmatige soepelheid ervoor dat het lijkt alsof je naar een achter de schermen-video zit te kijken, of dus naar een soapserie zoals Goede Tijden, Slechte Tijden, die traditioneel met een hogere beeldsnelheid werd opgenomen. De filmische illusie wordt hierdoor verbroken.

©ER | ID.nl

De winkelmodus is ook een boosdoener

Naast beweging is er nog een reden waarom het beeld er thuis soms onnatuurlijk uitziet: de beeldinstellingen staan nog op standje zonnebank. Veel televisies staan standaard in een modus die 'Levendig' of 'Dynamisch' heet. Deze stand is ontworpen om in een felverlichte winkel de aandacht te trekken met knallende, bijna neon-achtige kleuren en een extreem hoge helderheid. Bovendien is de kleurtemperatuur vaak nogal koel en blauw, omdat dat witter en frisser oogt onder tl-licht. In je sfeervol verlichte woonkamer zorgt dat echter voor een onrustig beeld waarbij huidtinten er onnatuurlijk uitzien en details in felle vlakken verloren gaan.

Hoe krijg je de magie terug?

Het goede nieuws is dat je deze 'verbeteringen' gewoon kunt uitzetten. De snelste manier om van het soap opera effect en de neonkleuren af te komen, is door in het menu van je televisie de beeldmodus te wijzigen. Zoek naar een instelling die Film, Movie, Cinema of Bioscoop heet. In deze modus worden de meeste kunstmatige bewerkingen, zoals bewegingsinterpolatie en overdreven kleurversterking, direct uitgeschakeld of geminimaliseerd. Het beeld wordt misschien iets donkerder en warmer van kleur, maar dat is veel dichter bij wat de regisseur voor ogen had.

Sinds kort hebben veel moderne televisies ook de zogeheten Filmmaker-modus. Dat is de heilige graal voor puristen. Als je deze modus activeert, zet de tv met één druk op de knop alle onnodige nabewerkingen uit en respecteert hij de originele beeldsnelheid, kleuren en beeldverhouding van de film.

Wil je de beeldmodus niet volledig veranderen, maar alleen dat vreemde, soepele effect kwijt? Dan moet je in de geavanceerde instellingen duiken. Elke fabrikant geeft het beestje een andere naam. Bij Samsung zoek je naar Auto Motion Plus of Picture Clarity, bij LG-televisies ga je naar TruMotion, bij Sony naar Motionflow en bij Philips naar Perfect Natural Motion. Door deze functies uit te schakelen of op de laagste stand te zetten, verdwijnt het goedkope video-effect en krijgt je film zijn bioscoopwaardige uitstraling weer terug.

▼ Volgende artikel
Chrome Remote Desktop: ideaal voor ondersteuning op afstand
© ER | ID.nl
Huis

Chrome Remote Desktop: ideaal voor ondersteuning op afstand

Een apparaat op afstand bedienen hoeft geen geld te kosten en is verrassend eenvoudig. Of je nu bestanden wilt openen, technische problemen wilt oplossen of meerdere toestellen wilt beheren: met Chrome Remote Desktop kan het allemaal, gratis en zonder gedoe.

De helper begint

Een groot voordeel van Chrome Remote Desktop is de brede compatibiliteit: het werkt met Windows, macOS, Linux en ChromeOS. Bovendien is het veilig – verbindingen worden versleuteld – en je hebt alleen een Chrome-browser nodig. We beginnen aan de kant van degene die op afstand toegang wilt tot een andere computer, degene die ondersteuning biedt vanaf computer A. Op computer A opent de gebruiker Chrome en surft naar https://remotedesktop.google.com. Daar verschijnen twee opties: Dit scherm delen en Verbinding maken met een andere computer. Omdat computer A support wil geven aan een extern apparaat, kiest de gebruiker voor de tweede optie. In dat scherm verschijnt een veld om een toegangscode in te geven, de code volgt zo meteen.

Degene die support geeft, gebruikt het onderste vak.

Acties voor de hulpvrager

Op computer B, de computer die toegang zal verlenen, moet de gebruiker ook in Chrome surfen naar dezelfde website. Daar kiest hij voor de optie Dit scherm delen. Voordat dat mogelijk is, moet Chrome Remote Desktop eerst worden gedownload en geïnstalleerd. De gebruiker klikt daarvoor op de ronde blauwe knop met het witte downloadpijltje. Hiermee wordt een Chrome-extensie geïnstalleerd. Na de installatie verschijnt in het vak Dit scherm delen een blauwe knop met de tekst Code genereren. Wanneer de gebruiker daarop klikt, wordt een toegangscode van 12 cijfers aangemaakt. Die code geeft hij of zij door aan gebruiker A.

Wie support krijgt, moet de code via een berichtje of telefoontje doorgeven.

Scherm delen

Op computer A geeft de gebruiker de code op in Chrome Remote Desktop. Vervolgens wacht hij tot gebruiker B bevestigt dat A toegang mag krijgen tot zijn scherm. Zodra dat is gebeurd, verschijnt het volledige bureaublad van computer B in een nieuw Chrome-venster op computer A. Door dit venster schermvullend weer te geven, kan A probleemloos handelingen uitvoeren op de pc van B. Voor de veiligheid beschikken beide gebruikers over een knop om de sessie op elk moment te beëindigen. Uiteraard is een stabiele internetverbinding noodzakelijk. Daarnaast krijgen beide partijen de melding dat ze klembordsynchronisatie kunnen inschakelen. Hiermee wordt het mogelijk om eenvoudig tekst of bestanden te kopiëren en te plakken tussen beide apparaten.

Gebruiker A krijgt het volledige scherm van B in een Chrome-venster te zien.