[Live-devel] how to use H264or5VideoRTPSink

Ross Finlayson finlayson at live555.com
Fri Jan 13 02:13:15 PST 2017


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.
http://www.live555.com/




More information about the live-devel mailing list