Transcodieren Sie den RTMP-Livestream für mehrere Clients

1469
gertmenkel

Ich verfolge regelmäßig Livestreams auf der Website picarto.tv. Die Website verwendet RTMP für das Streaming und benötigt daher Flash, um die Videoquelle anzuzeigen. Viele (mobile / eingebettete) Geräte verfügen zwar nicht über Flash, daher möchte ich das Video in einem Format wie MP4 haben.

Ich habe einen Dualcore-VPS mit Ubuntu 14.04 mit 2 GB RAM, mit dem ich das Video in Echtzeit transkodieren möchte. Der VPS verfügt über eine 1-Gbit / s-Netzwerkverbindung, sodass die Bandbreite kein echtes Problem darstellt, obwohl sie auf 500 GB pro Monat beschränkt ist.

Was ich will, ist in der Lage zu sein, ist:

  • Sehen Sie sich den Stream auf meinem Telefon / Tablet / Smart TV / Nicht-Flash-Gerät an
  • Lassen Sie bis zu 10-15 Geräte gleichzeitig das Video ansehen
  • Daher möchte ich verhindern, dass für jedes Clientgerät ein Transcoding-Thread erzeugt wird
  • Die Verwendung einer MP4-Streaming-Ausgabe scheint die beste Idee zu sein, da die meisten Geräte dies unterstützen

Ich habe versucht ffmpeg, das RTMP in MP4 umzuwandeln, aber das erlaubt nur einen Client. Alle cvlcBefehle, die ich gefunden habe, sind entweder zu intensiv für meinen Server oder erzeugen überhaupt keine Videoausgabe.

ffserverirgendwie funktionierte, aber es war zu instabil und es wird nicht mehr gewartet. Es gab mir vage Fehler, die sich nicht auf einen echten Grund zurückführen ließen, und manchmal gab es überhaupt keinen Output ohne irgendetwas in den Protokollen.

Gibt es ein Werkzeug (wie ffservergepflegt) oder eine andere Methode, mit der ich eine MP4-Version eines RTMP-Streams auf einmal decodieren kann, Stream-to-Many-Art?

1

1 Antwort auf die Frage

2
LiveStreamer

Versuchen Sie es mit der Openvsx-Streamprozessorkomponente openvcx von github.com/openvcx/openvcx

Eine solche Befehlszeile würde den RTMP-Stream aufnehmen und für Chrome, Safari, iOS und Android ausgeben.

bin / vsx -v --capture = rtmp: // xxxx / bla / lalala --live = 8080 --mkvlive --httplive --rtsp --flvlive

Möglicherweise müssen Sie es auch mit der Befehlszeile --xcode = ... umcodieren. Weitere Informationen hierzu finden Sie hier http://openvcx.com/vsxuserguide.php