Minidatorn Raspberry Pi är en riktig mångsysslare som du kan använda till allt möjligt. Vi har tidigare visat hur du förvandlar den till en smarta hemmet-hubb med Home Assistant och hur du skyddar hela nätverket från reklam och spårare med Pi-hole. Men den senaste modellen av datorn, Raspberry Pi 4, är kraftfull nog att användas även till lite mer krävande uppgifter.

I den här guiden visar vi hur du enkelt kommer igång med Raspberry Pi 4 som mediahubb och strömmar video och musik till mobiler, plattor, datorer och tv-apparater i hemmet. Vi har valt det öppna källkodsprojektet Jellyfin istället för det mer populära Plex, eftersom Plex kränger abonnemang och kostar en slant att använda på mobiler. Plex är aningen enklare så om du inte har något emot att betala lite kan du välja det istället – vi kan rekommendera den här guiden från Pi My Life Up.

Du kan även installera Jellyfin eller Plex på äldre modeller, men de är för långsamma för högupplösta videor och kan inte heller startas från usb-disk, vilket gör dem ännu långsammare.

Det här behöver du:

  • Raspberry Pi 4 med chassi, nätadapter och ethernetkabel.
  • Microsd-kort och kortläsare till datorn.
  • Usb-hårddisk (eller ssd) stor nog att lagra dina mediafiler.
  • Önskvärt: Liten usb-ssd (till exempel en gammal ssd du inte använder längre i ett usb-chassi).


Läs också: Blockera skadliga sajter med Raspberry Pi och Pi-Hole


Snabbare system med usb-boot

Innan du kommer till själva mediaserver-programmet behöver Raspberry Pi ett operativsystem. Normalt installeras det på ett microsd-kort, men eftersom mediaströmning är lite mer krävande så kommer servern fungera bättre med systemet på en ssd ansluten med usb. Det fungerar bara på Raspberry Pi 4 och du kan behöva ändra en firmware-inställning för att få den att starta via usb.

Börja med att installera systemet på din ssd:
  • Ladda ner Raspberry Pi Imager för Windows eller Mac.
  • Anslut din usb-ssd till datorn.
  • Kör programmet, klicka på Choose OS och välj Other -> Raspberry Pi OS Lite (64-bit).
  • Klicka på Choose storage och välj din usb-ssd (dubbelkolla att det är rätt, disken raderas i nästa steg).
  • Klicka på kugghjulet nere till höger. Kryssa i Enable SSH och välj antingen med lösenord eller Allow public-key authentication only om du redan har skapat rsa-nycklar för ssh. Väljer du lösenord får du även fylla i ett login-lösen under Set username and password. Spara inställningarna.
  • Klicka på Write och godkänn, så raderas disken och fylls med operativsystemet.
Installera systemet
(Vi har valt systemet Raspberry Pi OS Lite (64-bit). Lite-versionen innebär att det inte finns något grafiskt gränssnitt. Om du föredrar att kunna koppla in en skärm och tangentbord och styra servern den vägen kan du välja Raspberry Pi OS (64-bit) istället.)

Anslut sedan disken till en av usb 3-kontakterna på Raspberry Pi. Se till att den är ansluten till nätverket med ethernet-kabel och anslut strömkabeln eller slå på strömbrytaren för att starta datorn.

Läs även: Bygg en egen smarta hemmet-hubb med Raspberry Pi

Efter en stund kan du prova att ansluta till servern via ssh. Öppna Windows-terminalen eller Powershell (eller Terminal på Mac) och skriv in:

ssh pi@raspberrypi.local

Om systemet har startat som det ska får du nu fylla i lösen eller godkänna anslutningen, och du kommer sedan till en terminalprompt. Om det inte fungerar beror det förmodligen på att din Raspberry Pi inte är inställd på att starta från usb. Det kan du åtgärda så här:
 
Fixa usb-boot
  • Anslut ett microsd-kort till datorn.
  • Kör Raspberry Pi Imager och klicka på Choose OS.
  • Skrolla ner en bit i listan och välj Misc utility images -> Bootloader -> USB Boot.
  • Välj minneskortet som mål (dubbelkolla att det är rätt lagringsenhet). Klicka på Write, godkänn och vänta tills den är klar.
  • Sätt minneskortet i Raspberry Pi och starta den.
  • Vänta en minut så att du är säker på att inställningen har gjorts.
  • Stäng av strömmen, ta ut minneskortet och anslut din usb-ssd.
  • Starta och försök anslut igen enligt ovan.

Får du inte till det kan du installera på ett microsd-kort istället. Du förlorar lite prestanda men det kommer i alla fall fungera.

Läs även: Tips: Häftiga saker du kan bygga med en Raspberry Pi

Installera Jellyfin

När du har ett fungerande operativsystem på Raspberry Pi är det dags att installera Jellyfin. Anslut som ovan med ssh och kör följande kommandon (ett efter ett):

sudo apt update -y && sudo apt upgrade -y && sudo apt dist-upgrade -y
sudo apt install apt-transport-https
wget -O - https://repo.jellyfin.org/debian/jellyfin_team.gpg.key | sudo apt-key add -
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
sudo apt update
sudo apt install jellyfin
sudo usermod -aG video jellyfin
sudo systemctl restart jellyfin
sudo systemctl status jellyfin

Har du gjort allt rätt ska det stå active (running) och du kan nu gå vidare och ansluta till serverns webbgränssnitt.

Kom igång med Jellyfin

Fyll i http://raspberrypi.local:8096 i valfri webbläsare på din vanliga dator. Du kommer nu till Jellyfins inställningsguide där du får skapa en admin-användare (med eller utan lösenord) och göra lite andra grundläggande inställningar. Hoppa över att lägga till bibliotek till att börja med. Vi valde svenska som föredraget språk men har inte sett någon svenska i menyerna. Vi rekommenderar att du till att börja med inte aktiverar fjärråtkomst eftersom det är en säkerhetsrisk (du kan läsa på om hur du kan säkra servern som överkurs).

Aktivera hårdvaruacceleration

Klicka på "hamburger-knappen" längst upp till vänster och välj Dashboard under Administration. Klicka på Playback i listan till vänster för att öppna transcoding-inställningarna. Välj Video4Linux2 (V4L2) från rullgardinsmenyn under Hardware acceleration och kryssa i H264 och Enable hardware encoding för att aktivera hårdvaruacceleration. Det här gäller de filer servern måste konvertera live medan de strömmas till enheter, till exempel filer i format som enheten själv inte kan spela.

Hårdvaruacceleration

Skriv sedan in sudo raspi-config i terminalen med ssh och välj Performance Options -> GPU Memory. Ändra till 320, tryck Retur och välj Finish för att spara och avsluta. Det här höjer minnestilldelningen till grafikkretsen, vilket hjälper hårdvaruavkodningen av video.

Här har vi en liten brasklapp: Sådan här omkodning mellan format (transcoding) belastar processorn rejält och du kan behöva ett chassi med aktiv kylning för att undvika att den måste sakta ner.

Flytta dina mediafiler

Nu kommer vi till själva mediabiblioteket. Om du har dina filmer, serier och låtar på datorn behöver du flytta över dem till Raspberry Pi. Vi föreslår att du lägger biblioteket på en separat hårddisk (så att operativsystemet kan ligga på en riktigt liten ssd).

Det bästa är om du har ytterligare en extern hårddisk till övers som du kan använda för att flytta över filer. Då kan du formatera din permanenta mediadisk i ext4-formatet som ger bäst prestanda i Linux, och kopiera mediafilerna med den andra disken i ntfs-format (Windows vanliga format). Men det är enklare att bara köra på Windows standardformat ntfs och kopiera över och organisera filerna i Windows.

Portabel hårddisk

Jellyfin förväntar sig en viss mappstruktur för att kunna skanna filerna och bygga sitt bibliotek. Utvecklarna rekommenderar att du har separata bibliotek för filmer, serier, musik och andra mediatyper. Blandade bibliotek gör att servern blandar ihop olika sorters metadata om innehållet. Du kan läsa om de olika mappstrukturerna och filnamnen som krävs för att automatisk metadata och annat ska fungera på Jellyfins webbplats.

Filmer till exempel ska ligga i en mapp (som kan heta Movies, Filmer eller vad du vill). Enstaka filmfiler kan ligga direkt i den mappen och ska ha filnamn med formatet Titel (år).filändelse (till exempel ”Who framed Roger Rabbit (1988).mkv”). Filmer med fler än en fil ska ligga i en mapp med namnformatet Titel (år). Det kan till exempel vara filmer med olika versioner (exempelvis vanliga utgåvan och en ”director’s cut”), undertexter eller som är uppdelade i flera ”skivor”. Med exemplet ovan blir det så här:
/Filmer
…/Who framed Roger Rabbit (1988)
……Who framed Roger Rabbit (1988).mkv
……Who framed Roger Rabbit (1988).sv.srt

Anslut disken till Raspberry Pi

När du har kopierat all media till disken är det dags att ansluta den till Raspberry Pi. När den är inkopplad måste du tala om för systemet att den ska monteras i filsystemet efter varje omstart. Skriv in följande kommando:

sudo fdisk -l

Hitta rätt disk

Resultatet är en lista över olika tillgängliga lagringsenheter. Du kan identifiera din mediadisk utifrån storleken, och rätt partition utifrån Type-kolumnen längst till höger. Vi ser till exempel att vår disk är /dev/sdb med partitionen /dev/sdb1 (”Microsoft basic data” betyder ntfs). Skriv nu in:

sudo ls -l /dev/disk/by-uuid/

Hitta uuid

Kopiera den långa koden som består av siffror och bokstäver (och eventuellt bindestreck) på den rad som hör till partitionen du nyss identifierade. Det är partitionend uuid. Skriv sedan in:

sudo mkdir /media/bibliotek
sudo chown -R jellyfin:video /media/bibliotek
sudo nano /etc/fstab

Det här öppnar en textredigerare som redan har några rader text. Använd piltangenterna för att flytta till slutet av filen och skriv in följande på en rad:

UUID=XXX /media/bibliotek ntfs defaults,rw,nls=utf8,umask=000,dmask=007,fmask=117,uid=jellyfin,gid=video,windows_names 0 0
(Ersätt XXX med koden du kopierade från din partition.) Tryck sedan ctrl-o, retur, ctrl-x för att spara och stänga. Nu kan du starta om systemet med kommandot sudo reboot. Det kopplar ner ssh – vänta en stund och anslut igen om du behöver göra annat i terminalen.

Skapa bibliotek

Lägg till bibliotek

Öppna Jellyfins webbgränssnitt och gå till admin dashboard som innan. Klicka på Libraries och sedan Add Media Library. Välj en innehållstyp och ett namn på biblioteket. Klicka på plusknappen intill Folders. Om du har gjort rätt i tidigare steg ska du se /media/bibliotek i listan här. Klicka på den och markera sedan mappen med den sortens media du skapar bibliotek för, till exempel Filmer. Klicka ok. I inställningarna för biblioteket kan du passa på att välja svenska som språk du föredrar att ladda ner på. Klicka ok när du är klar, för att skapa biblioteket.

Upprepa proceduren med övriga mediatyper, till exempel serier (kallas Shows i Jellyfin) och musik.

När du har skapat ett bibliotek måste Jellyfin skanna det efter innehåll och bygga upp sin databas av metadata. Det tar så klart olika lång tid beroende på hur mycket innehåll du har. Några dussin filmer tar inte lång tid, men har du hundratals kan det dröja ett tag innan den är klar.

Jellyfin

Så strömmar du till dina olika enheter

Du kan ansluta till din nya mediahubb på flera sätt. Dels kan du använda webbgränssnittet du har arbetat i hittills, vilket fungerar i alla vanliga webbläsare oavsett plattform. Är du i admin dashboard måste du först klicka på hemknappen uppe till vänster så kommer du till hemskärmen med dina bibliotek, senast sedda och så vidare, precis som på Netflix eller andra streaming-tjänster.

Jellyfins mobilapp
Jellyfins mobilapp.

På mobiler och plattor kan du ladda ner Jellyfins mobilapp för Android eller IOS istället. Fyll i adressen till servern som ovan och logga in med samma användarnamn och lösen. Appen fungerar sedan som många andra streaming-appar, med olika bibliotek du kan gräva ner dig i men också ”fortsätt kolla/lyssna på” och senast tillagda.

Jellyfin finns också som app för många tv-apparater och fristående mediaspelare, bland annat Android TV och LG:s Web OS. Se hela listan här.

Tips: Om vissa filmer eller serier spelar upp hackigt kan det bero på att Jellyfin måste koda om mellan format för vilka det saknas stöd för hårdvaruacceleration. En lösning på det problemet är att använda Handbrake och konvertera filerna. Det mest kompatibla formatet är 8-bitars h264 med ljud i aac-format, packat i containerformatet mp4.