2017-01-12 15 views
0

Я использую LIVE555 для потоковой H264 видео с сервера по требованию RTSP, используя RTSP через TCP следующим образом:Почему RTSP через TCP не очень хорошо работает, когда RTT большой

./openRTSP -F tcp-test -Q -d 60 -b 500000 -4 -P 62 -w 3840 -h 2160 -f 30 rtsp://ip-address:8554/h264ESVideoTest 

Это хорошо работает, когда RTT является менее 30 мс. Тем не менее, если я увеличиваю RTT до 100 мс с помощью команды tcp tc linux, тогда я могу получить только видео с половиной качества. RTSP по UDP по-прежнему работает нормально, когда RTT составляет 100 мс. Поскольку я запускаю это локально, это не вопрос сетевого трафика, так как я могу подтвердить использование iperf, что пропускная способность может достигать максимума, даже когда rtt равно 100 мс. Так что мне интересно, что это за причина?

ответ

0

Оглянувшись немного, это оказалось проблемой буферизации. OpenRTSP использует 50K буфер по умолчанию, который не подходит для RTT. Таким образом, я увеличил размер буфера в вызове метода extendSendBufferTo() в liveMedia/GenericMediaServer.cpp, который помог решить проблему.

 Смежные вопросы

  • Нет связанных вопросов^_^