DLNA Mediaserver
Streaming media zijn media die rechtstreeks via computernetwerken (zoals het internet) worden gedistribueerd. Het proces wordt streamen genoemd en wordt gebruikt bij het webcasten en is een populaire distributiemethode bij het op verzoek bekijken van webvideo's. Tijdens het streamen wordt continu een gedeelte van de data in een buffer geplaatst, opdat een programma dit kan afspelen. Hierdoor kunnen de ontvangen media (video en audio) direct geconsumeerd worden zonder dat de gehele uitzending gedownload is.
Het UPnP-AV-protocol is specifiek ontworpen om multimediabestanden (audio, video en afbeeldingen) te streamen. Het wordt door heel wat apparaten ondersteund: AV-receivers, smart tv's, smartphones, enz.
Om bestanden via UPnP te streamen vanaf een Raspberry Pi moet je een zogenaamde UPnP media server installeren. Op Wikipedia vind je een ellenlange lijst van dergelijke software. Beperken we ons tot software die nog actief ontwikkeld wordt, geen al te hoge systeemeisen stelt en eenvoudig te installeren is, dan blijft er heel wat minder keuze over! ReadyMedia - het vroegere MiniDLNA - wordt door Netgear ontwikkeld voor gebruik in zijn ReadyNAS-apparaten. Dat biedt verschillende voordelen:
- de kans is klein dat de ontwikkeling plots stilvalt
- het wordt getest op erg uiteenlopende apparaten. Uit de Changelog blijkt dat compatibiliteitsproblemen met bepaalde apparaten geregeld worden opgelost;
- het heeft bescheiden systeemvereisten, aangezien het ook moet draaien op de minder krachtige hardware van een NAS.
Nadelen zijn er natuurlijk ook. Zo kan ReadyMedia geen mediabestanden on-the-fly transcoderen naar een ander formaat. Transcoding is erg handig als de UPnP-client het formaat van het bronbestand niet ondersteunt. Bijvoorbeeld: de mediaserver bevat een muziekcollectie in FLAC-formaat en een bepaalt apparaat speelt enkel MP3- en WAV-bestanden af. Een transcoding media server zet in dit geval het FLAC-bestand om in WAV-formaat zonder dat de client daar iets van merkt. Maar het transcoderen - met name van videobestanden - is erg processor-intensief. Dat is wellicht geen probleem als je ReadyMedia op je desktop of laptop installeert. Maar wil je die apparaten steeds inschakelen om een film te streamen naar je mediacenter? Het is veel handiger om een Raspberry Pi in je meterkast te installeren. De Pi gebruikt zo weinig stroom dat je ze probleemloos dag en nacht kan laten draaien. Sluit er een externe schijf op aan en je hebt je eigen homeserver om je mediacollectie te bewaren.
Zolang je geen video wilt transcoderen, is een Pi dus prima geschikt als UPnP-AV media server. Ga dus na welke audio- en videoformaten er allemaal in je mediacollectie aanwezig zijn. Controleer meteen of die formaten ook ondersteund worden door Kodi en eventueel andere apparaten waarop je ze wilt afspelen. Zitten er bepaalde bestanden tussen die niet afgespeeld kunnen worden? Converteer ze dan éénmalig naar een ondersteund formaat met applicaties zoals Handbrake (voor video) of LameXP (voor audio). Zo vermijd je onaangename verrassingen achteraf.
Installatie
Om de DLNA-server straks te testen zorgen we voor mediabestanden op de Raspberry Pi. Natuurlijk kan je zelf voor multimedia zorgen, maar wie wat testmateriaal nodig heeft, kan dlna.zip downloaden en uitpakken. Met Filezilla (of een andere SFTP client) kopieer je de albums Marcin Szczepankiewicz - Moonlight Piano en Celadon Candy - Celadonia naar de map Music in de thuismap van de gebruiker op de Raspberry Pi. De map Nature Wonders kopieer je naar de map Pictures in de thuismap van de gebruiker op de Raspberry Pi. En de bestanden Terrestrial Wonders Time Lapse.mkv en Nature Time Lapse.mp4 kopieer je naar de map Videos in de thuismap van de gebruiker op de Raspberry Pi.
Eerst de obligate update-upgrade opdracht:
pi@raspberrypi:~ $ sudo apt update && sudo apt upgrade -y
Geraakt:1 http://deb.debian.org/debian bookworm InRelease
Geraakt:2 http://deb.debian.org/debian-security bookworm-security InRelease
Geraakt:3 http://deb.debian.org/debian bookworm-updates InRelease
Geraakt:4 http://archive.raspberrypi.com/debian bookworm InRelease
Pakketlijsten worden ingelezen... Klaar
Boom van vereisten wordt opgebouwd... Klaar
De statusinformatie wordt gelezen... Klaar
Alle pakketten zijn up-to-date.
Pakketlijsten worden ingelezen... Klaar
Boom van vereisten wordt opgebouwd... Klaar
De statusinformatie wordt gelezen... Klaar
Opwaardering wordt doorgerekend... Klaar
0 opgewaardeerd, 0 nieuw geïnstalleerd, 0 te verwijderen en 0 niet opgewaardeerd.
Raspberry Pi OS biedt ReadyMedia via hun eigen softwarebronnen (repositories) aan. Het pakket gebruikt echter wel nog de oude naam minidlna:
pi@raspberrypi:~ $ sudo apt install minidlna
Pakketlijsten worden ingelezen... Klaar
Boom van vereisten wordt opgebouwd... Klaar
De statusinformatie wordt gelezen... Klaar
De volgende NIEUWE pakketten zullen geïnstalleerd worden:
minidlna
0 opgewaardeerd, 1 nieuw geïnstalleerd, 0 te verwijderen en 0 niet opgewaardeerd.
Er moeten 144 kB aan archieven opgehaald worden.
Na deze bewerking zal er 473 kB extra schijfruimte gebruikt worden.
Ophalen:1 http://deb.debian.org/debian bookworm/main arm64 minidlna arm64 1.3.0+dfsg-2.2+deb12u1 [144 kB]
144 kB opgehaald in 0s (3.170 kB/s)
Voorheen niet geselecteerd pakket minidlna wordt geselecteerd.
(Database wordt ingelezen ... 147804 bestanden en mappen momenteel geïnstalleerd.)
Uitpakken van .../minidlna_1.3.0+dfsg-2.2+deb12u1_arm64.deb wordt voorbereid...
Bezig met uitpakken van minidlna (1.3.0+dfsg-2.2+deb12u1) ...
Instellen van minidlna (1.3.0+dfsg-2.2+deb12u1) ...
Created symlink /etc/systemd/system/multi-user.target.wants/minidlna.service → /lib/systemd/system/minidlna.service.
Bezig met afhandelen van triggers voor man-db (2.11.2-2) ...
Na de installatie staan twee configuratiebestanden klaar om ReadyMedia in te stellen: /etc/default/minidlna en /etc/minidlna.conf. In het eerste bestand hoef je normaal gesproken niets te wijzigen. Het bevat onder andere de gebruikersnaam waaronder ReadyMedia draait (minidlna) en de locatie van het eigenlijk configuratiebestand (/etc/minidlna.conf). Dit bestand zullen we nu stap voor stap aan onze wensen aanpassen. Stop om te beginnen de minidlna-service:
pi@raspberrypi:~ $ sudo systemctl stop minidlna.service
En open vervolgens /etc/minidlna.conf in een teksteditor:
pi@raspberrypi:~ $ sudo nano -B /etc/minidlna.conf
De belangrijkste optie is media_dir. Die bepaalt welke mappen ReadyMedia moet scannen op zoek naar mediabestanden. Standaard staat dit ingesteld op /var/lib/minidlna. Wijzig dit dus naar de locatie van je mediabestanden. Meerdere media_dir-opties opnemen mag ook: bij elke map (directory) kan je zelfs aangeven of die muziek (A), video (V) of afbeeldingen (P) bevat. ReadyMedia zoekt dan enkel naar die specifieke bestandstypes.
# Path to the directory you want scanned for media files.
#
# This option can be specified more than once if you want multiple directories
# scanned.
#
# If you want to restrict a media_dir to a specific content type, you can
# prepend the directory name with a letter representing the type (A, P or V),
# followed by a comma, as so:
# * "A" for audio (eg. media_dir=A,/var/lib/minidlna/music)
# * "P" for pictures (eg. media_dir=P,/var/lib/minidlna/pictures)
# * "V" for video (eg. media_dir=V,/var/lib/minidlna/videos)
# * "PV" for pictures and video (eg. media_dir=PV,/var/lib/minidlna/digital_camera)
media_dir=/var/lib/minidlna
Om de mediabestanden in de gebruikersmap van pi te streamen, vervang je de laatste regel door:
media_dir=A,/home/pi/Music media_dir=P,/home/pi/Pictures media_dir=V,/home/pi/Videos
Sla de aanpassing op en verlaat de teksteditor.
MiniDLNA is beveiligd door te werken met een speciaal aangemaakte gebruiker: minidlna. Maar daardoor kunnen mediabestanden in mappen van andere gebruikers niet gebruikt worden. Om dit mogelijk te maken, moeten we miniDLNA toegang geven tot alle mappen. Dit bereik je door miniDLNA als root gebruiker te starten.
Open het opstartscript /usr/lib/systemd/system/minidlna.service in een teksteditor:
pi@raspberrypi:~ $ sudo nano -B /usr/lib/systemd/system/minidlna.service
Schakel de volgende twee regels uit
User=minidlna Group=minidlna
door er commentaar van te maken (# voor te plaatsen):
#User=minidlna #Group=minidlna
En na het opslaan en verlaten van de teksteditor, brengen we het opstartsysteem op de hoogte van de aanpassing:
pi@raspberrypi:~ $ sudo systemctl daemon-reload
En start je de miniDLNA dienst terug op:
pi@raspberrypi:~ $ sudo systemctl start minidlna.service
De opgegeven mappen moeten door miniDLNA allemaal doorzocht en verwerkt worden, dit kan naargelang de omvang van de te doorzoeken mediabibliotheek een tijd duren.
Als je meerdere mediaservers gebruikt, moeten deze een unieke naam hebben. Zo kan het zinvol zijn voor elk mediatype een aparte mediaserver op te zetten. De ReadyMedia server geef je in zijn configuratiebestand een unieke naam met:
# Name that the DLNA server presents to clients. # Defaults to "hostname: username". friendly_name=miniDLNA
Je kunt de instellingen ook aanpassen terwijl miniDLNA draait. De aanpassingen worden dan pas actief na het herladen van het configuratiebestand in miniDLNA:
pi@raspberrypi:~ $ sudo systemctl reload-or-try-restart minidlna.service
Start een UPnP compatibele mediaspeler zoals VLC (zie de praktijk opdracht Musicbox).
De friendly name van uw Raspberry Pi DLNA server verschijnt in de mediaspeler.
Open jouw Raspberry Pi DLNA apparaat in de mediaspeler en speel wat muziek af, bekijk de video's en wat foto's.
Praktijk opdracht
- Multimedia bestanden (en dat geldt zeker voor video) vreten opslagruimte.
De opslagruimte op een SD-kaart is daardoor snel opgebruikt.
Daarenboven is het veiliger en vooral handiger om de SD-kaart te gebruiken om het systeem op te plaatsen en de multimedia bestanden op een ander apparaat te plaatsen.
In deze oefening maken we gebruik van USB-sticks, maar de methode kan evengoed gebruikt worden met USB schijven met enorme opslagcapaciteiten.
Let wel dat je bij het gebruik van een USB schijf je een aparte voeding nodig hebt:
- Verwijder de muziek in de pi gebruikersmap met:
pi@raspberrypi:~ $
De optie -r (recursief) zorgt dat eventuele mappen en hun inhoud in de map Music verwijderd worden. * betekent dat alleen de inhoud van de map Music en niet de map Music mag verwijderd worden. Als de opdracht niets meldt, verliep alles zoals het hoort, m.a.w. geen nieuws is goed nieuws.rm -r Music/*
- Verwijder op dezelfde manier de inhoud van de map Pictures en Videos.
- Maak op een USB stick drie verschillende mappen: Muziek, Video en Foto's.
- Kopieer de mappen Marcin Szczepankiewicz - Moonlight Piano en Celadon Candy - Celadonia naar de map Muziek
- Kopieer de video's Terrestrial Wonders Time Lapse.mkv en Nature Time Lapse.mp4 naar de map Video.
- Kopieer de map Nature Wonders naar de map Foto's.
- Nu je mediabestanden op de USB-stick staan, verwijder je veilig (belangrijk, zeker als je er juist bestanden hebt opgeplaatst) de USB-stick.
- Plug de USB-stick in de Raspberry Pi.
- Sluit op de Raspberry Pi het venster Verwijderbaar medium is ingebracht. Indien je headless werkt (zonder scherm en toetsenbord) moet je dit natuurlijk niet doen. Dit venster sluiten we alleen omdat het stoort.
- De eigenschappen van de USB-stick geef je weer met:
pi@raspberrypi:~ $
De blkid opdracht toont twee opslagmedia met in totaal drie opslagruimtes (partities). mmcblk0 is de SD-kaart en deze heeft twee partities: p1 voor het opstarten (bootfs) van de Pi en p2 met het Raspberry Pi OS besturingssysteem (rootfs). sda is de USB-stick partitie. Veel USB-sticks hebben in tegenstelling tot USB schijven geen partities (enkel sda). M.a.w. op USB schijven staat minstens één partitie met de naam sda1. Elke schijf wordt gekenmerkt door een uniek nummer, zijn UUID. Bruikbare partities zijn geformatteerd met een bepaald bestandssysteem (TYPE), zo gebruikt de boot partitie van de SD-kaart vfat, het Raspberry Pi OS besturingssysteem ext4 en de USB-stick vfat (of exfat).sudo blkid
/dev/mmcblk0p1: LABEL_FATBOOT="bootfs" LABEL="bootfs" UUID="35DE-9C73" BLOCK_SIZE="512" TYPE="vfat" PARTUUID="38c99ca5-01" /dev/mmcblk0p2: LABEL="rootfs" UUID="2aa5eb08-26a7-434c-a9f9-6ab89ea0f362" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="38c99ca5-02" /dev/sda1: SEC_TYPE="msdos" LABEL="DANY PINOY" UUID="2A56-B4A5" BLOCK_SIZE="512" TYPE="vfat" - Maak een map om de inhoud van de USB-stick beschikbaar te maken:
pi@raspberrypi:~ $
sudo mkdir /media/MediaDrive
- Om de inhoud van de USB-stick in de mappenstructuur van de Raspberry Pi op te nemen, moet je het configuratiebestand verantwoordelijk voor de bestandssystemen aanpassen.
Het /etc/fstab (filesystem table) pas je als systeemgebruiker aan met de nano editor.
pi@raspberrypi:~ $
Voeg de volgende regel toe:sudo nano -B /etc/fstab
UUID=2A56-B4A5 /media/MediaDrive vfat defaults 0 0
Vervang daarbij de UUID door deze van jouw USB-stick. /media/MediaDrive is de map waar de inhoud van de USB-stick tevoorschijn zal komen. vfat is het op jouw USB-stick gebruikte bestandssysteem. Voor de rest worden enkel standaard opties toegepast. Let op: dit configuratiebestand moet eindigen met een lege regel. - Voor de zekerheid testen we de nieuwe configuratie:
pi@raspberrypi:~ $
Geen nieuws is opnieuw goed nieuws, anders pas je /etc/fstab aan tot deze geen fouten meer bevat. Aangezien dit configuratiebestand nodig is bij het opstarten van de Pi, is het belangrijk deze test uit te voeren, anders kan het opstarten afgebroken worden.sudo mount -a
- Herstart de Raspberry Pi met:
pi@raspberrypi:~ $
sudo shutdown -r now
- Bekijk de inhoud van de map met:
pi@raspberrypi:~ $
De -l optie zorgt dat er details (long) zoals rechten, gebruiker, datum en grootte worden weergegeven. Let ook op de schrijfwijze van map- en bestandsnamen waarin spaties voorkomen. De naam met spaties is omringt door aanhalingstekens als teken dat het één geheel vormt.ls -l /media/MediaDrive/
totaal 16 drwxr-xr-x 3 root root 4096 24 jun 15:59 "Foto's" drwxr-xr-x 4 root root 4096 24 jun 16:00 Muziek drwxr-xr-x 2 root root 4096 22 jun 20:36 'System Volume Information' drwxr-xr-x 2 root root 4096 24 jun 15:59 Video - Pas de configuratie van miniDLNA aan zodat de media op de USB-stick gestreamd wordt.
media_dir=A,/media/MediaDrive/Muziek media_dir=P,/media/MediaDrive/Foto's media_dir=V,/media/MediaDrive/Video
- Zorg dat miniDLNA de nieuwe configuratie gebruikt.
- Test op een ander apparaat in een mediaspeler of je de verschillende media kunt afspelen.
Mocht dit niet het geval zijn, stop dan eerst zowel miniDLNA en de mediaspeler en herstart daarna beiden opnieuw op.
Mocht je nog steeds geen media kunnen afspelen, controleer je de werking van miniDLNA met de opdracht:
pi@raspberrypi:~ $
De -l (long) optie zorgt weer voor gedetailleerde uitgebreide informatie.sudo systemctl status -l minidlna.service
● minidlna.service - MiniDLNA lightweight DLNA/UPnP-AV server Loaded: loaded (/lib/systemd/system/minidlna.service; enabled; preset: enabled) Active: active (running) since Mon 2024-06-24 16:14:11 CEST; 7min ago Docs: man:minidlnad(1) man:minidlna.conf(5) Main PID: 2019 (minidlnad) Tasks: 2 (limit: 4444) CPU: 246ms CGroup: /system.slice/minidlna.service └─2019 /usr/sbin/minidlnad -f /etc/minidlna.conf -P /run/minidlna/minidlna.pid -S -r jun 24 16:14:11 raspberrypi systemd[1]: Started minidlna.service - MiniDLNA lightweight DLNA/UPnP-AV server.Om de geschiedenis van de miniDLNA service op te vragen en te volgen, gebruik je de volgende opdracht:
pi@raspberrypi:~ $
Deze opdracht toont de laatste 10 miniDLNA meldingen en blijft de werking van miniDLNA volgen. Je kunt deze opdracht stoppen (afbreken) met de sneltoets Ctrl+c.sudo journalctl -u minidlna.service -f -n 10
jun 24 16:09:32 raspberrypi systemd[1]: Started minidlna.service - MiniDLNA lightweight DLNA/UPnP-AV server. jun 24 16:14:11 raspberrypi systemd[1]: Stopping minidlna.service - MiniDLNA lightweight DLNA/UPnP-AV server... jun 24 16:14:11 raspberrypi systemd[1]: minidlna.service: Deactivated successfully. jun 24 16:14:11 raspberrypi systemd[1]: Stopped minidlna.service - MiniDLNA lightweight DLNA/UPnP-AV server. jun 24 16:14:11 raspberrypi systemd[1]: Started minidlna.service - MiniDLNA lightweight DLNA/UPnP-AV server. ^C - De USB-stick verwijder je veilig met:
pi@raspberrypi:~ $
Of met:sudo umount /dev/sda1
pi@raspberrypi:~ $
In de eerste opdracht is sda1 de systeemnaam van de USB-stick partitie, in de tweede opdracht wordt de map gebruikt met de inhoud van de USB-stick (koppelpunt of mountpoint). Je kunt de Raspberry Pi natuurlijk ook afsluiten en de USB-stick dan verwijderen.sudo umount /media/MediaDrive
- Verwijder in het configuratiebestand /etc/fstab de regel die verantwoordelijk is voor het beschikbaar maken van de inhoud van de USB-stick.
- Test het fstab configuratiebestand op eventuele fouten.
Na het opslaan en verlaten van de teksteditor, brengen we het systeem op de hoogte van de aanpassing:
pi@raspberrypi:~ $
sudo systemctl daemon-reload
- Verwijder de muziek in de pi gebruikersmap met:
- In plaats van een USB schijf kunnen we de multimedia bestanden ook op een apparaat met Windows 11 gedeelde mappen opslaan, denk daarbij aan een NAS.
- Test of jouw NAS door de Raspberry Pi gevonden wordt met:
pi@raspberrypi:~ $
Breek deze opdracht af met de sneltoets Ctrl+c.ping NASnaam.local
PING NASnaam.local (192.168.129.29) 56(84) bytes of data. 64 bytes from 192.168.129.29 (192.168.129.29): icmp_seq=1 ttl=64 time=106 ms 64 bytes from 192.168.129.29 (192.168.129.29): icmp_seq=2 ttl=64 time=25.4 ms 64 bytes from 192.168.129.29 (192.168.129.29): icmp_seq=3 ttl=64 time=38.9 ms 64 bytes from 192.168.129.29 (192.168.129.29): icmp_seq=4 ttl=64 time=70.7 ms 64 bytes from 192.168.129.29 (192.168.129.29): icmp_seq=5 ttl=64 time=84.1 ms ^C --- NASnaam.local ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 4004ms rtt min/avg/max/mdev = 25.423/64.993/105.894/29.377 ms - We hebben toegang tot onze NAS, de gedeelde map met multimedia bestanden is bijvoorbeeld Media die openbaar toegankelijk, dus voor iedereen (zonder gebruikersnaam en bijhorende wachtwoord).
Deze informatie is voldoende om de inhoud van deze gedeelde map in de mappenstructuur van de Raspberry Pi op te nemen.
We gebruiken daarvoor de reeds bestaande map /media/MediaDrive.
Voeg als systeembeheerder de volgende regel toe aan het configuratiebestand dat verantwoordelijk is voor de bestandssystemen:
//NASnaam.local/Media /media/MediaDrive cifs vers=2.0,guest,auto
NASnaam vervang je door de naam van de NAS waarop de mediabestanden staan. De NASnaam kan je eventueel ook vervangen door het vaste IP adres van de NAS. Media door de gedeelde map op de NAS. Aangezien spaties in configuratiebestanden gebruikt worden om onderdelen van elkaar te scheiden, mogen bijvoorbeeld mapnamen geen spaties bevatten. De spatie wordt dan vervangen door de octale notatie \040 voor een spatie. - Test de nieuwe configuratie:
pi@raspberrypi:~ $
sudo systemctl daemon-reload
pi@raspberrypi:~ $sudo mount -a
pi@raspberrypi:~ $ls -l /media/MediaDrive/
totaal 0 drwxr-xr-x 2 root root 0 24 jun 19:07 Afbeeldingen drwxr-xr-x 2 root root 0 24 jun 19:07 Muziek drwxr-xr-x 2 root root 0 24 jun 19:09 "Video's" - Nu de mappen met multimediabestanden toegankelijk zijn voor de Raspberry Pi moet je er enkel nog voor zorgen dat miniDLNA ze vindt om ze te streamen.
- Test de nieuwe miniDLNA configuratie met een mediaspeler.
- Test of jouw NAS door de Raspberry Pi gevonden wordt met:
- Het is jullie misschien al opgevallen, maar niet alle muziek en video's worden door alle mediaspelers afgespeeld.
Dit heeft te maken met het formaat van de mediabestanden.
Voor muziek is MP3, voor video is MP4 de standaard.
Een oplossing:
- Een veelzijdige speler die (bijna) alle formaten kan afspelen is VLC. Deze kan je vinden in alle zichzelf respecterende softwarebronnen, zoals de Microsoft Store. Of je download deze van de VideoLAN website.
- Hoewel je miniDLNA ook kunt uitbreiden met transcodering (readymedia-transcode via ffmpeg) is dit niet eenvoudig te realiseren en is het erg belastend voor de processor.
Vandaar dat je beter kiest voor standaard mediaformaten (mp3 en h265).
Hou wel rekening met het feit dat elke conversie een kwaliteitsverlies met zich meebrengt (hoewel dit voor de meeste mensen niet hoorbaar of zichtbaar is):
- Installeer de recentste versie van VLC.
- Start VLC.
- Start in het menu Media de opdracht Meerdere bestanden openen....
- Voeg de ogg-bestanden met behulp van de knop uit de muziekmap Celadon Candy - Celadonia toe aan de lijst.
- Open de keuzelijst Afspelen en start de opdracht Converteren.
- Selecteer het Profiel Audio - MP3.
- Klik op de knop . De muziekbestanden worden één per één geconverteerd. Let echter op dat je tijdens de conversie geen muziek of video afspeelt, of je kunt herbeginnen.
- Dit ging vlot. Sluit VLC na de conversie.
- Open in de bestandsbeheerder de map Celadon Candy - Celadonia met de omgezette muziek.
- Rangschik de inhoud van de map volgens Type.
- Selecteer alle ogg-bestanden en verwijder ze (doe dit nooit met originele muziek uit jouw eigen muziekcollectie).
- De muziekbestanden zijn nu wel omgezet, maar de afspeellijst niet. Open het bestand playlist.m3u met een teksteditor.
- Pas de .ogg bestandsextensie op elke regel aan naar .mp3.
- Sla de aanpassingen op en sluit de teksteditor.
- Test in de mediaspeler of het album nu wel via miniDLNA afspeelt.
Mocht dit niet het geval zijn, probeer dan de minidlna server en mediaspeler te herstarten.
Software gebruikt dikwijls buffers (cache) om alles sneller te laten werken, maar dit heeft als nadeel dat aanpassingen niet altijd direct doorgevoerd worden.
Mocht dit nog niet lukken, wis de buffer van minidnla dan manueel:
pi@raspberrypi:~ $
sudo systemctl stop minidlna.service
pi@raspberrypi:~ $sudo rm -r /var/cache/minidlna/art_cache /var/cache/minidlna/files.db
pi@raspberrypi:~ $sudo systemctl start minidlna.service
- Nu de video Terrestrial Wonders Time Lapse nog omzetten naar het MP4 formaat.
Ga daarbij op dezelfde manier te werk als het converteren van OGG muziekbestanden met de volgende aanpassingen:
- Gebruik het profiel Video - H.265 + MP3 (MP4).
- Gebruik de knop om een Doelbestand in te geven.
- Sluit na het omzetten VLC af.
- Verwijder de originele video in het MKV formaat (doe dit nooit met originele video's uit jouw eigen videocollectie).
- Test het afspelen van de door miniDLNA gestreamde omgezette video in een mediaspeler.
- Serviio is een commerciële DLNA Media Server.
Serviio kan je gratis gebruiken, maar een volledige versie met extra mogelijkheden moet je kopen (Pro-versie).
- Voor je Serviio installeert, schakel je met de volgende opdrachten de reeds geïnstalleerde mniDLNA server tijdelijk uit.
De miniDLNA server sluit je af met de opdracht:
pi@raspberrypi:~ $
Om te beletten dat de miniDLNA server bij de volgende herstart van de Raspberry Pi terug automatisch opstart, voer je de volgende opdracht uit:sudo systemctl stop minidlna.service
pi@raspberrypi:~ $
sudo systemctl disable minidlna.service
Synchronizing state of minidlna.service with SysV service script with /lib/systemd/systemd-sysv-install. Executing: /lib/systemd/systemd-sysv-install disable minidlna Removed /etc/systemd/system/multi-user.target.wants/minidlna.service. - Serviio installeer je als volgt:
- Zorg dat de softwarebibliotheek up to date is:
pi@raspberrypi:~ $
sudo apt update && sudo apt upgrade -y
Geraakt:1 http://deb.debian.org/debian bookworm InRelease Geraakt:2 http://deb.debian.org/debian-security bookworm-security InRelease Geraakt:3 http://deb.debian.org/debian bookworm-updates InRelease Geraakt:4 http://archive.raspberrypi.com/debian bookworm InRelease Pakketlijsten worden ingelezen... Klaar Boom van vereisten wordt opgebouwd... Klaar De statusinformatie wordt gelezen... Klaar 4 pakketten kunnen opgewaardeerd worden. Voer 'apt list --upgradable' uit om ze te zien. Pakketlijsten worden ingelezen... Klaar Boom van vereisten wordt opgebouwd... Klaar De statusinformatie wordt gelezen... Klaar Opwaardering wordt doorgerekend... Klaar De volgende pakketten zullen opgewaardeerd worden: piwiz raspi-config rc-gui rp-prefapps 4 opgewaardeerd, 0 nieuw geïnstalleerd, 0 te verwijderen en 0 niet opgewaardeerd. Er moeten 391 kB aan archieven opgehaald worden. Na deze bewerking zal er 1.024 B schijfruimte vrijkomen. Ophalen:1 http://archive.raspberrypi.com/debian bookworm/main arm64 raspi-config all 20240625 [34,5 kB] Ophalen:2 http://archive.raspberrypi.com/debian bookworm/main arm64 piwiz arm64 0.73 [189 kB] Ophalen:3 http://archive.raspberrypi.com/debian bookworm/main arm64 rc-gui arm64 1.83 [86,0 kB] Ophalen:4 http://archive.raspberrypi.com/debian bookworm/main arm64 rp-prefapps arm64 0.58 [81,7 kB] 391 kB opgehaald in 0s (2.502 kB/s) apt-listchanges: De changelogs worden ingelezen... (Database wordt ingelezen ... 147940 bestanden en mappen momenteel geïnstalleerd.) Uitpakken van .../raspi-config_20240625_all.deb wordt voorbereid... Bezig met uitpakken van raspi-config (20240625) over (20240618) ... Uitpakken van .../archives/piwiz_0.73_arm64.deb wordt voorbereid... Bezig met uitpakken van piwiz (0.73) over (0.72) ... Uitpakken van .../archives/rc-gui_1.83_arm64.deb wordt voorbereid... Bezig met uitpakken van rc-gui (1.83) over (1.82) ... Uitpakken van .../rp-prefapps_0.58_arm64.deb wordt voorbereid... Bezig met uitpakken van rp-prefapps (0.58) over (0.57) ... Instellen van raspi-config (20240625) ... Instellen van rc-gui (1.83) ... Instellen van rp-prefapps (0.58) ... Instellen van piwiz (0.73) ... Bezig met afhandelen van triggers voor desktop-file-utils (0.26-1) ... Bezig met afhandelen van triggers voor hicolor-icon-theme (0.17-2) ... Bezig met afhandelen van triggers voor gnome-menus (3.36.0-1.1) ... Bezig met afhandelen van triggers voor mailcap (3.70+nmu1) ... - Installeer de nodige encodeer/decodeer software:
pi@raspberrypi:~ $
sudo apt install ffmpeg x264 dcraw
Pakketlijsten worden ingelezen... Klaar Boom van vereisten wordt opgebouwd... Klaar De statusinformatie wordt gelezen... Klaar ffmpeg is reeds de nieuwste versie (8:5.1.5-0+rpt1+deb12u1). Voorgestelde pakketten: gphoto2 netpbm De volgende NIEUWE pakketten zullen geïnstalleerd worden: dcraw libffms2-5 x264 0 opgewaardeerd, 3 nieuw geïnstalleerd, 0 te verwijderen en 0 niet opgewaardeerd. Er moeten 360 kB aan archieven opgehaald worden. Na deze bewerking zal er 1.257 kB extra schijfruimte gebruikt worden. Ophalen:1 http://deb.debian.org/debian bookworm/main arm64 dcraw arm64 9.28-3+b1 [217 kB] Ophalen:2 http://deb.debian.org/debian bookworm/main arm64 libffms2-5 arm64 2.40+git20211209-2+b1 [67,6 kB] Ophalen:3 http://deb.debian.org/debian bookworm/main arm64 x264 arm64 2:0.164.3095+gitbaee400-3 [75,8 kB] 360 kB opgehaald in 0s (3.654 kB/s) Voorheen niet geselecteerd pakket dcraw wordt geselecteerd. (Database wordt ingelezen ... 147939 bestanden en mappen momenteel geïnstalleerd.) Uitpakken van .../dcraw_9.28-3+b1_arm64.deb wordt voorbereid... Bezig met uitpakken van dcraw (9.28-3+b1) ... Voorheen niet geselecteerd pakket libffms2-5:arm64 wordt geselecteerd. Uitpakken van .../libffms2-5_2.40+git20211209-2+b1_arm64.deb wordt voorbereid... Bezig met uitpakken van libffms2-5:arm64 (2.40+git20211209-2+b1) ... Voorheen niet geselecteerd pakket x264 wordt geselecteerd. Uitpakken van .../x264_2%3a0.164.3095+gitbaee400-3_arm64.deb wordt voorbereid... Bezig met uitpakken van x264 (2:0.164.3095+gitbaee400-3) ... Instellen van dcraw (9.28-3+b1) ... Instellen van libffms2-5:arm64 (2.40+git20211209-2+b1) ... Instellen van x264 (2:0.164.3095+gitbaee400-3) ... Bezig met afhandelen van triggers voor libc-bin (2.36-9+rpt2+deb12u7) ... Bezig met afhandelen van triggers voor man-db (2.11.2-2) ... - Serviio is geschreven in Java en heeft dus een Java Development Kit nodig:
pi@raspberrypi:~ $
sudo apt install --no-install-recommends openjdk-17-jdk
Pakketlijsten worden ingelezen... Klaar Boom van vereisten wordt opgebouwd... Klaar De statusinformatie wordt gelezen... Klaar De volgende extra pakketten zullen geïnstalleerd worden: ca-certificates-java java-common openjdk-17-jdk-headless openjdk-17-jre openjdk-17-jre-headless Voorgestelde pakketten: default-jre openjdk-17-demo openjdk-17-source visualvm fonts-dejavu-extra fonts-ipafont-gothic fonts-ipafont-mincho fonts-wqy-microhei | fonts-wqy-zenhei fonts-indic Aanbevolen pakketten: libatk-wrapper-java-jni fonts-dejavu-extra De volgende NIEUWE pakketten zullen geïnstalleerd worden: ca-certificates-java java-common openjdk-17-jdk openjdk-17-jdk-headless openjdk-17-jre openjdk-17-jre-headless 0 opgewaardeerd, 6 nieuw geïnstalleerd, 0 te verwijderen en 0 niet opgewaardeerd. Er moeten 113 MB aan archieven opgehaald worden. Na deze bewerking zal er 273 MB extra schijfruimte gebruikt worden. Wilt u doorgaan? [J/n] Ophalen:1 http://deb.debian.org/debian bookworm/main arm64 ca-certificates-java all 20230710~deb12u1 [11,9 kB] Ophalen:2 http://deb.debian.org/debian bookworm/main arm64 java-common all 0.74 [6.388 B] Ophalen:3 http://deb.debian.org/debian-security bookworm-security/main arm64 openjdk-17-jre-headless arm64 17.0.11+9-1~deb12u1 [42,7 MB] Ophalen:4 http://deb.debian.org/debian-security bookworm-security/main arm64 openjdk-17-jre arm64 17.0.11+9-1~deb12u1 [173 kB] Ophalen:5 http://deb.debian.org/debian-security bookworm-security/main arm64 openjdk-17-jdk-headless arm64 17.0.11+9-1~deb12u1 [70,6 MB] Ophalen:6 http://deb.debian.org/debian-security bookworm-security/main arm64 openjdk-17-jdk arm64 17.0.11+9-1~deb12u1 [10,5 kB] 113 MB opgehaald in 16s (7.070 kB/s) Voorheen niet geselecteerd pakket ca-certificates-java wordt geselecteerd. (Database wordt ingelezen ... 147980 bestanden en mappen momenteel geïnstalleerd.) Uitpakken van .../0-ca-certificates-java_20230710~deb12u1_all.deb wordt voorbereid... Bezig met uitpakken van ca-certificates-java (20230710~deb12u1) ... ... Voorheen niet geselecteerd pakket openjdk-17-jdk:arm64 wordt geselecteerd. Uitpakken van .../5-openjdk-17-jdk_17.0.11+9-1~deb12u1_arm64.deb wordt voorbereid... Bezig met uitpakken van openjdk-17-jdk:arm64 (17.0.11+9-1~deb12u1) ... Instellen van java-common (0.74) ... Instellen van ca-certificates-java (20230710~deb12u1) ... No JRE found. Skipping Java certificates setup. Instellen van openjdk-17-jre-headless:arm64 (17.0.11+9-1~deb12u1) ... update-alternatives: /usr/lib/jvm/java-17-openjdk-arm64/bin/java wordt gebruikt om in de automatische modus in /usr/bin/java (java) te voorzien update-alternatives: /usr/lib/jvm/java-17-openjdk-arm64/bin/jpackage wordt gebruikt om in de automatische modus in /usr/bin/jpackage (jpackage) te voorzien update-alternatives: /usr/lib/jvm/java-17-openjdk-arm64/bin/keytool wordt gebruikt om in de automatische modus in /usr/bin/keytool (keytool) te voorzien update-alternatives: /usr/lib/jvm/java-17-openjdk-arm64/bin/rmiregistry wordt gebruikt om in de automatische modus in /usr/bin/rmiregistry (rmiregistry) te voorzien update-alternatives: /usr/lib/jvm/java-17-openjdk-arm64/lib/jexec wordt gebruikt om in de automatische modus in /usr/bin/jexec (jexec) te voorzien Bezig met afhandelen van triggers voor man-db (2.11.2-2) ... Bezig met afhandelen van triggers voor mailcap (3.70+nmu1) ... Bezig met afhandelen van triggers voor desktop-file-utils (0.26-1) ... Bezig met afhandelen van triggers voor hicolor-icon-theme (0.17-2) ... Bezig met afhandelen van triggers voor gnome-menus (3.36.0-1.1) ... Bezig met afhandelen van triggers voor ca-certificates-java (20230710~deb12u1) ... Adding debian:ACCVRAIZ1.pem Adding debian:AC_RAIZ_FNMT-RCM.pem Adding debian:AC_RAIZ_FNMT-RCM_SERVIDORES_SEGUROS.pem ... Adding debian:vTrus_ECC_Root_CA.pem Adding debian:vTrus_Root_CA.pem Adding debian:XRamp_Global_CA_Root.pem done. Instellen van openjdk-17-jdk-headless:arm64 (17.0.11+9-1~deb12u1) ... update-alternatives: /usr/lib/jvm/java-17-openjdk-arm64/bin/jar wordt gebruikt om in de automatische modus in /usr/bin/jar (jar) te voorzien update-alternatives: /usr/lib/jvm/java-17-openjdk-arm64/bin/jarsigner wordt gebruikt om in de automatische modus in /usr/bin/jarsigner (jarsigner) te voorzien update-alternatives: /usr/lib/jvm/java-17-openjdk-arm64/bin/javac wordt gebruikt om in de automatische modus in /usr/bin/javac (javac) te voorzien ... update-alternatives: /usr/lib/jvm/java-17-openjdk-arm64/bin/jstatd wordt gebruikt om in de automatische modus in /usr/bin/jstatd (jstatd) te voorzien update-alternatives: /usr/lib/jvm/java-17-openjdk-arm64/bin/serialver wordt gebruikt om in de automatische modus in /usr/bin/serialver (serialver) te voorzien update-alternatives: /usr/lib/jvm/java-17-openjdk-arm64/bin/jhsdb wordt gebruikt om in de automatische modus in /usr/bin/jhsdb (jhsdb) te voorzien Instellen van openjdk-17-jre:arm64 (17.0.11+9-1~deb12u1) ... Instellen van openjdk-17-jdk:arm64 (17.0.11+9-1~deb12u1) ... update-alternatives: /usr/lib/jvm/java-17-openjdk-arm64/bin/jconsole wordt gebruikt om in de automatische modus in /usr/bin/jconsole (jconsole) te voorzien - Download Serviio 2.4:
pi@raspberrypi:~ $
wget http://download.serviio.org/releases/serviio-2.4-linux.tar.gz
--2024-06-25 16:08:19-- http://download.serviio.org/releases/serviio-2.4-linux.tar.gz Herleiden van download.serviio.org (download.serviio.org)... 109.228.7.148 Verbinding maken met download.serviio.org (download.serviio.org)|109.228.7.148|:80... verbonden. HTTP-verzoek is verzonden; wachten op antwoord... 200 OK Lengte: 28887039 (28M) [application/x-gzip] Wordt opgeslagen als: ‘serviio-2.4-linux.tar.gz’ serviio-2.4-linux.tar.gz 100%[==============================================>] 27,55M 10,1MB/s in 2,7s 2024-06-25 16:08:22 (10,1 MB/s) - '‘serviio-2.4-linux.tar.gz’' opgeslagen [28887039/28887039] - Pak Serviio uit:
pi@raspberrypi:~ $
sudo tar -xvzf serviio-2.4-linux.tar.gz -C /opt
serviio-2.4/ serviio-2.4/legal/ serviio-2.4/LICENCE.txt ... serviio-2.4/lib/serviio-mediabrowser-web.jar serviio-2.4/lib/serviio-web-console-api.jar serviio-2.4/lib/serviio-web-console.jar - Maak voor Serviio een systemd opstartscript:
pi@raspberrypi:~ $
sudo nano -B /etc/systemd/system/serviio.service
- Met de volgende inhoud:
[Unit] Description=Serviio media Server After=syslog.target network.target [Service] ExecStart=/opt/serviio-2.4/bin/serviio.sh ExecStop=/opt/serviio-2.4/bin/serviio.sh -stop [Install] WantedBy=multi-user.target
- Sla het script op en verlaat de nano teksteditor.
- Activeer het Serviio opstartscript:
pi@raspberrypi:~ $
sudo systemctl enable serviio.service
Created symlink /etc/systemd/system/multi-user.target.wants/serviio.service → /etc/systemd/system/serviio.service. - Herstart de Raspberry Pi:
pi@raspberrypi:~ $
sudo shutdown -r now
- Zorg dat de softwarebibliotheek up to date is:
- Een handleiding van hoe je Serviio via een webpagina kunt configureren kan je vinden op de Support webpagina van Serviio.
Zorg daarbij dat Serviio de muziek, video's en foto's die we daarstraks gebruikten kan streamen.
- Test de Serviio mediaserver met behulp van een mediaspeler, bijvoorbeeld VLC.
- Je krijgt een 14 dagen proefperiode met alle functies (Pro). Na de proefperiode kan je Serviio verder gebruiken in de Free mode (meer info op deze Serviio webpagina).
- Voor je Serviio installeert, schakel je met de volgende opdrachten de reeds geïnstalleerde mniDLNA server tijdelijk uit.
De miniDLNA server sluit je af met de opdracht: