First, don’t waste time with Mickey Mouse third-party sites like ‘Stack 
Overflow’.  They are never authoritative, and top-tier people don’t bother 
posting to them.  Instead, go straight to the source.

> @NAL units: I am using NvCodec for encoding and neither documentation nor 
> samples even mention NALs, so at least I *think* what I have is indeed a raw 
> byte stream, not a sequence of NAL units (MPEG start code is also not 
> present). Except of course, H264 and H265 imply that coders deliver NAL units 
> anyways and this goes without saying, so the documentation doesn’t mention. 
> What I do have is data which, when written to a file, can be played back by 
> any media player.

OK, this suggests that you are generating a byte stream that contains a ‘start 
code’ (i.e., 0x00 0x00 0x00 0x01) in front of each NAL unit.  If (and only if), 
you can deliver this byte stream as an open file (e.g., using a pipe), then you 
can use the existing “H264VideoFileServerMediaSubsession” class, and don’t need 
to write any new code of your own.  “H264VideoFileServerMediaSubsession” uses a 
“H264VideoStreamFramer”, because it is assumed to read from an unstructured 
byte stream.

If, however, you cannot deliver your H.264 data as an open file, then you will, 
instead, need to break it up into separate NAL units - *without* 0x00 0x00 0x00 
0x01 ‘start codes’ - and deliver each NAL unit, one at a time, to a 
“H264VideoStreamDiscreteFramer” (*not* a “H264VideoStreamFramer”).

Ross Finlayson
Live Networks, Inc.

live-devel mailing list

Reply via email to