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
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”).
Live Networks, Inc.
live-devel mailing list