2017-01-12 19 views
0
다음과 같이 내가 TCP를 통해 온 디맨드 RTSP 서버에서 H264 비디오 RTSP를 사용하여 스트리밍 live555을 사용하고

: RTT가있을 때RTT가 큰 경우 TCP를 통한 RTSP 잘 작동하지 않는 이유는

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

그것은 잘 작동 30ms 미만. 그러나 리눅스의 tcp tc 명령을 사용하여 RTT를 100ms로 늘리면 절반 품질의 비디오 만 얻을 수 있습니다. UDP를 통한 RTSP는 RTT가 100ms 일 때 계속 작동합니다. 로컬로 실행하고 있기 때문에 iperf를 사용하면 rtt가 100ms 일 때도 처리량이 최대가 될 수 있음을 확인할 수 있으므로 네트워크 트래픽은 문제가되지 않습니다. 그래서 원인이 무엇인지 궁금하네요?

답변

0

조금 뒤돌아 보면, 이것은 버퍼링 문제로 밝혀졌습니다. OpenRTSP는 기본적으로 RTK가 클 때 부족한 50K 버퍼를 사용합니다. 따라서, 문제를 해결하는 데 도움이되는 liveMedia/GenericMediaServer.cpp의 increaseSendBufferTo() 메소드 호출에서 버퍼 크기를 증가 시켰습니다.