[Live-devel] Problems "seeking" in MPEG2 TS?
Brett Granger
bgranger at verivue.com
Thu Jan 24 09:01:06 PST 2008
Ross Finlayson wrote:
>> I'm using the live555MediaServer application to stream an mpeg2 ts to a
>> VLC client on linux. I used the MPEG2TransportStreamIndexer app to
>> create a .tsx file to go along with the .ts file.
>>
>> Playing the stream at a normal scale of 1.0 works just fine, as does
>> playing it in fast forward or fast reverse, using other settings in the
>> scale header.
>>
>> The problem comes when I attempt to "seek" in the stream to a specific
>> time, or attempt to use the --start-time option to VLC to start at a
>> point other than the beginning.
>
> Instead of usng VLC, could you try running "openRTSP"
> <http://www.live555.com/openRTSP/> with the "-s 15" option. Let us
> know if that generates a correct output Transport Stream file (i.e.,
> properly starting at the 15s mark).
My apologies... my report of yesterday was filed against release
2007.04.20 of liveMedia (I still had it on my drive as
live555-latest.tar.gz...). That release does have the timing problem I
described. However, when I download and use the 2008.01.18 release, the
packet delivery timing issue is now gone. "openRTSP -s 15" does indeed
create a proper ts starting at the 15s mark, and the live555MediaServer
does continue to deliver RTP packets at full rate after VLC requests the
second play to npt=15.
However, I have now exposed a second issue, which I believe is a bug in
VLC (unless it's an issue with the 2006.03.16 release of liveMedia
against which VLC is built): even though the live555MediaServer
continues to deliver RTP packets, VLC stops the presentation until clock
time reaches the point where the next frame would have been displayed if
no seek had been issued. VLC appears to buffer up all the packets that
arrive in the meantime, evidenced by the fact that when I press pause
and a PAUSE request is sent up, the live server immediately stops
sending packets, but VLC continues to play for an amount of time equal
to the distance of the seek before it pauses the presentation.
>
>
>> The VLC implementation of the
>> start-time option results in a PLAY request being sent with "Range:
>> npt=0.000-" followed almost immediately by a second PLAY request with
>> "Range: npt=<new-time>-".
>
> This seems like a bug in VLC. What version of VLC are you using?
> (Although we do not support VLC on this mailing list, I will forward
> this information to the VLC developers.)
vlc-0.8.6b (default that came from Ubuntu Feisty repos)... Whether a
bug or design choice I don't know, but it's obvious from the VLC code
why it happens. The "constructor" equivalent (Open) of their live555
access_demux automatically and always makes a rtsp->playMediaSession(ms)
call with the default startTime of 0, *then* the input thread checks for
a start-time and makes a SET_TIME call, which results in a second
rtsp->playMediaSession(ms, <start-time>) call after the stream has
already started being served. It likely wouldn't be a problem were it
not for the bug described above of not presenting the new frames until
the clock time catches up to the seek time.
Thanks for the support,
--Brett
> --
>
> Ross Finlayson
> Live Networks, Inc.
> http://www.live555.com/
> _______________________________________________
> live-devel mailing list
> live-devel at lists.live555.com
> http://lists.live555.com/mailman/listinfo/live-devel
More information about the live-devel
mailing list