Alexandru Stefan Andries

Alexandru Stefan Andries

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.

  1. Scaricare e installare sul proprio PC Raspberry Pi Imager, il tool ufficiale per l'OS ufficiale Raspberry.

  2. 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.
  3. Completata l'installazione avviare il Raspberry con almeno la tastiera collegata e ovviamente un monitor.

  4. 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.

  1. 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.

  2. 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.

  3. Ora dobbiamo far si che l'HDD venga montato ogni volta che il raspberry viene spento.
    Per farlo andiamo a eseguire il comando sudo 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 dati CTRL + S per salvare e CTRL + 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.

  1. 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.

  2. 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 eseguire hostname -I dal terminale.

  3. 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.

  4. 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.

  1. 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.
  2. 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.

← Back to Blog