syscooldown
Goto Top

Webradio Live-Stream mit vorgefertigter Sendung

Liebe Administrator-Kollegen!

Ich stehe diesmal vor einem Problem, bei dem ich nicht so recht weiß, wo ich anfangen soll. Der Rest sollte dann nicht mehr so das Problem darstellen. Ich denke ich beginne mit der Anforderung des Kunden, damit ist es am leichtesten zu erklären, was ich machen soll.

Der Kunde hat:
-) Einen hosted Webserver mit php, mysql und ggf. perl (kein root zugriff)
-) Eine vorgefertigte Radiosendung (2 Stunden) (liegt als Projektdateien vor und kann in jedes gängige Format exportiert werden)

Der Kunde will:
-) Die Sendung soll um 00:00 starten und laufen. Klick man auf den Link zum Radio soll ein Player in einem eigenen Popup erscheinen und die Sendung von dort an abspielen, wo sie gerade ist (wie ein Live Webradio)

Ich will:
-) Das nicht von einem PC/Server aus via z.b. ShoutCast zum Webserver streamen und dann laufen lassen, sonder möchte die vorgefertigten Daten auf dem Webserver liegen haben und direkt von dort aus den Stream starten.
-) HMTL5 und Flashfallback für den Player

Das bedeutet ich müsste die Sendung auf dem Webserver laufen lassen und z.b. über einen Socket abgreifen. Das ist allerdings a) ziemlich umständlich und b) ziemlich ressourcenlastig. Ich dachte daher an eine Lösung, bei der ich z.b. die Sendung wie eine normale Audio-Datei betrachte und sie anhand der Uhrzeit ab einem bestimmten Zeitpunkt in einem Loop laufen lasse. Sozusagen ein simulierter Live-Radio.

Meine Fragen dazu wären dann: Kennt ihr irgendeinen Webplayer, der das vielleicht sogar schon kann? Oder habt ihr bessere Ideen? Kann ich das auch anders erreichen? Denke ich um zu viele Ecken?

Liebe Grüße
SysCoolDown

Content-ID: 239208

Url: https://administrator.de/contentid/239208

Ausgedruckt am: 26.11.2024 um 19:11 Uhr

MrNetman
MrNetman 27.05.2014 um 01:29:22 Uhr
Goto Top
EvilMoe
EvilMoe 27.05.2014 um 07:53:06 Uhr
Goto Top
Hallo,

wenn du einen SHOUTcast Server verwenden willst, bietet sich "sc_trans" an. http://www.shoutcast2.de/download-shoutcast-20/
Sven
SysCoolDown
SysCoolDown 01.06.2014 aktualisiert um 23:59:02 Uhr
Goto Top
Vielen Dank für die Antworten!
Leider hat mir keine Antwort wirklich weiter geholfen, da ich ich nicht zum Server streamen wollte. Es kann auch sein, dass ich die Lösungen falsch verstanden habe...

Gelöst habe ich es nun mit meinem Ansatz, das "Live"-Streaming für den Kunden nur zu simulieren. HTML5 und JavaScript bringen eine einfache Lösung (natürlich definitiv ausbaufähig (Fallback, etc.))

Auf der Auswahlseite gibt es einen kurzen JavaScript Code, der ein Popup öffnet:

<a target="popup" onclick="window.open('', 'popup', 'width=580,height=360,scrollbars=no,toolbar=no,status=no,resizable=yes,menubar=no,location=no,directories=no,top=10,left=10')"href="player.html">
<span class="name">Livestream</span></a>

Der "Player" hat nun das HTML5 Element <audio> im Code:

<audio id="liveplayer" controls="controls" autoplay="autoplay" loop="loop" preload="auto">
<source src="./media/sendung1.mp3" type="audio/mpeg" />
<source src="./media/sendung1.ogg" type="audio/ogg" />
Dein Browser kann dieses Element nicht anzeigen!
</audio>

Damit dann die Sendung so startet, als würde sie durchgehend laufen, verwende ich wieder JavaScript, um das <audio>-Element zu manipulieren:
<script>
var duration = 6600;
var now = new Date();
var starttime = ((now.getHours() * 3600) + (now.getMinutes() * 60) + now.getSeconds()) % duration;
var myAudio = document.getElementById('liveplayer');
myAudio.addEventListener('canplaythrough', function() {
if(this.currentTime < starttime){this.currentTime = starttime;}
this.play();
});
</script>

Das funktioniert soweit, dass ich den "Live"-Stream online schalten kann.
Folgendes könnte man noch erweitern:

-) Fallbackplayer in Flash für HTML5
-) Variable "duration" mittels php vom Webspace auslesen und so dynamisch halten

Dennoch freue ich mich über weitere Kommentare und/oder Lösungsvorschläge und Verbesserungen!
SysCoolDown
SysCoolDown 02.06.2014 um 00:05:12 Uhr
Goto Top
Zitat von @SysCoolDown

Ich will:
-) Das nicht von einem PC/Server aus via z.b. ShoutCast zum Webserver streamen und dann laufen lassen, sonder möchte die vorgefertigten Daten auf dem Webserver liegen haben und direkt von dort aus den Stream starten.