Come rendere il Raspberry Pi un server multimediale con Jellyfin
Cos' è Jellyfin ?
Jellyfin è un servizio gratuito e open-source, simile a Plex, usato per la gestione e lo streaming dei propri prodotto multimediali come film, musica o libri sui propri dispositivi.
Installando Jellyfin su un Raspberry è possibile quindi accedere a tali media dalla maggior parte dei dispositivi disponibili sul mercato collegati alla stessa rete e, con le giuste precauzioni, anche al di fuori.
Requisiti
Una lista dell'attrezzatura necessaria e non per questo progetto.
Obbligatori
- Raspberry Pi 4( Consigliato il 4 da 4GB di Ram )
- Cavo HDMI - Micro HDMI per setup iniziale.
- Micro SD ( 4GB o più, per principianti consiglio 8GB )
- HDD esterno
- Connessione a Internet
Opzionali
- HUB USB 3.0 con alimentazione esterna.
Parte 1 - Setup Raspberry
Prima di installare Jellyfin, dobbiamo ovviamente prepare il Raspberry.
-
Scaricare e installare sul proprio PC Raspberry Pi Imager, il tool ufficiale per l'OS ufficiale Raspberry.
-
Collegare la propria micro SD e installare la versione dell'OS a seconda dello spazio su essa :
- Micro SD 4GB : Installare Raspberry Pi OS Lite, versione senza interfaccia grafica e dal peso molto basso ( 400mb ).
- Micro SD 8GB o più : Installare Raspberry Pi OS (32-bit). CONSIGLIATO PER PRINCIPIANTI.
-
Completata l'installazione avviare il Raspberry con almeno la tastiera collegata e ovviamente un monitor.
-
Se avete installato Pi OS completo, proseguire con il setup iniziale automatico. Se non parte, o avete installato la versione Lite, eseguire nella console il comando
sudo raspi-config
e proseguire con il setup.
Per una guida più approfondita a riguardo potete seguire la documentazione ufficiale.
Parte 2 - Setup HDD Esterno
Ora dobbiamo fare il setup dell'HDD esterno. Su questo ho due consigli da darvi.
Primo consiglio, anche se è possibile salvare i file nella micro SD ( se ovviamente più grandi di 4GB ), è altamente sconsigliato, in quanto le micro SD sono solite corrompersi e non è bello perdere tutti i propri file personali ( lo dico per esperienza ).
Quindi consiglio a tutti di tenersi un HDD esterno per lo storage dei file.
Secondo consiglio è di formattare l'HDD esterno in formato EXT4. Facendo questo l'HDD non verrà più riconosciuto da Windows, se non usando software specifici o sub system unix, ma permetterà al raspberry di raggiungere le velocità massime del disco quando leggete i file dalla rete ( se collegati via cavo ).
Usando infatti un formato come NTFS o FAT32 sarete limitati a velocità intorno ai 20 MB/s mentre con EXT4 e collegamento al modem via cavo potrete usare tutti i 100 mb/s di un HDD classico.
Ovviamente se non siete collegati via cavo dipenderà tutto dalla distanza dal modem e potenza del segnale Wi-Fi.
Prima di proseguire con il setup dell'HDD c'è un'altra precisazione da fare.
Se volete utilizzare più di un HDD esterno per i vostri file è assolutamente necessario un HUB HDD con alimentatore esterno, in quanto il Raspberry non è in grado di alimentare contemporamente i due hard disk dalle semplici porte USB.
Io uso questo modello Amazon Basics che vi consiglio.
Ora possiamo finalmente proseguire con il setup. Aprite un terminale ed eseguite i seguenti comandi.
-
sudo fdisk -l
Questo comando vi darà la lista delle memorie collegate al Raspberry.
A noi interessano gli hard disk che abbiamo collegati e solitamente vengono identificati con i percorsi/dev/sda1
o/dev/sdb1
e via dicendo.
Salvatevi questi percorsi perche li andremo ad utilizzare in seguito. -
sudo mkdir /mnt/HDD1
sudo mount /dev/sda1 /mnt/HDD1
Questi sono 2 comandi che rispettivamente creano una cartella chiamata HDD1 nella directory /mnt/ e montano il disco scelto in quella cartella.
Ovviamente dovete eseguire questi comandi facendo attenzione a cambiare il nome della cartella HDD1 con uno diverso che preferite per ciascun HDD esterno. -
Ora dobbiamo far si che l'HDD venga montato ogni volta che il raspberry viene spento.
Per farlo andiamo a eseguire il comandosudo nano /etc/fstab
e in fondo a questo file inseriamo la riga/dev/sda1 /mnt/HDD1 auto defaults,user 0 1
facendo attenzione al nome della cartella. Ovviamente per più HDD aggiungere più volte la riga.
Fatto questo premiamo la conbinazione di datiCTRL + S
per salvare eCTRL + X
per chiudere.
Gli HDD sono ora montati nel Raspberry.
Parte 3 - Setup Jellyfin
Prima di installare Jellyfin, dobbiamo ovviamente prepare il Raspberry.
Per farlo useremo il terminale ed andremo ad eseguire i comandi descritti nei passi sotto.
-
Jellyfin non è disponibile sulle repository predefinite di rasp os e dobbiamo quindi aggiungerle.
Per farlo eseguire i seguenti comandi nel terminale :-
sudo apt install apt-transport-https
Installa apt-transport-https usato per il supporto ad https.
-
wget -O - https://repo.jellyfin.org/debian/jellyfin_team.gpg.key | sudo apt-key add -
Usato per importare le GPG Keys della repository di Jellyfin.
-
echo "deb [arch=$( dpkg --print-architecture )] https://repo.jellyfin.org/debian $( lsb_release -c -s ) main" | sudo tee /etc/apt/sources.list.d/jellyfin.list
Aggiunge la repository di Jellyfin sul nostro Raspberry.
-
sudo apt update
Per aggiornare la lista dei pacchetti delle repository
-
sudo apt install jellyfin
Ed infine possiamo finalmente installare jellyfin.
-
-
Ora che abbiamo installato Jellyfin dobbiamo semplicemente fare la configurazione inziale tramite l'interfaccia web di Jellyfin.
Se siete dal Rasberry OS full con il monitor potete accedervi al link localhost:8096, mentre per Raspberry OS Lite potete accederci da un altro dispositivo andando su http://IP-LOCALE-RASP:8096.
Sostituire IP-LOCALE-RASP con l'effettivo ip del raspberry.
Se non lo conoscete basta eseguirehostname -I
dal terminale. -
Seguite la procedura guidata di Jellyfin, quando vi chiede di aggiungere le vostre librerie multimediali basta aggiungere le cartelle al percorso
/mnt/HDD1/...
o qualsiasi sottocartella negli HDD che avete montato in precedenza. -
Una volta completato il setup iniziale, facciamo il login sulla pagina di Jellyfin e possiamo gia iniziare a vedere i film/musica/libri che Jellyfin sta trovando.
Non attendiamo che finisca ma seguite velocemente i prossimi due passi.
Mancano infatti due passi molto importanti prima di considerare concluso il progetto.
- Clicchiamo sulla nostra immagine del profilo in alto a destra e andiamo su Dashboard.
Una volta li nella parte destra dello schermo troveremo delle impostazioni per i percorsi per varie funzioni di Jellyfin come Cache, Logs, Metatadata...
Clicchiamo su Percorsi... e modifichiamo i percorsi predefiniti delle directory Cache e Metadata, andando a inserirle in uno degli HDD esterni.
Questo perchè di default Jellyfin salva tutto sulla micro SD dell'OS e se avete molti file si riempirà quasi subito. - Sempre dalla Dashboard clicchiamo su Playback/Riproduzione, apriamo il menu a tendina riferito all' Accelerazione Hardware e andiamo a selezionare OpenMAX OMX.
In questo modo se abbiamo dei file in formato particolare o sottotitoli extra che il dispositivo deve inserire nella traccia, il Raspberry potrà far uso di accelerazione hardware per facilitare il lavoro pesante.
Ora che il setup è completato basta attendere che Jellyfin finisca di scannerizzare l'intera libreria e potremmo iniziare a vedere film o qualsiasi altro file multimediale direttamente da Jellyfin, che vi ricordo è disponibile su Smart TV, Android, iOS, sia in versione ufficiale, sia in versioni sviluppate da utenti essendo esso un progetto open-source.
Parte opzionale - Port forwarding
In lavorazione...
Conclusione
Per concludere con un semplice Raspberry Pi 4 possiamo creare un sistema multimediale condiviso tra tutti i dispositivi nella nostra rete.
La maggior parte dei file verrà trasmesso in streaming locale, mentre altri file magari dovranno essere trascodati è potrebbero scattare, come ad esempio filmati in HEVC trasmessi su una TV che non supporta il formato.
Ma per il resto è un sistema molto comodo per evitare di dover spostare ogni volta HDD e anche per avere un interfaccia carina con molte informazioni sui nostri file.
Spero di esservi stato d'aiuto.
Alla prossima.