Linux
2008-08-06: Installation des Darwin Streaming Server unter Debian
Einleitung
Wenn man Medien wie Videos oder Musik auf seiner Seite anbieten möchte, ohne dass der Anwender gleich die gesamte Datei herungterladen muss, bietet sich ein Streaming-Server an. Einer dieser Server ist der "Apple Quicktime Streaming Server", der unter dem Namen "Darwin Streaming Server" auch als Open Source Software erhältlich ist. Die Installation und Konfiguration dessen auf einem Debian Linux wird im Folgenden beschrieben.Übersicht
- Vorbereitung
- Patch des Quellcodes
- Kompilieren
- Installieren
- Konfiguration
- Anwendung
- Weiterführende Links
- Kommentieren
Vorbereitung
Zunächst werden die Abhängigkeiten installiert:# apt-get install gcc g++ make autoconf libtool patch
Nun werden die Quellen des Darwin Streaming Servers heruntergeladen und mit
# tar xf DarwinStreamingSrv-6.0.3-Source.tar
entpackt. Weiterhin wird ein Patch benötigt, der hier erhältlich ist.
Patch des Quellcodes
Nachdem man den Patch in das Verzeichnis mit den Darwin Streaming Server Quellen kopiert hat, führt man mit# patch -p1 < dss-6.0.3.patch
die erforderlichen Änderungen am Quellcode durch.
Kompilieren
Das Paket kann nach Abschluss der Vorbereitungen mit dem Befehl# ./buildtarball
kompiliert werden. Das Installationspaket befindet sich nach Abschluss des Kompilierens im Verzeichnis DarwinStreamingSrvr-Linux/, in das man nun wechselt.
Installieren
Der Streaming Server wird standardmäßig in das Verzeichnis /usr/local/ installiert, die Konfiguration liegt in /etc/streaming/. Möchte man das Installationsverzeichnis ändern, sind umfassende Änderungen in der Datei Install nötig. Hier muss jedes Auftreten von /usr/local/ durch den gewünschten Installationspfad ersetzt werden.Um einen Fehler beim Erstellen des qtss-Benutzers zu vermeiden, muss in Zeile 194 im useradd-Befehl das "-M" entfernt werden.
Das Paket wird letztendlich durch das Ausführen des Scriptes Install installiert:
# ./Install
Während der Installation wird ein Benutzername und ein Kennwort für den Adminserver erfragt, dazu später mehr.
Nun legt man unter /etc/init.d/dss folgendes init-Script ab:
DSS_PATH=/usr/local
DSS_PID="`ps ax | grep DarwinStreamingServer | grep -v grep | sed -e 's/^\ \+//' | sort -k1 | head -n1 | cut -d\ -f1`"
AS_PID="`ps ax | grep streamingadminserver.pl | grep -v grep | sed -e 's/^\ \+//' | sort -k1 | head -n1 | cut -d\ -f1`"
if [ "$1" = "-admin" ]; then
SERVER="streamingadminserver.pl"
PID=$AS_PID
NAME="AdminServer"
elif [ "$1" = "-streaming" ]; then
SERVER="DarwinStreamingServer"
PID=$DSS_PID
NAME="DarwinStreamingServer"
else
case "$1" in
start)
if [ -n "$DSS_PID" ]; then
echo "DarwinStreamingServer already running"
else
echo "Starting StreamingServer..."
$DSS_PATH/sbin/DarwinStreamingServer
fi
if [ -n "$AS_PID" ]; then
echo "AdminServer already running"
else
echo "Starting AdminServer..."
$DSS_PATH/sbin/streamingadminserver.pl
fi
;;
stop)
if [ -n "$DSS_PID" ]; then
echo "Stopping StreamingServer..."
kill -TERM $DSS_PID
else
echo "DarwinStreamingServer is not running"
fi
if [ -n "$AS_PID" ]; then
echo "Stopping AdminServer..."
kill -TERM $AS_PID
else
echo "AdminServer is not running"
fi
;;
restart)
$0 stop
sleep 2
$0 start
;;
*)
echo "Usage: /etc/init.d/dss [-admin|-streaming] {start|stop|restart}"
;;
esac
exit 0
fi
case "$2" in
start)
if [ -n "$PID" ]; then
echo "$NAME already running"
exit 1
else
echo "Starting $NAME..."
$DSS_PATH/sbin/$SERVER
fi
;;
stop)
if [ -n "$PID" ]; then
echo "Stopping $NAME..."
kill -TERM $PID
else
echo "$NAME is not running"
fi
;;
restart)
$0 $1 stop
sleep 2
$0 $1 start
;;
*)
echo "Usage: /etc/init.d/dss [-admin|-streaming] {start|stop|restart}"
;;
esac
# /etc/init.d/dss [-admin|-streaming] start|stop|restart
Mit dem ersten Parameter, sofern man ihn denn angibt, kann man auswählen, ob der StreamingServer oder der AdminServer gestartet/gestoppt werden soll. Lässt man den Parameter weg, werden beide Server gestartet/gestoppt. Möchte man den StreamingServer beim Systemstart mitstarten, legt man im Verzeichnis des gewüschten Runlevels (/etc/rcN.d) einen symbolischen Link auf das init-Script an:
# ln -s /etc/init.d/dss /etc/rc2.d/S99dss
# ln -s /etc/init.d/dss /etc/rc0.d/K01dss
# ln -s /etc/init.d/dss /etc/rc1.d/K01dss
# ln -s /etc/init.d/dss /etc/rc6.d/K01dss
Die letzten drei Zeilen dienen dazu, den Server beim Herunterfahren/Neustarten/Wechseln in den Single-User-Mode zu beenden.
Da der AdminServer für den Betrieb nicht unbedingt laufen muss, sollte dieser nicht grundsätzlich laufen. Um das auch beim Hochfahren des Servers umzusetzen, sollte man den Link in /etc/rc2.d durch ein Script mit folgendem Inhalt ersetzen:
/etc/init.d/dss -streaming start
Konfiguration
Die Konfiguration findet hauptsächlich an zwei Stellen statt, der Konfigurationsdatei /etc/streaming/streamingserver.xml und über das Administrationsinterface:In der Konfigurationsdatei werden allgemeine Serverdaten festgelegt, wie Server-IP, Ports, Media-Verzeichnisse.
Das Administrationsinterface wird hauptsächlich zur Erstellung und Verwaltung von Playlists verwendet.
Die Konfigurationsdatei muss zunächst nicht angepasst werden, damit der Streaming-Server funktioniert. Daher ruft man mit dem Webbrowser direkt die Adresse http://server-adresse:1220 auf, um das Administrationsinterface zu öffnen.
Hier gibt man die bei der Installation festgelegten Zugangsdaten ein.
Nun legt man ein MP3 Broadcast Passwort fest, das benötigt wird, um MP3 Streams zu empfangen,
die gehostet werden sollen.
Hier kann man auf Wunsch festlegen, dass das Administrations-Interface über eine SSL-verschlüsselte Verbindung erreichbar ist.
Der Pfad zum Media-Ordner kann in der Standard-Installation übernommen werden.
Hier sollte man das Häkchen für "Streaming on port 80" setzen, da somit auch Clients
hinter einer Firewall die Streams empfangen können.
Nach dem Abschluss des Setup-Wizards gelangt man auf diese Statusseite des Administrations-Interfaces.

Hier kann man die Server-Konfiguration bearbeiten, Video- und MP3-Playlisten erstellen und den aktuellen Serverstatus einsehen
Zunächst sollte man den Server über den Button "Disable Server" beenden und danach neu starten, um die soeben gemachten Änderungen zu übernehmen.
Anwendung
Es gibt im Groben zwei Möglichkeiten, den StreamingServer zu verwenden:- Zum Streamen von einzelnen Video-Dateien
- Zum Streamen von Playlists
Die einfachere Methode ist das Streamen von einzelnen Dateien. Hierfür wird lediglich eine Datei im Format .mov, .mp4 oder .3gp im Media-Verzeichnis oder einem Unterordner abgelegt. Die Dateien müssen im Vorfeld für den Einsatz im StreamingServer vorbereitet werden. Mehr dazu findet sich im Kapitel "Media" im Administrationshandbuch (Download). Diese kann dann über den Browser unter der URI http://streamingserver/pfad_ab_media_verzeichnis aufgerufen werden. Die Datei wird dann von Beginn an abgespielt, sofern der Benutzer das QuickTime-Plugin für seinen Browser installiert hat.
Die Verwendung von Playlisten eröffnet weitere Möglichkeiten. Zum einen ist es möglich, mehrere Videos hintereinander abzuspielen, zum anderen kann man mit Playlisten auch Audio-Streams im MP3-Format anbieten. Auch hier müssen die Dateien, die verwendet werden sollen, zunächst ins Media-Verzeichnis kopiert werden.Danach werden die Playlisten über den AdminServer konfiguriert. Nach dem Login klickt man im Menü auf den Punkt Playlists. Nun kann man entweder eine Media- oder eine MP3-Playlist erstellen. Das Prozedere ist für beide fast identisch. Ich werde daher die MP3-Playlist als Konfigurationsbeispiel verwenden.
Nach der Auswahl des Links "New MP3 Playlist" erhät man folgendes Formular:
Folgende Schritte sind auszuführen, um eine Playlist zu erstellen:
- Name: Name der Playlist
- Mountpoint: Pfad, unter dem die Playlist erreichbar sein soll, z.B. "playlist" -> rtsp://streamingserver/playlist
- Genre: Gibt das Musik-Genre an
- Play Mode: Gibt an, wie die Playlist abgespielt werden soll:
- Sequential: Gibt alle Dateien in der angegebenen Reihenfolge einmal wieder
- Sequential Looped: Spielt eine Endlosschleife der Dateien in der angegbenen Reihenfolge
- Weighted Random: Gibt die Dateien in zufälliger Reihenfolge wieder, wobei höher gewichtete Dateien öfter abgespielt werden.
- Repetition: Gibt an, wie viele andere Dateien abgespielt werden müssen, bevor eine Datei wiederholt wird. (Nur bei Weighted Random)
Wenn man alle Stücke in die Playliste importiert hat, sollte man, falls gesetzt, die Häkchen bei "Log this playlist's activity" und "Send this playlist to a broadcast server" deaktivieren. Das Logging des Streaming-Servers ist leider nicht sehr hilfreich und einen zusätzlichen Broadcast Server setzen wir in dieser Konfiguration nicht ein.
Nachdem man die Playliste gespeichert hat, gelangt man wieder auf die Playlist-Übersichtsseite. Nun muss man die Playliste noch mit einem Klick auf den "Play"-Button starten. Ab sofort wird diese in der angegebenen Konfiguration abgespielt und bei Bedarf an einen Client übertragen.
Um die Playliste anzuhören, ruft man mit einem Netzwerk-fähigen Audio-Client (wie z.B. VLC) die Playlist unter folgenden URI auf: http://streamingserver/mountpoint
Die Konfiguration einer Media-Playlist ist, wie bereits erwähnt, sehr ähnlich, es gibt eigentlich nur einen einzigen Unterschied: Die Playliste hat grundsätztlich die Endung ".sdp" und wird über das RSTP-Protokoll aufgerufen. Auch hierfür ist VLC ein brauchbarer Player.
Sicherlich besteht jetzt der Wunsch, seine Videos direkt in die Webseite zu integrieren. Auch hierfür gibt es, vorausgesetzt das QuickTime-Plugin ist installiert, eine Lösung. Folgender HTML-Code bindet ein Video in die Webseite ein:<param name="src" value="rstp://streamingserver/testmovie.mov" />
Bitte laden Sie das QuickTime-Plugin herunter, um dieses Video ansehen zu können: <a href="http://www.apple.com/de/quicktime/download/">Download</a> </object>
Media-Playlisten werden einfach verlinkt:
Diese können dann einfach verlinkt werden:
<a href="playlist.pls">PLS-Playlist</a>
Weiterführende Links
Darwin Streaming Server HomeDarwinStreamingServer Administrationshandbuch (englisch, pdf)
Apple Quicktime
Kommentare
Kommentieren| von Eike S. | 2011-01-23 15:37:58 |
|---|---|
| Hallo Georg S. ich habe den DSS auf einer Dockstar kompiliert indem ich: 1.) Die "Anleitung" von Stephan Mund vom 2009-11-14 benutzt habe 2.) im Script Buildit bevor ich es ausgeführt habe eine kleine Anpassung in Zeile 67 durchgeführt habe. Ich habe lediglich Linux.ppc durch Linux.armv5tel ersetzt. Fehlerfrei (jedoch nicht Warnungsfrei) wurde alles kompiliert und nach einem ./Install läuft der DSS jetzt auf meiner Dockstar. Ich muss das Teil jetzt nur noch konfigurieren. |
|
| von Georg S. | 2011-01-19 17:14:24 |
| Auf meiner Dockstar (ARM CPU) mit Debian Squeeze endet das so: make: egcs: Command not found make: *** [StreamingLoadTool] Error 127 Kann mir jemand sagen woran das Liegt, gibt es einen Patch für ARM CPUs? |
|
| von mahagonimann | 2010-08-09 00:01:43 |
| Vielen Dank - Eine sehr detailierte Anleitung ! Was bei mir fehlt ist : # delgroup qtss dann # sudo addgroup --system qtss und # sudo adduser --system --no-create-home --ingroup qtss qtss dann klappts auch bei mir (kubuntu) thx |
|
| von Meinolf | 2010-02-10 21:09:58 |
| Hallo. Klappt wunderbar. Vielen Dank für die super Anleitung. Meinolf system Debian Sid 64bit. |
|
| von Daniel Steiner | 2009-12-30 21:32:24 |
| Hallo Zusammen, Hab nun nach dem letzten Kommentar die Anleitung auf einem Debian 5.0 Lenny x64 Bit Sys durch geführt. Die Nicht bestätigte Anleitung funktioniert ohne Probleme. Viele liebe grüße und guten Rutsch ins 2010! |
|
| von Stephan Mund | 2009-11-14 16:07:41 |
| Hallo Andi, wir hatten, was das angeht, ja bereits Email-Verkehr. Ich bin so frei, und poste deine Lösung hier: apt-get install build-essential wget addgroup --system qtss adduser --system --no-create-home --ingroup qtss qtss wget http://static.macosforge.org/dss/downloads/DarwinStreamingSrvr6.0.3-Source.tar tar -xvf DarwinStreamingSrvr6.0.3-Source.tar mv DarwinStreamingSrvr6.0.3-Source DarwinStreamingSrvr6.0.3-Source.orig wget http://dss.macosforge.org/trac/raw-attachment/ticket/6/dss-6.0.3.patch patch -p0 < dss-6.0.3.patch mv DarwinStreamingSrvr6.0.3-Source.orig DarwinStreamingSrvr6.0.3-Source wget http://dss.macosforge.org/trac/raw-attachment/ticket/6/dss-hh-20081021-1.patch patch -p0 < dss-hh-20081021-1.patch cd DarwinStreamingSrvr6.0.3-Source mv Install Install.orig wget http://dss.macosforge.org/trac/raw-attachment/ticket/6/Install chmod +x Install ./Buildit sudo ./Install Ich habe Deine Lösung noch nicht getestet, daher kann ich hier noch keine Garantie geben, dass es auch tatsächlich funktioniert. Stephan Mund |
|
| von Andi | 2009-11-13 00:23:48 |
| Kann mir bitte jemand helfen? Das builtarball endet bei mit "make: *** [StreamingLoadTool.o] Error 1 DarwinStreamingServer failed to build! Buildit Failed. Exiting! " Mein System ist Debian Lenny 64bit Danke |
|
| von Stephan Mund | 2009-10-31 15:28:08 |
| Hallo Didi, soweit ich weiß, ist das mit VLC möglich. Stephan Mund |
|
| von Didi | 2009-10-22 22:12:56 |
| Hi ist es auch möglich Videos live zu streamen? Was bräuchte ich da für ein Programm (WIN), um die Daten zum Server zu senden? Bei Audio mache ich das mit edcast |
|
| von marcus | 2008-08-22 11:21:11 |
| Ja gerne meine email hast du ja. Ich hatte eine Version über Git gezogen, die sich zwar kompilieren ließ aber nicht installieren. Irgendwie klappte es mit den Userrechten wohl nicht. | |
| von Stephan Mund | 2008-08-19 09:40:31 |
| Hallo Marcus, ich hatte keine Probleme, den Streaming Server unter einem 64bit-System nach dieser Anleitung zu kompilieren und installieren. Ein kurzer Test zeigte auch keine Probleme beim Streamen. Ich habe den Tarball erstellt, wenn du möchtest, kann ich ihn dir zukommen lassen. Stephan Mund |
|
| von marcus | 2008-08-18 13:17:37 |
| Hallo, wie bekomme ich die sources in einen 64bit System kompiliert? Danke |
|
Zurück zu Technik | Linux
Hat Ihnen der Artikel weitergeholfen? Sie wollen sich in irgendeiner Art für die geleistete Hilfe erkenntlich zeigen? Schauen Sie doch einmal auf meiner Amazon-Wunschliste vorbei, ich freue mich immer über eine kleine Sachspende:
Zur Wunschliste






![Validate my RSS feed [Valid RSS]](/img/valid-rss.png)
