Externremux.sh

Aus VDR Wiki
Wechseln zu: Navigation, Suche

Streamen über schmalbandige Verbindungen

Mit Hilfe des streamdev-plugins und MEncoder kann man das laufende Fernsehprogramm auch über schmalbandige Verbindungen (z.B. DSL upload) streamen. Die Adresse, über welche man den Stream empfängt, lautet dann: http://vdr-ip-or-host:3000/Extern/1, wobei die 1 für Kanal 1 gemäß der channels.conf steht. Die 3000 muss als Port des http-Server des streamdev-plugins ausgewählt und der http-Server des Plugins gestartet sein. Selbstverständlich muss das Plugin installiert und aktiviert sein. Der Aufruf des VDR, den man mit "ps ax|grep vdr" erhält, beinhaltet dann "-P streamdev-server", und man kann die Einstellungen des Plugins über das OSD ändern: Einstellungen -> Plugins -> streamdev-server. Weitere wertvolle Informationen findet man auf der Seite über das Streaming.

Konfiguration

In der Datei $VDRCONFIG/plugins/plugin.streamdev-server.conf steht die Zeile:

-r /root/externremux.sh

In der Datei /root/externremux.sh wird die Umwandlung des Streams vorgenommen:

#!/bin/sh
umask 077
tmpdir=${TMPDIR-/tmp}/externremux.$$
mkdir $tmpdir || exit 1
trap "rm -rf $tmpdir; exit" 0 1 2 3 15
FIFO=$tmpdir/out.avi
OUTLOG=$tmpdir/out.log
/usr/bin/mkfifo $FIFO
cat $FIFO & \
mencoder -ovc lavc -ffourcc XVID -oac lavc \
   -lavcopts  acodec=mp3:abitrate=32:vcodec=mpeg4:vbitrate=100 \
   -vf scale -zoom -xy 288 -channels 1 -o $FIFO - &>$OUTLOG

In die genannte Datei /tmp/out.log kann man bei Problemen reinschauen. Bei Verwendung eines Routers zum Internet muss der Port 3000 auf den VDR-Server weitergeleitet werden. Zum Testen empfiehlt es sich, erst einmal im lokalen Netz die Funktionsfähigkeit zu überprüfen.

Der Clientrechner muss zudem die Erlaubnis haben, auf den Stream zuzugreifen. Dies ist in der Datei streamdevhosts.conf geregelt. Die Zeile

0.0.0.0/0

gibt allen Rechnern im Internet die Erlaubnis, den Stream zu sehen. Diese Einstellung ist mit Vorsicht zu benutzen!

Empfangen des Streams

U.a. kann man MPlayer und VLC als Client benutzen:

mplayer http://vdr-ip-or-host:3000/Extern/1