当RTT很大时,为什么RTSP over TCP不能正常工作

时间:2017-01-12 22:43:04

标签: rtsp live555 rtcp openrtsp

我使用live555使用RTSP over TCP从按需RTSP服务器传输H264视频,如下所示:

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

当RTT小于30ms时,它运行良好。但是,如果我使用linux的tcp tc命令将RTT增加到100ms,那么我只能获得半质量的视频。当RTT为100ms时,RTSP over UDP仍能正常工作。由于我在本地运行,因此无论网络流量如何,因为我可以使用iperf确认即使rtt为100ms,吞吐量也可以达到最大值。所以我想知道是什么原因造成的?

1 个答案:

答案 0 :(得分:0)

看了一下后,结果证明是缓冲问题。 OpenRTSP默认使用50K缓冲区,当RTT很大时,它会短路。因此,我在 liveMedia / GenericMediaServer.cpp 中的increaseSendBufferTo()方法调用中增加了缓冲区大小,这有助于解决问题。