Огромная задержка при потоковой передаче HTTP с рабочего стола на браузер - PullRequest
0 голосов
/ 22 января 2019

Я пытаюсь собрать в браузере надежный, достаточно малый (<2 с) ресурс общего доступа к окну рабочего стола.В настоящее время у меня есть: </p>

отправитель клиента с использованием FFMPEG:

ffmpeg -f gdigrab -i "title=notepad.exe" -r 10 -framerate 10  -c:v libx264 -g 50  -preset fast -tune zerolatency -f rtp rtp://192.168.1.85:1234

сервер перенаправляет на HTTP с использованием VLC:

vlc -vv test.sdp  --sout=#transcode{vcodec=theo,vb=1600,scale=1,channels=1,acodec=none}:http{dst=:8080/webcam.ogg} :no-sout-rtp-sap :no-sout-standard-sap :sout-keep 

, где файл sdp генерируется извывод команды ffmpeg

Браузер клиента:

<video  id="video" autoplay loop muted preload="auto">
<source src="http://192.168.1.85:8080/webcam.ogg" type="video/ogg"/>
</video>

Это работает и дает хорошее качество.Но задержка ужасна (около 10 с), и я не знаю, как ее настроить.Я знаю, что задержка в транскодировании / пересылке VLC - отображение потока RTP от клиента на сервере имеет задержку всего около 1 с.

Я думаю, есть два вопроса - может ли этот подход быть разумно настроен, илинеправильный подход с самого начала?

1 Ответ

0 голосов
/ 22 января 2019

Sub 2 секунды по http почти невозможно. Задержка может быть уменьшена, но вам, вероятно, потребуется сменить исходное программное обеспечение http, переключить доставку на пакетную передачу, оптимизировать конвейер кодирования и управлять буфером проигрывателя. Даже тогда я сомневаюсь, что вы получите до 2 секунд.

...