[vlc-devel] RTSP client 'trick play' support. When will it ever work??
Ross Finlayson
finlayson at live555.com
Thu Jul 9 07:14:33 CEST 2009
> It is simple:
> in VLC we enable trickplay support for rtsp (pause/seek/fast
>forward/backward)
>if and only if the play time is known, that is if p_sys->ms->playEndTime()
>returns a non zero values. It's the only pseudo reliable way to detect VOD
>that I know of).
>
> Unfortunatly, using live555MediaServer and the live555 library (even
>with the ts index), it is not the case. It is non zero at first (I think
>after the initial setup), but is reset to zero latter.
Ahh... Here's what's actually happening (with VLC 1.0.0 and the
"LIVE555 Media Server") in this case:
1/ The RTSP server returns a SDP description (in response to VLC's
RTSP "DESCRIBE" command), which contains a "a=range:" attribute
*with* an end time - e.g.
v=0
o=- 1247115776948082 1 IN IP4 192.168.0.4
s=MPEG Transport Stream, streamed by the LIVE555 Media Server
i=osbournes.ts
t=0 0
a=tool:LIVE555 Streaming Media v2009.06.02
a=type:broadcast
a=control:*
a=range:npt=0-45.277
a=x-qt-text-nam:MPEG Transport Stream, streamed by the LIVE555 Media Server
a=x-qt-text-inf:osbournes.ts
m=video 0 RTP/AVP 33
c=IN IP4 0.0.0.0
a=control:track1
2/ VLC, in response, is sending a "PLAY" command *without* an end time:
PLAY rtsp://192.168.0.4:8554/osbournes.ts/ RTSP/1.0
CSeq: 12
Session: 1
Range: npt=0.000-
User-Agent: VLC media player (LIVE555 Streaming Media v2009.06.02)
3/ The RTSP server then sends back a "PLAY" response without an end time:
RTSP/1.0 200 OK
CSeq: 12
Date: Thu, Jul 09 2009 05:02:56 GMT
Range: npt=0.000-
Session: 1
RTP-Info:
url=rtsp://192.168.0.4:8554/osbournes.ts/track1;seq=4083;rtptime=4253405358
So, the real problem is that VLC - in step 2 - is sending a "PLAY"
command without an end time, despite the fact that the SDP
description (returned in response to "DESCRIBE") had a range end
time. "ms->playEndTime()" *should* be non-zero (because "*ms" was
created using the SDP description). Could you please check this??
(BTW, I believe that the server's action in step 3 is correct,
because it's just mirroring what the client asked. In any case,
that's not the problem - the problem is the lack of a range end time
in the client's "PLAY" request.)
--
Ross Finlayson
Live Networks, Inc.
http://www.live555.com/
More information about the vlc-devel
mailing list