<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><div><blockquote type="cite">I am testing the testH264VideoStreamer.cpp provided in the testprogs of<br>live555 library folder.<br>This file will stream a h264 file.<br>My h264 file is not corrupted.<br>I am viewing the stream using vlc player.<br></blockquote><div><br></div>(Sorry, I sent my previous email before I read your last email, in which you explained what you're doing.)</div><div><br></div><div>Your problem is that your stream contains extremely large 'I- frames' (also known as 'key frames'), and your encoder is encoding each I-frame so that it takes up a single H.264 NAL unit.</div><div><br></div><div><div>If you're using VLC as a client, then be aware that - if your I-frame NAL units are excessively large - the first few received frames *will* be truncated.  VLC notices this and increases its buffer size, so after a few seconds should have increased its buffer size large enough.  That's why you see video corruption only for the first few frames.  (There may be an option in VLC to use a larger initial buffer size.  However, VLC is not our software, so we can't help you with VLC-related problems.)</div><div><br></div><div>It's important to understand that each outgoing NAL unit - if it is larger than the RTP/UDP packet size (about 1500 bytes on most networks) - will be broken up into multiple outgoing RTP packets, and the receiver must receive *all* of these packets in order to be able to reconstruct the frame.  In other words, if even one of these packets is lost, then the receiver will lose the *entire* NAL unit.  That's why the NAL units - generated by your encoder - should be as small as is reasonable.</div><div><br></div><div>The best solution here - for streaming - is to to not send extremely large NAL units.  I-frames should be encoded as multiple 'slice' NAL units.  Reconfigure your encoder to break up 'key frames' into multiple (therefore much smaller) 'slice' NAL units.</div></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;  "><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;  ">Ross Finlayson<br>Live Networks, Inc.<br><a href="http://www.live555.com/">http://www.live555.com/</a></span></span>
</div>
<br></body></html>