The Real Time Streaming Protocol (RTSP) is a network control protocol designed for use in Multimedia Session Control Working Group (MMUSIC WG) of the Internet Engineering Task Force (IETF) and published as RFC in IETF RFC IETF RFC (), Real Time Streaming Protocol Transfer Protocol—HTTP/ IETF RFC IETF RFC (), A DNS RR for. [IETF RFC ]IETF RFC , RTP: A Transport Protocolfor Real-Time Applications. [IETF RFC ]IETF RFC , Real Time Streaming Protocol ( RTSP).
|Country:||Bosnia & Herzegovina|
|Published (Last):||22 April 2016|
|PDF File Size:||3.33 Mb|
|ePub File Size:||16.93 Mb|
|Price:||Free* [*Free Regsitration Required]|
Status codes that have the same meaning are not repeated here. See Table 1 for a listing of which status codes may be returned by which requests. If possible, the server should use the Range header to indicate what time period it may still be able to record. Since other processes on the server may be consuming storage space simultaneously, a client should take this only as an estimate.
Within RTSP, redirection may be used for load balancing or redirecting stream requests to a server topologically closer to the client. Mechanisms rff determine topological proximity are beyond the scope of this specification. The response MUST include an Allow header containing a list of valid methods for the requested resource. This status code is also rgc be used if a request attempts to use a method not indicated during SETUP, e. This may, for example, be the result of a resource reservation failure.
The method may be applied on a stream URL. The method may be applied on the presentation URL. This error will most likely be the result of a client attempt to place an invalid Destination parameter in the Transport field.
The Unsupported header should be returned stating the option for which there is no support. Table 3 summarizes the header fields used by RTSP. Type “g” designates general request headers to be found in both requests and responses, type “R” designates request headers, type “r” designates response headers, and type “e” designates entity header fields. Fields marked with “req. Note that not all fields marked “req. The last column lists the method for which this header field is meaningful; the designation “entity” refers to all methods that return a message body.
Header type support methods Accept R opt. Overview of RTSP header fields The “level” parameter for presentation descriptions is properly defined as part of the MIME type registration, not here.
RFC – Real-Time Streaming Protocol Version
Note that the language specified applies to the presentation description and any reason phrases, not the media content. The purpose of this field is to strictly inform the recipient of valid methods associated with the resource. An Allow header field must be present in a Method not allowed response.
The bandwidth available to the client may change during an RTSP session, e. The server iet free to use a blocksize which is lower than the one requested. The server MAY truncate this packet size to the closest multiple of the minimum, media-specific block size, or override it with the media-specific size if necessary.
The block size MUST be a positive decimal number, measured in octets. The server only returns an error if the value is syntactically invalid. It is not possible to specify rrc cache- directive for a specific cache. This allows an origin server rcc prevent caching even by rfd that have been configured ieff return stale responses to client requests. Indicates that the media stream is cacheable by any cache. A private non- shared cache may cache the media stream. An intermediate cache proxy may find it useful to convert the media type of a certain stream.
A proxy might, for example, convert between video formats to save cache space or to reduce the amount of traffic on a slow link.
Serious operational problems may occur, however, when these transformations have iett applied to streams intended for certain kinds of applications. For example, applications for medical imaging, scientific data analysis and those using end-to-end authentication all depend on receiving a stream that is bit-for-bit identical to the original entity-body.
Therefore, if a response includes the no-transform directive, an intermediate cache or proxy MUST NOT change the encoding of the stream. In some cases, such as times of extremely poor network connectivity, a client may want a cache ietg return only those media streams that it currently has stored, and not to receive these from the origin server.
To do this, the client may include the only-if-cached directive in a request. If it receives this directive, a cache SHOULD either respond using a cached media stream that is consistent with the other constraints of the request, or respond with a Gateway Timeout status.
However, if a group of caches is being operated as a unified system with good internal connectivity, such a request MAY be forwarded within that group of caches.
Indicates that the client is willing to accept a media stream that has exceeded its expiration time. If max-stale is assigned a value, then the client is willing to accept a response that has exceeded its expiration time by no more than the specified number of seconds. If no value is assigned to max-stale, then the client is willing to accept a stale response of any age.
Indicates that the client is willing to accept a media stream whose freshness lifetime is no less than its current age plus the specified time in seconds.
That is, the client wants a response ieetf will still be fresh for at least the specified number of seconds. When the must-revalidate directive is present in a SETUP response received by a cache, that cache MUST NOT use the entry after it becomes rfd to respond to a subsequent request without first revalidating it with the origin server.
That is, the cache must do an end-to-end revalidation every time, if, based solely on the origin server’s Expires, the cached response is stale. The conference-id must not be changed for the same RTSP session. If it is missing, a default value of zero is assumed. It is interpreted according to iet Note that the content types suitable for RTSP are likely to be restricted in practice to presentation descriptions and parameter-value types.
This field MUST be present in all requests and responses. For every RTSP request containing the given sequence number, there will be a corresponding response having the same number.
Any retransmitted request must contain the same sequence number as the original i. The interpretation depends on the method: The Expires header indicates a date and time after which the description should be considered stale.
A stale cache entry may not normally be returned by a cache either a proxy cache or an user agent cache unless it is first validated with the origin server or with an intermediate cache that has a fresh copy of the entity. See section 13 for further discussion of the expiration model. The presence of an Expires field does not imply that the original resource will change or cease to exist at, before, or after that time.
Thu, 01 Dec To mark a response as “already expired,” an origin server should use an Expires date that is equal to the Date header value. To mark a response as “never expires,” an origin server should use an Expires date approximately one year from the time the response is sent. The presence of an Expires header field with a date value of some time in the future on a media stream that otherwise would by default be non-cacheable indicates that the media stream is cacheable, unless indicated otherwise by a Cache-Control header field Section It should be silently ignored if sent.
The identifier is an opaque identifier, and thus is not specific to any particular session description language. Instead, a not modified response will be returned without any message-body. Sat, 29 Oct Any Proxy-Require header features that are not supported by the proxy MUST be negatively acknowledged by the proxy to the client if not supported.
The range can be specified in a number of units.
This specification defines the smpte Section 3. The header may also contain a time parameter in UTC, specifying the time at which the operation is to be made effective. The Range response header indicates what range of time is actually ffc played or recorded. If the Range header is given in a time format that is not understood, the recipient should return ” Not Implemented”.
Ranges are half-open intervals, including the lower point, but excluding the upper point.
In other words, a range of a-b starts exactly at time a, but stops just before b. Only the start time of a media unit such as a video or audio frame is relevant. As an example, assume that video frames are generated every 40 ms.
A range of It allows clients to select an excerpt from the media object, and to play from a given point to the end as well as from the current location to a given point. The start of playback can be scheduled for any time in the future, although a server may refuse to keep server resources for extended idle periods. This is to make sure that the client-server interaction will proceed without delay when all options are understood by both sides, and only slow down if options are not understood as in the case above.
For a well-matched client-server pair, the interaction proceeds quickly, saving a round-trip often required by negotiation mechanisms. In addition, it also removes state ambiguity when the client requires features that the server does not understand.
The relationship between “funky-feature” and Funky-Parameter is not communicated via the RTSP exchange, since that relationship is an immutable property of “funky-feature” and thus should not be transmitted with every exchange. If a particular extension requires that intermediate devices support it, the extension should be tagged in the Proxy-Require field instead see Section Indicates the sequence number of the first packet of the stream.
This allows clients to gracefully deal with packets when seeking.
Real Time Streaming Protocol
The client uses this value to iwtf packets that originated before the seek from packets that originated after the seek. Indicates the RTP timestamp corresponding to the time value in the Range response header. For aggregate control, a particular stream may not actually generate a packet for the Range time value returned or implied. Thus, there is no guarantee that the packet with the sequence number indicated by seq actually has the timestamp indicated by rtptime. Furthermore, in order to ensure that this information is available at the necessary time immediately at startup or after a seekand that it is delivered reliably, this mapping is placed in the RTSP control channel.
If not 1, the value corresponds to the rate with respect to normal viewing rate.
RFC – part 3 of 4
For example, a ratio of 2 indicates twice the normal viewing rate “fast forward” and a ratio of 0. In other words, a ratio of 2 has normal play time increase at twice the wallclock rate.
For every second of elapsed wallclock time, 2 seconds of content will be delivered. A negative value indicates reverse direction.