Маршрутизация с низкой задержкой входа rtp в выход rtsp с помощью ffmpeg на сервере - PullRequest
0 голосов
/ 29 мая 2020

Я хочу иметь возможность делать простую демонстрацию экрана с низкой задержкой. Я знаю, что одноранговая связь будет иметь наименьшую задержку, но кажется, что использование промежуточного сервера намного проще настроить. Я нашел эту замечательную маленькую библиотеку , которая устанавливает сервер RTSP, который я запускаю на своем сервере цифрового океана. Затем я:

  1. Настроил OBS для потоковой передачи с использованием RTP на сервер на порт 8558 с кодировкой libx264.
  2. Запуск ffmpeg -re -stream_loop -1 -i rtp://127.0.0.1:8558 -c:v libx264 -c:a aac -f rtsp rtsp://localhost:8554/mystream на сервере.
  3. Открыть rtsp://<server ip>:8554/mystream на VL C.

Однако задержка кажется довольно высокой. С моим паршивым инте rnet это, должно быть, полминуты. Друг с лучшим интеллектом rnet заметил, что он колеблется от 4 до 15 секунд. Кроме того, похоже, что на видео много артефактов (проблемы с кодированием? Я не уверен, почему это происходит?)

Я прилагаю ниже свои настройки OBS и пример артефактов.

Мой вопрос: есть ли какие-то настройки в OBS и ffmpeg, которые позволили бы иметь как можно более низкую сквозную задержку, при этом не имея слишком большого количества плохих артефактов? Я не очень хорошо разбираюсь в кодировании и потоковой передаче видео, поэтому для меня это все в новинку. Я хочу учиться!

OBS settings

video artifacts

...