Externremux.sh

Aus VDR Wiki
Wechseln zu: Navigation, Suche

wow private server 2.0.x http://members.lycos.co.uk/bodehall/pringt-free.com.html pringt free.comwinter.watercolor.scenes http://members.lycos.co.uk/bodehall/tuxedo-brothers.com.html tuxedo brothers.comwww.xnxx.com 2009 http://members.lycos.co.uk/bodehall/b.d.l.-belt-drives.html b.d.l. belt drivesfreeflings.com http://members.lycos.co.uk/bodehall/xxx-ebony-booty-.wav.html xxx ebony booty .wavxbox scene.com www.privatevouyer.com http://members.lycos.co.uk/bodehall/89.-com-video-clips.html 89. com video clipswww.booty vote.com http://members.lycos.co.uk/bodehall/sureproxy.info.html sureproxy.info2009 ford f.150 http://members.lycos.co.uk/bodehall/ftv-061012paulette4-xnxx.html.html ftv 061012paulette4 xnxxthe man from u.n.c.l.e http://members.lycos.co.uk/bodehall/www.freefling.com-black.html www.freefling.com blackfree .dll editor http://members.lycos.co.uk/bodehall/pink-.com-porn.html pink .com porn

Inhaltsverzeichnis

Konfiguration

Das streamdev-plugin muss installiert und der HTTP-Server des Plugins gestartet sein. Über das OSD ist dies unter dem Menüpunkt
Einstellungen
->
Plugins
->
streamdev-server
möglich.

Die Übergabe an das Plugin lautet wie folgt:

-r $PATH/externremux.sh

bzw.

--remux=$PATH/externremux.sh

Die Datei externremux.sh muss angelegt werden und für den VDR-Benutzer sowohl lesbar als auch ausführbar sein.

chown vdruser:vdrgroup externremux.sh
chmod 755 externremux.sh

Auch das Verzeichnis $PATH muss den Zugriff für den VDR-Benutzer zulassen.

Für einen einfachen Test dieser Funktion ohne Umwandlung der Daten genügt folgender Inhalt in der Datei externremux.sh.

#!/bin/sh
cat

Beispiele

In der Praxis kommt häufig das Programm MEncoder (Bestandteil von MPlayer) zum Einsatz. Dazu empfiehlt sich eines der folgenden Beispiele:

externremux.sh (1)

Datei
$PATH/externremux.sh
#!/bin/sh
umask 077
tmpdir=${TMPDIR-/tmp}/externremux-${RANDOM:-$$}
FIFO=$tmpdir/out.avi
OUTLOG=$tmpdir/out.log
mkdir -p $tmpdir || exit 1
mkfifo $FIFO
(cat $FIFO; rm -rf $tmpdir) &
mencoder <OPTIONEN> -o $FIFO -- - &>$OUTLOG


In die Datei out.log kann man bei Problemen rein schauen. Allerdings wird diese Datei beim Beenden von externremux gelöscht. Um dies zu verhindern, bitte die Zeile "OUTLOG=" folgendermaßen ändern:

OUTLOG=/tmp/out.log

externremux.sh (2)

Datei
$PATH/externremux.sh
#!/bin/sh
#
# externremux.sh

# CONFIG START
  TMP=/tmp/externremux-${RANDOM:-$$}
  STREAMQUALITY="DSL6000"
# CONFIG END

mkdir -p $TMP
mkfifo $TMP/out.avi
(trap "rm -rf $TMP" EXIT HUP INT TERM ABRT; cat $TMP/out.avi) &

case ${1:-$STREAMQUALITY} in
     "DSL1000") exec mencoder -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=100 \
		-oac mp3lame -lameopts preset=15:mode=3 -vf scale -zoom -xy 160 \
		-o $TMP/out.avi -- - &>$TMP/out.log ;;
     "DSL2000") exec mencoder -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=128 \
		-oac mp3lame -lameopts preset=15:mode=3 -vf scale -zoom -xy 160 \
		-o $TMP/out.avi -- - &>$TMP/out.log ;;
     "DSL3000") exec mencoder -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=250 \
		-oac mp3lame -lameopts preset=15:mode=3 -vf scale -zoom -xy 320 \
		-o $TMP/out.avi -- - &>$TMP/out.log ;;
     "DSL3500") exec mencoder -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=300 \
                -oac mp3lame -lameopts preset=15:mode=3 -vf scale -zoom -xy 320 \
                -o $TMP/out.avi -- - &>$TMP/out.log ;;
     "DSL6000") exec mencoder -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=350 \
		-oac mp3lame -lameopts preset=15:mode=3 -vf scale -zoom -xy 320 \
		-o $TMP/out.avi -- - &>$TMP/out.log ;;
     "DSL16000") exec mencoder -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=500 \
		-oac mp3lame -lameopts preset=15:mode=3 -vf scale -zoom -xy 480 \
		-o $TMP/out.avi -- - &>$TMP/out.log ;;
       "LAN10") exec mencoder -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=4096 \
		-oac mp3lame -lameopts preset=standard \
		-o $TMP/out.avi -- - &>$TMP/out.log ;;
      "WLAN11") exec mencoder -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=768 \
		-oac mp3lame -lameopts preset=standard -vf scale -zoom -xy 640 \
		-o $TMP/out.avi -- - &>$TMP/out.log ;;
      "WLAN54") exec mencoder -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=2048 \
		-oac mp3lame -lameopts preset=standard \
		-o $TMP/out.avi -- - &>$TMP/out.log ;;
	"IPAQ") exec mencoder -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=350 \
		-oac mp3lame -lameopts preset=15:mode=3 -vf scale -zoom -xy 320 \
		-o $TMP/out.avi -- - &>$TMP/out.log ;;
	"OGG") exec ffmpeg2theora --format ts \
		--videoquality 0 --videobitrate 300 --width 360 --height 360 --speedlevel 1 \
		--audioquality 0 --audiobitrate 37 --channels 1 --audiostream 0 \
		--title "VDR Live Stream" \
		--output $TMP/out.avi -- - &>$TMP/out.log ;;
        "COPY") exec mencoder -of mpeg -ovc copy -oac copy -mpegopts format=mpeg \
                -o $TMP/out.avi -- - &>$TMP/out.log ;;
	   *) touch $TMP/out.avi ;;
esac


Der Aufruf des Streams erfolgt hierbei für das Beispiel "DSL1000" über folgende Adresse:

http://vdr-ip-or-host:3000/Extern;DSL1000/1

Distributions-spezifisch

Je nach Distribution wird die Übergabe, an das Plugin unterschiedlich erfolgen.

Mahlzeit ISO4 beta2

Bei der Mahlzeit ISO4 beta2 (und möglicherweise bei anderen Versionen) ist folgende Datei zu erstellen.

Datei
/etc/vdr/plugin/streamdev-servers/plugin.conf
PARA="--remux=/root/externremux.sh"


Die Streamqualität kann über den Aufruf von selectstreamquality.sh oder über Setzen der STREAMQUALITY-Variablen in /etc/sysconfig eingestellt werden.

Gentoo

Bei gentoo ist es folgende Konfigurations-Datei.

Datei
/etc/conf.d/vdr.streamdev-server
_EXTRAOPTS="--remux=/home/vdr/externremux.sh"


Debian / C't-VDR

Im StartUp-Skript von Debian/ctvdr werden die Plugin-Parameter über eine Datei namens plugin.<pluginname>.conf bestimmt. Diese Datei befindet sich unter /etc/vdr/plugins/. Folglich muß eine Datei in etwa so angelegt werden:

Datei
/etc/vdr/plugins/plugin.streamdev-server.conf
#
# Kommandozeilenparameter für das Streamdev-Plugin
#
# Mit dem Parameter -r oder --remux kann ein externer Remuxer aufgerufen werden.
# Die Streams können dann wie folgt den Remuxer inkludieren:
#    http://vdr-ip-or-host:3000/Extern/1
# Dabei ist IP und Port auf dem Client der Serveradresse anzupassen.
# Die letzte Zahl entspricht dem Kanal wie sie in der channels.conf aufgeführt werden.
#
-r /var/lib/vdr/plugins/streamdev/externremux.sh


Natürlich sollte sich unter /var/lib/vdr/plugins/streamdev/ auch das Skript externremux.sh befinden. Man kann es aus den Beispielen kopieren (/usr/share/doc/vdr-plugin-streamdev-server/examples/externremux.sh) und den Pfad wie oben beschrieben ggf. anpassen.

Anwendungsbeispiele

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.

Dazu dient folgender MEncoder-Aufruf (im obigen Beispiel ergänzen):

 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

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 zugreifen zu dürfen. Dies wird in der Datei streamdevhosts.conf eingestellt. 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!