2016-05-07 5 views
2

Ich habe einen http-Server, Streaming-Engine-Server (Wowza-Instanz) und einen Webclient mit Dash.js-Player.Serving MPD nicht von der Streaming-Engine selbst

Um ein Video abzuspielen, sollte der Player eine URL für eine mpd-Datei erhalten.

In meiner aktuellen Architektur wird die MPD-Datei über eine GET-Anforderung an den HTTP-Server geliefert.

Der Server wiederum verarbeitet die Anforderung durch eine andere GET-Anforderung an den Streaming-Engine-Server, um eine mpd-Datei zu empfangen, die an den Client zurückgegeben wird.

Problem ist, der Player ist nicht in der Lage, dieses mpd zu spielen, da es auch erwartet, dass die Dash-Chunks auf dem HTTP-Server selbst vorhanden sind, stattdessen direkt auf die Streaming-Engine zugreifen.

Gibt es eine Möglichkeit, die mpd immer noch vom HTTP-Server zu bedienen, aber dann dem Player mitzuteilen, direkt mit der Streaming-Engine (für die Chunks) anstatt mit dem Server zu kommunizieren?

+0

Haben Sie jemals eine Lösung gefunden? Wir haben Probleme bei der Verwendung von Bindestrich über unser CDN, das aus Wowza stammt, da das MPD-Manifest den Speicherort der nächsten MPD-Datei stark codiert (warum ist das nicht die relative Sheesh). – KallDrexx

+0

Entschieden, Reverse-Proxy-Technologie wie Nginx zu verwenden, also Anfragen würden zurück zur API-URL kommen, aber der Nginx wird den Verkehr zu Wowza statt der App routen. – Jjang

+0

Gotcha, ich könnte dein Problem dann falsch interpretiert haben. Unser Problem war, dass wir Nginx davor verwenden, aber die index.mpd hat ein absolutes Pathed-Tag, das unsere Entstehung aufgrund ihrer Session-Sachen zunichte machte. – KallDrexx

Antwort

0

Sie können die Basis-URL in der Manifestdatei so festlegen, wie Sie es möchten - in Ihrem Fall und mit Ihren Namen der oben genannten Server möchten Sie, dass es die URL des "Streaming-Servers" ist das des "HTTP" -Servers.

Wenn keine Basis-URL angegeben ist, dann sind die URLs relativ zur Manifest-URL, was nicht das ist, was Sie wollen, denke ich.

+0

Sie haben recht, aber ich benutze die Wowza Streaming Engine, und ich habe gelesen, dass sie das baseURL-Tag nicht unterstützt. Gibt es einen anderen Weg? – Jjang

+0

Auf Ihrem HTTP-Server muss die Basis-URL festgelegt werden - die Links zum Streaming-Server können sich auf die URL des Streaming-Servers selbst beziehen. – Mick

+0

Sorry ich verstehe nicht, was du meinst .. die Idee war, die MPD an den Client einmal über die API zu dienen, und der Rest der Kommunikation wäre der Client mit der Streaming-Engine (nicht über die http Sevrer) – Jjang

0

Es klingt wie Sie Ihren Wowza-Server mit einem Caching-Webserver (wie Apache, Nginx, etc.) skalieren. Dies ist mit Wowza möglich, indem die Anwendungstypen des HTTP-Origin-Modus verwendet werden. Mit diesem Anwendungstyp können Sie den HTTP-Caching-Proxy-Server zum erneuten Streamen des MPD-Inhalts von Ihrem Wowza-Server verwenden. Die HTTP-Stream-Wiedergabe wird session-less ausgeführt (daher können benutzerdefinierte Abfrageparameter, die Clientsitzungs-IDs verwenden, nicht verwendet werden). Sie müssen auch Ihren HTTP-Proxy für das Zwischenspeichern von Video konfigurieren.

Um die HTTP-Origin-Modus-Anwendungen zu verwenden, gehen Sie von Ihrer Manager-Benutzeroberfläche zu Anwendungen und klicken Sie auf Anwendungen hinzufügen. Sie können entweder einen Anwendungstyp "Live HTTP Origin" oder "VOD HTTP Origin" hinzufügen.

+0

Ich bin nicht skalieren nichts mit Caching-Webserver ... – Jjang