[Live-devel] mpeg2transportstreamfromessource
Ross Finlayson
finlayson at live555.com
Wed Dec 14 10:35:08 PST 2011
> OK. I may be set for version 4 L
WTF is that supposed to mean? If you want people to help you, you're going to have to learn to write coherently.
> My current arch has “subscribers” some subscribers restream, some write to disk, this one is gonna HTTP live stream and the next will be RTMP. I would rather only do the descriteFraming once.
Ditto.
> But if I do pas the data in full frames, will it still work?
Yes, probably, provided that the receivers can decode this OK. (A Transport Stream is just that - a container for 'transporting' data, in any form.)
However, you will need to prepend each H.264 frame with 0x00 0x00 0x00 0x01 (if those 4 bytes are not already there).
> I may have no choice, I do need to know when each GOP starts. I was hoping that the beginning of payload plus the first 4 bytes of payload could give me that.
> Looking at the bytes I do see 00 00 01 EO in a good exported .ts stream and I do not see that in the bad one. Almost like the H264 stream is inside a MPEG4 stream???
Perhaps you're not looking at a proper H.264-in-Transport-Stream file? If you want to see a good one, look at
http://www.live555.com/liveMedia/public/h264-in-mp2t/
(BTW, the file there ("bipbop-gear1-all.ts"), along with its index file, can also be used to test HTTP LIve Streaming.)
> How about this
>
> ESSource->MPEG2TransportStreamMultiplexor->MPEG2TransportStreamFromPESsource->mySink
>
> Instead of
>
> ESSource->MPEG2TransportStreamFromESsource->mySink
>
> Is that what is needed?
No! Note that "MPEG2TransportStreamFromPESSource" is a subclass of "MPEG2TransportStreamMultiplexor".
I've already told you what you need to do: Feed your encoded H.264 data directly to a "MPEG2TransportStreamFromESSource", by calling "MPEG2TransportStreamFromESSource::addNewVideoSource()", with "mpegVersion" == 5.
(Also, make sure that your H.264 data source generates proper presentation times for each generated frame - by setting "fPresentationTime" properly.)
But, as I noted above, you may need to prepend each H.264 frame with 0x00 0x00 0x00 0x01 before feeding it to the "MPEG2TransportStreamFromESSource"
(Sigh... You're much too 'high maintenance' for my taste :-)
Ross Finlayson
Live Networks, Inc.
http://www.live555.com/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.live555.com/pipermail/live-devel/attachments/20111214/0d4d03d6/attachment.html>
More information about the live-devel
mailing list