Real Time Streaming Protocol (RTSP) is an application-level network communication system that transfers real-time data from multimedia to an endpoint device by communicating directly with the server streaming the data.
The protocol establishes and controls the media stream between client devices and servers by serving as a network remote control for time-synchronized streams of continuous media, such as audio and video. It does not stream the multimedia itself but communicates with the server that streams the multimedia data. When a user pauses a video he is streaming, for example, RTSP conveys the user's request to pause the video to the video streaming server.
How RTSP works
When a user or application attempts to stream video from a remote source, the client device sends an RTSP request to the server to determine the available options, such as pause, play and record. The server then returns a list of the types of requests it can accept through RTSP. Once the client knows how to make a request, it transmits a media description request to the streaming server, and the server responds with a description of the media. From there, the client sends a setup request, and the server responds with information about the transport mechanism. Once the setup process is complete, the client initiates the streaming process by telling the server to send the bitstream -- a binary sequence -- using the transport mechanism specified in the setup request.
Why it's important
RTSP started as a way to allow users to play audio and video straight from the internet, rather than having to download media files to their devices. The protocol has been applied for various uses, including internet camera sites, online education and internet radio.
RTSP uses the same concepts as basic HTTP, which makes it easily compatible with existing HTTP networks. The protocol also allows for a great deal of flexibility. Clients can request the features they want to use in an effort to find out if the media server supports them. Likewise, whoever owns the media can deliver media streams from multiple servers. The protocol is also designed to accommodate for future growth of the media so the media creator can amend the protocol moving forward if necessary.
RTSP has a number of key components, including:
- Options: An options request is sent to the server to determine the request types that the media server supports.
- Describe: A describe request includes a URL and describes the replay data.
- Setup: A setup request describes how to transport the bitstream.
- Teardown: A teardown request ends the streaming media session.
- Redirect: A redirect request tells the client to connect to a different media server.
- Play: The play request starts the specified media.
- Pause: The pause request freezes the specified media until the user presses play.
- Record: The record request starts a recording of the media.
- Set_Parameter: Set_Parameter can test whether the client or server is active. It also reveals the values of the presentation or stream guidelines that the Uniform Resource Identifier (URI), which contains the characters that identify the resource, provides.
History and development
RTSP is based on a 1997 proposal written by Anup Rao of Netscape Communications (later renamed New Aurora Corp. and sold to Facebook) and Rob Lanphier of Progressive Networks (now known as RealNetworks). The Multiparty Multimedia Session Control (MMUSIC) Working Group of the Internet Engineering Task Force (IETF) published it as Remote Function Call (RFC) 2326.
Rao, Lanphier and others proposed RTSP Version 2.0 as RFC 7826 in December 2016. This version introduced some new header values in an effort to shorten the roundtrip communications with the media server. Version 2.0 also addresses some of the issues associated with Network Address Translation (NAT) traversal.