Suche Lösungsansatz

michael2610

Newbie
Registriert
März 2021
Beiträge
4
Hallo,

ich betreibe ein Kampfsport-Center und gebe aktuell alle meine Kurse online über Zoom.
Alle Teilnehmer sind dabei auf stumm geschaltet und ich bin der einzige der Ton und Video laufen hat.
Eigentlich wie bei einem Stream.
Deshalb bin ich nun auf die Idee gekommen, das ganze auch als Stream laufen zu lassen.

Das Bild hier veranschaulicht in etwa mein aktuelles Setup:

Schaubild Stream.jpg



An meinen Laptop ist eine Webcam angeschlossen.
Über OBS Studio gebe ich das Video via virtueller Webcam an Zoom weiter, und schicke gleichzeitig (lokal) einen Stream an mein Raspberry Pi.
Auf dem Raspberry Pi ist ein Nginx HLS Streaming Server konfiguriert, der über Port 1935 den Stream meines Laptops empfängt, und an Port 8080 als HLS Stream zur Verfügung stellt (Hier bin ich mir nicht so ganz sicher, ob ich das fachlich/technisch korrekt beschrieben habe).
An folgenden Tutorials habe ich mich orientiert: HLS Streaming Server with NGINX (from Nerd on the Street) + Peer5 Tutorial

Der nächste Schritt ist jetzt natürlich, meinen Mitgliedern den Stream zur Verfügung zu stellen.
Bisher habe ich über NGROK eine Tunnel-Verbindung zum Port 8080 von meinem Raspberry Pi erzeugt. (Ist das korrekt so?)
Das ist sehr praktisch, da NGROK sowohl eine HTTP-, als auch eine HTTPS-Adresse zum Pi bereitstellt.

In einer einfachen React-Anwendung habe ich dann Video.js integriert und als Source die Ngrok-Https-Adresse verwendet. Die React-Anwendung läuft auf einem webgo-Server.
Durch einen Passwortschutz verhindere ich den Zugriff durch Unbefugte.
Der Stream funktioniert auf diese Art und Weiße bisher einwandfrei.

Für dieses Setup muss jedoch mein Raspberry Pi 24/7 durchlaufen, damit sich die Ngrok-Verbindungsadresse nicht ändert.
(Das stört mich.)

Jetzt meine Fragen:
  1. Was haltet Ihr von dem Lösungsansatz? Habt ihr Verbesserungsvorschläge / Alternativen?
  2. Da ich natürlich die Free-Version von NGROK verwende, muss ich jedes mal, wenn ich den Raspberry Pi Neu starte und eine neue Verbindung über Ngrok öffne, den Https-Link in der React-Anwendung aktualisieren die Anwendung builden und anschließend die neue Version über FTP (webgo) hochladen. Gibt es hier eine einfachere Option? Als Alternative habe ich bereits Localtunnel ausprobiert. Da jeder neue Zugriff auf den Verbindungslink aber vorher bestätigt werden muss, funktioniert der Stream nicht. (Fehler: The media could not be loaded, either because the server or network failed or because the format is not supported.)
Eine weitere Überlegung war über die FritzBox einfach den Port 8080 des Pi's freizugeben. Da die FritzBox extern erreichbar ist, dachte ich, dass dies funktionieren müsste. Hier meckert der Stream jedoch auch. Aber nur, wenn ich versuche den Stream über die React-Anwendung zu starten.
(Fehler: The media could not be loaded, either because the server or network failed or because the format is not supported.)
Gebe ich die Source-URL hingegegen direkt ein, die zu der Stream-Datei führt, funktioniert der Stream (beispielsweise über VLC)... 🤔
Grundsätzlich weiß ich aber auch nicht, ob es so eine gute Idee ist, den Stream direkt über die FritzBox freizugeben, zumal hier auch "nur" HTTP verwendet wird...

Ich freue mich über jede konstruktive Kritik und jeden Verbesserungsvorschlag :-)
Vielen Dank schonmal im Voraus.

Beste Grüße
Michael


PS: Sorry falls ich den Thread im falschen Bereich eröffnet habe.
 
Hier stellt sich Grundsätzlich die Frage nach dem warum?

Wenn du es als Stream laufen lässt musst du jeden Kunden einzeln versorgen, brauchst also das n-fache der alten Bandbreite als Uploadgeschwindigkeit. Hast du das?

Warum der Pi? Was spricht dagegen direkt von deinem Laptop ins Internet zu streamen?

NGROK kenne ich nicht, hört sich so aber erstmal umständlich an. was spricht dagegen einfach direkt von dem Webserver bei webgo auf deine eigene IP (gerne über eine (kostenlose) Domain) zu verweisen?
Das kann deine Fritzbox z.B. machen.

Dass du nur HTTP hast ist grundsätzlich nicht schlimm. Hier kann sich natürlich theoretisch jemand dazwischen schalten und andere Inhalte ausliefern, aber das würden deine Kunden ja merken und dürfte eigentlich nicht auftreten.

Und denk dir beim nächsten mal einen besseren Titel aus ;)
 
  • Gefällt mir
Reaktionen: Raijin
Der RPi 3B kann bis zu 7W verbrauchen. Ich denke aber das da keine 4 USB Geräte dran hängen, oder? Lan wohl auch nicht, sondern WLAN?
Auslastung immer 100% ?
Naja, lass es doch 4W sein...
Lass ihn doch 24/7 laufen...ausserdem ist es dein Beruf, da kann man sowas Steuerlich geltend machen, im Endefekt kostet es dich doch nix... 🤷‍♂️
 
michael2610 schrieb:
Deshalb bin ich nun auf die Idee gekommen, das ganze auch als Stream laufen zu lassen
Warum? Was ist das Problem mit zoom? Es ist doch vollkommen sinnfrei, an etwas rumzubasteln, wenn es funktioniert. Und selbst wenn, Zoom ist ja nicht konkurrenzlos.

Wenn du einen 08/15 Stream anbietest, ist das Unicast. Das heißt, dass jeder Client sich den Stream separat bei dir abholt. 20 Trainees = 20x Stream-Upload. Das kann deine Internetanbindung schnell aus- oder gar überlasten und es ist buchstäblich niemandem geholfen, egal wie gut/schlecht es aktuell mit Zoom laufen mag.

Für solche Streams haben die großen Streamanbieter massive Uploadkapazitäten bzw ganze Armeen von Contentservern. Und wenn nicht, arbeiten sie mit Multicasts, die den Upload schonen.


Alternativ, je nach Gruppengröße, könnte man eventuell auch in Discord den Bildschirm teilen
 
Zuletzt bearbeitet:
Pako1997 schrieb:
Hier stellt sich Grundsätzlich die Frage nach dem warum?

Wenn du es als Stream laufen lässt musst du jeden Kunden einzeln versorgen, brauchst also das n-fache der alten Bandbreite als Uploadgeschwindigkeit. Hast du das?

Warum der Pi? Was spricht dagegen direkt von deinem Laptop ins Internet zu streamen?

NGROK kenne ich nicht, hört sich so aber erstmal umständlich an. was spricht dagegen einfach direkt von dem Webserver bei webgo auf deine eigene IP (gerne über eine (kostenlose) Domain) zu verweisen?
Das kann deine Fritzbox z.B. machen.

Dass du nur HTTP hast ist grundsätzlich nicht schlimm. Hier kann sich natürlich theoretisch jemand dazwischen schalten und andere Inhalte ausliefern, aber das würden deine Kunden ja merken und dürfte eigentlich nicht auftreten.

Und denk dir beim nächsten mal einen besseren Titel aus ;)
Die Qualität des Live-Streams ist deutlich besser als die über Zoom. Das ist das Warum.
Eigentlich dachte ich, es fällt nur die Bandbreite für den einen Upload des Streams an? Der Stream wird ja auf meine Seite bei webgo geleitet. Von dort aus streamen die Zuschauer ja dann den Stream oder? Also entsteht doch der Traffic am Webserver oder nicht?

Den Pi benutze ich um nicht noch mehr Dinge auf dem Laptop laufen zu haben. Und aktuell läuft es mit dem Pi eigentlich ganz gut. Wie würdest du es denn über den Laptop machen? Der Laptop läuft mit Windows.

Das mit dem Webserver auf die eigene IP verweisen hört sich super an. Das mit der kostenlosen Domain habe ich auch schon in Betracht gezogen, habe jedoch noch nicht ganz verstanden wie das dann alles zusammen hänge würde?
Wie erstelle ich den Verweis vom Webserver auf die eigene IP?

Sorry bezüglich des Titels .

Splatter0815 schrieb:
Der RPi 3B kann bis zu 7W verbrauchen. Ich denke aber das da keine 4 USB Geräte dran hängen, oder? Lan wohl auch nicht, sondern WLAN?
Auslastung immer 100% ?
Naja, lass es doch 4W sein...
Lass ihn doch 24/7 laufen...ausserdem ist es dein Beruf, da kann man sowas Steuerlich geltend machen, im Endefekt kostet es dich doch nix... 🤷‍♂️
Ja, aktuell ist das auch der Fall. Das mit dem Strom stört mich auch garnicht so sehr. Eher der Gedanke, dass es sicher eine bessere und ausfallsichere Option gibt.

Raijin schrieb:
Warum? Was ist das Problem mit zoom? Es ist doch vollkommen sinnfrei, an etwas rumzubasteln, wenn es funktioniert. Und selbst wenn, Zoom ist ja nicht konkurrenzlos.

Wenn du einen 08/15 Stream anbietest, ist das Unicast. Das heißt, dass jeder Client sich den Stream separat bei dir abholt. 20 Trainees = 20x Stream-Upload. Das kann deine Internetanbindung schnell aus- oder gar überlasten und es ist buchstäblich niemandem geholfen, egal wie gut/schlecht es aktuell mit Zoom laufen mag.

Für solche Streams haben die großen Streamanbieter massive Uploadkapazitäten bzw ganze Armeen von Contentservern. Und wenn nicht, arbeiten sie mit Multicasts, die den Upload schonen.


Alternativ, je nach Gruppengröße, könnte man eventuell auch in Discord den Bildschirm teilen
Ok, das wusste ich nicht. Wie schon etwas weiter oben beschrieben, dachte ich, dass bei mir nur der einmalige Upload / Bandbreite zum Webserver anfällt und von dort dann der Stream verteilt wird und dort der eigentliche Traffic entsteht. Da lag ich wohl falsch oder?
 
Ich kenne NGROK nicht und es wird aus deiner Beschreibung auch nicht wirklich klar ob der Stream nun lokal gehostet wird oder nicht, zumindest kann ich das nicht eindeutig herauslesen, auch nicht aus deiner Skizze.
 
Raijin schrieb:
Ich kenne NGROK nicht und es wird aus deiner Beschreibung auch nicht wirklich klar ob der Stream nun lokal gehostet wird oder nicht, zumindest kann ich das nicht eindeutig herauslesen, auch nicht aus deiner Skizze.
Siehe ngrok Homepage

1616277453654.png

Laut Punkt 3 geht der Traffic durch den ngrok-Prozess zu meiner lokalen Adresse.
Aber ich weiß leider auch nicht, ob jetzt der Traffic von jedem User zu meiner lokalen Adresse am Raspberry Pi geleitet wird, oder der Traffic am Webserver entsteht der den Stream an die User weiterleitet...
Deswegen habe ich ja auch den Thread erstellt.
 
Also ich hätte mich dann direkt an den dortigen Support gewandt. Die wissen wie ihr System funktioniert, ich und sicher auch viele andere, die den Anbieter nicht kennen, wissen es nicht.

Für mich klingt das offen gestanden nur wie eine Art VPN-Service, der als Weiterleitung für eingehende Verbindungen dient. Das heißt, dass Clients sich nicht direkt mit deiner öffentlichen IP verbinden, weil du ggfs gar keine (eigene) hast - Stichwort: Carrier-Grade-NAT - sondern mit dem Server des Anbieters. Dieser tunnelt die Verbindung dann 1:1 über eine VPN-Verbindung zu dir. Das wären dann aber immer noch 20 Verbindungen bei 20 Trainees, eben nur über den VPN-Server umgeleitet.

Aber wie gesagt, schreib dem Support einfach eine Mail und dann weißt du es mit Sicherheit.

Eventuell hat aber jemand anderes hier im Forum eine andere Idee oder einen anderen Service im Sinn.
 
Zuletzt bearbeitet:
Raijin schrieb:
Also ich hätte mich dann direkt an den dortigen Support gewandt. Die wissen wie ihr System funktioniert, ich und sicher auch viele andere, die den Anbieter nicht kennen, wissen es nicht.

Für mich klingt das offen gestanden nur wie eine Art VPN-Service, der als Weiterleitung für eingehende Verbindungen dient. Das heißt, dass Clients sich nicht direkt mit deiner öffentlichen IP verbinden, weil du ggfs gar keine (eigene) hast - Stichwort: Carrier-Grade-NAT - sondern mit dem Server des Anbieters. Dieser tunnelt die Verbindung dann 1:1 über eine VPN-Verbindung zu dir. Das wären dann aber immer noch 20 Verbindungen bei 20 Trainees, eben nur über den VPN-Server umgeleitet.

Aber wie gesagt, schreib dem Support einfach eine Mail und dann weißt du es mit Sicherheit.

Eventuell hat aber jemand anderes hier im Forum eine andere Idee oder einen anderen Service im Sinn.
Also ich habe heute mal 10 Personen gebeten auf den Stream zuzugreifen.
Nach 5 war dann das Upload Limit von der Fritzbox erreicht.
Der Traffic läuft also durch den Tunnel direkt zur Fritzbox und zum Raspberry Pi.

Ich habe die Statistik an der Fritzbox beobachtet und der Upstream war am oberen Anschlag. Als ich dann den Pi vom Netz nahm ging der Upstream wieder auf den normalen Wert zurück.

Du hattest also Recht, der Traffic liegt dann bei mir an der Fritzbox an...

Danke dir trotzdem für deine Antworten :-)
 
  • Gefällt mir
Reaktionen: Raijin
Alternativ gäbe es natürlich noch sowas wie Twitch oder Youtube live streams. Ersteres ist aber per Definition immer öffentlich, kann also jeder zugucken. Bei Youtube kann man den Stream soweit ich weiß auf privat stellen, aber was wie wo genau, weiß ich nicht.

Ansonsten kannst du neben Zoom natürlich noch eines der Konkurrenzprodukte ausprobieren.

Hier eine Liste von Zoom Alternativen
 
Zurück
Oben