Bygg en Kodi-mediespiller med Raspberry Pi

Bygg en Kodi-mediespiller med Raspberry Pi

Den åpne programvaren Kodi (tidligere kjent som XBMC) har tatt verden med storm. Kodi er en mediespiller som kan spille av nesten alle filtyper og som dessuten organiserer filene på en praktisk måte. Kodi-prosjektet er utviklet av en stor gruppe hobbyprogrammerere som har interesser innen mange ulike spesialområder. De har selv utbytte av funksjonene de utvikler og forbedrer, noe som gjør at utviklingen skjer i høy fart. Dette gjør Kodi til en god programvare å basere en moderne mediespiller på.

Ettersom Kodi bare er en programvare, kreves det også en eller annen type maskinvare for å ende opp med en fullverdig mediespiller. Tidligere har store datamaskiner for hjemmekinoer (HTPC) vært maskinvaren som ble brukt til å kjøre Kodi, men nå er det også mulig å bruke den lille ettkortsdatamaskinen Raspberry Pi. Den koster bare noen hundrelapper. Dette gjør at en hjemmebygd mediespiller ikke bare blir mer funksjonsrik, men at den også blir rimeligere enn mange av de ferdigbygde mediespilleralternativene.

Raspberry Pi 2 modell B

Det finnes flere ulike Raspberry Pi-datamaskiner. Modellen som passer for kjøring av Kodi, heter Pi 2 modell B. Den er utstyrt med en HDMI 1.4-utgang som kan mate ut videosignalet i Full HD-oppløsning (1080p). Den har fire USB 2.0-porter, en nettverksport (100 Mb/s) og en 3,5 mm lydutgang som dessuten kan sende ut et analogt kompositt­videosignal. Raspberry Pi 2 modell B har ingen vifte og er derfor lydløs. Den mottar strøm fra en vanlig mobiltelefonlader som kobles til via Mikro-USB. Selve operativsystemet og alle programmer lagres på et Micro-SD-kort.

Raspberry Pi 2 modell B har alle tilkoblinger som en moderne mediespiller trenger.

Takket være de fire USB-portene kan den maskinvaremessige grunnfunksjonaliteten utvides. Dette er praktisk hvis mediespilleren trenger støtte for for eksempel trådløst nettverk, Bluetooth-tastatur eller IR-fjernkontroller.

Kodi på Raspberry Pi

Kodi er en svært velegnet mediespiller som bygger på åpen kildekode og som er gratis i bruk. Akkurat som maskinvaren i Raspberry Pi har Kodi støtte for avspilling av film i Full HD-oppløsning. Kodi har bred støtte for ulike beholdere (filformater), og det spiller derfor sjelden noen rolle hvilken beholder filmene kommer i. Det finnes innebygd støtte for alle standardbeholdere (inkludert MKV, MP4, AVI, MOV og M4V). Det spiller heller ingen rolle om filene ligger på en USB-tilkoblet harddisk eller en delt nettverksressurs på en NAS.

Det finnes også et stort utvalg av tredjepartsutvidelser for å for eksempel se på YouTube-video. Disse utvidelsene er uoffisielle og tilbys ikke av tjenestenes utviklere. Det kan derfor hende at de ikke oppdateres like raskt som produkter med offisiell støtte.

Kjell & Companys YouTube-kanal i Kodi.

Selv om Raspberry Pi har en relativt svak prosessor, kan den spille av nesten alle film­filer. Dette skyldes at den har maskinvaremessig støtte for dekoding av materiale som er komprimert med H.264-kodeken (også kalt AVC), som er den vanligste videokodeken i dag. Raspberry Pi trenger derfor ikke å dekode H.264-materiale bare gjennom programvare, men kan akselerere dekodingen ved hjelp av sin egen systembrikke. Dette gjør at høyoppløste filmfiler med høy bithastighet flyter problemfritt, selv om systembrikken hva angår klokkefrekvens er underdimensjonert.

Enkelte Blu-ray-filmer bruker en annen kodek som heter VC-1. Den brukes også i WMV-videoformatet til Microsoft. Raspberry Pi har støtte for maskinvareakselerert dekoding av VC-1-materiale, men mangler lisens til å gjøre dette. Sluttbrukere som ønsker å spille av VC-1-komprimert film, kan kjøpe lisensen på nettstedet til Raspberry Pi. I skrivende stund koster den 1,20 pund (ca. 15 kroner).

DVD-filmer komprimeres med den eldre MPEG-2-komprimeringsteknologien. Akkurat som for VC-1-kodeken kan sluttbrukere kjøpe en egen lisens for MPEG-2. Den koster i skrivende stund 2,40 pund (ca. 30 kroner). Prosessoren i Raspberry Pi 2 modell B er imidlertid kraftig nok til at den ofte kan håndtere MPEG-2-dekoding uten maskinvarestøtte. Dette betyr at de fleste DVD-filmer kan spilles av uten at man må kjøpe noen ekstra lisens. DVD-filmer kan enten spilles av som rene transportstrømmer (video-ts) eller som ISO-filer (diskbilder).

Kodi på Raspberry Pi 2 modell B har samme ytelse rent lydmessig. Via HDMI kan Rasp­berry Pi mate ut et lydsignal i opptil 7.1-konfigurasjon. Kodi 15 (som i skrivende stund er på betastadiet) har støtte for både dekoding og HDMI-gjennomstrømming (for dekoding i hjemmekinoens mottaker) av Dolby Digital, Dolby Digital Plus og DTS. Kodi 15 har også støtte for dekoding av de tapsfritt komprimerte lydformatene Dolby True-HD og DTS-HD MA, som er mye brukt i Blu-ray-film. På grunn av lisensproblematikk har ikke Kodi 15 støtte for HDMI-gjennomstrømming av disse lydformatene (gjelder Kodi 15 på Raspberry Pi). Dette betyr at prosessoren i Raspberry Pi-datamaskinen må ta seg av dekodingen, noe som er relativt ressurskrevende.

Som med alt annet finnes det enkelte begrensninger for Raspberry Pi og Kodi. Støtten for avspilling av 3D-film er nærmest eksperimentell. Maskinvaren mangler også dekodingsstøtte for den nye H.265-kodeken (HEVC), som hovedsakelig kommer til å brukes for Ultra HD-materiale. Kodi er heller ingen plattform som de store videogigantene lager tjenester for, som Chromecast og Apple TV. Det finnes for eksempel ingen offisiell Netflix- eller HBO-app.

Kodi kan brukes til mye mer enn bare å vise film. Det er også mulig å spille av musikk og vise bilder. Kodi kan motta musikk som strømmes via Airplay (video kan imidlertid ikke mottas). Det finnes tredjepartsutvidelser som gjør at Kodi blir en nettradio. Det finnes til og med emulatorer som gjør at Kodi kan brukes til å spille klassiske konsollspill.

Forberedelse

Følgende kreves for å bygge en egen Raspberry Pi-basert mediespiller med Kodi:

  • En Raspberry Pi 2 modell B.
  • Et Micro-SD-kort med en kapasitet på minst 8 GB. Det må helst ha høy hastighet (Speed Class 10 anbefales).
  • En USB-strømadapter med Mikro-USB-kabel. USB-strømadapteren må kunne ­levere minst 1 A. Hvis Raspberry Pi-datamaskinen skal drive mange tilbehørsenheter eller en ekstern harddisk, må strømadapteren kunne levere 2 A.
  • En HDMI High Speed-kabel.
  • En nettverkskabel.

Det finnes en distribusjon som heter Openelec som er utviklet for at sluttbrukere skal oppnå en så enkel og optimalisert Kodi-installasjon som mulig. Utviklerne bak Openelec har tilpasset Kodi for Raspberry Pi og har fjernet alt som anses som overflødig. I denne veiledningen starter vi derfor med å laste ned Openelec-distribusjonen (i stedet for å laste ned Kodi og installere den på et annet operativsystem). Ved publiseringen av denne boken er Openelec 6.0 den siste versjonen, og den er basert på Kodi 15 (i skrivende stund er både Openelec 6.0 og Kodi 15 på betastadiet).

Last ned Openelec

Vi starter med å laste ned den siste stabile versjonen av Openelec fra openelec.tv/get-openelec. På denne siden finnes det mange ulike versjoner. Den riktige filen er den som heter Diskimage, som er laget for Raspberry Pi med ARM v7-brikke.

Vi velger den siste stabile Kodi-versjonen for ARM v7.

Filen inneholder et diskbilde som skal "brennes" til Micro-SD-kortet. Ettersom diskbildet ligger i et komprimert arkiv, må det først pakkes ut. I Windows kan dette gjøres med gratisprogrammet 7-zip (åpen kildekode), som kan lastes ned fra 7-zip.org. Mac OS X har innebygd støtte, og utpakkingen kan derfor gjøres med et dobbeltklikk i Finder.

I Windows trenger du tilleggsprogrammet 7-zip for å pakke ut arkivet.

Forbered Micro-SD-kortet

Prosessen med å "brenne" diskbildet til Micro-SD-kortet er forskjellig i Windows og Mac OS X. 

Windows

I Windows velger du å bruke programmet Win32 Disk Imager. Det er gratis og kan lastes ned fra win32diskimager.sourceforge.net. Når du har installert programmet, velger du det utpakkede diskbildet (med filendelsen .img) og brenner det til stasjonen som representerer det tilkoblede Micro-SD-kortet (i dette tilfellet E). Når du gjør dette, må du være oppmerksom på at alle filer på Micro-SD-kortet slettes, og at det ikke finnes noen enkel måte å gjenopprette dem på.

Win32 Disk Imager kan "brenne" diskbildet til Micro-SD-kortet.

Mac OS X

I Mac OS X trenger du ikke noe ekstraprogram. Du kan benytte et innebygd kommando­linjeprogram i stedet. I første rekke må du finne ut hvilket stasjonsnummer det tilkoblede Micro-SD-kortet har fått av systemet, og du må derfor skrive inn kommandoen diskutil list på terminalen.

I dette tilfellet har Micro-SD-kortet fått stasjonsnummeret 1 (dev/disk1). For å fortsette må du demontere volumene på Micro-SD-kortet, noe du gjør med kommandoen unmountDisk /dev/disk1. Vær oppmerksom på at stasjonsnummeret i kommandoen må byttes ut hvis Micro-SD-kortet har et annet stasjonsnummer (f.eks. /dev/disk2).

Når alle volumene på Micro-SD-kortet er demontert, er det sikrest å overskrive partisjonstabellen. Dette gjøres ved hjelp av kommandolinjeprogrammet DD, som krever root-rettigheter. Du starter derfor med å skrive inn sudo (for å få rett til å gjøre endringer i systemet), og fortsetter deretter med kommandoen dd if=/dev/zero of=/dev/rdisk1 bs=1024 count=1. Vær oppmerksom på at det står "rdisk1" og ikke "disk1", samt at tallet etter "rdisk" må byttes ut med Micro-SD-kortets stasjonsnummer. Advarsel! Feil bruk av denne kommandoen kan skade operativsystemet og føre til tap av filer som ikke kan gjenopprettes på noen enkel måte.

Til slutt skal diskbildet endelig "brennes" til Micro-SD-kortet. Begynn med å navigere til mappen der diskbildet er plassert. I dette tilfellet ligger det i mappen Downloads, som er det opprinnelige navnet på mappen som i den norske versjonen av Mac OS X har fått betegnelsen "Nedlastinger".

Deretter bruker du DD-programmet for å "brenne" diskbildet til Micro-SD-kortet. Dette krever root-rettigheter, så du starter med å skrive inn sudo og fortsetter med kommandoen dd if=OpenELEC-RPi2.arm-5.95.2.img of=/dev/rdisk1 bs=4m. Vær oppmerksom på at filnavnet må byttes ut hvis det er forskjellig. Vær nøye med å skrive inn riktig stasjonsnummer. Advarsel! Feil bruk av denne kommandoen kan skade operativsystemet og føre til tap av filer som ikke kan gjenopprettes på noen enkel måte.

Til slutt kjører du kommandoen sync.

Start Openelec

Når minnekortet er klargjort, kan du starte mediespilleren. Dette gjør du ved å koble til minnekortet, HDMI-kabelen og nettverkskabelen. Du må også koble til en eller annen type kontrollenhet, for eksempel et medietastatur eller en USB-mottaker for fjernkontrollsignaler. Det finnes ingen fysisk startknapp på mediespilleren. Den starter umiddelbart når den mottar strøm (dvs. når Micro-USB-kabelen kobles til).

Når Openelec har startet, kan du legge til mediekilder. Det går selvfølgelig bra å koble til eksterne USB-harddisker og USB-minner, men løsningen blir enda smidigere hvis alt mediemateriale ligger lagret på en NAS (nettverksharddisk). Mediekildene som legges til, kategoriseres etter hva de inneholder, slik at Kodi vet hvordan filene skal håndteres. For alle filmer laster for eksempel Kodi ned omslagsbilder og anmeldelser.

Kodi laster automatisk ned omslagsbilder og anmeldelser til filmer. Filmene Sintel (Blender Foundation, durian.blender.org) og Tears of Steel (Blender Foundation, mango.blender.org) er utgitt under Creative Commons-lisensen og er gratis å laste ned.

Ved å åpne utvidelsesfanen og søke etter videoutvidelser kan du også legge til en mengde ulike kilder til nettbasert materiale. Det finnes utvidelser for blant annet YouTube, Twitch og Ted.

Styr Kodi fra sofaen

Kodi kan styres på mange ulike måter. Du kan blant annet bruke et vanlig kablet USB-tastatur eller et trådløst USB-tilkoblet medietastatur. Tastaturet trenger ingen styrekule, ettersom grensesnittet like godt kan benyttes med piltaster som med musepeker. Kodi bruker standarddrivere for tastatur og mus, slik at alle USB-tilkoblede modeller som fungerer i Windows og Mac OS X, også fungerer med Kodi. Spesialfunksjoner som ikke er standardutstyr på tastatur og mus (f.eks. FN-taster og sideknapper på mus), vil imidlertid ikke alltid fungere.

Kodi kan også styres med fjernkontroll. Takket være støtten for HDMI CEC (se Hjemme­kino 7.4) kan Kodi styres av TV-ens fjernkontroll, forutsatt at også TV-en har støtte for HDMI CEC. TV-en mottar da fjernkontrollsignalene (f.eks. kommandoer fra piltaster og bokstaver) og sender dem videre til Raspberry Pi-datamaskinen via HDMI-kabelen. Raspberry Pi-datamaskinen kan også sende HDMI CEC-kommandoer til TV-en, slik at TV-en for eksempel slår seg av når Kodi slås av.

Hvis TV-en ikke har støtte for HDMI CEC, kan Kodi-mediespilleren utstyres med en IR-mottaker som mottar fjernkontrollsignaler. IR-mottakeren Flirc er populær for dette formålet, ettersom den ikke krever noen spesiell fjernkontroll. Den fungerer med en hvilken som helst IR-fjernkontroll. Det er for eksempel mulig å bruke fjernkontrollen fra en gammel DVD-spiller. Flirc-mottakeren kobles direkte til én av USB-portene på Raspberry Pi-datamaskinen, eller den kan kobles til via en USB-forlengelseskabel, slik at den kan plasseres på et mer strategisk sted. I og med at den mottar IR-signaler, kan den i motsetning til et trådløst medietastatur ikke plasseres i et skap.

Ved hjelp av en USB-tilkoblet Flirc kan Kodi styres av for eksempel Apple Remote.

For å konfigurere Flirc-mottakeren bruker vi en Windows-datamaskin eller Mac. I det tilhørende konfigurasjonsprogrammet kan vi velge hvilken type tasteoppsett vi ønsker å bruke. Vi kan velge mellom et lite tasteoppsett for navigasjon eller et fullstendig tasteoppsett med alle kommandoene som Kodi kan styres med. Vi velger den lille varianten. Deretter leser vi av den fysiske fjernkontrollens kommandoer, tast for tast. Kommandoene lagres i Flirc-mottakeren, slik at den umiddelbart fungerer når vi kobler den til Raspberry Pi-datamaskinen.

Flirc har både en enkel modus og en avansert modus.

Kodi har lansert den offisielle fjernkontrollsappen Kore for Android (tilgjengelig i ­Google Play). I tillegg til å navigere i grensesnittet kan den også brukes til å bla gjennom filmbiblioteket direkte fra Android-enheten. Via Kore blir Android-enhetens skjermtastatur dessuten et ekstra inndataverktøy for mediespilleren. Dette er nyttig ved søk og i andre situasjoner der det kan være vanskelig å skrive lange tekster bare ved hjelp av piltastene.

 Kore fungerer som fjernkontroll, medievelger og tekstinnmater. De oppførte filmene er for øvrig utgitt under Creative Commons-lisensen og er gratis å laste ned fra www.blender.org.

Ekstra: Gjør mediespilleren trådløs

Raspberry Pi har ikke støtte for trådløst nettverk. For brukere som har behov for å ­koble til mediespilleren trådløst, finnes det to ulike løsninger. Den ene løsningen er å koble mediespilleren til en mediebro som gjør en hvilken som helst kablet nettverksklient trådløs. Les mer om denne løsningen i nettverksdelen.

Den andre løsningen er å bruke et USB-nettverkskort. Det er imidlertid ikke alle USB-nettverkskort som er kompatible med Openelec. USB-tilbehør krever drivere for å fungere, og driverne må enten være innebygd i operativsystemet eller installeres manuelt. Mange produsenter av USB-nettverkskort leverer bare drivere for Windows (og av og til for Mac OS X), så det er viktig å velge en modell som har støtte for Openelec. Det finnes en offisiell Wiki-side som viser kompatible modeller (wiki.openelec.tv/index.php/Supported_Network_Cards).

Kodi finner vårt trådløse nettverk (Kjellnet).

Ekstra: Aktiver MPEG-2 og VC-1

For å holde nede prisen på Raspberry Pi-datamaskiner valgte utviklerne å bare forhåndsinstallere lisensen for den absolutt vanligste videokodeken (H.264). Som tidligere nevnt i dette kapittelet har systembrikken også støtte for maskinvareakselerert dekoding av MPEG-2- og VC-1-komprimert materiale. For å aktivere støtten må lisensen for den aktuelle kodeken kjøpes fra det offisielle nettstedet til Raspberry Pi.

For å gjennomføre kjøpet må du kjenne til Raspberry Pi-datamaskinens serienummer. Dette finner du ut ved å koble til Raspberry Pi-datamaskinen fra en Windows-datamaskin eller Mac via SSH (Secure Shell). Mac OS X har en innebygd SSH-klient, som ikke finnes i Windows. For Windows anbefaler vi derfor gratisprogrammet Putty (åpen kildekode). Det kan lastes ned fra chiark.greenend.org.uk.

SSH er som standard deaktivert i Openelec. Derfor må du først aktivere SSH, noe du gjør via Tjenester-fanen på Openelec-menyen. På den tilstøtende Nettverk-fanen finner du også ut hvilken IP-adresse datamaskinen har.

SSH aktiveres og IP-adressen vises på fanene på Openelec-menyen.

Deretter åpner du SSH-klienten. I Windows åpner du Putty, skriver inn IP-adressen og fyller ut påloggingsinformasjonen (standard brukernavn er "root" og standard passord er "openelec").

SSH-tilkobling til Raspberry Pi med Putty i Windows

I Mac OS X åpner du terminalen og skriver inn kommandoen ssh root@ip-adresse for å koble til Raspberry Pi-datamaskinen som root-bruker.

SSH-tilkobling til Raspberry Pi i Mac OS X.

Uansett operativsystem bruker du kommandoen "cat /proc/cpuinfo" for å få opp informasjonen du trenger. Serienummeret vises lengst nede i de utmatede tekstlinjene.

Terminalen viser serienummeret på Raspberry Pi-datamaskinen (serienummeret på bildet er manipulert og ugyldig).

Når du får bekreftet serienummeret, kan du gå til den offisielle nettsiden for å kjøpe MPEG-2-lisensen (www.raspberrypi.com/mpeg-2-license-key) og VC-1-lisensen (www.raspberrypi.com/vc-1-license-key). Lisensnøklene sendes via e-post.

Når du har mottatt lisensnøklene for kodekene, må de registreres i Openelec. Det finnes ikke noe grafisk grensesnitt for dette, men det er heller ikke nødvendig. Ved å ta ut Micro-SD-kortet og koble det til en datamaskin kan du åpne config.txt-filen (som ligger i rotmappen på minnekortet). I den filen finner du plassholdere for lisensnøklene til de ulike kodekene. Alt du trenger å gjøre, er å bytte ut plassholderne med lisensnøklene. Deretter lagrer du filen (uten å legge til noen formatering) og setter minnekortet tilbake i Raspberry Pi-datamaskinen. Når den starter opp igjen, har den fått støtte for kodekene du har kjøpt lisenser for.

Lisensnøklene skrives inn på de angitte stedene i konfigurasjonsfilen.
Sist endret: 2015-10-20