Eerder beschreef ik een oplossing om met een hardware recorder op te nemen. Maar als je nu toch al de mogelijkheid hebt om te streamen. Dan kun je ook je stream naar een Rapsberry Pi sturen. De Raspberry Pi kun je zo configureren dat deze lokaal opneemt en de stream door stuurt naar 1 of meer streaming services. Dat laatste noemen we restreaming. Dit heeft verschillende voordelen. Zo kun je bijvoorbeeld omdat je naar de Pi streamt ook intern die stream weer oppakken om te bekijken, bijvoorbeeld in een andere ruimte op een groot scherm.

Stream opnemen met Raspberry Pi

Voor het ontvangen en versturen van streams met een Raspberry Pi moeten er 2 pakketjes worden geïnstalleerd. Nginx en libnginx-mod-rtmp. Als we vervolgens nginx.conf voorzien van een stukje configuratie:

rtmp {
        server {
                listen 1935;
                chunk_size 4096;
                application live {
                        live on;
                        record off;
                }
        }
}

Is de Pi gereed om de stream te ontvangen. Geef als stream locatie in: rtmp://[IP Address PI]/live/[user1]. Er zijn ook mogelijkheden om dit weer met passwords te beveiligen maar dat gaat voor deze post te ver.

De stream opnemen

Zoals je hierboven duidelijk ziet word de stream nu nog niet opgenomen. (record off) Om het opnemen wel te activeren, maken we daarvan record all; Nu kun je je stream opnemen met Raspberry Pi en moeten we een path opgeven voor de opname. Daarvoor voegen we direct onder record all; een regel toe: record_path /tmp/rec; (of een andere locatie naar wens) Op https://github.com/arut/nginx-rtmp-module/wiki/Directives vindt je nog veel meer mogelijke instellingen. Als we diezelfde stream nu door willen sturen naar YouTube voegen we daaronder nog een regel toe:
push rtmp://a.rtmp.youtube.com/live2/[stream key]; En daar komt de verrassing, we kunnen meerdere push regels toevoegen.

De stream weer direct bekijken

In de configuratie hierboven zien we ook live on; staan, dat zorgt er voor dat we de stream ook weer kunnen bekijken door bijvoorbeeld VLC player met de Raspberry Pi te verbinden. Je kiest voor netwerk stream openen en voor daar in: rtmp://[IPADRES PI]/live/[user1]. Nu kijk je over je interne netwerk mee met de stream. Als je nu ook nog in de gelegenheid bent om wat poorten op de router te forwarden zou je de stream zelfs extern bekijken. Bedenk dan echter wel dat je upstream de beperkende factor is.

Andere uitdaging?

Heb je een andere uitdaging waarover je mijn advies wilt? Neem gerust contact met op ik denk graag met je mee.