Chapter 6 outline r 6.1 Multimedia Networking Applications r 6.2 Streaming stored audio and video m RTSP r 6.3 Real-time Multimedia: Internet Phone Case Study r 6.4 Protocols for Real- Time Interactive Applications m RTP,RTCP m SIP r 6.5 Beyond Best Effort r 6.6 Scheduling and Policing Mechanisms r 6.7 Integrated Services r 6.8 RSVP r 6.9 Differentiated Services
Streaming Stored Multimedia Application-level streaming techniques for making the best out of best effort service: m client side buffering m use of UDP versus TCP m multiple encodings of multimedia r jitter removal r decompression r error concealment r graphical user interface w/ controls for interactivity Media Player
Internet multimedia: simplest approach audio, video not streamed: r no, “pipelining,” long delays until playout! r audio or video stored in file r files transferred as HTTP object m received in entirety at client m then passed to player
Internet multimedia: streaming approach r browser GETs metafile r browser launches player, passing metafile r player contacts server r server streams audio/video to player
Streaming from a streaming server r This architecture allows for non-HTTP protocol between server and media player r Can also use UDP instead of TCP.
constant bit rate video transmission Cumulative data time variable network delay client video reception constant bit rate video playout at client client playout delay buffered video Streaming Multimedia: Client Buffering r Client-side buffering, playout delay compensate for network-added delay, delay jitter
Streaming Multimedia: Client Buffering r Client-side buffering, playout delay compensate for network-added delay, delay jitter buffered video variable fill rate, x(t) constant drain rate, d
Streaming Multimedia: UDP or TCP? UDP r server sends at rate appropriate for client (oblivious to network congestion!) m often sending rate = encoding rate = constant rate m then, buffer filling rate = constant rate - packet loss r short playout delay (2-5 seconds) to compensate for network delay jitter r error recover: time permitting TCP r send at maximum possible rate under TCP r filling rate fluctuates due to TCP congestion control r larger playout delay: smooth TCP delivery rate r HTTP/TCP passes more easily through firewalls
Streaming Multimedia: client rate(s) Q: how to handle different client receive rate capabilities? m 28.8 Kbps dialup m 100Mbps Ethernet A: server stores, transmits multiple copies of video, encoded at different rates 1.5 Mbps encoding 28.8 Kbps encoding
User Control of Streaming Media: RTSP HTTP r Does not target multimedia content r No commands for fast forward, etc. RTSP: RFC 2326 r Client-server application layer protocol. r For user to control display: rewind, fast forward, pause, resume, repositioning, etc… What it doesn’t do: r does not define how audio/video is encapsulated for streaming over network r does not restrict how streamed media is transported; it can be transported over UDP or TCP r does not specify how the media player buffers audio/video
More about RTSP r Text-based protocol, like HTTP r Transport protocol independent r Supports any session description (sdp, xml, etc.) r Similar design as HTTP with differences yet! m client server and server client requests m server maintains a « session state » m data carried out-of-band
RTSP: out of band control FTP uses an “out-of-band” control channel: r A file is transferred over one TCP connection. r Control information (directory changes, file deletion, file renaming, etc.) is sent over a separate TCP connection. r The “out-of-band” and “in- band” channels use different port numbers. RTSP messages are also sent out-of-band: r RTSP control messages use different port numbers than the media stream: out-of-band. m Port 554 r The media stream is considered “in-band”.
RTSP Example Scenario: r metafile communicated to web browser r browser launches player r player sets up an RTSP control connection, data connection to streaming server
Metafile Example Twister <track type=audio e="PCMU/8000/1" src = "rtsp://audio.example.com/twister/audio.en/lofi"> <track type=audio e="DVI4/16000/2" pt="90 DVI4/8000/1" src="rtsp://audio.example.com/twister/audio.en/hifi"> <track type="video/jpeg" src="rtsp://video.example.com/twister/video">
RTSP methods r Major methods m SETUP:server allocates resources for a stream and starts an RTSP session m PLAY:starts data tx on a stream m PAUSE:temporarily halts a stream m TEARDOWN:free resources of the stream, no RTSP session on server any more r Additional methods m OPTIONS:get available methods m ANNOUNCE:change description of media object m DESCRIBE:get low level descr. of media object m RECORD:server starts recording a stream m REDIRECT:redirect client to new server m SET_PARAMETER:device or encoding control
RTSP Operation
RTSP Exchange Example C: SETUP rtsp://audio.example.com/twister/audio RTSP/1.0 Transport: rtp/udp; compression; port=3056; mode=PLAY S: RTSP/ OK Session 4231 C: PLAY rtsp://audio.example.com/twister/audio.en/lofi RTSP/1.0 Session: 4231 Range: npt=0- C: PAUSE rtsp://audio.example.com/twister/audio.en/lofi RTSP/1.0 Session: 4231 Range: npt=37 C: TEARDOWN rtsp://audio.example.com/twister/audio.en/lofi RTSP/1.0 Session: 4231 S: OK