[Live-devel] RTP over RTSP: client sending RR "early"

Ross Finlayson finlayson at live555.com
Wed Oct 10 12:26:54 PDT 2012


OK, your log suggests that 'incomplete' data is being received over TCP (by the client), which implies (assuming that your client+server OS's TCP/IP implementation is correct) that some of the server's writes to the TCP socket are failing.

You can check this by updating your *server* code as follows:
- add
#define DEBUG_SEND 1
	to "liveMedia/RTPInterface.cpp"
- recompile, then rerun your server.

If you ever see the error message
	sendRTPOverTCP: failed!
then this shows that the server's writes to the TCP socket are eventually overflowing the OS's internal buffer (which should be at least 50 kBytes), which in turn implies that your stream's bitrate is greater than the data capacity of the TCP connection.  In this case there is nothing that you can do other than decrease the bitrate of your stream.

Everyone needs to understand that streaming RTP-over-TCP is something that you should do *only* when you are streaming over a firewall that does not pass UDP packets.  You should not think that just because TCP is a 'reliable' transport protocol, that you can use it to ensure 100% delivery of all of the stream data.  This may happen if the stream's bitrate is less than the capacity of the TCP connection, but if the stream's bitrate exceeds the capacity of the TCP connection, then you *will* get data loss (and in an inefficient way, because it won't occur on RTP packet boundaries, as it would if you were streaming via RTP/UDP).  This is the difference between streaming and 'file/webpage downloading', for example.

Ross Finlayson
Live Networks, Inc.
http://www.live555.com/

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.live555.com/pipermail/live-devel/attachments/20121010/8ebbf6bf/attachment-0001.html>


More information about the live-devel mailing list