Grafisches Artefakt beim Live-Streaming des Desktops mit ffmpeg (über UDP)

Grafisches Artefakt beim Live-Streaming des Desktops mit ffmpeg (über UDP)

Ich versuche, meine Anwendung im Vollbildmodus live zu streamen und sie von einem anderen Computer im selben Netzwerk aus anzuzeigen.

Ich verwende diesen Befehl, um das Streaming zu starten. Er funktioniert gut und ich kann den Livestream mit 2/3 Sekunden Verzögerung sehen:

ffmpeg -video_size 1920x1080 -r 10 -f x11grab -i :0.0 -f mpegts -b:v 4096k udp://othermachineaddress:8554

Aber wenn ich versuche, das Video abzuspielen, kann ich manchmal einige Grafikartefakte mit dem Desktop-Hintergrund (oder einem Teil davon) der Streaming-Maschine sehen (auf der meine Anwendung im Vollbildmodus läuft, auf der realen Maschine ist der Desktop-Hintergrund nicht zu sehen).

Ich vermute, dass das kein Problem mit dem UDP-Stream ist, sondern mit der Bildschirmaufnahme (es gibt kein anderes Grafikartefakt wie einen grünen Bildschirm, der auf Paketverlust hindeutet). Während des Streamings ist die CPU- und RAM-Auslastung minimal.

Ich verwende Ubuntu 16.04 auf beiden Maschinen.

Gibt es einige Flags, mit denen ich versuchen kann, das „Desktop-Hintergrundartefakt“ zu beheben?

Antwort1

Dieses Problem scheint durch Cinnamon auf der Streaming-Maschine verursacht zu werden. Selbes Problem hier

Zwei mögliche Lösungen, beide funktionieren bei mir:

  1. Ändern Sie die DE. Ich habe sowohl Gnome3 als auch Unity ausprobiert, das Streaming funktioniert einwandfrei.
  2. Deaktivieren Sie in den Nvidia-Einstellungen die Option „Flipping zulassen“. Dadurch kann ich das Problem mit Cinnamon beheben.Beispiel

verwandte Informationen