Wie mache ich einen Video-Livestream über einen VPS?

Ich habe mir eine Million Ressourcen angesehen und kann keine endgültige Antwort darauf finden.

Ich möchte einen Live-Videostream in kleinem Maßstab (möglicherweise maximal 50 Zuschauer) mit geringer Qualität und nur mit meiner vorhandenen Ausrüstung (Mac und Firewire-Kamera), einem Low-End-Ubuntu-VPS und kostenloser Software erstellen. Streamen Sie vom Mac und hosten Sie den Stream auf einer Website auf dem vps.

Dienste wie justin.tv oder ustream möchte ich nicht nutzen, weil die Werbung sehr aufdringlich ist, und ich würde auch gerne lernen, wie man es selbst macht. Ich habe einige Fähigkeiten als Serveradministrator, aber dies ist eine neue Welt für mich, und ich kann nicht verstehen, wie alle Teile zusammenpassen. Ich habe die ganze Nacht über rtmp, rec5, wowza, ffmpeg gelesen und jetzt verstehe ich überhaupt nichts mehr.

Kann mir jemand mögliche Workflows geben, um die 3 Teile zusammenzusetzen? dh Streaming vom lokalen Computer, Empfang in vps, Ausstrahlung auf der Website.

Wenn Sie .net verwenden können und nichts gegen rtsp haben, dann schauen Sie sich net7mma.codeplex.com an

Antworten (2)

Es variiert ein wenig von Server zu Server, aber die Grundkomponenten sind ein Encoder/Streaming-Client auf dem lokalen Client, der Eingaben von der Kamera entgegennimmt und in einen Stream umwandelt, der an den Stream-Server auf dem VPS gesendet werden kann.

Die Aufgabe des Stream-Servers (z. B. Red5) besteht dann darin, einen Publishing Point bereitzustellen, der den Stream an die Zuschauer weiterleitet. Der Streaming-Server kann entweder vom Client abrufen oder der Client kann an einen Zielspeicherort auf dem Stream-Server pushen, um Inhalte für den Publishingpoint bereitzustellen.

Jeder Betrachter verbindet sich dann mit dem veröffentlichten RTMP-Stream auf dem Streaming-Server und erhält eine Kopie des hochgeladenen Streams. Beachten Sie, dass jede Kopie separat gesendet werden muss, es sei denn, Sie befinden sich in einem privaten Netzwerk, in dem Sie Multicast verwenden können, sodass der Bandbreitenbedarf schnell ansteigt, obwohl es möglich sein sollte, 50 SD-Streams oder Streams mit geringerer Qualität von einem einzigen VPS zu machen, vorausgesetzt, es hat einen Zuverlässige 100Mbps-Verbindung.

Die Website enthält einfach einen Viewer, der sich mit dem RTMP-Stream (oder ähnlichem) verbindet und tatsächlich clientseitig und nicht serverseitig arbeitet.

Um es kurz zusammenzufassen, der Client lädt zum Backend des Streaming-Servers hoch, der Streaming-Server repliziert sich zu jedem Zuschauer, der ihn ansehen möchte, und der Webserver gibt den Benutzern einfach einen clientseitigen Viewer, der sich mit dem Videostream verbindet.

Um kurz auf die einzelnen Komponenten, die Sie erwähnt haben, einzugehen.

  • RTMP ist ein Echtzeit-Medienprotokoll, bei dem es sich um ein gängiges Streaming-Protokoll handelt, das zum tatsächlichen Weiterleiten des Inhalts des Videostreams verwendet wird.
  • Red5 ist eine ziemlich beliebte kostenlose Streaming-Media-Server-Software, die zum Replizieren von RTMP- und ähnlichen Medienströmen an Clients verwendet wird.
  • Wowza ist eine weitere Streaming-Media-Server-Software, es handelt sich jedoch um ein kommerzielles, kostenpflichtiges Softwareprodukt. Wenn Sie auf kostenlose Software beschränkt sind, ist Wowza keine Option.
  • FFMpeg ist ein beliebter Open-Source-Videoencoder. Es wird auf dem Client ausgeführt und kann so konfiguriert werden, dass ein Stream veröffentlicht wird, der an Red5 oder einen ähnlichen Streaming-Medienserver gesendet werden kann.

Außerdem benötigen Sie einen Endpunkt-Viewer, der den Stream nutzen kann. Software wie Windows Media Player oder Quicktime sollte in der Lage sein, einen Stream anzuzeigen, aber es ist oft am besten, einen eingebetteten plattformübergreifenden Player in die Website einzubinden, die die Leute für den Stream besuchen. Es gibt viele Optionen für diese Komponente mit unterschiedlichen Stärken und Schwächen, aber jede sollte für Ihre Zwecke funktionieren.

Es gibt eine weitere kostenlose, leichtere Alternative zu wowza und red5 - das nginx-rtmp-Modul, das Sie davon befreit, mit Java herumzuspielen

https://github.com/arut/nginx-rtmp-module/

und hier ist eine Anleitung zur Einrichtung mit der kostenlosen Open Broadcaster Software (die leider nur Windows ist) https://obsproject.com/forum/resources/how-to-set-up-your-own-private-rtmp-server -using-nginx.50/

Für Streaming-Benutzer ist Adobe Flash Media Live Encoder die einzige anständige kostenlose Lösung, die ich für OSX gefunden habe.

Eine kostenlose und relativ leichte Pipeline für das Streaming von OSX wäre also

Camtwist und Soundflower zum Aufnehmen

Adobe Flash Media Live Encoder zum Streamen von RTMP zum vps (oder Open Broadcaster Software unter Windows)

Ein Ubuntu-vps, auf dem nginx mit dem nginx-rtmp-Modul ausgeführt wird (muss aus der Quelle erstellt werden)

Betten Sie den Stream mit etwas wie JWPlayer in eine Website ein