Я хочу иметь возможность делать простую демонстрацию экрана с низкой задержкой. Я знаю, что одноранговая связь будет иметь наименьшую задержку, но кажется, что использование промежуточного сервера намного проще настроить. Я нашел эту замечательную маленькую библиотеку , которая устанавливает сервер RTSP, который я запускаю на своем сервере цифрового океана. Затем я:
- Настроил OBS для потоковой передачи с использованием RTP на сервер на порт 8558 с кодировкой libx264.
- Запуск
ffmpeg -re -stream_loop -1 -i rtp://127.0.0.1:8558 -c:v libx264 -c:a aac -f rtsp rtsp://localhost:8554/mystream
на сервере. - Открыть
rtsp://<server ip>:8554/mystream
на VL C.
Однако задержка кажется довольно высокой. С моим паршивым инте rnet это, должно быть, полминуты. Друг с лучшим интеллектом rnet заметил, что он колеблется от 4 до 15 секунд. Кроме того, похоже, что на видео много артефактов (проблемы с кодированием? Я не уверен, почему это происходит?)
Я прилагаю ниже свои настройки OBS и пример артефактов.
Мой вопрос: есть ли какие-то настройки в OBS и ffmpeg, которые позволили бы иметь как можно более низкую сквозную задержку, при этом не имея слишком большого количества плохих артефактов? Я не очень хорошо разбираюсь в кодировании и потоковой передаче видео, поэтому для меня это все в новинку. Я хочу учиться!