[Live-devel] Problem streaming continuous H.264 video over Transport Stream

Ross Finlayson finlayson at live555.com
Thu Dec 16 03:41:58 PST 2010


>Since the upgrade I had also come up with another issue: the stream 
>from the encoder shows "Warning: Invalid 'nal_unit_type': 0. Does 
>the NAL unit begin with a MPEG 'start code' by mistake?" from 
>H264VideoStreamDiscreteFramer::afterGettingFrame1().

I don't understand how you could have been using the code before, 
without having upgraded to at least the "2010.12.05" version, because 
the "H264VideoStreamDiscreteFramer" class did not even exist prior to 
that version of the code!  By (apparently) using a bastardized, 
partially out-of-date version of the code, you wasted lots of time 
(mostly your own).

But anyway, now that you're using a fully up-to-date version of the code...

Does the data from your H.264 encoder start with a 0x00000001 (a 
'start code') - for each NAL unit?  If so, your H.264 data is a *byte 
stream*, not a sequence of discrete NAL units.  In this case:
1/ If your H.264 input stream comes from a file (either a named file, 
or an open file), then you can use a "ByteStreamFileSource" to 
encapsulate it; you do not need to write your own 'device source' 
class.
2/ Because your input data is apparently a byte stream, you should 
definitely *not* be using a "H264VideoStreamDiscreteFramer".  But now 
that I think about this some more: Because you are feeding your H.264 
data into a Transport Stream - via a 
"MPEG2TransportStreamFromESSource" - I don't think you even need a 
H.264 'framer' class at all (because you will not be packing NAL 
units directly into outgoing RTP packets).

So, right now, I think you can probably just feed your input device 
object directly into a "MPEG2TransportStreamFromESSource", without 
any intervening 'framer' object.  Furthermore, you might be able to 
use a "ByteStreamFileSource" to encapsulate your input device.

(But anyway, I've now spent far too much time dealing with your 
project.  Don't expect much more help in the future...)
-- 

Ross Finlayson
Live Networks, Inc.
http://www.live555.com/


More information about the live-devel mailing list