[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