Realizzare un Media Server con un Raspberry Pi
In questa guida andremo a realizzare un semplice media server con un Raspberry Pi. Se ancora non sapete cos’è un media server e come funziona, potete consultare l’articolo del nostro Blog intitolato: “Media Server”: cosa sono e come funzionano.
Questa guida fornirà solo le istruzioni all’installazione e configurazione del media server Mini DLNA, ed è parte di una serie di guide relative al Raspberry Pi che abbiamo già pubblicato e che vi consigliamo di leggere prima di partire con l’installazione del media server. Queste che seguono sono le guide propedeutiche consigliate:
- [Raspberry Pi] – Guida pratica alla configurazione di base – Questa guida vi sarà utile ad installare il sistema operativo ed impostare alcune configurazioni di base.
- Trasformare un Raspberry Pi in un disco di rete (NAS) – Visto che un media server realizzato con il solo spazio disco disponibile sulla memoria SD non ha molto senso di esistere, con questa guida potrete trasformare il Raspberry in un NAS collegandogli un hard disk USB e ottenere così un disco di rete molto capiente dove poter immagazzinare i nostri dati. A questo punto, il media server che andremo a configurare potrà indicizzarne i contenuti multimediali e condividerli nella rete locale. Inoltre, in questo modo, vi sarà molto più semplice trasferire i file da un altro computer al media server.
Il vantaggio del realizzare un media server con un Raspberry Pi, come già detto per la realizzazione del NAS, è la possibilità di avere i nostri file multimediali sempre disponibili su TV, Computer, Smartphone e Tablet tenendo acceso un dispositivo che consuma pochissima potenza elettrica.
L’impiego del software Mini DLNA non è l’unica soluzione alla realizzazione di un media server su Raspberry Pi, ce ne sono anche altre diverse e la scelta di una o altra soluzione dipende, a nostro avviso, da quali dispositivi abbiamo a disposizione e da quali sono le nostre effettive necessità. Due casi esempio potrebbero essere:
- Sono in possesso di una Smart TV: in questo caso, essendo la Smart Tv un client DLNA, il software Mini DLNA ci permette di fruire dei contenuti sulla nostra TV in maniera semplice e diretta, potendo comandare la riproduzione dei file direttamente dal telecomando della TV stessa. Di fatto, MiniDLNA è un processo molto “leggero” (in termini di risorse richieste) che è in esecuzione nel sistema operativo e non ha interfacce grafiche.
- Non sono in possesso di una Smart TV: in questo caso non ho modo di poter collegare la TV alla rete locale, quindi ho bisogno di avere un media server collegato via HDMI o Video Composito alla TV. In questo caso, la TV diventerà il monitor del Raspberry, quindi non mi basterà installare un semplice “servizio” come MiniDLNA, ma avrò bisogno di un vero e proprio sistema operativo desktop che incorpori il software media server. Nell’articolo “Media Server”: cosa sono e come funzionano avevamo menzionato al sistema XBMC disponibile per ambienti Linux, ecco, per il Raspberry Pi esistono due distribuzioni diverse basate su XBMC, e sono: RaspBMC e OpenELEC. L’uso di questi sistemi operativi ci mette però di fronte a due “scomodità”, la prima è che al Raspberry verranno richieste molte più risorse, la seconda è che ci dovremo dotare di una tastiera e mouse wireless per poter comandare il media server da lontano, oppure dovremo configurare qualche soluzione che preveda l’impiego di un telecomando aggiuntivo.
Dopo questa lunghissima premessa, passiamo all’installazione di Mini DLNA, quindi accediamo al terminale e digitiamo il comando:
sudo apt-get update sudo apt-get install minidlna
Confermando con Y partirà l’installazione. Ad installazione terminata, andiamo a modificare la configurazione di Mini DLNA editando il file minidlna.conf, di cui prima faremo una copia di sicurezza chiamata minidlna.conf.orig, In questo modo potremo sempre ritornare alla configurazione originale in caso di errori. Eseguiamo il backup del file di configurazione:
sudo cp /etc/minidlna.conf /etc/minidlna.conf.orig
Ed editiamo la configurazione:
sudo nano /etc/minidlna.conf
La cosa più importante da editare è sicuramente la parte relativa alle cartelle che il nostro media server dovrà utilizzare:
# 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) # # WARNING: After changing this option, you need to rebuild the database. Either # run minidlna with the '-R' option, or delete the 'files.db' file # from the db_dir directory (see below). # On Debian, you can run, as root, 'service minidlna force-reload' instead. media_dir=/var/lib/minidlna
La directory di default (media_dir) è impostata su /var/lib/minidlna , quindi, dopo aver decommentato la riga “media_dir” (senza # all’inizio), se andrete a salvare e riavviare Mini DLNA, ogni file che metterete nella cartella /var/lib/minidlna sarà condivisa dal media server.
Se invece avete configurato un NAS sul Raspberry, dovrete andare a cambiare il percorso della media_dir, ed avrete due modalità per farlo: indicare esattamente le cartelle che contengono rispettivamente Audio, Video e Foto, oppure indicando una cartella al cui interno sono contenuti i file da condividere. Nella configurazione che segue, vengono riportate come esempio entrambe le possibilità.
# 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) # # WARNING: After changing this option, you need to rebuild the database. Either # run minidlna with the '-R' option, or delete the 'files.db' file # from the db_dir directory (see below). # On Debian, you can run, as root, 'service minidlna force-reload' instead. #media_dir=/var/lib/minidlna #ESEMPIO 1 #media_dir=V,/media/nas/VIDEO #media_dir=A,/media/nas/MUSICA #media_dir=P,/media/nas/FOTO #ESEMPIO 2 #media_dir=/media/nas/
A noi piace di più il secondo esempio, perché questo ci da la comodità di poter navigare liberamente tra le cartelle del NAS a prescindere dalla tipologia di contenuto multimediale che andremo a selezionare dal client. Altre configurazioni utili da fare potrebbero essere:
Abilitare il Log, utilissimi a capire cosa non sta funzionando
# Path to the directory that should hold the log file. log_dir=/var/log # Minimum level of importance of messages to be logged. # Must be one of "off", "fatal", "error", "warn", "info" or "debug". # "off" turns of logging entirely, "fatal" is the highest level of importance # and "debug" the lowest. log_level=warn
Dare un nome al server
# Name that the DLNA server presents to clients. friendly_name=INFORMATICA37-DLNA
Assegnare l’IP del Raspberry al media server, che servirà a tenere monitorati da una pagina web i file disponibili alla condivisione
# IPv4 address to listen on (e.g. 192.0.2.1). listening_ip=192.168.1.240
Abilitare la ricerca automatica di nuovi file nella cartella
# Automatic discovery of new files in the media_dir directory. inotify=yes
Abilitare il “model name”
# Model name the server reports to clients. model_name=Windows Media Connect compatible (MiniDLNA)
Abilitare il supporto TiVo
# Support for streaming .jpg and .mp3 files to a TiVo supporting HMO. enable_tivo=yes
Modificare il “notify interval”
# Notify interval, in seconds. # notify_interval=895 notify_interval=30
Una volta completata la configurazione, bisogna dare un comando che carica il file di configurazione appena creato, ed inizia a creare il database dei file contenuti nella cartella che gli abbiamo assegnato.
sudo service minidlna force-reload
Se non abbiamo ancora inserito i dei file nella cartella, li inseriamo, e riaggiorniamo il database con lo stesso comando:
sudo service minidlna force-reload
Per controllare che i nostri file siano stati indicizzati, possiamo collegarci con un client (tv, tablet, ecc) e verificare praticamente. In alternativa possiamo collegarci ad una pagina web per controllare la presenza dei file. L’indirizzo della pagina avrà indirizzo:
https://INDIRIZZO-IP-SERVER:8200
che nel nostro caso sarà
https://192.168.1.240:8200
La pagina che ci troveremo di fronte sarà la seguente:
Le informazioni sono basilari, ma ci permettono almeno di tenere sotto controllo il numero di file indicizzati dal media server. L’ultima operazione da effettuare è quella di abilitare l’avvio automatico di Mini DLNA all’avvio del Raspberry:
sudo update-rc.d minidlna defaults
Purtroppo, ogni volta che aggiungete un file, dovrete sempre dare il solito comando “sudo service minidlna force-reload” per aggiornare il database. Questo problema deriva da un bug di Mini DLNA non ancora risolto, che non gli permette l’aggiornamento database in autonomia, pertanto si sono dovuti escogitare degli stratagemmi per eseguire l’aggiornamento del database in maniera automatica. Uno dei trucchi è quello di inserire un “job” nella “crontab”, che vuol dire: pianifico un’operazione automatica che lancia il comando, ad esempio, alle 4 di mattina, orario in cui con buona probabilità non starò guardando foto o filmati dal media server. E’ molto importante questo perché l’operazione di aggiornamento ferma e riavvia il servizio media server interrompendo il flusso di trasmissione. Per aggiungere l’operazione di aggiornamento e pianificarla tutte le mattine alle 4:00, i comandi sono i seguenti:
sudo crontab -e
inserendo la riga
0 4 * * * sudo service minidlna force-reload
La guida si conclude qui, siete finalmente pronti ad utilizzare il vostro nuovo media server. Vi lasciamo con due immagini che riassumono un po’ il percorso fatto fino a questa guida: dalle configurazioni base del Raspberry Pi, alla configurazione del NAS ed alla realizzazione del media server. Per domande o suggerimenti ogni commento è ben accetto!

