Ubuntu - VDR Streaming Server Installation

Aus VDR Wiki
Wechseln zu: Navigation, Suche

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.

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 source vdr
apt-get build-dep vdr

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 ../../../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 ../..
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 wird darum nun cvs und laden die aktuellste streamdev-Version aus dem CVS-Repository.

apt-get install cvs
cd 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

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

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, das VDR beim Booten von Ubuntu automatisch gestartet wird.

Datei /etc/default/vdradmin

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.