Multimedia

Een Raspberry Pi is een klein processor bord, waarmee heel veel gedaan kan worden. In feite is het een kleine computer, die ook als mediaspeler gebruikt kan worden.
Het is wel noodzakelijk om zelf software te installeren, en eventueel enkele codecs te kopen. De Raspberry Pi draait op Linux software, het is handig als je wat kennis van Linux hebt.

Raspberry Pi tips

* Gebruik een SD kaart van een bekend merk, en klasse 10.
* Gebruik een goede voeding! Niet alle telefoon voedingen zijn geschikt, de voeding moet 5V, 1A kunnen leveren.
* Het is ook mogelijk om de USB aansluiting van je TV te gebruiken als voeding.

Lijst met allerlei randapparatuur voor Raspberri Pi: elinux.org/RaspberryPiBoardVerifiedPeripherals

Ondersteuning

* Tweakers forum: http://gathering.tweakers.net/forum/list_messages/1511319

Mediaspeler Software

Er zijn meerdere mediaspeler software pakketten te vinden op internet, speciaal voor de Raspberry Pi:

Raspbmc software

Raspbmc: http://www.raspbmc.com/download/
Download de software op je pc en start "setup.exe". Deze software installeert Raspbmc op een SD kaart.

XBian software

XBian: http://www.xbian.org/

OpenELEC software

OpenELEC: http://openelec.tv/
Ik heb zelf OpenELEC geïnstalleerd, op dit moment (nov 2013) schijnt dit één van de snelste XBMC versies te zijn voor de Raspberry Pi.
Het installeren viel me een beetje tegen, het kostte wat tijd om de juiste instellingen te vinden voordat de Raspberry helemaal goed opstartte.

Ik heb de openelec handleiding gevolgd om de bestanden te installeren.
De volledige installatie heb ik op een SD kaart gezet, dit werkt zonder USB stick (er zijn dan 2 partities noodzakelijk op de SD kaart).

Na de installatie heb ik de volgende bestanden op de SD kaart staan:

bootcode.bin
cmdline.txt
config.txt
fixup.dat
kernel.img
LICENCE.broadcom
openelec.ico
README.md
start.elf
SYSTEM


LET OP: Het bestand cmdline.txt heb ik zelf gemaakt, met deze regel erin:
boot=/dev/mmcblk0p1 disk=/dev/mmcblk0p2 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 ssh 

Als je een USB stick gebruikt voor de opslag (Storage), dan moet de regel aangepast worden naar:
boot=/dev/mmcblk0p1 disk=/dev/sda1 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 ssh

Met je PC kun je met telnet inloggen op de Raspberry.
Gebruikersnaam: root
Wachtwoord: openelec

Software plugins

Uitzending gemist installeren: http://www.rieter.net/content/xot/troubleshooting/install/

(Afstands)Bediening

Een Raspberry Pi heeft geen afstandsbediening. Eventuele mogelijkheden voor afstandsbediening zijn:

* HDMI-CEC. Als je TV het HDMI-CEC protocol ondersteunt, dan kun je met de TV afstandsbediening de Raspberry Pi bedienen. Op mijn Samsung TV werkt dit heel erg goed, er hoefde niets ingesteld te worden!
Er is een goede HDMI kabel noodzakelijk, anders werkt het CEC protocol niet. Bij goedkope HDMI kabels kunnen enkele aders ontbreken in de kabel.

* Smartphone. Als afstandsbediening kun je je smartphone gebruiken met de app: XBMC remote app of: Yatse. Ik heb Yatse geprobeerd: werkt prima.
LET OP: de webserver op de Raspberry PI moet aangezet worden voordat de afstandsbediening APP gaat werken!

* Met een losse infrarood ontvanger.

* USB. Het is ook mogelijk een USB muis of USB toetsenbord aan te sluiten. Ik heb een muis aangesloten op de Raspberry, die kun je altijd gebruiken om snel enkele instellingen te wijzigen of om een film te starten zonder een andere afstandsbediening.

Geluid

Een Raspberry Pi heeft 2 mogelijkheden voor geluid:

1) Een stereo uitgang (het is niet aan te raden deze te gebruiken, het geluid is matig).
2) Geluid over HDMI.

Er zijn geen optische of coaxiale geluidsuitgangen. Bij gebruik van bijv. Dolby Prologic of DTS geluid, moet je de HDMI uitgang koppelen aan een audio versterker (HDMI in), en vervolgens HDMI weer doorkoppelen naar de TV.
Er bestaan ook speciale converters om HDMI om te zetten naar optische of coaxiale geluids aansluitingen, maar die kosten al gauw enkele tientjes...

Codecs

Een Raspberry Pi wordt verkocht zonder MPEG-2 (DVD films) en VC-1 video codecs.
Deze codecs kun je online kopen: http://www.raspberrypi.com/

Eerst moet je het serie nummer van je Raspberry zoeken. Maak een verbinding met je Raspberry met bijv. het Putty programma.
Type vervolgens het volgende commando: cat /proc/cpuinfo
Bij "Serial" staat het serienummer.

Met het serienummer kun je de sleutels voor de codecs kopen.
Deze sleutels zien er ongeveer zo uit (dit zijn ongeldige codecs als voorbeeld):
decode_MPG2=0x1cc591c7
decode_WVC1=0x8aa09876

Er zijn meerdere methoden om deze sleutels te activeren:

* Een makkelijke methode is:
1) Installeer Notepad++ op je PC (gebruikt geen windows editor, want dan raakt je config.txt bestand corrupt).
2) Doe de SD kaart in de pc (SD slot van je laptop bijvoorbeeld).
3) TIP: maak eerst een backup van het originele /boot/config.txt bestand!
4) Voeg de decode regels toe in het bestand: /boot/config.txt.

* XBian: gebruik XBian-config. Na een reboot worden de sleutels ingevoerd en zijn ze actief.

* Raspbmc: ga naar Programs -> Raspbmc Settings -> System Configuration -> MPEG2 codec license/VC1 codec key. Voer de sleutels in, na een reboot zijn ze actief.

* OpenELEC (dit is redelijk lastig, het werkt ook met de eerste makkelijke methode!): Type mount /flash -o remount,rw to remount the boot partition in read/write mode. The file to edit is located in /flash/config.txt, and contains stubs for the license keys. Add the keys using nano or vi.

Media delen met NFS protocol

Als je bestanden afspeelt vanaf een PC of NAS (thuisserver), dan wordt standaard het Samba bestandsdeling protocol gebruikt. Maar het is beter om NFS als protocol te gebruiken, dat gebruikt minder CPU op de Raspberry waardoor een film beter afgespeelt zal worden.
NFS gaan gebruiken op de NAS: http://www.robvanhamersveld.nl/2012/12/14/share-media-from-synology-to-xbmc-with-nfs/

Met UPnP de mediaspeler bedienen

Het is mogelijk om met een smartphone youtube filmpjes te starten op de Raspberry Pi!

1) Ik gebruik OpenElec, activeer UPnP bij de instellingen:
Systeem > Instellingen > Diensten > UPnP > "Toestaan op afstand bedienen via UPnP" AAN zetten.

2) Installeer een UPnP app op je smartphone. Er zijn er meerdere, momenteel gebruik ik zelf "AllConnect".

Via de app kun je al allerlei items laten zien in OpenElec, bijvoorbeeld je foto's, video's etc. die op je smartphone staan. De Raspberry Pi zal dit automatisch starten als je deze items selecteert in je smartphone.
Als je de youtube app opent, en bij een filmpje op delen klikt, dan kun je de UPnP app selecteren, vervolgens wordt het filmpje afgespeelt op de Raspberry Pi.

Wifi adapters

Lijst met wifi adapters: http://elinux.org/RPi_USB_Wi-Fi_Adapters

Geavanceerde mogelijkheden

XBMC Database op NAS

Het is mogelijk om de XBMC database (waarin o.a. informatie over de films wordt opgeslagen) op een NAS te installeren.
http://www.robvanhamersveld.nl/2013/02/05/share-your-xbmc-12-0-library-on-a-synology-ds-or-other-nas/

Booten vanaf een NAS

Booten vanaf NAS http://gathering.tweakers.net/forum/list_messages/1511319/266
Je zou je PI vanaf een NFS share kunnen booten. Dat scheelt in snelheid, het booten zal sneller gaan. 

Maak een NFS share aan op je server
/RPI/SYSTEM en zet hier kernel en system in.
/RPI/STORAGE 

Zorg dat permissies goed staan, dan op de pi sd kaart:
bootcode.bin
cmdline.txt
config.txt
fixup.dat
kernel.img
licence.broadcom
start.elf
---

cmdline.txt aanpassen
ip=dhcp boot=NFS=10.0.1.3:/export/RPI/SYSTEM disk=NFS=10.0.1.3:/export/RPI/STORAGE

Raspberry Pi overklokken

Door het overklokken wordt de gebruikers interface iets sneller. Het afspelen van een video wordt gedaan door de grafische processor, en die is al in staat full HD films af te spelen.
Uitleg over overklokken staat o.a. hier: http://www.jeremymorgan.com/tutorials/raspberry-pi/how-to-overclock-raspberry-pi/

Een tip voor degenen die hun Pi willen overklokken: draai je OS vanaf een USB-stick, het kan wel eens voorkomen dat de SD kaart corrupt raakt door de extra warmte. Een tweede optie is om heatsinks op de chips te bevestigen.

Normaal gesproken draait een Pi op 700 MHz maar je kunt overklokken tot 1000 MHz. Niet alle Raspberrie Pi's draaien goed op 1000 MHz maar 800 of 900 MHz zou goed moeten werken.
 
De makkelijkste methode om te overklikken is het wijzigen van het config.txt bestand in de root van de SD kaart. Zoek de "Overclocking" sectie en wijzig de frequentie en voltages volgens de aanwijzingen.

Problemen oplossen

Zwart beeld bij opstarten Raspberry

Een Raspberry heeft een TV en een HDMI aansluiting. Als de HDMI wordt opgestart, en er wordt nog geen HDMI uitvoer gedetecteert, dan zal de composiet uitgang gebruikt worden. De HDMI uitvoer geeft dan een zwart beeld.

Het is mogelijk om dit in te stellen. Verwijder # in deze regel in het config.txt bestand: # hdmi_force_hotplug=1

Wijzig ook de instellingen voor de standaard resolutie (zie ook: elinux.org/RPiconfig voor andere instellingen):
hdmi_group=1
hdmi_mode=16
Vervolgens start de Raspberry Pi met 1080P en 60Hz.

Zwart beeld bij afspelen van video

http://www.erikdevries.com/hardware/de-installatie-van-xbmc-op-een-raspberry-pi/
Oplossing zwart beeld bij afspelen video
Hoewel 99% van alle films die ik afspeel zonder problemen werken liep ik in een aantal gevallen tegen het probleem dat enkel geluid werd afgespeeld, het beeld blijft zwart. Na het openen van de logfiles van XBMC kwam ik al snel achter de oorzaak, de Raspberry had niet genoeg geheugen om deze video af te spelen, de volgende regel stond in de logfile:

COMXCoreComponent DecoderEventHandler OMX.broadcom.video_decode – OMX_ErrorInsufficientResources, insufficient resources

Mogelijke oplossing: namelijk meer geheugen toekennen aan de GPU (de videochip). Je past dit als volgt aan:

Log via SSH in op de Raspberry Pi (standaard is de gebruikersnaam “pi” en het wachtwoord “raspberry”)
Open /boot/config.txt in bijvoorbeeld vi of nano: sudo nano /boot/config.txt
Pas de regel “gpu_mem=100″ aan naar “gpu_mem=128″ en sla de wijzigingen op
Reboot de Raspberry Pi en probeer of de video nu correct werkt

Buffer problemen bij afspelen van film

Verhoog de buffer van XBMC. Hierdoor zal XBMC meer van de video binnenhalen en is de kans op haperingen kleiner.
Log in met SSH. In de folder ~/.xbmc/userdata maak je vervolgens een bestand: advancedsettings.xml aan en daarin zet je het volgende:
 
<advancedsettings>
  <network>
    <cachemembuffersize>15728640</cachemembuffersize>
  </network>
</advancedsettings>
 
Sla vervolgens het bestand op en herstart de Raspberry.

Afstandsbediening met CEC werkt niet

Als je de Raspberry Pi aansluit met een hdmi kabel aan een TV die CEC ondersteunt, dan kun je met de TV afstandsbediening de Raspberry bedienen!
MAAR: gebruik een goede HDMI kabel! Niet alle hdmi kabels (vooral dunnen hdmi kabels) zijn helemaal goed uitbekabeld, en dan werkt CEC niet.