Bygg en Kodi-mediaspelare med Raspberry Pi

Bygg en Kodi-mediaspelare med Raspberry Pi

Den öppna mjukvaran Kodi (tidigare känd som XBMC) har tagit världen med storm. Det är en mediaspelare som kan spela nästan alla filtyper och dessutom organiserar filerna på ett praktiskt sätt. Bakom Kodi-projektet står en stor skara hobbyprogrammerare med många olika specialintressen. De har själva nytta av funktionerna som de uppfinner och förbättrar, vilket gör att utvecklingen håller hög takt. Det gör Kodi till en bra mjukvara att basera en modern mediaspelare på.

Eftersom Kodi endast är en mjukvara krävs det också någon typ av hårdvara för att få en fullständig mediaspelare. Tidigare har stora hembiodatorer (HTPC) varit hårdvaran som använts för att köra Kodi, men nu går det även att använda den lilla enkorts­datorn Raspberry Pi. Den kostar endast några hundralappar. Det gör att en hemmabyggd media­spelare inte bara blir mer funktionsrik utan också billigare än många av de färdigbyggda mediaspelaralternativen.

Raspberry Pi 2 Modell B

Det finns flera olika Raspberry Pi-datorer. Modellen som är lämplig för att köra Kodi heter Pi 2 Modell B. Den är utrustad med en HDMI 1.4-utgång som kan mata ut videosignal i Full HD-upplösning (1080p). Den har fyra USB 2.0-portar, en nätverksport (100 Mb/s) och en 3,5 mm-ljudutgång som dessutom kan skicka ut analog kompositvideosignal. Raspberry Pi 2 Modell B har ingen fläkt och är därför knäpptyst. Strömmen får den från en vanlig mobilladdare som kopplas in via Micro-USB. Själva operativsystemet och alla program lagras på ett Micro-SD-kort.

Raspberry Pi 2 Modell B har alla anslutningar som en modern mediaspelare behöver.

Tack vare de fyra USB-portarna kan den hårdvarumässiga grundfunktionaliteten ut­ökas. Det är praktiskt om mediaspelaren behöver få stöd för exempelvis trådlöst nätverk, Bluetooth-tangentbord eller IR-fjärrkontroller.

Kodi på Raspberry Pi

Kodi är en synnerligen kompetent mediaspelare som bygger på öppen källkod och är gratis att använda. Precis som hårdvaran i Raspberry Pi, har Kodi stöd för uppspelning av film i Full HD-upplösning. Kodi har ett brett stöd för olika containrar (filformat), så det spelar sällan någon roll vilken container filmerna kommer i. Det finns inbyggt stöd för alla de vanliga containrarna (inkl. MKV, MP4, AVI, MOV och M4V). Det spelar heller ingen roll om filerna ligger på en USB-ansluten hårddisk eller en utdelad nätverksresurs på en Nas.

Det finns också ett stort utbud av tredjepartstillägg för att exempelvis se på Youtube-klipp eller SVT:s pågående sändningar och klipparkiv (via SVT Play). Dessa tillägg är inofficiella och inte framtagna av tjänsternas skapare. Det finns därför risk att de inte uppdateras lika snabbt som produkter med officiellt stöd.

SVT Play och Kjell & Companys Youtube-kanal i Kodi

Trots att Raspberry Pi har en förhållandevis klen processor, kan den spela upp nästan alla filmfiler. Detta beror på att den har hårdvarumässigt stöd för avkodning av material som är komprimerat med H.264-kodeken (även kallad AVC), vilket är den överlägset vanligaste videokodeken idag. Raspberry Pi behöver därför inte avkoda H.264-material enbart genom mjukvara, utan kan accelerera avkodningen med hjälp av sitt systemchip. Det gör att högupplösta filmfiler med hög bitrate flyter på smärtfritt, trots att systemchippet rent klockfrekvensmässigt är underdimensionerat.

Vissa Blu-ray-filmer använder en annan kodek vid namn VC-1. Den används även i Microsofts videoformat WMV. Raspberry Pi har stöd för att avkoda VC-1-material hårdvaruaccelererat, men saknar licens för att göra det. Slutanvändare som behöver kunna spela upp VC-1-komprimerad film kan köpa till licensen på Raspberry Pis officiella webbsida. I skrivande stund kostar den 1,20 pund (cirka 15 kronor).

DVD-filmer komprimeras med den äldre komprimeringstekniken Mpeg-2. Precis som med VC-1-kodeken kan slutanvändare köpa en separat licens för Mpeg-2. Den kostar i skrivande stund 2,40 pund (cirka 30 kronor). Processorn i Raspberry Pi 2 Modell B är dock kraftfull nog för att ofta kunna sköta Mpeg-2-avkodningen utan hårdvarustöd. Det gör att de flesta DVD-filmer kan spelas upp utan att någon extralicens behöver ­köpas. DVD-filmerna kan antingen spelas upp som rena transportströmmar (video-ts) eller som Iso-filer (skivavbilder).

Kodi på Raspberry Pi 2 Modell B är likaså kompetent rent ljudmässigt. Via HDMI kan Raspberry Pi mata ut ljudsignal i upp till 7.1-konfiguration. Kodi 15 (som i skrivande stund är i betastadiet) har stöd för både avkodning och HDMI-genomströmning (för avkodning i hembions receiver) av Dolby Digital, Dolby Digital Plus och DTS. Kodi 15 har också stöd för avkodning av de förlustfritt komprimerade ljudformaten Dolby True-HD och DTS-HD MA som är vanligt förekommande på Blu-ray-film. På grund av licensproblematik har Kodi 15 inte stöd för HDMI-genomströmning av dessa ljudformat (gäller Kodi 15 på Raspberry Pi). Det innebär att processorn i Raspberry Pi-datorn måste sköta avkodandet, vilket är förhållandevis resurskrävande.

Precis som allt annat finns det några begränsningar med Raspberry Pi och Kodi. Stödet för uppspelning av 3D-film är närmast experimentellt. Hårdvaran saknar också avkodningsstöd för den nya H.265-kodeken (HEVC) som främst kommer att användas för Ultra HD-material. Kodi är heller ingen plattform som de stora videojättarna bygger tjänster för, likt Chromecast och Apple TV. Den finns exempelvis ingen officiell Netflix- eller HBO-app.

Kodi kan användas till mycket mer än att bara visa film. Det går även att spela upp musik och visa bilder. Kodi kan ta emot musik som strömmas via Airplay (dock inte video). Det finns tredjepartstillägg som gör att Kodi blir en webbradio. Det finns till och med emulatorer som gör att Kodi kan användas för att spela klassiska konsolspel.

Förberedelser

För att bygga en egen Raspberry Pi-baserad mediaspelare med Kodi krävs följande ­saker:

  • En Raspberry Pi 2 Modell B.
  • Ett Micro-SD-kort som rymmer minst 8 GB. Det ska helst ha hög hastighet (Speed Class 10 är rekommenderat).
  • En USB-nätadapter med Micro-USB-kabel. USB-nätadaptern måste kunna leverera minst 1 A. Om Raspberry Pi-datorn ska driva många tillbehör eller en extern hårddisk måste nätadaptern kunna leverera 2 A.
  • En HDMI High Speed-kabel.
  • En nätverkskabel.

Det finns en distribution vid namn Openelec som är framtagen för att slutanvändare ska få en så enkel och optimerad Kodi-installation som möjligt. Utvecklarna bakom Openelec har anpassat Kodi för Raspberry Pi och skalat bort alla onödigheter. Denna guide inleder vi därför med att hämta distributionen Openelec (i stället för att hämta Kodi och installera det ovanpå ett annat operativsystem). Vid publiceringen av denna bok lär Openelec 6.0 vara den senaste släppta versionen och den baseras på Kodi 15 (i skrivande stund är både Openelec 6.0 och Kodi 15 i betastadiet).

Hämta Openelec

Vi börjar med att ladda ned den senaste stabila versionen av Openelec från openelec.tv/get-openelec. På den sidan finns det många olika versioner. Den rätta filen är den som heter Diskimage och är gjord för Raspberry Pi med ARM v7-chip.

Vi väljer den senaste stabila Kodi-versionen för ARM v7.

Filen innehåller en skivavbild som ska ”brännas” till Micro-SD-kortet. Eftersom skivavbilden ligger i ett komprimerat arkiv måste det först packas upp. I Windows kan det göras med gratisprogrammet 7-zip (öppen källkod) som kan hämtas från 7-zip.org. Mac OS X har inbyggt stöd och uppackningen kan därför göras med ett dubbelklick i Finder.

Windows behöver tilläggsprogrammet 7-zip för att packa upp arkivet.

Preparera Micro-SD-kortet

Processen för att ”bränna” skivavbilden till Micro-SD-kortet ser olika ut i Windows och Mac OS X.

Windows

I Windows väljer vi att använda programmet Win32 Disk imager. Det är gratis och kan laddas ned från win32diskimager.sourceforge.net. Efter att ha installerat programmet väljer vi den uppackade skivbilden (filändelsen .img) och att den ska brännas till enhetsbokstaven som betecknar det anslutna Micro-SD-kortet (i detta fall E). Observera att alla filer på Micro-SD-kortet försvinner i samband med detta och de går inte att återskapa på något enkelt sätt.

Win32 Disk imager kan ”bränna” skivavbilden till Micro-SD-kortet.

Mac OS X

I Mac OS X behöver vi inget extraprogram utan använder i stället ett inbyggt kommandoradsprogram. Vi behöver först och främst veta vilket disknummer det anslutna Micro-SD-kortet har fått av systemet och skriver därför kommandot diskutil list i terminalen.

I vårt fall har Micro-SD-kortet fått disknummer ett (dev/disk1). För att gå vidare måste vi avmontera volymerna på Micro-SD-kortet, vilket vi gör med kommandot unmountDisk /dev/disk1. Observera att disknumret i kommandot behöver bytas ut om Micro-SD-kortet har fått ett annat disknummer (t.ex. /dev/disk2).

När alla volymer på Micro-SD-kortet är avmonterade är det säkrast att skriva över partitionstabellen. Det görs med kommandoradsprogrammet DD som kräver root-rättigheter. Vi inleder därför med att skriva sudo (för att få rättigheten att ändra i systemet) och fortsätter sedan med kommandot dd if=/dev/zero of=/dev/rdisk1 bs=1024 count=1. Observera att det står ”rdisk1” och inte ”disk1” samt att siffran efter ”rdisk” ska bytas ut mot Micro-SD-kortets disknummer. Varning! Felaktig användning av detta kommando kan skada operativsystemet och leda till förlust av filer som inte går att återskapa på något enkelt sätt.

Slutligen är det dags att ”bränna” skivavbilden till Micro-SD-kortet. Vi börjar med att navigera till mappen där skivavbilden finns. I vårt fall ligger den i mappen Downloads, vilket är det riktiga namnet på mappen som i den svenska versionen av Mac OS X fått skenbeteckningen ”Hämtade filer”.

Sedan använder vi DD-programmet för att ”bränna” skivavbilden till Micro-SD-kortet. Detta kräver root-rättigheter, så vi inleder med sudo och fortsätter med kommandot dd if=OpenELEC-RPi2.arm-5.95.2.img of=/dev/rdisk1 bs=4m. Observera att filnamnet måste bytas ut om det avviker. Var noga med att skriva rätt disknummer. Varning! Felaktig användning av detta kommando kan skada operativsystemet och leda till förlust av filer som inte går att återskapa på något enkelt sätt.

Avslutningsvis kör vi kommandot sync.

Starta Openelec

När minneskortet är preparerat är det dags att starta mediaspelaren. Det gör vi genom att ansluta minneskortet, HDMI-kabeln och nätverkskabeln. Vi behöver också koppla in någon typ av styrdon, till exempel ett mediatangentbord eller en USB-mottagare för fjärrkontrollssignaler. Det finns ingen fysisk startknapp på mediaspelaren, utan den startar direkt när den får ström (d.v.s. när Micro-USB-kabeln ansluts).

När Openelec har startat är det dags att lägga till mediakällor. Det går givetvis utmärkt att ansluta externa USB-hårddiskar och USB-minnen, men lösningen blir ännu smidi­gare om allt mediamaterial ligger lagrat på en Nas (nätverkshårddisk). Mediakällorna som läggs till kategoriseras efter vad de innehåller, så att Kodi vet hur filerna ska hanteras. Till alla filmer hämtar Kodi exempelvis omslagsbilder och tittaromdömen.

Kodi hämtar automatiskt omslagsbilder och tittaromdömen till filmer. Filmerna Sintel (Blender Foundation, durian.blender.org) och Tears of Steel (Blender Foundation, mango.blender.org) är släppta under Creative Commons-licensen och är gratis att ladda ned.

Genom att öppna tilläggsfliken och söka efter videotillägg går det också att lägga till en mängd olika webbmaterialkällor. De redan nämnda tredjepartstilläggen för SVT Play och Youtube är två populära sådana. Det finns även tillägg för bland annat Twitch och Ted.

Styr Kodi från soffan

Kodi kan styras på många olika sätt. Det går bland annat att använda ett vanligt trådbundet USB-tangentbord eller ett trådlöst USB-anslutet mediatangentbord. Tangent­bordet behöver inte ha någon styrkula, eftersom gränssnittet går lika bra att använda med piltangenter som med musmarkör. Kodi använder standarddrivrutiner för tangentbord och möss, vilket gör att alla USB-anslutna modeller som fungerar i Windows och Mac OS X också fungerar med Kodi. Specialfunktioner som inte är standardutrustning på tangentbord och möss (t.ex. FN-tangenter och sidoknappar på möss) fungerar dock inte alltid.

Kodi kan också styras med fjärrkontroll. Tack vare stödet för HDMI CEC (se Hembio 13.4) kan Kodi styras av TV:ns fjärrkontroll, under förutsättning att även TV:n har HDMI CEC-stöd. TV:n tar då emot fjärrkontrollsignalerna (t.ex. kommandon från piltangenter och bokstäver) och skickar vidare dem till Raspberry Pi-datorn via HDMI-kabeln. Raspberry Pi-datorn kan också skicka HDMI CEC-kommandon till TV:n, så att till exempel TV:n slå av sig när Kodi stängs av.

Om TV:n saknar stöd för HDMI CEC kan Kodi-mediaspelaren utrustas med en IR-mottagare som tar emot fjärrkontrollssignaler. IR-mottagaren Flirc är populär för detta ändamål, eftersom den inte kräver någon speciell fjärrkontroll utan fungerar med vilken IR-fjärrkontroll som helst. Det går exempelvis att använda fjärrkontrollen från en gammal DVD-spelare. Flirc-mottagaren ansluts direkt till en av USB-portarna på Raspberry Pi-datorn eller via en USB-förlängningskabel för att kunna placeras på ett mer strategisk ställe. I och med att den tar emot IR-signaler kan den, till skillnad från trådlösa media­tangentbord, inte placeras inuti ett skåp.

Med en USB-ansluten Flirc kan t.ex. Apple Remote styra Kodi.

För att konfigurera Flirc-mottagaren använder vi en Windows-dator eller Mac. I det tillhörande konfigurationsprogrammet kan vi välja vilken typ av knappuppsättning vi vill använda. Det går att välja mellan en liten knappuppsättning för navigering eller en fullständig knappuppsättning med alla kommandon som Kodi kan styras med. Vi väljer den lilla varianten. Sedan läser vi av den fysiska fjärrkontrollens kommandon, knapp för knapp. Kommandona lagras i Flirc-mottagaren så att den fungerar direkt när vi kopplar den till Raspberry Pi-datorn.

Flirc har både ett simpelt läge och ett avancerat läge

Kodi har släppt den officiella fjärrkontrollsappen Kore för Android (finns i Google Play). Utöver att navigera i gränssnittet kan den också användas för att bläddra i filmbiblioteket direkt från Android-enheten. Via Kore blir Android-enhetens skärmtangentbord dessutom ett extra indataverktyg för mediaspelaren. Det är praktiskt vid sökningar och i andra situationer då det kan vara svårt att skriva långa texter med enbart piltangenter.

Kore fungerar som en fjärrkontroll, mediaväljare och textinmatare. Filmerna som listas är för övrigt släppta under Creative Commons-licensen och är gratis att ladda ned från www.blender.org.

Extra: Gör mediaspelaren trådlös

Raspberry Pi saknar stöd för trådlöst nätverk. För användare som behöver kunna ­ansluta mediaspelaren trådlöst finns det två olika lösningar. Den ena lösningen är att koppla mediaspelaren till en mediabrygga som gör vilken trådbunden nätverksklient som helst trådlös. Läs mer om denna lösning i nätverkssektionen.

Den andra lösningen är att använda ett USB-nätverkskort. Det är dock inte alla USB-nätverkskort som är kompatibla med Openelec. USB-tillbehör kräver drivrutiner för att fungera och drivrutinerna måste antingen finnas inbyggda i operativsystemet eller installeras manuellt. Många tillverkare av USB-nätverkskort tillhandahåller enbart drivrutiner för Windows (och ibland Mac OS X), så det är viktigt att välja en modell som har stöd för Openelec. Det finns en officiell wiki-sida som listar kompatibla modeller (wiki.openelec.tv/index.php/Supported_Network_Cardshttp://wiki.openelec.tv/index.php/Supported_Network_Cards).

Operativsystemet utgjør programvareplattformen som programmer kjøres på.

Extra: Aktivera Mpeg-2 och VC-1

För att hålla nere priset på Raspberry Pi-datorerna valde skaparna att endast förinstallera licensen för den absolut vanligaste videokodeken (H.264). Som det nämndes tidigare i detta kapitel har systemchippet också stöd för hårdvaruaccelererad avkodning av Mpeg-2- och VC-1-komprimerat material. För att aktiverat stödet måste licensen för respektive kodek köpas från Raspberry Pis officiella webbsida. 

För att kunna genomföra köpet måste vi känna till vår Raspberry Pi-dators serienummer. Det tar vi reda på genom att ansluta till Raspberry Pi-datorn från en Windows-dator eller Mac via SSH (Secure Shell). Mac OS X har en inbyggd SSH-klient, men en sådan saknas i Windows. För Windows rekommenderar vi därför gratisprogrammet Putty (öppen källkod). Det kan laddas ned från chiark.greenend.org.uk.

Openelec har SSH avstängt som standard. Vi måste därför först aktivera det, vilket vi gör på Tjänster-fliken som ligger i Openelec-menyn. Under den intilliggande Nätverks-fliken får vi också reda på vilken IP-adress datorn har fått.

SSH aktiveras och IP-adressen visas på flikar i Openelec-menyn.

Därefter öppnar vi vår SSH-klient. I Windows öppnar vi Putty, skriver in IP-adressen och fyller i inloggningsuppgifterna (standardanvändarnamn är ”root” och -lösenord är ”openelec”).

SSH-anslutning till Raspberry Pi med Putty i Windows

I Mac OS X öppnar vi terminalen och skriver kommandot ssh root@ip-adressen för att ansluta som root-användare till Raspberry Pi-datorn.

SSH-anslutning till Raspberry Pi i Mac OS X.

Oavsett operativsystem använder vi kommandot ”cat /proc/cpuinfo” för att få fram informationen vi behöver. Längst ned bland de utmatade textraderna visas serienumret.

Terminalen visar serienumret på Raspberry Pi-datorn (serienumret på bilden är manipulerat och ogiltigt).

När vi vet serienumret kan vi gå till den officiella webbsidan för att köpa Mpeg-2-licensen (www.raspberrypi.com/mpeg-2-license-key) och VC-1-licensen (www.raspberrypi.com/vc-1-license-key). Licensnycklarna skickas via mail.

När vi har fått licensnycklarna för kodekarna måste de registreras i Openelec. Det finns inget grafiskt gränssnitt för detta, men det behövs heller inte. Genom att plocka ut Micro-SD-kortet och ansluta det till en dator kan vi öppna filen config.txt (den ligger i root-mappen på minneskortet). I den filen finns platshållare för de olika kodekarnas licensnycklar. Det enda vi behöver göra är att ersätta platshållarna med våra licensnycklar. Därefter sparar vi filen (utan att lägga till någon formatering) och sätter tillbaka minneskortet i Raspberry Pi-datorn. När den startar upp igen har den fått stöd för kodekarna som vi har köpt licenser för.

Licensnycklarna skrivs in på anvisade platser i konfigurationsfilen.
Senast ändrad: 2017-07-20