RTSP                                                 1




  Internet Media-on-Demand: The
   Real-Time Streaming Protocol...
RTSP                                                                 2




Overview

 • Internet media-on-demand
       – ...
RTSP                                                                          3




Internet multimedia (on demand)

VOD t...
RTSP                                                                  4




Internet multimedia

Same infrastructure, diff...
RTSP                                                5




Applications

 • lectures, seminars
 • on-demand instruction
 • ...
RTSP                                                                    6




Internet radio

 • 12,140 U.S. AM and FM rad...
RTSP                                                                     7




Problems

bandwidth: 64–128 kb/s for talkin...
RTSP                                                                     8




Internet streaming media requirements

 • r...
RTSP                                                9




Streaming media: download

                               web se...
RTSP                                                           10




Streaming media: meta files

                        ...
RTSP                                                                         11




Streaming media: RTSP

               ...
RTSP                                                                  12




Streaming multimedia


                      ...
RTSP                                                            13




Internet real-time & multimedia protocols

resource...
RTSP                                                                         14




RTSP features

 • “rough” synchronizat...
RTSP                                                                     15




RTSP protocol design

 • similar design as...
RTSP                                                                       16




RTSP sessions

TCP connection = RTSP ses...
RTSP                                                               17




RTSP and HTTP: similarities

 • protocol format:...
RTSP                                           18




RTSP protocol design

RTSP is not HTTP «
 • server state needed
 • d...
RTSP                                                                      19




RTSP: HTTP inheritance

 • simple servers...
RTSP                                                              20




RTSP operation

                         HTTP GET...
RTSP                                                                      21




RTSP functionality

retrieval: media-on-d...
RTSP                                                                    22




Control

Aggregate control: one command « c...
RTSP                                                             23




RTSP URLs

whole presentation:
rtsp://media.exampl...
RTSP                                                                        24




RTSP: Web integration

1. web page with...
RTSP                                                               25




RTSP methods


OPTIONS         get available met...
RTSP                                     26




commands may be pipelined




                            December 4, 2001
RTSP                                                                          27




RTSP time

  • normal play time (NPT)...
RTSP                                                              28



Request headers

Accept             media descript...
RTSP                                                      29




Response headers

Location             redirection
Proxy-...
RTSP                                                             30




RTSP reliability

 • if TCP, send request once
 • ...
RTSP                                                                           31




RTSP descriptions

contains streams ...
RTSP                                                            32




Unicast session: get description

C->W: GET /twiste...
RTSP                                                           33




Unicast session: open streams

C->A: SETUP rtsp://au...
RTSP                                                34




V->C: RTSP/1.0 200 OK
      CSeq: 1
      Session: 23456789
   ...
RTSP                                                              35




Unicast session: play

C->V: PLAY rtsp://video.co...
RTSP                                                           36




A->C: RTSP/1.0 200 OK
      CSeq: 2
      Session: 1...
RTSP                                                           37




RTSP session teardown

C->A: TEARDOWN rtsp://audio.c...
RTSP                                                        38




PLAY and PAUSE

 • several ranges (≥ 1 PLAY) are queued...
RTSP                                                                 39




REDIRECT

 • server tells client: go elsewhere...
RTSP                                                                     40




RECORD

 • may use URL or create own « ret...
RTSP                                                                      41




Interaction with RTP

  • PLAY response a...
RTSP                                                                     42




Near video-on-demand

 • in wide area, vid...
RTSP                                                           43




RTSP caching

 • proxy caching of content, not RTSP ...
RTSP                                                                  44




       no-cache          don’t cache
       p...
RTSP                                                             45




RTSP extensions

 • add headers, methods
 • Requir...
RTSP                                                                                           46




SIP and RTSP integra...
RTSP                                                               47




 • H.323 needs introductions « conference identi...
RTSP                                                                    48




RTSP status

 • IETF MMUSIC working group «...
RTSP                                                                   49




RTSP implementation

Example: Columbia rtspd...
RTSP                                                                    50




Summary

 • Internet multimedia-on-demand «...
Upcoming SlideShare
Loading in...5
×

Internet Media-on-Demand: The Real-Time Streaming Protocol

1,566

Published on

0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,566
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
142
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

Internet Media-on-Demand: The Real-Time Streaming Protocol

  1. 1. RTSP 1 Internet Media-on-Demand: The Real-Time Streaming Protocol Henning Schulzrinne Dept. of Computer Science Columbia University New York, New York schulzrinne@cs.columbia.edu December 4, 2001
  2. 2. RTSP 2 Overview • Internet media-on-demand – why bother – I already have a TV and VCR – Internet integrated-services architecture – problems • real-time stream protocol (RTSP) « “Internet VCR” • session description December 4, 2001
  3. 3. RTSP 3 Internet multimedia (on demand) VOD trials not exactly successful. . . Internet MM different: • just one service among many « reverse economics from VOD • re-use existing infrastructure • flexible media: modem, wireless, cable, LAN, . . . • quality scales from stamp-size flipbook to HDTV – adaptive • side information easy (closed captioning) • easy integration with WWW • easy integration with recording – click-on-page-to-record • security through encryption • cheap authoring, service « lots of content December 4, 2001
  4. 4. RTSP 4 Internet multimedia Same infrastructure, different delivery modes: on demand: unicast near on-demand: staggered transmission on multicast « VCR control multicast: niche markets to audience of millions December 4, 2001
  5. 5. RTSP 5 Applications • lectures, seminars • on-demand instruction • entertainment: specialty content • remote digital editing • voice mail December 4, 2001
  6. 6. RTSP 6 Internet radio • 12,140 U.S. AM and FM radio stations, only 100 in Germany • FM quality (56 kb/s) « backbone capacity of 680 Mb/s • New York City: 45 FM stations « 2.5 Mb/s • DirecTV: 31 audio channels « 1.7 Mb/s • easy time-shifting, content-labeling « near media-on-demand December 4, 2001
  7. 7. RTSP 7 Problems bandwidth: 64–128 kb/s for talking heads, 1.5 Mb/s for movies quality: packet loss, predictability reliability: makes CATV look good. . . billing infrastructure: pay-per-view? cheap receivers: shouldn’t cost more than set-top box December 4, 2001
  8. 8. RTSP 8 Internet streaming media requirements • retrieval of media from media server – video-on-demand « unicast – near video-on-demand « time-staggered multicast • live events (Mbone-style) « multicast • remote digital editing « queued play lists, recording • remote device control • integration with conferences • transport, content, description-neutral Have some proprietary protocols, need interoperability December 4, 2001
  9. 9. RTSP 9 Streaming media: download web server web HTTP browser file media player December 4, 2001
  10. 10. RTSP 10 Streaming media: meta files web server web HTTP browser meta file meta file media HTTP player audio/video content December 4, 2001
  11. 11. RTSP 11 Streaming media: RTSP web server web HTTP browser meta file meta rtsp://raserver.mpr.org/marketplace/current_mpp.rm file RTSP media meta file, streaming commands player RTP audio/video content December 4, 2001
  12. 12. RTSP 12 Streaming multimedia IP multicast RTP HTTP streaming RSVP RTSP audio/video SDP SIP December 4, 2001
  13. 13. RTSP 13 Internet real-time & multimedia protocols resource reservation: RSVP, YESSIR, . . . media transport: RTP stream control: RTSP stream description: SDP, SMIL (W3C), RTSL, . . . Related work: DSM-CC, but much simpler December 4, 2001
  14. 14. RTSP 14 RTSP features • “rough” synchronization (fine-grained « RTP sender reports) • virtual presentations = synchronized playback from several servers « command timing • load balancing using redirection at connect, during stream • supports any session description • device control « camera pan, zoom, tilt • caching: similar to HTTP, except “cut-through” December 4, 2001
  15. 15. RTSP 15 RTSP protocol design • similar design as HTTP (TCP + UDP, HTTP, . . . ) • HTTP = “the Internet RPC protocol” • supports any session description • control “tracks” (audio, video) and “presentation” (movie) • remote digital editing December 4, 2001
  16. 16. RTSP 16 RTSP sessions TCP connection = RTSP session « session maintained by identifier • one TCP connection per session « firewalls, bidirectional • one TCP connection per ≥ 1 command « no server state • UDP – multicast, low latency – « “passing around the remote” – « limit server connection state (live events!) December 4, 2001
  17. 17. RTSP 17 RTSP and HTTP: similarities • protocol format: text, MIME-headers • request/response = request line + headers + body • status codes • security mechanisms • URL format • content negotiation December 4, 2001
  18. 18. RTSP 18 RTSP protocol design RTSP is not HTTP « • server state needed • different methods • server −→ client • data carried out-of-band • avoid HTTP mistakes: – relative request paths – no extension mechanism – 8859.1 coding December 4, 2001
  19. 19. RTSP 19 RTSP: HTTP inheritance • simple servers are easy, Apache for industrial-strength • re-use HTTP extensions: – authentication (basic, digest, . . . ) – PICS = content labeling – JEPI = electronic payments – PEP = protocol extensions • SSL for security December 4, 2001
  20. 20. RTSP 20 RTSP operation HTTP GET web server session description SETUP PLAY media client server RTP audio RTP video RTCP PAUSE CLOSE December 4, 2001
  21. 21. RTSP 21 RTSP functionality retrieval: media-on-demand for continuous media • first, get presentation description • unicast • multicast, client chooses address • multicast, server chooses address (NVOD) • independent of stream file format « subsets or combinations of files conference participant: “invite” to conference, controlled by several people live streaming: ability to add media one session = single time axis December 4, 2001
  22. 22. RTSP 22 Control Aggregate control: one command « control several streams • content may be in container file (QuickTime, .wav, ASF, MPEG systems stream, rtpdump, . . . ) • on single server Per-stream control: each stream has own command • across container files • several servers December 4, 2001
  23. 23. RTSP 23 RTSP URLs whole presentation: rtsp://media.example.com:554/twister track within presentation: rtsp://media.example.com:554/twister/audiotrack but: name hierarchy = media hiearchy = file system December 4, 2001
  24. 24. RTSP 24 RTSP: Web integration 1. web page with “program guide” 2. contains pointer to presentation description (say, SMIL): <session> <group> <track src="rtsp://audio.mtv.com/movie"> <track src="rtsp://video.mtv.com/movie"> </group> </session> 3. RTSP sets up and controls delivery 4. RSVP reserves resources 5. RTP delivers data December 4, 2001
  25. 25. RTSP 25 RTSP methods OPTIONS get available methods SETUP establish transport ANNOUNCE change description of media object DESCRIBE get (low-level) description of media object PLAY start playback, reposition RECORD start recording REDIRECT redirect client to new server PAUSE halt delivery, but keep state SET PARAMETER device or encoding control TEARDOWN remove state December 4, 2001
  26. 26. RTSP 26 commands may be pipelined December 4, 2001
  27. 27. RTSP 27 RTSP time • normal play time (NPT): seconds, microseconds • SMPTE timestamps (seconds, frames) • absolute time (for live events) allow absolute timing of events: « “start playing movie at 10:05.34, at NPT = 10 s” « synchronize distributed servers • DSM-CC: single pending command • RTSP: edit list (play 10-12, play 15-20, . . . ) « editing December 4, 2001
  28. 28. RTSP 28 Request headers Accept media description formats Accept-Encoding encoding of media format Accept-Language human language Authorization basic and digest authentication Bandwidth client bandwidth available Conference conference identifier From name of requestor If-Modified-Since conditional retrieval Range time range to play Referer how did we get here? Scale (play time)/(real time) Speed speed-up delivery User-Agent software December 4, 2001
  29. 29. RTSP 29 Response headers Location redirection Proxy-Authenticate authenticate to proxy Public methods supported Retry-After busy; come back later Server server software Vary cache tag WWW-Authenticate request authorization December 4, 2001
  30. 30. RTSP 30 RTSP reliability • if TCP, send request once • if UDP, retransmit with RTT (estimate: 500 ms) • CSeq for request sequence • Timestamp for RTT estimation • atomicity: may pack requests into PDU • kludge: data interleaving for TCP December 4, 2001
  31. 31. RTSP 31 RTSP descriptions contains streams + initialization information [+ network info]: • RTSP DESCRIBE • http, email, ... • command line • updated via ANNOUNCE; both C-to-S and S-to-C December 4, 2001
  32. 32. RTSP 32 Unicast session: get description C->W: GET /twister.sdp HTTP/1.1 Host: www.example.com Accept: application/sdp W->C: HTTP/1.0 200 OK Content-Type: application/sdp v=0 o=- 2890844526 2890842807 IN IP4 192.16.24.202 s=RTSP Session m=audio 0 RTP/AVP 0 a=control:rtsp://audio.com/twister/audio.en m=video 0 RTP/AVP 31 a=control:rtsp://video.com/twister/video December 4, 2001
  33. 33. RTSP 33 Unicast session: open streams C->A: SETUP rtsp://audio.com/twister/audio.en RTSP/1.0 CSeq: 1 Transport: RTP/AVP/UDP;unicast ;client_port=3056-3057 A->C: RTSP/1.0 200 OK CSeq: 1 Session: 12345678 Transport: RTP/AVP/UDP;unicast ;client_port=3056-3057; ;server_port=5000-5001 C->V: SETUP rtsp://video.com/twister/video RTSP/1.0 CSeq: 1 Transport: RTP/AVP/UDP;unicast ;client_port=3058-3059 December 4, 2001
  34. 34. RTSP 34 V->C: RTSP/1.0 200 OK CSeq: 1 Session: 23456789 Transport: RTP/AVP/UDP;unicast ;client_port=3058-3059 ;server_port=5002-5003 December 4, 2001
  35. 35. RTSP 35 Unicast session: play C->V: PLAY rtsp://video.com/twister/video RTSP/1.0 CSeq: 2 Session: 23456789 Range: smpte=0:10:00- V->C: RTSP/1.0 200 OK CSeq: 2 Session: 23456789 Range: smpte=0:10:00-0:20:00 RTP-Info: url=rtsp://video.com/twister/video ;seq=12312232;rtptime=78712811 C->A: PLAY rtsp://audio.com/twister/audio.en RTSP/1.0 CSeq: 2 Session: 12345678 Range: smpte=0:10:00- December 4, 2001
  36. 36. RTSP 36 A->C: RTSP/1.0 200 OK CSeq: 2 Session: 12345678 Range: smpte=0:10:00-0:20:00 RTP-Info: url=rtsp://audio.com/twister/audio.en ;seq=876655;rtptime=1032181 December 4, 2001
  37. 37. RTSP 37 RTSP session teardown C->A: TEARDOWN rtsp://audio.com/twister/audio.en RTSP/1.0 CSeq: 3 Session: 12345678 A->C: RTSP/1.0 200 OK CSeq: 3 C->V: TEARDOWN rtsp://video.com/twister/video RTSP/1.0 CSeq: 3 Session: 23456789 V->C: RTSP/1.0 200 OK CSeq: 3 December 4, 2001
  38. 38. RTSP 38 PLAY and PAUSE • several ranges (≥ 1 PLAY) are queued • PAUSE intercepts first matching time point • PLAY parameters: Scale: NPT speed Speed: delivery bandwidth Transport: for near-video-on-demand • mute vs. pause • implementation: calendar queue December 4, 2001
  39. 39. RTSP 39 REDIRECT • server tells client: go elsewhere • Location header contains URL • load balancing • needs to do TEARDOWN and SETUP S->C: REDIRECT rtsp://example.com/fizzle/foo RTSP/1.0 CSeq: 732 Location: rtsp://bigserver.com:8001 Range: clock=19960213T143205Z- December 4, 2001
  40. 40. RTSP 40 RECORD • may use URL or create own « return new URL in Location C->S: RECORD rtsp://example.com/meeting/audio.en RTSP/1.0 CSeq: 954 Session: 12345678 Conference: 128.16.64.19/32492374 December 4, 2001
  41. 41. RTSP 41 Interaction with RTP • PLAY response announces RTP timestamp and sequence number • allow discarding of packets before break RTP-Info: url=rtsp://foo.com/bar.avi/streamid=0;seq=45102, url=rtsp://foo.com/bar.avi/streamid=1;seq=30211 December 4, 2001
  42. 42. RTSP 42 Near video-on-demand • in wide area, video-on-demand not scalable • near on-demand, with positioning, pause • popular content delivered every 5 minutes • RTSP PLAY t → join appropriate multicast group for t • easy in Internet: IP multicast groups « no network signaling • may be able to “catch up” with group December 4, 2001
  43. 43. RTSP 43 RTSP caching • proxy caching of content, not RTSP responses • except: DESCRIBE • parameters similar to HTTP: December 4, 2001
  44. 44. RTSP 44 no-cache don’t cache public anybody may cache private only end-user may cache no-transform conversion disallowed only-if-cached only if proxy has content max-stale except beyond expiration date min-fresh shelf life left must-revalidate ask first, proxy later December 4, 2001
  45. 45. RTSP 45 RTSP extensions • add headers, methods • Require header for must-understand extensions: Require: org.ietf.rtsp.foobar 501 Not implemented December 4, 2001
  46. 46. RTSP 46 SIP and RTSP integration session multimedia session directory announces member floor member control chair SDF: audio + video stop! play audio! invitee SDF: audio only media server SIP RTSP • provide transport parameters to RTSP explicitly December 4, 2001
  47. 47. RTSP 47 • H.323 needs introductions « conference identifier December 4, 2001
  48. 48. RTSP 48 RTSP status • IETF MMUSIC working group « RFC 2326 • active contributors: Columbia University, Netscape, RealNetworks; IBM, INRIA, Microsoft, . . . • implementations in progress: – Columbia University (NT, Unix) – IBM – Lucent – Netscape – RealNetworks (G2) • may use existing Mbone tools December 4, 2001
  49. 49. RTSP 49 RTSP implementation Example: Columbia rtspd • share parser with SIP (Internet telephony) server • basic UDP and TCP (per connection) threads: listen for RTSP requests, assign to session • thread that picks up timed PLAY and PAUSE request • thread that cycles through multimedia file • RTP packetizer December 4, 2001
  50. 50. RTSP 50 Summary • Internet multimedia-on-demand « integrated services Internet • building block for virtual reality systems ? • conferencing ↔ telephony « same tools, formats, network • WebTV as VOD, Internet telephony terminal? • digital TV: specialized protocols « IP over the air • Columbia MarconiNet for TV/radio network architecture • 18 GB disk « download movie at night? December 4, 2001
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×