Lecture Notes for Client-Server Interfaces
24 April 2001 - Streaming Media
- what
- a continuous data stream
- potentially infinite data - not stock quotes (maybe)
- time-sequenced data - order and time
- issues
- network delays - jitter (variance)
- detection - sequence numbers aren't good enough, neither are frame
numbers; resolving co-incident time stamps; intermittent transmission
- network loss
- go-back-n - too slow and expensive
- stop and wait - unlimited buffer growth
- recalculation - forward error correction
- fake it - repeated play back, please stand by messages, white noise
- synchronization - coordinating multiple media streams
- transport protocols - data-stream or packet
- overhead, loss recovery, multi-endpoint delivery
- other issues - discovery, authentication, multi-cast
- streaming-media protocols
- delivery protocol and control protocol
- delivery protocol - real-time transport protocol (rtp)
- sequence number - random initial value and strictly monotomic
increasing
- timestamp - random initial value and continuously generated
- medium type
- frame marker
- synchronization source and contributing sorce ids - create
multi-media streams; identify the source
- control protocol - real-time control protocol (rtcp)
- session information, network information, end-point information
- payload is a sequence of records of various types
- synchronization information
- synchronized streams must come from the same source
- ties the source-local time to the timestamps
- implementation details
- addressing
- at the ip level - the usual pair, except for class d addresses
- demultiplexing - in ip (session demultiplexing) and in rtp (stream
demultiplexing)
- encodings - how the data are formatted; none, stream, and framed
- architecture - four layers; transport, rtp, synchronization,
application
- much concurrent activity
- decoding, synchronization, playback, control
- time constrained
- coordination among the activities
- handling time
- where does time management get done - in the rtp handler or in the
application
- simpler to keep it internal
- more flexible to make it available to the application
- that old devil, time-stamp wrap-around - half-space constraints
- handling data - buffering
- buffering deals with jitter
- the playback point, gaps, and the end of buffer
- circular buffers, implicit buffers
- change of encodings or time
- small buffer increments - not enough time to get ready
- handling events
- session management, encoding changes, adaptations
- event queues and call-backs
This page last modified on 27 April 2001.