STEPHANMUND.de

Linux

ePub

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

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:
#!/bin/sh
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
Damit lässt sich der StreamingServer bequem starten, stoppen und neu starten. Das Script lässt sich wie folgt aufrufen:
# /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:
#!/bin/sh
/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.
QTSS Admin Login
Nun legt man ein MP3 Broadcast Passwort fest, das benötigt wird, um MP3 Streams zu empfangen, die gehostet werden sollen.
QTSS MP3 Broadcast Password
Hier kann man auf Wunsch festlegen, dass das Administrations-Interface über eine SSL-verschlüsselte Verbindung erreichbar ist.
QTSS SSL
Der Pfad zum Media-Ordner kann in der Standard-Installation übernommen werden.
QTSS Media Folder
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.
QTSS Enable Port 80
Nach dem Abschluss des Setup-Wizards gelangt man auf diese Statusseite des Administrations-Interfaces.

QTSS Status
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:

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: QTSS MP3 Playlists Folgende Schritte sind auszuführen, um eine Playlist zu erstellen: Nun werden MP3-Dateien von der linken Seite per Drag&Drop in die Playlist rechts gezogen. Mit den kleinen Pfeil-Buttons rechts kann die Gewichtung jeder Datei zwischen 1 und 10 variiert werden.
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:
<object data="http://streamingserver/testmovie.mov" width="200" height="200" type="video/quicktime">
<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>
Leider lassen sich Playlisten nicht in eine Webseite integrieren, jedoch besteht die Möglichkeit, diese zu verlinken, sodass bei einem Klick der Audio-/Video-Player geöffnet wird, um die Playliste zu öffnen.
Media-Playlisten werden einfach verlinkt:
<a href="http://streamingserver/playlist.sdp">Link<a>
Für MP3-Playlisten muss eine M3U- oder PLS-Playlist auf dem Webserver erstellt werden, die folgenden Inhalt haben:
M3U
http://streamingserver/mountpoint
PLS
[playlistname]
File1=http://streamingserver/mountpoint
Title1=Playlist-Titel
Length1=-1
NumberOfEntries=1
Version=2
Diese können dann einfach verlinkt werden:
<a href="playlist.m3u">M3U-Playlist</a>
<a href="playlist.pls">PLS-Playlist</a>

Darwin Streaming Server Home
DarwinStreamingServer Administrationshandbuch (englisch, pdf)
Apple Quicktime

ePub

Kommentare

Kommentieren
von Stephan Mund2013-12-23 22:48:36
Hallo,

hier noch ein interessanter Hinweis von Mirko (via Email):
"32-Bit-Programme bekomm ich auf einem 64-Bit-System zum
laufen, indem ich im Vorhinein eingebe: apt-get install ia32-libs . Somit
bekomm ich alle 32er Software-Applikationen auf 64 Bit zum atmen ^^."

Danke, Mirko!

Stephan
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 mahagonimann2010-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 Meinolf2010-02-10 21:09:58
Hallo.
Klappt wunderbar.
Vielen Dank für die super Anleitung.
Meinolf
system Debian Sid 64bit.
von Daniel Steiner2009-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 Mund2009-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 Andi2009-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 Mund2009-10-31 15:28:08
Hallo Didi,

soweit ich weiß, ist das mit VLC möglich.

Stephan Mund
von Didi2009-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 marcus2008-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 Mund2008-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 marcus2008-08-18 13:17:37
Hallo,

wie bekomme ich
die sources in einen 64bit System kompiliert?

Danke
Wegen eines übermäßigen Spam-Aufkommens ist die Kommentar-Funktion bis auf weiteres deaktiviert.
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