使用 ffmpeg (通过 UDP) 直播桌面时的图形伪影

使用 ffmpeg (通过 UDP) 直播桌面时的图形伪影

我正在尝试直播我的全屏应用程序并从同一网络中的另一台机器查看它。

我正在使用此命令来启动流式传输,它运行良好,并且我可以看到延迟 2/3 秒的直播:

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

但是当我尝试播放视频时,有时我可以看到流媒体机器的桌面背景(其中的一部分)的一些图形伪影(我的应用程序处于全屏模式,你无法在真实机器上看到桌面背景)。

我认为这不是与 UDP 流相关的问题,而是与屏幕截图相关的问题(没有其他图形伪像,如绿屏,表明数据包丢失)。在流式传输期间,CPU 和 RAM 负载最小。

我在两台机器上都使用 Ubuntu 16.04。

我可以尝试一些标志来解决“桌面背景神器”吗?

答案1

该问题似乎是由流媒体机器上的 Cinnamon 引起的。 同样的问题

两种可能的解决方案,对我来说都有效:

  1. 更换桌面环境。我尝试了 Gnome3 和 Unity,流媒体播放效果很好。
  2. 从 Nvidia 设置中禁用“允许翻转”选项。它允许我修复 Cinnamon 的问题。例子

相关内容