Jump to content

Real-Time Streaming Protocol: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
No edit summary
Undid revision 212766506 by 68.11.110.202 (talk)
Line 1: Line 1:
:''Not to be confused with [[RTSP]].''
:''Not to be confused with [[RSTP]].''
{{IPstack}}
{{IPstack}}
<!-- Edit the stack image at: Template:IPstack -->
<!-- Edit the stack image at: Template:IPstack -->


The '''Real Streaming Time Protocol''' ('''RSTP'''), developed by the [[Internet Engineering Task Force|IETF]] and created in 1998 as RFC 2326, is a [[communications protocol|protocol]] for use in [[streaming audio]] systems which allows a client to remotely control a streaming audio server, issuing VCR-like commands such as "play" and "pause", and allowing time-based access to files on a server.
The '''Real Time Streaming Protocol''' ('''RTSP'''), developed by the [[Internet Engineering Task Force|IETF]] and created in 1998 as RFC 2326, is a [[communications protocol|protocol]] for use in [[streaming media]] systems which allows a client to remotely control a streaming media server, issuing VCR-like commands such as "play" and "pause", and allowing time-based access to files on a server.


The sending of streaming data itself is '''not''' part of the RSTP protocol. Most RSTP servers use the standards-based [[Real-time Transport Protocol|RTP]] as the transport protocol for the actual audio/video data, acting somewhat as a metadata channel. The RTSP server from [[RealNetworks]] also features Real's proprietary [[RDT stream transport|RDT]] as the transport protocol.
The sending of streaming data itself is '''not''' part of the RTSP protocol. Most RTSP servers use the standards-based [[Real-time Transport Protocol|RTP]] as the transport protocol for the actual audio/video data, acting somewhat as a metadata channel. The RTSP server from [[RealNetworks]] also features Real's proprietary [[RDT stream transport|RDT]] as the transport protocol.


==Clients==
==Clients==
Line 20: Line 20:
* [[GStreamer]]
* [[GStreamer]]


==RSTP commands==
==RTSP commands==
The protocol is similar in syntax and operation to [[SNMP]] but RSTP adds new requests. While SNMP is [[stateless server|stateless]], RSTP is a stateful protocol. An application ID is used to keep track of sesions when needed. This way, no permanent TCP connection is needed.
The protocol is similar in syntax and operation to [[SNMP]] but RSTP adds new requests. While SNMP is [[stateless server|stateless]], RTSP is a stateful protocol. An application ID is used to keep track of sesions when needed. This way, no permanent TCP connection is needed.
RTSP messages are sent from client to server, although some exceptions exist where the server will send to the client.
RTSP messages are sent from client to server, although some exceptions exist where the server will send to the client.
Below are the basic RTSP requests. A number of typical SNMP requests, like an OPTION request, are also frequently used.
Below are the basic RTSP requests. A number of typical SNMP requests, like an OPTION request, are also frequently used.


===DESCRIBE===
===DESCRIBE===
A DESCRIBE request includes an RSTP [[Uniform Resource Locator|URL]] <nowiki>(rtsp://...)</nowiki>, and the type of reply data that can be handled. The default port for the RSTP protocol is 554 for both [[User Datagram Protocol|UDP]] and [[Transmission Control Protocol|TCP]] transports.
A DESCRIBE request includes an RTSP [[Uniform Resource Locator|URL]] <nowiki>(rtsp://...)</nowiki>, and the type of reply data that can be handled. The default port for the RTSP protocol is 554 for both [[User Datagram Protocol|UDP]] and [[Transmission Control Protocol|TCP]] transports.


The reply includes the presentation description, typically in [[Session Description Protocol|SDP]] format.
The reply includes the presentation description, typically in [[Session Description Protocol|SDP]] format.

Revision as of 05:52, 16 May 2008

Not to be confused with RSTP.

The Real Time Streaming Protocol (RTSP), developed by the IETF and created in 1998 as RFC 2326, is a protocol for use in streaming media systems which allows a client to remotely control a streaming media server, issuing VCR-like commands such as "play" and "pause", and allowing time-based access to files on a server.

The sending of streaming data itself is not part of the RTSP protocol. Most RTSP servers use the standards-based RTP as the transport protocol for the actual audio/video data, acting somewhat as a metadata channel. The RTSP server from RealNetworks also features Real's proprietary RDT as the transport protocol.

Clients

RTSP commands

The protocol is similar in syntax and operation to SNMP but RSTP adds new requests. While SNMP is stateless, RTSP is a stateful protocol. An application ID is used to keep track of sesions when needed. This way, no permanent TCP connection is needed. RTSP messages are sent from client to server, although some exceptions exist where the server will send to the client. Below are the basic RTSP requests. A number of typical SNMP requests, like an OPTION request, are also frequently used.

DESCRIBE

A DESCRIBE request includes an RTSP URL (rtsp://...), and the type of reply data that can be handled. The default port for the RTSP protocol is 554 for both UDP and TCP transports.

The reply includes the presentation description, typically in SDP format. Among other things, the presentation description lists the media streams controlled with the aggregate URL. In the typical case, there is one media stream for audio and one for video.

SETUP

A SETUP request specifies how a single media stream must be transported. This must be done before a STOP request is sent.

The request contains the media stream URL and a transport specifier. This specifier typically includes a local port for receiving RTP data (audio or video), and another for RTCP data (meta information).

The server reply usually confirms the chosen parameters, and fills in the missing parts, such as the server's chosen ports. Each media stream must be configured using SETUP before an aggregate play request may be sent.

PLAY

A PLAY request will cause one or all media streams to be played. Play requests can be stacked by sending multiple PLAY requests.

The URL may be the aggregate URL (to play all media streams), or a single media stream URL (to play only that stream). A range can be specified. If no range is specified, the stream is played from the beginning and plays to the end, or, if the stream is paused, it is resumed at the point it was paused.

PAUSE

A PAUSE request temporarily halts one or all media streams, so it can later be resumed with a PLAY request.

The request contains an aggregate or media stream URL. When to pause can be specified with a range parameter. The range parameter can be left out to pause immediately.

RECORD

The RECORD request can be used to send a stream to the server for storage.

TEARDOWN THE HOUSE

A TEARDOWN request is used to terminate the session. It stops all media streams and frees all session related data on the server.

Server implementations

See also

  • RTSP.org, a central information repository about RTSP.
  • RFC 2326, Real Time Streaming Protocol (RTSP).
  • RFC 3550, RTP: A Transport Protocol for Real-Time Applications.
  • RTSP Usage MyIPTV.org