Subject: Media Initialization Info vs. Media Server Indirection Info (was: RTSP and SDP with container files)

From: Brad Hefta-Gaub <[email-masked]>
Date: Fri, 20 Jun 1997 23:34:23 -0700

Steve,

There are a couple of aspects of your last e-mail that are 
inconsistent with my understanding of RTSP.

You wrote:

>> In the case where separate media streams are being sent from 
>> different machines, won't you need multiple URLs in order to set 
>> up RTSP sessions with those separate machines?

The type of information you are describing above is more closely
related to the idea of media server indirection, and should come
from a web server not a media server. In general the idea of the 
result of a DESCRIBE should contain multiple URLs for streams 
served from separate servers is not supported by the intent of the 
DESCRIBE messages in RTSP.

Although, the RTSP spec is not explicit on this topic, it has always 
been my understanding that the DESCRIBE verb is intended to describe 
the media initialization information for the resource. In other words, 
the describe response contains the information required to initialize 
the client for playback of the media stream.

Note that this initialization information is not needed when the media
stream is of a standard RTP payload (because of course renderers for 
those payloads can be initialized by merely knowing the payload type).
It is, however, a requirement for most other data types, that initialization 
information be provided by the server before the client can begin 
rendering the media stream. The intent of the DESCRIBE message is to 
provide this initialization information to the client.

When you consider the bulk of static content available on the internet
today, and you recognize that most of that content (in the form of
QuickTime, AVI, VivoActive, V-Xtreme, VDO, ASF, and RealVideo movies) 
requires rather complex initialization information, you can quickly 
recognize that this initialization information should not be separated 
from the actual stream data, and it should instead be presented by the 
server directly from the file from which the media stream will be served.

It follows that if this initialization information describes media streams 
that will be server off of different servers, than the initialization 
information has been separated from the actual media stream data, and 
therefore runs the risk of becoming out of date, or incorrect. Obviously 
considering the complexity of this initialization information, this out-
of-sync problem is difficult to detect and even more difficult to remedy.

The meta-point I am touching on is that media initialization information
and media server indirection information are not the same thing, and
as such different states in the overall system for handling streaming
media handle the management of these very different concepts. The media
server indirection information should be handled by the component that
needs to contact the media server and control the session (SDR for example), 
where as the initialization information is needed by the actual renderer
of the data stream.

It may in fact be the case that the description technique that is 
most appropriate for these two different types of information is SDP.
However, we should not confuse the fact that SDP can describe both types 
of information with the idea that these types of information are equivalent.

-Brad

-----------------------------------------
Brad Hefta-Gaub 
Mad Scientist, Technical Lead - RealMedia
Progressive Networks
-----------------------------------------
phone: (206)674-2272
fax:   (206)674-2699
email: [email-masked]
web:   http://www.real.com
-----------------------------------------