Title: Streaming Video
1Streaming Video
- Mohammed S Halim
- Jacob Christianson
- Sam Daley
2Streaming Video
- Streaming Streaming is the process of playing a
file while it is still downloading. - Streaming Video A sequence of moving images
that are sent in compressed form over the
internet and display by the viewer as they arrive.
3The evolution of Streaming Video
- 1994 Video was accessible only by user with
high-end workstation. - 1995 Progressive download technology allows
audiences with standard personal computers to
view video files as they are being download. - 1997 The first all-in-one, audio-video players
was released. - 1999 True streaming was introduced to the
general market. - 2001 First implementations of MPEG-4
4What makes Streaming Video different?
- Until recently, video on the web was primarily a
download-and-play technology. - Now a days, streaming video files begin playing
almost immediately, while data is being sent,
without having to wait for the whole file to
download.
5The primary characteristics of Streaming Video
- Streaming video technology enables real-time or
on-demand access to video via the Internet or an
intranet. - Streaming video is transmitted by a media server
application, and is processed and played back by
a client player application, as it is received. - A streamed file is received, processed, and
played simultaneously and immediately, leaving
behind no residual copy of the content on the
receiving device.
6Common need for Streaming Video
- Various media are used in Internet
- They are used for different application Such as
- Entertainment application
- Video conferencing
- Video archives and libraries
- Remote learning
- Multimedia presentations
- Video on demand
- Interactive Video Games
- Video surveillance
- And many more..
7How does it work
- Links are added to a website
- User click on the links
- Media network streams the clip directly to the
viewers PC. - Because the media files are hosted on a separate
network, the streaming has no impact on any
existing web servers.
8Key Terminology (some of them)
- Buffering
- Codec
- Encoding
- Stream
- Multicast
- Streaming
- On-Demand
9Streaming Video Challenges
- Require real-time traffic
- Higher bandwidth needed
- Unpredictable availability of network bandwidth
10Video Compression
- Streaming for the Internet available in all
formats. - To allow the playback of video over the web, the
video must be compressed into a particular
computer file format. - Streaming created from any video and audio
format. - It is possible to compress from any video source
to.. - -AVI -ASF
- -QUICK TIME -REALVIDEO
- -MPEG-1,2,4 -WAV
- -ASF -AIFF
11Video Data Requirements
- 640 x 480 pixels x 640
- 24 bits/pixel x
- 30 frames/sec 480
- 221 Mbps
12Delivery Methods
- Video On-demand
- Live Video
- Simulated Live Video
13Video On-Demand
- Video is prerecorded
- User can request the streamed video at any time
- User can rewind, fast-forward, or pause the
video at any time
14Live Video
- Transmitting video as it happens, (i.e. not
recorded) - Can not fast-forward, rewind, pause, etc.
15Simulated Live Video
- Same as Live Video except that the stream is
prerecorded - Also uses unicasting, splitting, multicasting
- Not used as much as VOD or Live Video
16Protocols Used in Streaming Technology
- Hypertext Transfer Protocol (HTTP)
- User Datagram Protocol (UDP)
- Session Description Protocol (SDP)
- Real Time Transport Protocol (RTP)
- Real Time Control Protocol (RTCP)
- Real Time Streaming Protocol (RTSP)
17Hypertext Transfer Protocol (HTTP)
- Allows the data to be played as it comes from the
network or save to a file to play later - Lacks control uplinks
- May be unable to skip to different parts of the
video (like Microsofts .asf format) - Or replay a section that just downloaded
- Can be used to download a small redirect file
that connects to a normal stream
18User Datagram Protocol (UDP)
- Real-time data-transfer protocol
- Receives high priority for internet transmission
- If data is lost or corrupted during a
transmission, the receiver does not request that
it be resent - Basis for SDP, RTP, RTCP, RTSP
19Session Description Protocol (SDP)
- Purpose Convey information about media streams
in multimedia sessions to allow the recipients of
a session description to participate in that
session. - Multimedia Session Set of media streams that
exist for some duration of time - Primary Functions
- A means to communicate the existence of a session
- A means to convey sufficient information to
enable joining and participating in the session
20SDP (cont.)
- Session name and purpose
- Time(s) session is active
- The media comprising the session
- Information to receive those media
- Information about the bandwidth to be used by the
conference - Contact information for the person responsible
for the session
21Real Time Transport Protocol (RTP)
- TCP/UDP are not suitable for real-time
applications - RTP is a thin protocol that provides real-time
support - Timing reconstruction
- Loss detection
- Security
- Content identification
- Does not have a delivery mechanism
- Can be used without RTCP
- Usually implemented within the application
22RTP (cont.)
- Applications typically run RTP on top of UDP as
part of the transport layer protocol - RTP data in an IP packet
23Real Time Control Protocol (RTCP)
- Control protocol that works in conjunction with
RTP - Provides support for real-time conferencing for
large groups, including source identification and
support for gateways and multicast-to-unicast
translators
24RTCP - Functions
- Provide information to the application
- Each packet contains report statistics
- Identify RTP source
- RTCP carries a transport-level identifier for an
RTP source - Used to keep track of the participants in an RTP
session - Control RTCP transmission interval
- Convey minimal session control information
25Real Time Streaming Protocol (RTSP)
- Application-level protocol
- Aim to provide a robust protocol for streaming
media - One-to-many applications
- Unicast and multicast
- Support interoperability between clients and
servers - Different vendors
26RTSP (cont.)
- RTSP is considered more of a framework than a
protocol. It is intended to control multiple data
delivery sessions, provide a means for choosing
delivery channels such as UDP, TCP, IP Multicast,
and delivery mechanisms based on RTP. Control
mechanisms such as session establishment and
licensing issues are being addressed. RTSP is
being designed to work on top of RTP to both
control and deliver real-time content. Thus RTSP
implementations will be able to take advantage of
RTP improvements, such as the new standard for
RTP header compression. Although RTSP can be used
with unicast in the near future, its use may help
smooth the transition for environments transiting
from unicast to IP multicasting with RTP.
27RTSP How does it work?
- Breaks data into packets sized according to the
bandwidth available - When the client receives enough packets, software
can - Play one packet
- Decompress another
- And download a third
- Applies to live data feeds as well as stored clips
28RTSP Functions of
- Provides on-demand access of multimedia items
- Provides control and delivery of real-time media
as well as associated events between a media
server and large numbers of media clients - Addresses key concerns
- Quality of service
- Efficiency of delivery
- Rights management
- Measurement
29RTSP Relationships with other Protocols
30RTSP - Operation
31RTSP Operation (cont.)
- Sending a control request
- Client constructs a line consisting of the
method, the request URL, and the protocol version
number - Client includes a general header, a request
header, and possibly an entity header (as for the
HTTP protocol) - Server executes the request if possible
- Server returns a response containing a
status-line and general response and entity
headers - Status-line protocol version, numeric status
code, textual description
32RTSP Operation (cont.)
- Media streams are left unspecified
- Could be RTP streams or any other form of media
transmission - RTSP only specifies control
- Client and server software must maintain the
mapping between the control channel and the media
streams - Control request and responses may be sent via TCP
or UDP, which are sequenced (order matters!) - UDP requires construction of retransmission
mechanisms - There are few times when UDP is used
33RTSP - Sessions
- Client requests a presentation to be started by a
server - Receives a session identifier (used in all
controls) - Represents the shared state between the client
and the server - If the state is lost, the protocol relies on the
transport of the media to stop automatically - Client may request a teardown of the session
(releases resources)
34RTSP Request/Response
- Request
- Client to server or vice versa
- Includes the method to be applied to the resource
- The identifier resource
- Protocol version in use
- Response
- Includes protocol version
- Numeric status code
- 3-digit integer result code of the attempt to
understand and satisfy the request - A reason phrase is included for the human user
- Textual phrase associated with the status code
35RTSP - Headers
- Request
- Media description format
- Encoding of media format
- Human language
- Authentication
- Client bandwidth available
- Conference identifier
- Name of requester
- Conditional retrieval
- Time range to play
- How did we get here?
- Speed-up delivery
- Software
- Response
- Redirection
- Authentication to proxy
- Methods supported
- Busy, Comeback later
- Server software
- Cache
- Request authorization
36RTSP - Methods
- DESCRIBE
- retrieves the description of the presentation or
media object identified by the request URL - The DESCRIBE reply-response pair constitutes the
media initialization phase - ANNOUNCE
- GET_PARAMETER
- OPTIONS
- PAUSE
- Halts the stream delivery (temporarily)
- Server resources are kept, unless paused longer
than the timeout parameter specifies - PLAY
- Tells the server to start sending data
- Client must not issue a PLAY request until SETUP
request have been acknowledged successfully
37RTSP Methods (cont.)
- RECORD
- REDIRECT
- SETUP
- Specifies the transport mechanism to be used for
the streamed media - Transport header specifies transport parameters
acceptable to the client - The response contains the parameters selected by
the server - SET_PARAMETER
- TEARDOWN
- Stops the stream delivery for the given URI,
freeing resources - If the URI is a presentation, the session is
closed and thus the identifier is no longer valid
38RTSP Protocol States
39Streaming Video Technology
- Real Networks (Progressive Networks)
Proprietary formats, multi-rate video, etc. - Windows Media (Microsoft) AVI, ASF (advanced
streaming format) - QuickTime (Apple) Basis for MPEG-4
40What format should you use?
- What time of delivery system will be used?
- How much editability do you need?
- Do you need multirate streaming?
41Differences
- CODEC Compressor/decompressor, each supports a
different set of CODECS - Protocols Some variation in supported protocols
- Costs Players can be obtained for free but
encoding, server, etc. costs can vary
42CODECS Windows Media
- Supported CODECS Windows Media Video v7, ISO
MPEG-4 v7, Windows Media Screen Codec, MPEG-4
v1,v2,v3
43CODECS QuickTime
- Supported CODECS Sorenson Video, VP3, Cinepak,
Indeo 3., Indeo Video Interactive 4, Video,
Animation, Photo-JPEG, Component Video, MJPEG,
Graphics, Portable Network Graphic (PNG), MPEG-1
44CODECS Real
- Supported CODECS RealVideo with Scalable Video
Technology (SVT),RealVideo, MPEG1, SMIL, VRML,
RealText, RealPixNot backward
compatibleRecommended to use older codec for
upwards compatibility
45Protocols
- Windows Media TCP, HTTP, UDP, UDP, MMS
- QuickTime HTTP, RTSP, RTP, FTP, SDP, UDP
- Real RTSP, RTP, UDP, TCP, HTTP, UDP
46Costs
- Windows Media Encoding/Serving is free with
Windows OS - QuickTime Low cost if you have Mac OS, but you
will need to purchase an encoder (i.e.
QuickTime Pro) - Real Costs vary but can be very high when using
large servers
47Similarities
- Support Netscape/Mozilla, IE
- Live Broadcasting
- Simultaneous Live Streaming
and recording - IP Multicast
- Windows OS Mac OS
48Live Video
- Can be delivered 3 different ways
-
- Unicasting
- Splitting
- Multicasting
49Live Video Unicasting
- Video stream goes independently to each user,
and all users get their own stream - Simplest
- Most popular
- Little or no configuration is needed
50Live Video Splitting
- One Media Server shares its live media streams
with other Media Servers - User gets the stream from a splitter instead of
the actual Media Server where the stream
originated from - Reduces the load on the Media Server
51Live Video Multicasting
- Many users share the same stream
- Reduces bandwidth and network traffic
52References
- Academic Technology Center http//www.cit.cornell
.edu/atc/itsupport/streaming.shtml - California Software Labs http//www.cswl.com/whit
eppr/tech/StreamingTechnology.html - CISCO http//www.cisco.com/networkers/nw99_pres/6
08.pdf - Data Networking and Communications 3e Behrouz A.
Forouzan - DV Web Video http//www.dvwebvideo.com/2000/0500/
waggoner0500.html - Erica Sadun http//www.mindspring.com/erica/stre
am.html - Internet RFC/STD/FYI/BCP Archives
http//www.faqs.org/rfcs/rfc2327.html - Internet RFC/STD/FYI/BCP Archives
http//www.faqs.org/rfcs/rfc3550.html - Raj Jain http//www2.ing.puc.cl/jnavon/IIC3582/P
resent/3/mmip.htm - A Streaming Media Primer http//www.adobe.com/prod
ucts/aftereffects/pdfs/AdobeStr.pdf - Multimedia Networking Goals and Challenges
http//www2.ing.puc.cl/jnavon/IIC3582/Present/3/m
mip.htmmultimedia - Streaming Video Compression Overview
http//www.ashlandvideo.com/tour_streaming.html - Streaming Video http//www.cypresslakestudios.com
/articles/streamingvideotutorial.html - AOL Stream Info http//stream.info.aol.com/compar
ison.html - Windows .NET Magazine http//www.winnetmag.com/
Article/ArticleID/3117/3117.html