Графический артефакт во время потоковой передачи рабочего стола с помощью 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, а в захвате экрана (нет других графических артефактов, вроде зеленого экрана, которые указывают на потерю пакетов). Во время потоковой передачи загрузка ЦП и ОЗУ минимальна.

Я использую Ubuntu 16.04 на обеих машинах.

Есть ли какие-то флаги, которые я могу попробовать устранить «артефакт фона рабочего стола»?

решение1

Похоже, что эта проблема вызвана Cinnamon на потоковой машине. Та же проблема здесь

Два возможных решения, оба мне подходят:

  1. Поменяйте DE. Я пробовал и Gnome3, и Unity, потоковая передача работает нормально.
  2. Отключите в настройках Nvidia опцию "Разрешить переворачивание". Это позволяет мне исправить проблему с Cinnamon.Пример

Связанный контент