Streaming Video Mohammed S Halim Jacob Christianson Sam Daley
Streaming 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.
The 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
What 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.
The 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.
Common 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…………………..
How does it work • Links are added to a website • User click on the links • Media network streams the clip directly to the viewer’s PC. Because the media files are hosted on a separate network, the streaming has no impact on any existing web servers.
Key Terminology(some of them) • Buffering • Codec • Encoding • Stream • Multicast • Streaming • On-Demand
Streaming Video Challenges • Require real-time traffic • Higher bandwidth needed • Unpredictable availability of network bandwidth
Video 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
Video Data Requirements 640 x 480 pixels x 640 24 bits/pixel x 30 frames/sec 480 = 221 Mbps
Delivery Methods • Video On-demand • Live Video • Simulated Live Video
Video 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
Live Video • Transmitting video as it happens, (i.e. not recorded) • Can not fast-forward, rewind, pause, etc.
Simulated 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
Protocols 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)
Hypertext 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 Microsoft’s .asf format) • Or replay a section that just downloaded • Can be used to download a small redirect file that connects to a normal stream
User 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
Session 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
SDP (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
Real 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
RTP (cont.) • Applications typically run RTP on top of UDP as part of the transport layer protocol • RTP data in an IP packet
Real 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
RTCP - 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
Real 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
RTSP (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.
RTSP – 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
RTSP – 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
RTSP – 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
RTSP – 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
RTSP - 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)
RTSP – 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
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 RTSP - Headers
RTSP - 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
RTSP – 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
RTSP – Protocol States Minimal state of RTSP:
Streaming 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
What format should you use? • What time of delivery system will be used? • How much editability do you need? • Do you need multirate streaming?
Differences • 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
CODECS: Windows Media • Supported CODECS: Windows Media Video v7, ISO MPEG-4 v7, Windows Media Screen Codec, MPEG-4 v1,v2,v3
CODECS: 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
CODECS: Real • Supported CODECS: RealVideo with Scalable Video Technology (SVT),RealVideo, MPEG1, SMIL, VRML, RealText, RealPix*Not backward compatible*Recommended to use older codec for upwards compatibility
Protocols • Windows Media: TCP, HTTP, UDP, UDP, MMS • QuickTime: HTTP, RTSP, RTP, FTP, SDP, UDP • Real: RTSP, RTP, UDP, TCP, HTTP, UDP
Costs • 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
Similarities • Support: Netscape/Mozilla, IE Live Broadcasting Simultaneous Live Streaming and recording IP Multicast Windows OS & Mac OS
Live Video Can be delivered 3 different ways: • Unicasting • Splitting • Multicasting
Live 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
Live 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