Title: Streaming
1Streaming
2Table of Contents
- Definitions
- Jitter
- QoS (Quality of Service)
- RTP (Real-time Transport Protocol)
- General overview
- Header format
- Header fields
- RTSP (Real-Time Streaming Protocol)
- Video streaming servers
- References and sources
3Jitter
- Abrupt and unneeded change of one or many of
signal characteristics, like - Successive pulse interval
- Successive cycles amplitude
- Successive cycles frequency or phase
- In other words signal fluctuation metric
4Quality of Service
- 2 different terms for QoS
- In circuit networks (e.g. telephone
networks)Probability for connecting one
subscriber with another subscriber - In packet networks (e.g. Internet)Probability
for fulfilling assumed network parameters
- QoS often referred as probability for
transmitting a packet between two network nodes - Reasons for problems
- Packet losses
- Delays
- Packet re-ordering
- Errors
- Jitter
5RTP General Protocol Overview
- Supported transmission
- Unicast
- Multicast
- RTP transport controlled by RTCP protocol
- RTCP allowing for monitoring volumes of data
transports - WAN networks support
6RTP Requirements for Real-Time Services
- Payload data identification
- Sequential numbering
- Time-stamp marking
- Data delivery monitoring
7Introduction to RTP
- RTP packets usually embedded into UDP packets
- Possibility for using UDP features
- NOTE RTP is not another network layer!
- UDPRTP together good transport protocol
- Other 3rd or 4th layer protocol also applicable
as RTP envelopes
8Introduction to RTP Limited Real-Time
- Does not reserve resources
- Does not guarantee QoS for real-time services,
including - Packet delivery (at all)
- Scheduled packet delivery (even in lower layers
do guarantee) - Ordered packet delivery
9Introduction to RTP Sequential Number
- Sending packet order possible to reconstruct at
receiver - Possible to correctly localise packet in stream
(e.g. without decompressing video frames)
10Introduction to RTP Applications
- RTP initially for multi-party videoconferencing
- Nowadays supporting several networked real-time
applications like - Video applications
- Audio applications
- Data access applications
- Applications for distributed, interactive
simulations - Gaming
- Monitoring applications
11RTP and RTCP
- Real-time data transport itself carried by
Real-time Transport Protocol (RTP) - Additional functionality provided by RTP Control
Protocol (RTCP) - QoS monitoring
- Transmission of information about participants
of current connection sessions - Not-strict RTCP connection sessions
- Not necessary to define session participants
(differently as in TCP)
12RTP Sources
- Synchronization source (SSRC)
- RTP packets source
- Identified by 32-bit numerical SSRC identifier
- Sent in RTP header
- Not connected with network address (IP)
- Contributing source (CSRC)
- RTP packets source
- Delivering them to synchronized source,
produced by RTP mixer
13RTP Mixer Middleware System
- Reception of RTP packets from one of more sources
- Packet processing
- Possible data format alternation
- Possible connection of packets
- Further re-send as new RTP packet
14RTP Header Format
- 0 1 2
3 - 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3
4 5 6 7 8 9 0 1 - -------------------------
------- - V2PX CC M PT sequence
number - -------------------------
------- - timestamp
- -------------------------
------- - synchronization source (SSRC)
identifier
- contributing source (CSRC)
identifiers - ....
- -------------------------
-------
15Header Fields (1/8)
- First twelve octets of each RTP packet
- CSRC IDs list only if inserted by mixer
- version (V) 2 bits
- RTP version identification
- Version defined by current specifications 2
- Value of 1 used by first RTP protocol version
- Value of 0 used in first versions of vat
application (audio transmission)
16Header Fields (2/8)
- padding (P) 1 bit
- If set one or more additional non-data octets
at packet end - Last padding octet counter of padding octets to
be ignored - Padding useful for
- Some coding algorithms having fixed data blocks
- Transporting several RTP packets in lower network
layer packets/frames
17Header Fields (3/8)
- extension (X) 1 bit if set, standard header
extended with exactly one header extension - CSRC count (CC) 4 bits number of CSRC IDs
after the standard header - marker (M) 1 bit
- Marker interpretation defined by applications
- Indented for informing about important events
like frame boundary in stream
18Header Fields (4/8)
- payload type (PT) 7 bits
- Interpretation by application
- Static mapping between payload type codes and
data formats - Basic mappings for audio and video transmissions
described in RFC 1700 document - Possibility for dynamic definition of other
payload types (outside RTP standard) - Only one data type in sending RTP packet
- No multiplexing expected
19Header Fields (5/8)
- sequence number 16 bits
- Sequential number incremented by each RTP data
packet - To be used be receiver for
- Packet loss detection
- Packet order reconstruction
- Random (unpredictable) initial sequence number
value for difficulty of data capture - Techniques for selecting unpredictable numbers
described in EAST94 document
20Header Fields (6/8)
- timestamp 32 bits
- Related to transmission of first data octet of
RTP packet - Purposes
- Synchronization
- Jitter calculations
- Received timestamp clock requirements
- Monotonic time-growth
- Linear time-growth
- Enough resolution
- More than one step per stream event (e.g.
frame) - Resolution related to data format
21Header Fields (7/8)
- SSRC 32 bits
- Synchronization source ID
- Randomly chosen ID
- Assumption two synchronization sources in same
RTP session will not have same SSRC ID - Special algorithms for generating random IDs
- Low possibility for choosing same ID by several
sources - All RTP implementations ready for detecting and
resolving collision problem - Probabilities calculated
- Special mechanisms prepared
22Header Fields (8/8)
- CSRC list 0 to 15 items, 32 bits each
- CSRC list identifying contributing sources for
data included in packet - Number of IDs given in CC field
- If more than 15 contributing sources, only 15 to
be identified - CSRC IDs entered by mixers, using SSRC IDs from
contributing sources - Example for audio packets all mixed SSRC IDs
listed allowing for proper speaker identification
in receiver
23Real Time Streaming Protocol (RTSP)
- Application layer (TCP/IP model)
- On-demand delivery of real-time audio and video
- Control over delivery of data with real-time
properties - Beginning for end-to-end interoperability
- Sources of data
- Live data feeds
- Stored clips
24RTSP Jumping Off Point for Negotiating
- Transports, such as
- Multicast UDPRTP
- Unicast
- UDPRTP
- TCP
- Codecs off of servers in file format independent
way
25Purpose of RTSP
- Single or several time-synchronized streams of
continuous multimedia - Network remote control" for multimedia servers
26Video Streaming Servers
- Helix Platform (RealNetworks)
- QuickTime Streaming (Apple)
- Windows Media Services (Microsoft)
27Helix
- Most popular streaming system
- RTSP introduced by RealNetworks
- Software producers
- RealNetworks, Inc. Helix software family
(proprietary) - Open-source community Helix DNA software family
(open-source) - Proprietary vs. open-source equivalents with
limitations on both sides
28Helix Platform Streaming Options
- Multicast
- UDPRTP transport
- Unicast
- HTTP controlled
- TCP transport
- RTSP controlled
- TCP transport
- UDPRTP transport
29Main Helix Platform Components (1/2)
- Media creation
- RealProducer (Plus)
- Helix Mobile Producer
- Media servers
- Helix Server family (several versions)
- Helix Proxy
30Main Helix Platform Components (2/2)
- Media players
- RealPlayer
- RealPlayer for mobile
- RealPlayer Enterprise
- Media player management RealPlayer Enterprise
Manager - Codecs third-party plus own
- RealVideo
- RealAudio
31Helix DNA Platform
32Main Helix DNA Platform Components (1/2)
- Media creation
- Helix DNA Producer
- Media servers
- Helix DNA Server
- RTSP Proxy Kit
33Main Helix DNA Platform Components (2/2)
- Media players
- Helix Player
- Desktop systems
- Laptops
- Helix DNA Client
- Set-top Boxes
- Mobile phones
- MP3 players
- PDAs
- Codecs most of popular ones supported
34QuickTime Streaming Server Introduction (1/2)
- Product of Apple
- Current version 5
- Designed to work only in Mac OS X Server
operating system - Shipped with operating system no additional
license fees
35QuickTime Streaming Server Introduction (2/2)
- Support for several formats of digital media and
codecs - Older and native QuickTime
- Newest standards, including
- MPEG-4
- 3GPP/3GPP2
- H.264/AVC
36QuickTime Streaming Server Basic Features (1/5)
- Possibility for receiving streams on several
platforms - Streaming in standards acceptable for all players
at all platforms - To be used as bridge for other streaming servers
37QuickTime Streaming Server Basic Features (2/5)
- RTP/RTSP streaming
- Multicast
- Unicast
- Support for MPEG-4 format streaming
- MP3 files streaming
- Usage of Icecast standard protocols
- Every HTTP MP3 player
38QuickTime Streaming Server Basic Features (3/5)
- Live Broadcast using QuickTime Broadcaster
application - Live broadcast simulation based on pre-stored
content - Video on Demand (VoD) streaming
- HTTP Fast Start streaming
39QuickTime Streaming Server Basic Features (4/5)
- QuickTime Streaming Server Publisher
- Creation of play-lists
- Server content management
- Administration methods
- Local
- Remote
- Web-based
- Logs and efficiency statistics allowing for
real-time - Monitoring
- Planning
40QuickTime Streaming Server Basic Features (5/5)
- Good Quality of Service implementation
- Instant-On function for reducing streaming
transmission startup time in case of broadband
connections - Skip Protection function for improving multimedia
stream quality
41Darwin Streaming Server vs. QuickTime Streaming
Server
- Darwin Streaming Server open-source version of
QuickTime Streaming Server - Based on same code as QuickTime Streaming Server
- Applications
- QuickTime and MPEG-4 streaming for Mac
alternative platforms - Windows
- Linux
- Solaris
- For modifying/extension of existing server source
code
42Windows Media Services
43Windows Media Services Introduction (1/2)
- Microsoft Media components
- Windows Media Tools creating video content
- Windows Media Services streaming server
transmitting video content - Windows Media Player playing video content
- Complete solution
44Windows Media Services Introduction (2/2)
45Windows Media Services Requirements
- Network neighborhood, for
- Administration
- Content storage
- TCP/IP networking
- Microsoft Windows operating system
- Server edition only (for streaming server)
46Windows Media Services Windows Media Tools
- Content creation, for
- Live transmissions
- On demand transmissions
- Conversion to Windows Media format from other
formats - WAV
- AVI
- MPEG-1
- MP3
47Windows Media Services Windows Media Tools
- Windows Media Encoder for video content creation
- Build-in HTTP server
- Encoding of live and pre-stored content
48Windows Media Services Windows Media Tools
- Creation of video-based presentations
- Video plus
- Graphics
- Tags
- Script commands
- Indexes
- Applications
- Windows Media Author
- Advanced Script Indexer
49References and Sources (1/2)
- RTP RTP A Transport Protocol for Real-Time
Applicationshttp//www.rfc-editor.org/rfc/rfc188
9.txt. - REYN94 Reynolds, J., and J. Postel, "Assigned
Numbers", STD 2, RFC 1700, USC/Information
Sciences Institute, October 1994. - EAST94 Eastlake, D., Crocker, S., and J.
Schiller, "Randomness Recommendations for
Security", RFC 1750, DEC, Cybercash, MIT,
December 1994. - ATM The ATM Forum http//www.atmforum.com/
50References and Sources (2/2)
- WAJDA K. Wajda, Spoleczenstwo Globalnej
Informacji Budowa sieci komputerowych w
technologii ATM, Fundacja Postepu
Telekomunikacji - PAP Z. Papir, Ruch telekomunikacyjny i
przeciazenia sieci pakietowych, Fundacja
Postepu Telekomunikacji - JITT Jitter Wikipedia http//en.wikipedia.o
rg/wiki/Jitter - QOS Quality of Service Wikipedia
http//en2.wikipedia.org/wiki/Quality_of_Service - ATMWIKI Asynchronous Transfer Mode
Wikipedia, http//en.wikipedia.org/wiki/ATM
51Koniec
52QuickTime Streaming ServerGUI-Based Server
Management
53QuickTime Streaming ServerStreaming Architecture