[Live-devel] Problems "seeking" in MPEG2 TS?
Brett Granger
bgranger at verivue.com
Wed Jan 23 13:48:43 PST 2008
Hi all,
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. 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>-".
In the test I am performing, I set --start-time=15 on the VLC command
line. What happens is that although I see in the VLC output that the
reply to the PLAY request is nearly instantaneous, nothing happens for
about 15 seconds, and then the data starts to stream and play, although
VLC throws away the first number of frames because they arrived "too
late" (VLC prints "late picture skipped").
Putting VLC into debug mode shows that VLC does not print the "first
packet for pid" message until the full 15 seconds has elapsed, and then
the first picture is discarded for being slightly over 15 seconds late.
Wireshark shows that after the reply to the PLAY request, very few RTP
packets are sent and they are sent in a strange timing pattern: I get 2
RTP packets 3.4 seconds apart, then 2 RTP packets 2.1 seconds apart,
then 2 packets 1.3 seconds apart, etc... the time between packets
continues to decay until finally at around the full 15 seconds after the
PLAY request the stream seems to kick back in in full force. If I seek
further into the stream, then the delay goes up correspondingly (e.g. a
seek of 30 seconds doesn't start playing the new location in the stream
until 30 seconds later)
I would have expected the server to simply re-seek in the source stream
and then continue uninterrupted without the long delay... Is seeking of
mpeg2 ts streams expected to work with live555MediaServer, or have I run
into a known problem? I didn't see anything about this on the live.com
web site.
Thanks for any thoughts,
--Brett
More information about the live-devel
mailing list