Projektstatus: Im Einsatz

Shig Distributed Streaming

Wir verbinden Streamer*innen und ihr Publikum über dezentrale Live-Streams.

Enrico Schwendig
#Runde14 #Audio/Video #Softwareinfrastruktur
shig

Welche gesellschaftliche Herausforderung adressiert euer Prototyp?

Video-Live-Streaming ist sehr beliebt und findet sich in vielen Bereichen, von der Übertragung von Veranstaltungen bis zu Gaming-Streams. Obwohl es bereits Open-Source-Lösungen für die Live-Übertragung von Videoinhalten gibt, setzen die meisten Anwender*innen auf zentralisierte und kommerzielle Dienste. Im Gegensatz zu diesen Lösungen hält eine dezentrale Video-Streaming-Lösung die individuellen Kosten von Hosting und Streaming gering und kommt ohne zentrale Infrastruktur aus, die instandgehalten werden muss. Das Projekt nutzt eine Multi-Guest-Streaming-Technologie, um Inhalte dezentral zu verteilen und gleichzeitig Live-Interaktionen mit dem Publikum zu ermöglichen. Durch den dezentralen Ansatz ist eine Integration in bestehende Technologien wie PeerTube oder ActivityPub möglich.

Wie geht ihr das Problem an?

Das Grundprinzip besteht darin, die live streamende Person und Ihre Gäste in einer Videokonferenz zusammenzuschließen und die Konferenz aufzuzeichnen. Der Stream-Service kann als PeerTube- oder Mastodon-Erweiterung auf deren Federation-API zugreifen. Die Person, die den Live-Stream betreibt, sendet ihren Video-Stream zu ihrem gewählten Streaming-Service. Dabei ist ein Live-Stream das Ergebnis, das die Zuschauer*innen konsumieren, während ein Video-Stream aus dem Audio- und Videosignal besteht, welches Teilnehmende an den Service senden. Bei mehr als einer Person als Teil des Live-Streams müssen deren Videostreams gemixt werden.

Für das Versenden eines Video-Streams wird WebRTC verwendet. WebRTC ist ein Quasi-Realtime-Protokoll mit dem die Video-Streams zwischen den Services verteilt und gleichzeitig Bild und Ton unterschiedlicher Video-Streams zeitlich synchron gehalten werden.

Die Video-Streams werden über die Federation-API den anderen verteilten Streaming-Services bekannt gemacht. Die Services abonnieren die Streams, die auf anderen Streaming Services entstehen, über das WebRTC-HTTP Egress Protocol (WHEP). WHEP ist ein auf TCP basiertes Austauschprotokoll zum Erzeugen von Media-Pipelines. Wenn ein Live-Stream aus mehreren Video-Streams verschiedener Personen besteht, werden sie gemixt, bevor jeder Streaming-Service eine Broadcast-Ressource erstellt, die von Zuschauer*innen konsumiert werden kann.

An wen richtet sich euer Tool?

Das Projekt richtet sich an Entwickler*innen von verteilten Video-Systemen, die Multi-Guest-Streaming in ihre Projekte integrieren möchten. Darüber hinaus soll das Projekt Live-Streamer*innen erreichen, die sich eine engere Interaktion mit der Community wünschen.