<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><blockquote type="cite"><div style="">I have created a RTSPServer which I am using to stream a live VP8 video stream to several clients.  I have created my own FramedSource and I am using this to write the VP8 stream.  This works fine when the client uses UDP, when I change the client to use TCP for less reliable networks I seem to 'lose' frames of video and the result is a broken video stream on the client.  This is quite surprising as I would have thought if I was to have problems I would have had them when using UDP as opposed to TCP.</div></blockquote><div><br></div></div>Your stream is exceeding the bandwidth of your network.  Therefore, you are going to lose data, no matter how you transmit your stream.  Note that - in this case - RTP-over-TCP streaming cannot save you.  If you try to stream over a too-low-bandwidth network using TCP, you'll still get data loss, but it'll occur at the sender (because of its OS buffer overflowing), rather than at the receiver.<div><br></div><div>This is the important distinction between live media streaming, and on-demand streaming (e.g., using the World-Wide Web).  If you use our software, it's important to understand this distinction.  Or, to put it more bluntly, if you do not understand the paragraph above, you should not be using our software.</div><div><br></div><div>In fact, if - as appears to be the case for you - your network is bandwidth-constrained, it is actually better (or at least, 'less bad') to stream using RTP/UDP rather than RTP/TCP.  If you stream over RTP/UDP, the data loss will occur on RTP packet boundaries, which is much better for your decoder.  (You are probably getting data loss even with RTP/UDP streaming, but you're just not realizing it.)</div><div><br></div><div>Your only solution is to reduce the bitrate of your stream (by reducing its frame rate and/or video complexity).</div><br><div apple-content-edited="true">
<span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; "><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; ">Ross Finlayson<br>Live Networks, Inc.<br><a href="http://www.live555.com/">http://www.live555.com/</a></span></span>
</div>
<br></body></html>