[Live-devel] RTP/raw UDP stream joining after stream starts

Ross Finlayson finlayson at live555.com
Mon Apr 30 15:41:35 PDT 2012


> Ross, would you please look at this MP2TS file for us?
> 
> 	http://etr-usa.com/live555/novideo.ts
> 
> It always streams successfully via RTSP over raw UDP from mediaServer, but shows no video when streamed from testMPEG2TransportStreamer if the sender starts before the receiver.
> 
> This doesn't happen with any other file we have tried so far.  I'm guessing the problem is that some necessary bit of synchronization data appears only at the beginning of the file, so that if the client isn't receiving when it goes by, it never figures out how to decode the video properly.

Yes, that appears to be the case.  Because (according to VLC) the video is MPEG-1 or 2 (packed, along with MPEG audio, into a Transport Stream), I suspect that the video contains a MPEG "Video Sequence Header" only at the beginning, so that if a receiver misses getting this, then the MPEG decoder won't be able to render the rest of the data.

BTW, you can get the same effect by running
	tail -c +188001 novideo.ts > novideo-tail.ts
i.e., to chop off the first 1000 188-byte Transport Packets.  If you do this, you'll find that VLC can't play video from "novideo-tail.ts" either.

Because the data is Transport Stream data - which we don't demultiplex before streaming - there's nothing we can do in our code to overcome this.  You would need to demultiplex the Transport Stream and then reprocess the MPEG video to include "Video Sequence Headers" periodically, rather than just at the start of the file.


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/20120430/b863306e/attachment.html>


More information about the live-devel mailing list