• This forum has a zero tolerance policy regarding spam. If you register here to publish advertising, your user account will be deleted without further questions.

VMware VM als Streaming und Encoding Server/Station

delta544

Member
Moinsen,

ich hab mal versucht eine VMware VM als Streaming und Encoding Station zu verwenden.
Dabei streamt die Quelle via OpenBroadcaster auf eine LinuxVM mit Nginx+rtmp, was so gut wie keine Last für die Quelle bedeutet.
Die Streaming Client soll nun den RTMP stream entweder ins Internet weiterleiten oder aber aufnehmen und evtl. neu encoden um eine kleinere Datei zu bekommen.
Die Idee war jetzt den Stream via VLC und OpenBroadcaster aufzunehmen oder weiter zu leiten, aber die 'Grafikkarte' der VM scheint nicht geeignet zu sein laut OBS.

Irgendwer ne andere Idee, wo es nicht auf die Grafikkarte ankommt?

gruss,
delta544
 
ffmpeg

Stream weiterleiten 1:1:
Code:
ffmpeg -i rtmp://nginx-rtmp/app/name -c copy -f flv rtmp://ziel
Bzw. recodieren (Sehr CPU intensiv!):
Code:
ffmpeg -i rtmp://nginx-rtmp/app/name -c:v libx264 -preset ultrafast -b:v 3000k -c:a aac -b:a 128k -f flv rtmp://ziel
Bildgröße, soll sich die Ausgabe in der größe unterscheiden, kann mit dem -s Switch angepasst werden. Zudem lässt sich auch minrate/maxrate festlegen. Siehe Docs.

-f flv rtmp://ziel kann auch auch durch einen lokalen Pfad ersetzt werden, wie /home/user/ausgabe.mp4
 
Last edited by a moderator:
Hi MadMakz,

danke für deinen Hinweis.
Generell kann ich sagen das Setup steht soweit. Heisst es OBS streamt zur Linux Nginx-RTMP Server ohne Probleme.

Werde das mit ffmpeg mal durchtesten.

gruss,
delta544
 
Hi,

also deine Kommandozeile muss ein wenig geändert werden und zwar in:

Code:
ffmpeg -i rtmp://192.168.0.43/live1/test -vcodec libx264 -preset ultrafast -b:v 3000k -acodec aac -ab 128k -strict experimental -f flv /tmp/test.mp4

Wobei .../../test der Play Path ist (in OBS)

gruss,
delta544
 
-strict experimental stimmt aber du willst definitiv nicht -f flv wenn du in eine mp4 Datei speichern willst.

Wenn du den flv Wrapper für den Eingangsstream erzwingen willst muss -f flv vor -i (Normalerweisse nicht nötig)

Und noch ein Nachtrag; Wenn der Eingangsaudiocodec mit Bitrate übernommen werden soll reicht ein -c:a copy ohne -b:a und -strict experimental
Spart natürlich CPU.

Die Codeclibraries können natürlich auch andere sein. Es gibt speziell bei h264 und aac jeweils eine handvoll Codecs, nur dabei achten das diese non-free (im Sinne von "nicht GPL") sind und selbst kompiliert werden müssen.
 
Last edited by a moderator:
Hi MadMakz,

hmm, jetzt wo du das erwähnst mit -f flv seh ich gerad den Fehler :)

Werde das mit -c:a copy nochmal probieren.
Leider werd ich da nicht vor Sonntag abend dazu kommen.

Da ich mit ffmpeg überhaupt keine Erfahrungen hab ist mir aber jede Hilfe willkommen.

Btw. die VM die den Stream aufzeichnet hat momentan 8 Cores. Hab da gestern nicht drauf geachtet, deswegen die vielleicht blöde Frage:
Macht ffmpeg gebrauch von sämtlichen Ressourcen wie vCPU und RAM?

gruss,
delta544
 
Back
Top