Ubuntu - VDR Streaming Server Installation
Inhaltsverzeichnis |
Beschreibung
In diesem Beitrag werde ich beschreiben, wie es mir gelungen ist auf meinem Ubuntu-Server den VDR zu installieren und ihn zusammen mit meiner DVB-S Budget-Karte als Live-Streaming-Server und Video-Recorder einzurichten.
Ubuntu Installation
Ich hab mir die Ubuntu Install CD v5.04 für x86-Systeme runtergeladen und auf CD gebrannt. Beim Booten hab ich die option
server
angegeben. Dies führt dazu, dass Ubuntu ohne X-Windows installiert wird, sondern nur mit Paketen die für den Server-Einsatz benötigt werden. Ich finde es gehört so, auf Servern keine grafischen Oberflächen zu installieren, aber das soll jeder selbst entscheiden und ist für die Durchführung dieser Anleitung nicht entscheidend.
Seit Ubuntu v6.06 gibt es eine spezielle Server Install CD. Ich hab sie noch nicht ausprobiert, könnte mir aber vorstellen, dass sie sich auch gut für das Aufsetzen eins VDR Streaming Servers gemäß dieses Beitrags eignet.
Installation der VDR Pakete
Wie von allen Debian-basierten Distributionen bekannt, lassen sich Pakete schnell und einfach mit dem Befehl
apt-get install paketname
runterladen und sofort installieren.
Ich habe die Pakete vdr, vdr-daemon, vdr-dev und vdradmin installiert.
apt-get install vdr vdr-daemon vdr-dev vdradmin
Für das streamdev-Plugin gab es leider zum Zeitpunkt meiner Installation kein fertiges Ubuntu-Paket. Also musste ich es selbst kompilieren. Dazu benötigt man neben dem Sourcecode des Plugins auch noch den Sourcecode vom VDR. Um den passenden Sourcecode zur zuvor installierten VDR-Version zu erhalten, lädt man die Sourcen des entsprechenden Ubuntu-Pakets sowie alle zusätzlich benötigten Bibliotheken runter. apt-get speichert die heruntergeladenen Quellen im aktuellen Arbeitsverzeichnis, also wechseln wir vorher in das Verzeichnis /usr/src.
cd /usr/src apt-get build-dep vdr apt-get source vdr
Mit Eingabe des ersten apt-get Befehls werden noch ein paar zustätliche Tools wie dpkg, dpkg-source und der Compiler installiert.
Installation des streamdev-Plugins
Unter Ubuntu 5.04 mit gcc 3.3
Wie bereits zuvor angedeutet muss das streamdev Plugin in der Quelltext-Version heruntergeladen und selbst kompiliert werden. Die Quelltexte vom VDR sollten bereits im vorherigen Schritt heruntergeladen sein und sich in ihrem eigenen Unterverzeichnis des Ordners /usr/src befinden. Um mit der Installation des streamdev-Plugins beginnen zu können laden wir die aktuelle Version des streamdev-Plugins herunter.
wget http://www.magoa.net/linux/files/vdr-streamdev-0.3.1.tgz
Um das Plugin zu kompilieren, muss es sich im Unterverzeichnis PLUGINS/src des VDR-Quellcode-Verzeichnisses befinden. Also entpacken wir es dorthin.
cd vdr-1.2.6/PLUGINS/src/ tar xzvf /usr/src/vdr-streamdev-0.3.1.tgz ln -s streamdev-0.3.1 streamdev
Im Haupt-Verzeichnis des VDR-Quellcodes können nun die Plugins kompiliert werden
cd /usr/src/vdr-1.2.6 make plugins
Falls hier keine Fehler auftreten wird im Ordner PLUGINS/lib die Datei libvdr-streamdev-server.so.1.2.6 erzeugt. Diese muss nun in das Plugins-Verzeichnis der VDR-Installation des Ubuntu-Servers kopiert werden. Die ebenfalls generierte Datei libvdr-streamdev-client.so.1.2.6 wird nur für Clients benötigt, also für Rechner auf denen man ein gestreamtes Signal empfangen und anschauen möchte.
cp PLUGINS/lib/libvdr-streamdev-server.so.1.2.6 /usr/lib/vdr/plugins
Unter Ubuntu 5.10 mit gcc 4.0
Die neue Ubuntu-Version Breezy Badger verwendet nicht mehr gcc/g++ 3.3, sondern die Version 4.0. Diese hat eine strengere Syntaxprüfung und kompiliert deshalb nicht mehr die v0.3.1 des streamdev-Plugins. Falls nötig, installieren wir darum nun cvs und laden die aktuellste streamdev-Version aus dem CVS-Repository.
apt-get install cvs cd /usr/src/vdr-1.3.27/PLUGINS/src/ cvs -d:pserver:anoncvs@vdr-developer.org:/var/cvsroot co streamdev
Während ich diese Zeilen schreibe (15.10.05) existiert noch ein weiterer Syntaxfehler in den streamdev-Quelltexten, diese sind aber schnell behoben:
cd /usr/src/vdr-1.3.27 vi PLUGINS/src/streamdev/server/livefilter.h vi PLUGINS/src/streamdev/server/livestreamer.h
(bzw. statt vi der Editor der Wahl) Die Zeile
class cStreamdevLiveStreamer;
muss in die beiden o.g. Dateien jeweils vor dem ersten Vorkommen von class eingefügt werden. Nun können die Plugins kompiliert werden.
make plugins
Falls hier keine Fehler auftreten wird im Ordner PLUGINS/lib die Datei libvdr-streamdev-server.so.1.3.27 erzeugt. Diese muss nun in das Plugins-Verzeichnis der VDR-Installation des Ubuntu-Servers kopiert werden. Die ebenfalls generierte Datei libvdr-streamdev-client.so.1.3.27 wird nur für Clients benötigt, also für Rechner auf denen man ein gestreamtes Signal empfangen und anschauen möchte.
cp PLUGINS/lib/libvdr-streamdev-server.so.1.3.27 /usr/lib/vdr/plugins
Konfiguration des VDR
Unter Ubuntu verwendet der VDR per Default den Ordner /var/lib/video.00 zum Speichern der aufgezeichneten Videos. Ich wollte diese Konfiguration nicht ändern, aber trotzdem unter einem leichter zu merkenden Pfad auf die Dateien zugreifen können, also hab ich einen symbolischen Link namens /video erzeugt. Damit VDR darauf zugreifen kann, müssen außerdem noch der Eigentümer angepasst werden.
ln -s /var/lib/video.00 /video chown vdr.vdr /video
Im folgenden müssen die Konfigurationsdateien von VDR, VDR-Admin und dem Streamdev-Plugin auf die eigenen Bedürfnisse angepasst werden.
Datei /etc/vdr/setup.conf
ChannelInfoPos = 0 CurrentChannel = 23 CurrentVolume = 255 DefaultLifetime = 99 DefaultPriority = 50 DiSEqC = 0 EPGBugfixLevel = 2 EPGScanTimeout = 5 InstantRecordTime = 180 LnbFrequHi = 10600 LnbFrequLo = 9750 LnbSLOF = 11700 MarginStart = 2 MarginStop = 10 MarkInstantRecord = 1 MaxVideoFileSize = 2000 MenuScrollPage = 1 MinEventTimeout = 30 MinUserInactivity = 120 MultiSpeedMode = 0 NameInstantRecord = TITLE EPISODE OSDheight = 18 OSDLanguage = 0 OSDheight = 18 OSDLanguage = 0 OSDMessageTime = 1 OSDwidth = 52 PauseLifetime = 1 PausePriority = 10 PrimaryDVB = 1 PrimaryLimit = 0 RecordDolbyDigital = 1 RecordingDirs = 1 ResumeID = 0 SetSystemTime = 0 ShowInfoOnChSwitch = 1 ShowReplayMode = 0 SortTimers = 1 SplitEditedFiles = 0 SVDRPTimeout = 300 TimeTransponder = 0 UseSubtitle = 1 VideoFormat = 0 ZapTimeout = 3 streamdev-server.AllowSuspend = 1 streamdev-server.HTTPBindIP = 0.0.0.0 streamdev-server.HTTPServerPort = 3000 streamdev-server.HTTPStreamType = 2 streamdev-server.MaxClients = 5 streamdev-server.ServerPort = 2004 streamdev-server.StartHTTPServer = 0 streamdev-server.StartServer = 1 streamdev-server.SuspendMode = 1 streamdev-server.VTPBindIP = 0.0.0.0
Hier sind vor allem die letzten Zeilen interessant, nämlich jene, welche mit streamdev-server beginnen.
Datei /etc/default/vdr
# /etc/default/vdr # Default config thanks to: # Thomas Schmidt <thomas.schmidt@in.stud.tu-ilmenau.de> # 29.01.2003 # Change to 1 to enable vdr's init-script ENABLED=1 # Change this to 1 if you want vdr to be able to shutdown the # computer ENABLE_SHUTDOWN=1 # Video-Directory VIDEO_DIR="/video" # Set this to load only startable plugins (check with "vdr -V -P plugin") PLUGIN_CHECK_STARTABLE="yes" # Set this to load only plugins with the correct patch level PLUGIN_CHECK_PATCHLEVEL="no" # Options that will be passed to vdr's commandline # for example: OPTIONS="-w 15" OPTIONS="-w 60" # VDR executes this command when the power-off-key of the remote is # pressed after processing all shutdown hook scripts. Shutdown hooks # may override this command - see /usr/share/doc/vdr/README.Debian. SHUTDOWNCMD="/etc/init.d/vdr stop ; sleep 1 ; /sbin/shutdown -h now"
Die einzig wesentliche Änderung in dieser Datei stellt das Setzen des Parameters ENABLED von 0 auf 1 dar. Sie bewirkt, dass VDR beim Booten von Ubuntu automatisch gestartet wird.
Datei /etc/default/vdradmin
# Defaults for vdradmin initscript # sourced by /etc/init.d/vdradmin # installed at /etc/default/vdradmin by the maintainer scripts # # This is a POSIX shell fragment # # Should vdradmin's init-script be enabled? ############################################################# # ATTENTION! YOU SHOULD MODIFY /etc/vdradmin/vdradmind.conf # # before enabling this, because the default config uses a # # really simple default username/password (linvdr/linvdr) # ############################################################# ENABLED="1" # Additional options that are passed to the Daemon. DAEMON_OPTS=""
Auch hier muss wieder nur der ENABLED-Parameter auf 1 gesetzt werden.
Symbolische Links erzeugen
Die VDR-Konfigurationsdateien sind unter Ubuntu auf die Verzeichnisse /etc/vdr und /var/lib/vdr verteilt. VDR verwendet unter die Konfigurationsdateien in letzterem Verzeichnis, wir haben unsere Konfiguration in ersterem definiert. Durch das Anlegen von symbolischen Links stellen wir nun sicher, dass VDR die richtigen Konfigurationsdateien verwendet.
cd /var/lib/vdr/ ln -s /etc/vdr/setup.conf setup.conf ln -s /etc/vdr/channels.conf channels.conf chown vdr.vdr *
Starten des VDRs
Da wir zuvor die Konfiguration entsprechend angepasst haben, startet VDR beim nächsten Reboot automatisch. Aber natürlich können wir ihn auch direkt ohne Reboot starten
/etc/init.d/vdr start /etc/init.d/vdradmin start