[Live-devel] unicast onDemand from live source NAL Units

Ross Finlayson finlayson at live555.com
Thu Jan 24 06:59:32 PST 2013


> I have few options for this:
>             0 implies that the encoder will add the start codes
>            1, 2, 4: length prefixed NAL units of size 1, 2, or 4 bytes
>  
> If I set up the parameter to 0 the Discreteframer complains with the following message ‘H264VideoStreamDiscreteFramer error: MPEG 'start code' seen in the input\n";’     I guess that’s expected because I should not include start codes at this point all clear. However, with the parameter in the encoder set to 1, 2 or  4 it didn’t complain at all but I still do not visualize anything in the player.

Remember that the data that you copy to *fTo should be a NAL unit, and nothing else.  That means no start code at the front.  But it also means nothing else at the front - including your 'length prefix'.

In other words - you need to omit the 'length prefix' when you copy the NAL unit to *fTo.  (Of course, you will use this 'length prefix' value to tell you how much data to copy, and you'll also set "fFrameSize" to this value.)


> I wonder why are the implications with start codes or prefixed NAL units size and the discreteframer..

You don't need to speculate about this.  Remember, You Have Complete Source Code.  Just look at the code in "liveMedia/H264VideoStreamFramer.cpp", starting at line 62.  This code expects the delivered data to be a NAL unit - i.e., beginning with a byte that contains the "nal_unit_type" - and nothing else.

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/20130124/972311c6/attachment-0001.html>


More information about the live-devel mailing list