<!doctype html public "-//W3C//DTD W3 HTML//EN">
<html><head><style type="text/css"><!--
blockquote, dl, ul, ol, li { padding-top: 0 ; padding-bottom: 0 }
--></style><title>Re: [Live-devel] H264 problem with StreamParser
leak</title></head><body>
<blockquote type="cite" cite><b>I tried the
"H264VideoStreamDiscreteFramer" first and got the
following:</b><br>
<b></b></blockquote>
<blockquote type="cite" cite><b>Warning: Invalid 'nal_unit_type': 0.
Does the NAL unit begin with a MPEG 'start code' by
mistake?</b></blockquote>
<div><br></div>
<div>Well yes, apparently it does. Note that in H.264 (unlike
MPEG-1, 2 or 4), MPEG 'start codes' are supposed to be used only when
H.264 data is delivered as a stream.</div>
<div><br></div>
<div>If your H.264 encoder is trying to deliver one
NAL-unit-at-a-time, then you need to:</div>
<div>1/ Stop having it prepend the 0x00000001 start code before each
NAL unit, and</div>
<div>2/ Use "H264VideoStreamDiscreteFramer", not
"H264VideoStreamFramer".</div>
<div><br></div>
<div><br></div>
<blockquote type="cite" cite><b>With the "H264VideoStreamFramer"
and BANK_SIZE set to 2000000, I get the following for a few seconds
while video plays:</b></blockquote>
<div><br></div>
<div>I don't see any problem with this debugging output, *except* that
if contains no timing information in the SPS. Therefore,
"H264VideoStreamFramer" has no choice but to assume a
'default' frame rate of 25 fps.</div>
<div><br></div>
<div>Because you are, in fact, trying to deliver a different frame
rate than this, then this is another reason why you need to be using
"H264VideoStreamDiscreteFramer" (therefore, without any MPEG
'start codes' in the input data), rather than
"H264VideoStreamFramer".</div>
<x-sigsep><pre>--
</pre></x-sigsep>
<div><br>
Ross Finlayson<br>
Live Networks, Inc.<br>
http://www.live555.com/</div>
</body>
</html>