Entwicklung einer neuen Medienplattform. Phase der Bereitstellung von Videoinhalten für Benutzer

    Hallo an alle!

    Mit diesem Artikel möchten wir eine Reihe von Materialien zur Entwicklung eines Dienstes eröffnen, der der neuen Medienklasse zugeordnet werden kann. Der Dienst ist eine große Gruppe von Anwendungen, die Tools für die Verteilung und Wiedergabe von Videoinhalten auf verschiedenen Plattformen, Second-Screen-Anwendungen und viele andere interaktive Produkte umfassen, mit denen die Möglichkeiten der Verbraucher von Online-Sendungen erweitert werden sollen.

    Das Thema ist ziemlich umfangreich, daher haben wir beschlossen, die Geschichte über die Entwicklung eines neuen Mediendienstes von einer seiner Grundstufen aus zu beginnen, nämlich vom Prozess der Bereitstellung von Videoinhalten für Benutzer im Live-Modus. Dieser Artikel beschreibt die Gesamtarchitektur der Lösung.

    Wir stellen sofort fest, dass die unten beschriebene Lösung (wie die Geschichte selbst) keinen Anspruch auf Neuheit oder Genialität erhebt, aber das Thema ist sehr relevant, die Entwicklung befindet sich gerade im Prozess, sodass es für uns sehr nützlich wäre, einen Blick von Drittanbietern auf das Problem zu werfen.

    Aufgabe

    Jedes Massenereignis, das mit mehreren Kameras erfasst wird, wird dem Betrachter normalerweise in der Regieversion präsentiert: Schnittleiter kleben eine einzige, nicht alternative Videosequenz zusammen, die an den Betrachter übertragen wird.
    Wir stehen vor der Aufgabe, einen Dienst zu entwickeln, mit dem der Zuschauer während einer Internetübertragung auswählen kann, welche Kamera die Veranstaltung verfolgen soll, und der Gelegenheit bietet, wichtige Momente der Veranstaltung zu überprüfen.

    Bild
    Abbildung 1. Allgemeine Architektur der Lösung

    Wir haben das folgende Schema:
    Der Master-Server überwacht den Broadcast-Status von Broadcast-Quellen und verteilt Streams auf Slave-Server. Slave-Server wiederum verarbeiten diese Streams und senden das Ergebnis an den Speicher, der in der vom Master-Server empfangenen Konfiguration angegeben ist.

    Durch das Speichern werden Live-Broadcast-Daten zwischengespeichert und der Stream auch in FS gespeichert. Mit der Masterserverkonfiguration können Sie Speicherserver in verschiedenen Modi konfigurieren - Datenreplikation, Datentyp usw.

    Bild
    Abbildung 2. Wie Broadcasts an Clients gesendet werden

    Ein Lastplaner wird verwendet, um die Last zu verteilen. Der Balancer ist der Client-Einstiegspunkt in das System. Es ermöglicht Clients den Zugriff auf Server und filtert unnötige oder abgelaufene Anforderungen heraus. Die erste Kundenanfrage richtet sich immer an den Balancer. Abhängig von den Einstellungen leitet der Balancer den Client entweder an den Autorisierungsserver weiter oder bindet die Videoübertragung an den Server. Abhängig von der Anzahl der Benutzer kann die Anzahl der Balancer erhöht werden. Wir verwenden separate Instanzen, um historische Fragmente und Fragmente des Online-Broadcasts für den Lastenausgleich zu laden.

    Bild
    Abbildung 3. Caching

    Zum Zeitpunkt der Online-Übertragung speichert der Server die Stream-Fragmente zwischen, bevor sie gespeichert werden. Wenn Clients Kontakt aufnehmen, werden Fragmente asynchron verteilt.

    Das Puffern von Videofragmenten auf dem Client erfolgt über zwei Download-Warteschlangen. Zunächst werden Fragmente des aktiven Streams geladen. Nachdem die optimale Anzahl von Fragmenten für eine reibungslose Wiedergabe geladen wurde, wird die Steuerung auf den zweiten Stream übertragen, der damit beginnt, Fragmente von Kameras für diesen Zeitleistenabschnitt synchron zu laden. Dies vermeidet Sendeverzögerungen beim Umschalten der Kamera. Zum Zeitpunkt des Umschaltens wird der Puffer der ausgewählten Kamera in die Hauptstromwarteschlange geladen.

    Anstelle einer Schlussfolgerung

    In diesem Artikel haben wir versucht, kurz und schematisch unseren Ansatz zum Entwerfen einer Bereitstellungssite für Videoinhalte in Echtzeit für den Rundfunkverbraucher zu skizzieren. In den folgenden Artikeln werden wir Ihnen erklären, was als Ergebnis passiert ist, und genauer erläutern, wie dies mit anderen Teilen unseres großen neuen Mediendienstes (insbesondere mit seinem Client-Teil) zusammenwirkt.

    Vielen Dank für Ihre Aufmerksamkeit :)

    Jetzt auch beliebt: