[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