[Live-devel] Urgent help needed!

Ross Finlayson finlayson at live555.com
Fri Feb 2 22:34:13 PST 2007


>As your application does not need timing data to work properly (VLC
>makes sure the data leaves the source at the right time), you could
>just remove the MPEG2TransprtStreamFramer from the chain in your
>RTSPserver. That will make the data retransmitted as soon as it
>arrives.
>
>You find this in MPEG2TransportFileServerMediaSubsession.cpp
>
>   // Create a framer for the Transport Stream:
>   return MPEG2TransportStreamFramer::createNew(envir(), fileSource);
>
>instead, do this:
>
>   // Create a framer for the Transport Stream:
>   return fileSource;
>
>If it is the proper way of doing it, I can't say, but it works. What
>happes is that the fDurationInMicroseconds is not set, causing the
>server to transmit as soon as it can.

Unfortunately this will also prevent "fPresentationTime" from being 
set, which will in turn lead to incorrect RTP timestamps.  For MPEG 
Transport Streams, however, that may not be a huge problem, because 
the Transport Stream data itself contains the timing (PCR) 
information that receivers use to properly play the stream.  However, 
it will cause RTCP statistics (jitter, etc.) to not get reported 
correctly.

The real puzzle here, though, is: Why is "MPEG2TransportStreamFramer" 
apparently generating incorrect average durations for Victor Lee's 
Transport Streams?  "MPEG2TransportStreamFramer" uses the PCR 
timestamps in the source Transport Stream data to generate duration 
estimates, thereby pacing the streaming of the outgoing data.  If the 
stream is getting sent too slowly (on average), then this suggests 
that the PCR timestamps are incorrect.  But if that's the case, then 
how is a media player able to play the audio/video at the correct 
pace when it plays from the file stored locally?

It would be helpful if Victor Lee would put one of his Transport 
Stream files on a web site, and post the URL, so we can download the 
file and check it for ourselves.

(BTW, I think that Victor Lee's configuration
	MPEG TS file -> VLC -> RTP multicast -> RTP multicast 
receiver -> testOnDemandRTSPServer (modified)
is ridiculous.  It would be far simpler for him to just use the 
"LIVE555 Media Server" <http://www.live555.com/mediaServer/> to 
stream his MPEG TS files.  That's all he'd need.)

-- 

Ross Finlayson
Live Networks, Inc.
http://www.live555.com/


More information about the live-devel mailing list