Real Time Streaming Protocol

来源:百度文库 编辑:神马文学网 时间:2024/04/29 10:58:37
From Wikipedia, the free encyclopedia
(Redirected from Real-time Streaming Protocol)
Not to be confused with Rapid Spanning Tree Protocol.

This article includes a list of references, but its sources remain unclear because it has insufficient inline citations.
Please help to improve this article by introducing more precise citations where appropriate. (July 2009)
The Real Time Streaming Protocol (RTSP) is a network control protocol designed for use in entertainment and communications systems to control streaming media servers. The protocol is used for establishing and controlling media sessions between end points. Clients of media servers issue VCR-like commands, such as play and pause, to facilitate real-time control of playback of media files from the server.
The transmission of streaming data itself is not a task of the RTSP protocol. Most RTSP servers use the Real-time Transport Protocol (RTP) for media stream delivery, however some vendors implement proprietary transport protocols. The RTSP server from RealNetworks, for example, also features RealNetworks' proprietary RDT stream transport.
RTSP was developed by the Multiparty Multimedia Session Control Working Group (MMUSIC WG) of the Internet Engineering Task Force (IETF) and published as RFC 2326 in 1998.[1]
Internet Protocol Suite
Application Layer
BGP · DHCP · DNS · FTP ·HTTP · IMAP · IRC · LDAP ·MGCP · NNTP · NTP · POP ·RIP · RPC · RTP · SIP ·SMTP · SNMP · SSH · Telnet ·TLS/SSL · XMPP ·
(more)
Transport Layer
TCP · UDP · DCCP · SCTP ·RSVP · ECN ·
(more)
Internet Layer
IP (IPv4, IPv6) · ICMP ·ICMPv6 · IGMP · IPsec ·
(more)
Link Layer
ARP/InARP · NDP · OSPF ·Tunnels (L2TP) · PPP · Media Access Control (Ethernet, DSL,ISDN, FDDI) · (more)
This box: view • talk • edit
Contents
[hide]
1 Protocol directives
2 Server implementations
3 Client applications
4 References
5 External links
[edit]Protocol directives
While similar in some ways to HTTP, RTSP defines control sequences useful in controlling multimedia playback. While HTTP is stateless, RTSP is stateful; an identifier is used when needed to track concurrent sessions. Like HTTP, RTSP uses TCP to maintain an end-to-end connection and, while most RTSP control messages are sent by the client to the server, some commands travel in the other direction (i.e. from server to client).
Presented here are the basic RTSP requests. Some typical HTTP requests, like the OPTIONS request, are also available. The default transport layer port number is 554.
OPTIONS
An OPTIONS request returns the request types the server will accept.
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. This reply includes the presentation description, typically in Session Description Protocol (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 each for audio and video.
SETUP
A SETUP request specifies how a single media stream must be transported. This must be done before a PLAY 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
A TEARDOWN request is used to terminate the session. It stops all media streams and frees all session related data on the server.
[edit]Server implementations
QuickTime Streaming Server: Apple's closed-source streaming server that ships with Mac OS X Server.
Darwin Streaming Server: Open-sourced version of QuickTime Streaming Server maintained by Apple.
pvServer: Formerly called PacketVideo Streaming Server, this is Alcatel-Lucent's streaming server product.
Helix Universal Server: RealNetworks commercial streaming server for RTSP, RTMP, iPhone OS, Silverlight and HTTP streaming media clients
Helix DNA Server: RealNetworks' streaming server. Comes in both open-source and proprietary flavors.
Live555: Open source C++ server and client libraries used in well known clients like VLC and mplayer.
Feng: Lean and mean streaming server with focus with rfc compliance.
VideoLAN: Open source media player and streaming server.
Windows Media Services: Microsoft's streaming server included with Windows Server.
VX30: Streaming video server and embedded JAVA client from Maui X-Stream.
Xenon Streaming Server: Mobile streaming server from Vidiator Technology (US) Inc.
RtpRtspStack: Streaming server which is designed for low footprint and high performance applications.
Gstreamer based RTSP Server and client.
FFmpeg: includes ffserver a GPL or LGPL RTSP streaming server.
Erlyvideo[2] has RTSP client and can restream video to other protocols.
ViaMotion : integrated RTSP server for Video On Demand by Anevia
[edit]Client applications
cURL (beginning with version 7.20.0—9 February 2010[3])
FFmpeg (undocumented[4][5][6][7])Live playback: ffplay rtsp://some-server.youtube.com/some-media.3gp
Saving live broadcast to a file: ffmpeg -i rtsp://some-server.youtube.com/some-media.3gp -acodec copy -vcodec copy filename.3gp
GStreamer
Media Player Classic
MPEG4IP
MPlayer
MythTV via Freebox
openRTSP (an open-source, cross-platform, rudimentary command-line RTSP-fetching application—no Windows binaries ready for download)
QuickTime
RealPlayer
Skype
Spotify
VLC media player
Winamp
Windows Media Player
Xine
[edit]References
^ RFC 2326, Real Time Streaming Protocol (RTSP), IETF, 1998
^ erlyvideo website
^ http://curl.haxx.se/changes.html
^ No mention of RTSP upon executing the command ffmpeg -h. Executing ffmpeg -format yields a multi-page list of items with one inconspicuous mention: "RTSP input format". Section "Supported file protocols" of this help screen only lists "file: http: pipe: rtp: tcp: udp:" and skips over "rtsp:". (FFmpeg release used: "FFmpeg version SVN-r11143", "built on Dec 3 2007 17:42:57", a statically linked Windows executable.)
^ No RTSP usage documented on FFmpeg.org website as of 30 May 2010: Google search page 1, page 2 (147 results total)
^ No mention of RTSP in FFmpeg documentation as of 30 May 2010.
^ An indirect hint in FFplay documentation (as of 30 May 2010) that FFplay understands RTSP—found in one obscure mention: "`-rtp_tcp' Force RTP/TCP protocol usage instead of RTP/UDP. It is only meaningful if you are streaming with the RTSP protocol."
[edit]External links
pjsip.org, an open source stack for VoIP and RTP
RTP Mobile component, an open source RTP Wrapper in .NET Compact framework.
RTSP.org, a central information repository about RTSP.
RFC 3550, RTP: A Transport Protocol for Real-Time Applications.
Tunneling RTSP and RTP Over HTTP A standard solution to help RTSP work through firewalls and web proxies
Categories: Application layer protocols