> I've done some more testing and have seen some promising results: > > I used the suggested pipline: > MPEGTS Multicast Stream -----> BasicUDPSource ----> FileSink > but I have it write to stdout instead of a file. I then pipe this into > testMPEG2TransportSplitter like: > > basicUDPtostdout | testMPEG2TransportSplitter > > This works just as I would expect it to, dumping out the live h264 video > stream into its own file. So now the question is why doesn't using the > BasicUDPSource as a FramedSource work with the MPEG2TransportStreamDemux. The > only thing I can think of is that it has to do with the buffer of the UDP > source getting filled up.
I figured out the issue with using the UDP as a source for the MPEG2TransportStreamDemux: It seems to be an issue with the StreamParser, when it is ensuring valid bytes the number of bytes that are needed is only 1 but the UDP source is reading ~940 bytes. So, the if statement: fCurParserIndex + numBytesNeeded > BANK_SIZE never becomes true, thus never switching the parser banks. I fixed this issue by subclassing the BasicUDPSource and overriding the maxFrameSize function to something > ~940. With this now working I now need to figure out how to hookup the MPEG2TransportStreamDemux to the H264VideoRTPSink. I believe it should go something like this: MPEGTS Multicast Stream -----> BasicUDPSource -----> MPEG2TransportStreamDemux -----> H264VideoRTPSink However, I understand I don't have the ability to specify the sink for the various demuxed elementry streams. Is there any way this could be added or subclassed to allow such a thing? Thank you, Josh
_______________________________________________ live-devel mailing list live-devel@lists.live555.com http://lists.live555.com/mailman/listinfo/live-devel