<html><head><meta http-equiv="Content-Type" content="text/html charset=iso-8859-1"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><blockquote type="cite">To Ross, I assume... You're so insightful and you always seem to nail it on the head. Perhaps you can give me some guidance here again.</blockquote><div><br></div>I already have. However, I'll try to explain again what I've said in the past. In any case, this will be my last posting on this topic.</div><div><br></div><div><br><blockquote type="cite"><div>I got my named-pipe (actually I think it was an anonymous pipe) on Windows working with good quality, from my video source software, through Live555, and out to either VLC or custom iPad app.</div>
<div><br></div><div>But the pipe latency was over one second. Far too long.</div></blockquote><div><br></div></div><div>You already know what the problem is. Your decoder (hardware) has to receive frames at a smooth, evenly paced rate, otherwise it won't be able to display them properly. That's what's causing the video quality problems that you're seeing. However, network packets do not, in general, arrive at a smooth, even pace. I.e., network jitter is an unavoidable fact of the Internet. Even if you could overcome it in your own carefully-controlled LAN (with nothing else going on), you can't avoid it on other networks, and certainly not on the general Internet. To compensate for jitter, buffering (and thus some delay) *has to* be added somewhere. There is no alternative!</div><div><br></div><div>The best place to add this buffering is in the receiver - i.e., in your client application, so that it can compensate for jitter on the network. This is what VLC does (which is why you say that it plays your stream with no problem), and it's what you should do also in your iPad player application. I.e., add a buffer between the "*RTPSource" object and the decoder. Of course, you can tune the size of this buffer to try to keep the (unavoidable) delay low.</div><div><br></div><div>If you add buffering to your receiver application, then you won't need to add it to your server. I.e., you then can get rid of your pipe-based server (and its associated delay).</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>