[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