Laufend Töne

Music Streaming Server gibt es reichlich. Ein Vertreter aus der Opensource Szene ist Ampache . Die Möglichkeiten die Ampache bietet um seine Musiksammlung überall und jederzeit genießen zu können sind beeindruckend. Ganz nebenbei können wir Musikliebhaber unsere Sammlung endlich ordnen :). Und da die Software Opensource ist und unter der GPLv2 steht, halten sich auch die Kosten in Grenzen.

Ampache Logo

Was Ampache so alles kann:

  • Deine Musiksammlung über eine Web-Schnittstelle verwalten und auch gleich darüber Musik hören
  • Music streamen an einen Ampache Player (Android, iOS, HTML5)
  • Über die API einen kompatiblen Client wie VLC, WinAMP, Windows Media Player zum hören verwenden

Allerdings eignet sich Ampache durchaus für den professionellen Einsatz um viele Musikliebhaber zu versorgen. Hier sollten sich die Administratoren den Einsatz von nginx näher anschauen. Die Installation des Ampache braucht etwas Vorbereitung. Es ist auf dem Betriebssystem ein Webserver und PHP zu installieren. Außerdem brauchen wir einen MySQL Server. Ein LAMP-Server ist dementsprechend, für „normale“ Zwecke, mehr als ausreichend.

Die notwendige Software gibt es hier zum Download.

Für die Installation auf Ubuntu 14.04 LTS muss zunächst ein LAMP Server  installiert werden (Anleitung: Installation LAMP unter Ubuntu).

sudo apt-get install apache2 libapache2-mod-php5 php5 php5-mysql mysql-server php5-curl

Da Ampache auch das transcodieren von Audiodateien behersscht brauche wir auch avconv. Die Installation unter Ubuntu 14.04:

apt-get install libav-tools

Während der Installation des MySQL Server werden Sie nach einem Passwort für „root“ gefragt. Damit ist nicht das Passwort des Administrators, unter Linux  root genannt, gemeint. Sie können und sollten ein anderes und möglichst umfangreiches und kompliziertes Passwort wählen. Das Passwort wird später nochmals gebraucht.

Passworteingabe für MySQL

Nächster Schritt: Ampache downloaden und entpacken. Terminal öffnen und nachfolgende Befehle eingeben:

1. cd /var/tmp
2. wget https://github.com/ampache/ampache/archive/master.tar.gz
3. tar -xvzf master.tar.gz
4. mv ampache-master /var/www/html/ampache

Als nächstes eine Browser öffenen und http://IP-des-Ampache-Server/ampache in die Adresszeile eingeben.

 

HLS endlos

Einen HLS Stream zu erzeugen der die Möglichkeit bietet einen Apple Live Streaming zu simulieren ist meist recht aufwendig. Insbesondere wenn die Internetverbindung zu wünschen übrig lässt. Auf der Suche nach einer Möglichkeit fand sich HLS Endless, ein Modul für Node.js.
Um HLS Endless zu nutzen wird zuerst eine Installation von Node.js benötigt. Die Anleitung zur Installation gibt es hier.  Die meisten Linux Distributionen halten Node.js in Ihren Software-Repositories vor und es bietet sich daher an es von dort zu installieren.
Mit dem Node.js Packet Manager kann dann HLS Endless einfach als Modul nachgeladen werden. Eventuelle Abhängigkeiten werden dabei automatisch aufgelöst und ebenfalls installiert.

npm install hls-endless -g

Um den Server zu starten:

hls-endless start

hls-endless_start

Die Links können dann einfach im Browser oder mit einem Player wie VLC aufgerufen werden.
hls_vlc_player

Um HLS Endless wieder zu stoppen:

hls-endless stop

HLS Endless stellt die Testvideos in verschiedenen Bandbreiten zur Verfügung:

Master playlist: http://localhost:6060/master.m3u8

Audio only – 22.050Hz stereo @ 40 kbps
Bitrate 1 – 400×300 @ 232 kbps
Bitrate 2 – 640×480 @ 650 kbps
Bitrate 3 – 640×480 @ 1 Mbps
Bitrate 4 – 960×720 @ 2 Mbps

Um eigene Videos nutzen zu können müssen diese im entsprechenden Format vorliegen und es muss die Playlist, unter Ubuntu Linux, in /usr/local/lib/node_modules/hls_endless angepasst werden.

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=232370,CODECS="mp4a.40.2, avc1.4d4015"
bitrate_1.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=649879,CODECS="mp4a.40.2, avc1.4d401e"
bitrate_2.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=991714,CODECS="mp4a.40.2, avc1.4d401e"
bitrate_3.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1927833,CODECS="mp4a.40.2, avc1.4d401f"
bitrate_4.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=44370,CODECS="mp4a.40.2, avc1.4d4015"
bitrate_0.m3u8

Wer genauer verstehen will wie die Playlist aufgebaut findet hier eine Erklärung und hier die Spezifikation.

HLS Endless wure von Maxwell Dayvson da Silva entwickelt. Gute Arbeit! Thank you.

Streaming Server für unter 70€

Zugegeben, das sind nur die Materialkosten, aber die Mühen lohnen.

Materialiste:

Die Software gibt es als Image zum Download und ist ein Open Source Produkt. Wer noch keine Bekanntschaft mit dem kleinen Einplatinenrechner Raspberry Pi gemacht hat, dem seien die Seiten des RaspberryCenter empfohlen. Hier findet man auch Hinweise wie das Image auf die SD-Karte kommt. Der MistServer ist ein Produkt der DDVTech B.V. Die Software wurde entwickelt um möglichst viel aus einem Rechner heraus zu holen.

Die Open Source variante des Produkts steht zum freien Download bereit und kann ohne Einschränkungen genutzt werden. Ein Image für den Raspberry stellt MistServer bereit.

Videos die der MistSever streamen soll müssen zuerst in das DTSC Format gewandelt werden. Wie das funktioniert findet sich im „First Use Guide„. Am besten funktioniert es mit .flv Dateien.

MistServer_Preview

 

 

Einfacher RTSP Server

Wer sich mit RTSP streaming beschäftigt möchte meist nicht erst lange und aufwendig Serversysteme aufsetzen. Eine Möglichkeit ist es den VideoLAN Client (VLC) zu bemühen. Wer gerne Alternativen testet kann es mit dem Live555 Media Server probieren. Wie VLC auch, als Quellcode zu haben. Zur Verfügung gestellt von Live Networks, Inc.

Zur Installation lädt man einfach die passende Version zum Betriebssystem herunter. Unterstützt wird Windows, Linux, Mac und FreeBSD. Das ganze in ein Verzeichnis der Wahl kopieren und unter Linux (sudo) ./live555MediaServer & ausführen.

Dateien die man streamen möchte müssen im Installationsverzeichnis liegen. Zu beachten ist das der live555 Media Server ausschließlich folgende Formate beherrscht:

  • MPEG Transport Stream file (with file name suffix „.ts
  • Matroska or WebM file (with filename suffix „.mkv“ or „.webm“)
  • Ogg file (with filename suffix „.ogg“, „ogv“, or „.opus“)
  • MPEG-1 or 2 Program Stream file (with file name suffix „.mpg“)
  • MPEG-4 Video Elementary Stream file (with file name suffix „.m4e“)
  • H.264 Video Elementary Stream file (with file name suffix „.264“)
  • H.265 Video Elementary Stream file (with file name suffix „.265“)
  • VOB video+audio file (with file name suffix „.vob“)
  • DV video file (with file name suffix „.dv“)
  • MPEG-1 or 2 (including layer III – i.e., ‚MP3‘) audio file (with file name suffix „.mp3“)
  • WAV (PCM) audio file (with file name suffix „.wav“)
  • AMR audio file (with file name suffix „.amr“)
  • AC-3 audio file (with file name suffix „.ac3“)
  • AAC (ADTS format) audio file (with file name suffix „.aac“)

Wer Trickplay nutzen will muss für TS zusätzliche Software downloaden.

Aufgerufen wird der Stream mit:
rtsp://IP_des_Rechners:8554/Videodatei

Wer den Live555 Media Server dazu verwenden möchte Apple’s zu versorgen ist auf die Verwendung von Transportstreams und h.264 beschränkt. Näheres findet sich auf den Webseiten von Live555.