[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