2017-01-12 8 views
0

大きいときに、私は次のようにTCP上のRTSPを使用してオンデマンドRTSPサーバからH264ビデオをストリーミングするLive555ではを使用していますうまく動作しない理由:TCPオーバーRTSPは、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があるとき、それはうまく動作します30ms未満です。しかし、もしlinuxのtcp tcコマンドを使ってRTTを100msに上げると、半分の高品質のビデオしか得られません。 RTSP over UDPは、RTTが100msの場合でも正常に動作します。私はローカルでこれを実行しているので、ネットワークトラフィックの問題ではありません.iperfを使って、rttが100msであってもスループットが最大になることを確認できます。だから何が原因なのだろう?

答えて

0

少し見渡した後、これはバッファリングの問題であることが判明しました。 RTTが大きい場合、OpenRTSPはデフォルトで50Kバッファを使用しますが、これは短くなります。したがって、問題を解決するのに役立つliveMedia/GenericMediaServer.cppのincreaseSendBufferTo()メソッド呼び出しでバッファサイズを増やしました。