> > I removed the MPEG2TransportStreamFramer and was getting the same results 
> > as with the MPEG2TransportStreamFramer; a .h264 file with about 100kb of 
> > data.
>
> I assume that this is bad - i.e., you expected to see more data than this.

Correct, its a live feed so I epxect the video data to be consistently written 
to the file.

> If you haven’t done so already, then - as a sanity check - try doing
>          MPEGTS Multicast Stream -----> BasicUDPSource ----> FileSink
> i.e., without any demultiplexing of the Transport Stream, to see if you then 
> get all of the data that you expect.

I tried this and everything worked as expected - I was able to play the 
resulting TS file.

> > I added in the MPEG2TransportStreamAccumulator with the default max packet 
> > size of 1456, however that seemed to produce the same as above; a .h264 
> > file with about 100kb of data.
>
> Try again with a larger “maxPacketSize” parameter in the call to 
> "MPEG2TransportStreamAccumulator::createNew()” - e.g., 10000.

Tried it with a larger packet size but it was still producing the same output.


> > I built liveMedia with the DEBUG_CONTENTS flag to see if anything stood out 
> > while parsing the Transport Stream and it looks like it eventually just 
> > stops parsing and the BasicUDPSource receive buffer gets filled up causing 
> > the socket read to throw an error. Maybe the buffer filled up first causing 
> > the BasicUDPSource to not notify its downstream client?
>
> LIVE555 data chains work using the ‘pull’ model: The downstream object that 
> requests data from the upstream object.  So, in this case, the 
> “MPEG2TransportStreamDemux” is (when it needs data) requesting data from the 
> “MPEG2TransportStreamAccumulator”, which in turn is requesting data from the 
> “BasicUDPSource”.
>
> The reason why I suggested adding in a “MPEG2TransportStreamAccumulator” is 
> that I suspected that the problem might be that - in this case - the 
> “MPEG2TransportStreamDemux” is not being fed by a byte stream.  But if that’s 
> not working for you, then I’m not sure what to suggest, unfortunately...


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.

Any ideas?


Thank you,

Josh

_______________________________________________
live-devel mailing list
live-devel@lists.live555.com
http://lists.live555.com/mailman/listinfo/live-devel

Reply via email to