Re: Format of RTSP URLs

robla wrote:
> C->S  DESCRIBE rtsp://foo/db/moviebase?movie=twister RTSP/1.0 1
> 
> S->C  RTSP/1.0 200 1 OK
>       Content-length: 178
>       Content-type: application/sdp
> 
>       s= sample rtsp presentation
>       r = rtsp://foo/db/moviebase?movie=twister   /* aggregate URL*/
>       m= audio 0 RTP/AVP 0
>       r = :track=audio1                           /* URL to control audio*/
>       m=video 0 RTP?AVP 26
>       r = :track=video1                           /* URL to control video*/

I don't think this example would be a common one as surely, in practice, 
HTTP will be used to retrieve the SDP info rather than RTSP.  There are a 
load of advantages to using HTTP (eg access to the SDP data by existing 
robots, use of streaming control protocols other than rtsp, etc) and there 
would be even more advantages if later there is an XML DTD corresponding 
to SDP (eg human readability of the metadata).

I realise that the idea is to allow applications to use either protocol to 
do the bootstrapping but I still can't really see the point in using RTSP 
for this. I guess the advantage of using RTSP for the SDP data is that you 
can run just the RTSP server on the media server without the need for a 
separate HTTP server and without the need for the RTSP server to support 
HTTP but I would have thought that you'd usually want the SDP info to come 
from a different box anyhow which is running the metadata database and can 
run just an HTTP server.  I would have thought the use of RTSP for getting 
discrete data would be the exception rather than the rule and the 
incorporation of HTTP support in any RTSP servers that want to support 
this would be a better approach.

If I'm right, then this will have an impact on relative URLs specified in 
SDP (or some XML version of it) as they would be HTTP URLs not RTSP ones 
unless some form of base tag is used in the SDP data. Either way I agree 
with Roy about the specification of tracks using the path itself (using 
"/").  So, regardless of whether we're using container file formats or 
separate tracks in separate files, the respective URLs could be:

http://foo/db/moviebase/twister          (for the bootstrapping info)
rtsp://foo/db/moviebase/twister/video1
rtsp://foo/db/moviebase/twister/audio1

and we could have the following (using an imaginary XML DTD for the 
bootstrapping info):

C->S  GET http://foo/db/moviebase/twister HTTP/1.1

(if this was from a query you would have had a redirect stage before this 
as suggested by Roy)

S->C  HTTP/1.1 200 1 OK
      Content-length: 178
      Content-type: text/foo

      <?XML version="1.0"?>
      <!DOCTYPE foo SYSTEM "http://foo/foo.dtd">
      <session base="rtsp://foo/db/moviebase/twister"/>
      <summary>Sample RTSP Presentation</summary>
      <media type="audio" location="audio1" ... />
      <media type="video" location="video1" ... />
      </session>


Bill

Received on Wednesday, 16 July 1997 23:10:00 UTC