Streaming auf mehrere RTMP-Server mit ffmpeg mit minimalen Ressourcen

2783
Dustin

Ich versuche mit OBS und ffmpeg gleichzeitig auf Facebook und Twitch zu streamen. Mein aktuelles Setup funktioniert, aber das Problem ist, dass es ein bisschen Ressourcenhunger ist.

FACEBOOK_KEY="123?ds=1\&s_l=1\&a=ggnore" TWITCH_KEY="live_123_aBcEdFg"  ARGS="-c:v libx264 -preset medium -maxrate 3500k -bufsize 6000k -pix_fmt yuv420p -g 50 -c:a aac -b:a 160k -ac 2 -ar 44100 -f flv"  CMD="ffmpeg -re -listen 1 -i rtmp://127.0.0.1:5555" CMD="$CMD $ARGS rtmp://live.twitch.tv/app/$TWITCH_KEY" CMD="$CMD -r 30 $ARGS rtmp://rtmp-api.facebook.com:80/rtmp/$FACEBOOK_KEY"  eval $CMD 

OBS-Einstellungen sind einfach:

Video: 720p, 2500k Bitrate, x264-Kodierung, 60FPS

Audio: 160k AAC.

Ich habe zwei Ziele, die ich mit dem Setup erreichen möchte.

  1. Für Twitch sollte ffmpeg einfach den Quell-Stream ohne Konvertierung von OBS nach Twitch kopieren, da Twitch akzeptiert, was ich von OBS weitergebe.
  2. Für Facebook sollte es die FPS von 60 auf 30 konvertieren, wobei der Ressourcenverbrauch minimal ist, da Facebook alles akzeptiert, was von OBS kommt, außer der FPS.
3

1 Antwort auf die Frage

1
LordNeckbeard
ffmpeg -listen 1 -i rtmp://127.0.0.1:5555 -c copy -f flv rtmp://twitch -c:v libx264 -preset medium -maxrate 3500k -bufsize 6000k -r 30 -pix_fmt yuv420p -g 60 -c:a aac -b:a 160k -ac 2 -ar 44100 -f flv rtmp//:facebook 
  • Don't use -re with live input streams. Documentation says that it may cause packet loss.

  • I changed -g 50 to -g 60 to better fit your 30 fps.

  • See the fifo muxer if you want to add options to attempt to recover the output in case of failure.

Fantastisch! Vielen Dank. Würden Sie mit dem Facebook-Stream noch etwas unternehmen, um die CPU-Auslastung zu reduzieren? Alles, was du nicht für nötig hältst? Dustin vor 6 Jahren 0
@Dustin Geben Sie 30 fps von OBS aus und geben Sie diese dann an Facebook und Twitch weiter, ohne sie neu zu codieren. LordNeckbeard vor 6 Jahren 1