SAT-Streamer mit RaspberryPi, MLD und Mac OS X

Ich wollte meinem RaspberryPi immer mal wieder eine neue Aufgabe geben und hatte nie Zeit dafür oder auch keine konkrete Anforderung. Was ich aber immer schon mal vor hatte, war es, die Signale meiner Sat-Anlage ins Netzwerk zu streamen.

Mein Sat-Receiver – ein Kathrein UFS-913 – kann dies schon. Und da er zwei Tuner hat, kann auch ein Teilnehmer fernsehen und ein anderer ein anderes Programm streamen. Je nachdem, welcher Transponder auf dem jeweiligen Tuner aktiv ist, geht sogar noch eine Aufnahme oder ein zweiter Stream.

Meine Sat-Anlage (Astra 19,2E) wird über einen Multischalter in verschiedene Räume verteilt. Natürlich könnte ich jetzt in jedem Raum einen Fernseher mit einem entsprechenden Tuner installieren. Das ist aber nicht mehr zeitgemäß:

Meine Tochter hat nur z.B. noch einen PC mit dem sie ab und zu auf den Stream des UFS-913 zugreift und sonst Streamingdienste nutzt

Bevor ich den UFS-913 gekauft habe, war die zusätzliche Anschaffung eines elgato netstream sat immer mal wieder in der Diskussion. Mir erschien diese Variante aber immer zu teuer.

Was lag nun näher, als dem RaspberryPi die Aufgabe zu geben, die DVB-S2 Signale ins interne Netz zu streamen.

Die Lösung: MLD

Zitat aus der MLD Webseite:

Die MLD bietet eine einfache Möglichkeit einen PC in eine Multimedia Zentrale auf der Basis des Video Disk Recorder (VDR) von Klaus Schmidinger zu verwandeln.

Was bietet dieser digitale Videorekorder auf Linux-Basis:

  • Fernsehen
  • zeitgesteuerte Aufnahmen und
  • zeitversetzte Wiedergabe (Timeshifting)
  • Abspielen von DVDs und MP3s,
  • Programmierung und Konfiguration per Browser,
  • und vieles mehr

Und seit neuestem gibt es vom MLD auch eine Edition für den Raspberry PI

Zunächst einmal fand ich hier eine grundsätzliche Anleitung zur Installation der MLD auf dem Raspberry. Im Wesentlichen konnte ich dieses Vorgehen übernehmen, musste aber an einigen Stellen noch nacharbeiten, doch dazu später mehr.

Neben dem Raspberry PI (den ich schon hatte) braucht man noch einen DVB-S(2) USB Receiver. Im Netz findet man häufig die Receiver von Sundtek, die für linuxtv geeignet sind, mir aber viel zu teuer waren. Ich bin dann nach einiger Recherche auf den DVBSky S960 gestoßen, der beim Amazon bereits für unter 50 EUR zu haben war.

DSC06825
DVBSky S960

Da in der MLD grundsätzlich ein VDR werkelt, der laut dieser Webseite mit dem DVBSky S960 klar kommt, habe ich einfach mal zugeschlagen.

Geliefert wird der DVBSky S960 mit Netzteil (Vorteil, weil man am Raspberry dann nicht noch einen aktiven USB-Hub braucht), USB-Kabel, Fernbedienung (kann ich sicher noch für andere Projekte brauchen) und einer Mini-CD mit Treibern und Software. In dem Zusammenhang: In meinem Haushalt gibt es kein CD-ROM Laufwerk mehr, in dem diese Mini-CDs verwendet werden können. Das hätte man sich als Hersteller auch sparen können. Aber die Herstellerseite bietet auch alles zum Download an. Gut so!

Wir benötigen eine FAT32 formatierte SD-Karte mit einer Größe von mindestens 4GB.  Da ich auf einem Mac arbeite, starte ich das Festplattendienstprogramm und lösche die erkannte Karte mit dem FAT-Dateiformat:

Bildschirmfoto 2014-09-22 um 20.52.15

Dann laden wir die MLD in der Server Version hier herunter

Bildschirmfoto 2014-09-22 um 21.01.27
Das Image für einen Streamingserver

… und entpacken dieses.

Wenn beim RaspberryPi eine MPEG2-Lizenz vorliegt, kann man diese bereits jetzt in die config.txt eintragen in dem die Zeile mit der MPEG2-Lizenz hinzugefügt wird (nur als Beispiel!):

decode_MPG2=0x1a2b3c4d

Alle enthaltenen Dateien markieren wir im Finder und kopieren diese auf die SD-Karte:

Bildschirmfoto 2014-09-22 um 20.56.41
Inhalt der SD-Karte

Mit dieser SD-Karte im RaspberryPi starten wir diesen. MLD bringt in der Server-Version einen SSH-Server und einen DHCP-Client mit. Nun gilt es herauszufinden, welche IP-Adresse der RaspberryPi mit dieser Karte nun hat. Im Falle einer Fritzbox als Router im Heimnetz können wir diese recht einfach über die Weboberfläche der Fritzbox finden. Unter „Heimnetz“ -> „Netzwerk“ finden wir einen Eintrag ähnlich diesem hier

Bildschirmfoto 2014-09-22 um 21.10.00

Wir können den RaspberryPi nun entweder unter seinem DNS-Namen (hier MLD_SERVER) oder seiner IP-Adresse (hier 192.168.178.113) ansprechen und eine SSH-Verbindung aufbauen. Wir starten das Terminal und geben folgendes ein:

ssh -l root MLD_SERVER

Eventuell muss man die SSH-Verbindung noch bestätigen (mit „yes“)

The authenticity of host 'mld_server (192.168.178.113)' can't be established.
RSA key fingerprint is ..............
Are you sure you want to continue connecting (yes/no)? yes
root@mld_server's password:

Das Standardpasswort ist „root“ (kann später geändert werden, wenn der Raspberry mit MLD auch über das Internet erreicht werden soll).

Dann landen wir auf der MLD_SERVER Konsole und können mit „install“ die Installation des MLD auf der SD-Karte durchführen und den RaspberryPi neu starten:

MLD_SERVER> install

start installation
partitioning disk mmcblk0 
format disk mmcblk0p1 
format disk mmcblk0p2 
install system on mmcblk0p2 
write boot files on mmcblk0p1 
Installation completed

MLD_SERVER> reboot

Nach dem Reboot und erneuter Verbindung per SSH konfigurieren wir ein paar Pakete mit dem MLD-Package Manager opkg:

MLD_SERVER> opkg update
MLD_SERVER> opkg upgrade
MLD_SERVER> opkg remove webserver
MLD_SERVER> opkg remove psplash
MLD_SERVER> opkg install tools
MLD_SERVER> opkg install mc
MLD_SERVER> opkg install ntp-client
MLD_SERVER> opkg install dvb
MLD_SERVER> opkg install nfs-client
MLD_SERVER> opkg install vdr
MLD_SERVER> opkg install vdr-plugin-streamdev-server
MLD_SERVER> opkg install vdr-plugin-epgsearch

Wichtig sind die ersten zwei Zeilen. Trotzdem gab es bei mir ein paar Fehler (ntp-client z.B. wurde nicht gefunden), die ich aber zunächst ignoriert habe.

Sollte der vdr nun breits laufen, stoppen wir diesen mit

MLD_SERVER> stop vdr

Nun prüfen wir, ob der DVBSky S960 vom Betriebssystem erkannt wurde:

MLD_SERVER> dmesg | grep -i dvb

Die Ausgabe dieses Befehls sollte in etwa so aussehen:

[    9.519312] 	v4l-dvb-saa716x: dfd91ae70d2d6350c04162f8ac32074be14947e1 saa716x_ff: Align block data on 32 bytes for firmware 0.5.0 and up
[    9.577000] 	v4l-dvb-saa716x: dfd91ae70d2d6350c04162f8ac32074be14947e1 saa716x_ff: Align block data on 32 bytes for firmware 0.5.0 and up
[    9.721303] usb 1-1.3: dvb_usb_v2: found a 'DVBSky S960/S860' in warm state
[    9.730878] usb 1-1.3: dvb_usb_v2: will pass the complete MPEG2 transport stream to the software demuxer
[    9.731882] DVB: registering new adapter (DVBSky S960/S860)
[    9.733336] dvbsky_usb MAC address=00:18:42:54:96:0c
[    9.733375] usb 1-1.3: dvb_usb_v2: MAC address: 00:18:42:54:96:0c
[   10.161739] dvbsky_m88ds3103_load_firmware: Waiting for firmware upload (dvb-fe-ds3103.fw)...
[   10.191291] dvbsky_m88ds3103_load_firmware: Waiting for firmware upload(2)...
[   11.291209] usb 1-1.3: DVB: registering adapter 0 frontend 0 (Montage DS3103/TS2022)...
[   11.341001] Registered IR keymap rc-dvbsky
[   11.345532] input: DVBSky S960/S860 as /devices/platform/bcm2708_usb/usb1/1-1/1-1.3/rc/rc0/input0
[   11.346369] rc0: DVBSky S960/S860 as /devices/platform/bcm2708_usb/usb1/1-1/1-1.3/rc/rc0
[   11.346418] usb 1-1.3: dvb_usb_v2: schedule remote query interval to 300 msecs
[   11.346448] usb 1-1.3: dvb_usb_v2: 'DVBSky S960/S860' successfully initialized and connected
[   11.348535] usbcore: registered new interface driver dvb_usb_dvbsky

Die Standard Installation des vdr bringt ein paar vordefinierte Kanallisten mit. Diese sind im Verzeichnis /etc/vdr/channels/ zu finden.

Wir bearbeiten die /etc/rc.config und ändern die Kanalliste:

MLD_SERVER> nano -w /etc/rc.config
...
# Kanalliste die verwendet werden soll (verfügbare Listen stehen unter /etc/vdr/channels)
VDR_CHANNELLIST="DVD-S-S19.2E-Astra-FTA-DE-HD"
...

Dann starten wir den vdr

MLD_SERVER> start vdr

Jetzt rufen wir am Mac folgende URL auf:

https://MLD_SERVER:3000/channels.html

Dann sollte folgendes Bild erscheinen

Bildschirmfoto 2014-09-22 um 22.58.12
Funktionierender Streamdev-Server

Wenn das erfolgreich ist, kann der Spaß weitergehen: Im zweiten Teil zu diesem Thema.

Schreibe einen Kommentar