Obwohl schon mehrfach Streaming howto's hier zu finden sind, hier noch einmal am Beispiel von DSL6000:
1) DSL Router konfigurieren
=====================================================================
1.1) Wake On LAN
Um den heimischen VDR aufzuwecken bietet sich natürlich WOL an. WOL benutzt UDP Port 9, deswegen muss der DSL Router diese Zugriffe an den VDR weiterleiten:
|
Source code
|
1
2
|
Name--------IP Address---------- Protocol Private Port/Public Port Inbound Filter Schedule
Wake-On-LAN 192.168.0.255 UDP 9/9 Allow All Always
|
siehe
http://support.dlink.com/Emulators/dgl41…ual_Server.html
1.2) VDR für WOL einrichten
=====================================================================
Die meisten Netzwerkkarten-Treiber schalten das Feature WOL beim Laden aus, deswegen muss das feature bei jedem Boot erneut explizit eingeschaltet werden:
|
Source code
|
1
|
/usr/sbin/ethtool -s eth0 wol g
|
In meinem Fall erledigen die Startscripte das:
/etc/rc.d/init.d/network_wakeup
|
Source code
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
#!/bin/sh
. /etc/sysconfig/rc
. $rc_functions
. /etc/sysconfig/network
case "$1" in
start)
# Start all network interfaces
/usr/sbin/ethtool -s eth0 wol g
;;
*)
echo "Usage: $0 {start}"
exit 1
;;
esac
# End /etc/rc.d/init.d/network_wakeup
|
|
Source code
|
1
2
|
cd /etc/rc.d/rc3.d
ln -s ../init.d/network_wakeup S21network_wakeup
|
1.3) Dynamic DNS im Router einrichten
=====================================================================
Es gibt mehrere Anbieter im Netz die DynDNS anbieten, also es erlauben einen PC im Internet unter einem selbstvergebenen Namen zu finden. Ich nutze hier im Beispiel
www.dyndns.org.
-> bei dyndns.org anmelden und account einrichten.
Im Router eintragen: Tools->Dynamic DNS
|
Source code
|
1
2
3
4
5
6
7
|
-------------Dynamic DNS---------------------
Enable Dynamic DNS : yes
Server Address : <www.DynDNS.org (Free)>
Host Name : StreamingExample.dyndns.com <-- dein bei dyndns angegebener Hostname
Username or Key : myUsername <-- dein dyndns angegebener Username
Password or Key : ***** <-- dein dyndns angegebenes Passwort
Verify Password or Key : *****
|
siehe
http://support.dlink.com/Emulators/dgl41…ynamic_DNS.html
1.4) Test WOL aus dem Netz
=====================================================================
mit ether-wake (linux) oder Wol.exe (Win) ein Magic Packet an die dyndns Adresse mit der MAC Adresse der VDR-Netzwerkkarte schicken.
Wenn alles bis hierhin korrekt ist wacht der VDR auf. Ansonsten wieder zurück zu 1.1 und nachbessern oder mal nur im internen LAN ein wol packet absetzen.
|
Source code
|
1
|
ether-wake -p StreamingExample.dyndns.com 00:11:22:33:44:55
|
Natürlich Namen und MAC Adresse ersetzen. Die einzutragende MAC Adresse verrät ein
|
Source code
|
1
|
ifconfig eth0 | grep HWaddr
|
auf dem VDR.
1.5) Einrichten des Router für Streaming
=====================================================================
Anfrage aus dem Netz auf für den Streaming Port müssen an den VDR ins interne Netz weitergeleitet werden. Also eine zweite 'Virtual Server' Rule anlegen;
|
Source code
|
1
2
|
Name--------IP Address---------- Protocol Private Port/Public Port Inbound Filter Schedule
Video-Stream 192.168.0.2 TCP 3000/3000 Allow All Always
|
siehe
http://support.dlink.com/Emulators/dgl41…ual_Server.html
Hier im Beispiel ist der VDR die 192.168.0.2, fürs Internet wird Port 3000 benutzt. Der externe Port kann ohne weiteres geändert werden, würde ich sogar so vorschlagen.
2) VDR fürs Streamen einrichten
=====================================================================
2.1) streamdev Plugin installieren und streamdev-server Plugin mitstarten
=====================================================================
siehe
http://www.vdr-wiki.de/wiki/index.php/Streamdev-plugin
2.2) $VDRCONFIG/plugins/streamdevhosts.conf anpassen:
=====================================================================
|
Source code
|
1
|
0.0.0.0/0 # any host on any net (USE THIS WITH CARE!)
|
Wie man hier sieht kann damit allerdings *jeder* aus dem Netz auf den Stream zugreifen.
2.3) /root/externremux.sh anlegen
=====================================================================
|
Source code
|
1
2
3
4
5
6
|
#!/bin/sh
IN=-
OUT=/tmp/out
rm -f $OUT.avi /tmp/out.log
/usr/bin/mkfifo $OUT.avi
cat $OUT.avi & /usr/local/bin/mencoder "$IN" -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=400 -oac mp3lame -lameopts cbr:preset=96:mode=0 -vf scale=576:324 -o $OUT.avi &>$OUT.log
|
Hier müssen Pfad zu mencoder, sowie Bitraten angepasst werden. Im Beispiel passt das für DSL 6000 ganz gut.
3. Testen
=====================================================================
Der Zugriff auf den Stream erfolgt dann über
http://StreamingExample.dyndns.com/3000/Extern/1
Falls in 1.5 ein anderer externer Port angegeben wurde muss die 3000 in diese Nummer geändert werden. Namen an den bei dyndns angegebenen Namen anpassen, 1 ist der aktuelle Kanal.
Ich nutze zur Wiedergabe den SMPlayer, siehe
http://smplayer.sourceforge.net/. Der ist ganz nett, siehe Abbildung von der sourceforge Seite:
Es macht Sinn in den Einstellungen den Buffer auf ca. 2,5MB zu erhöhen, damit läuft streaming ohne Aussetzer.
viel Spaß..