Streaming Media Technology

From Computing and Software Wiki

Revision as of 03:18, 9 April 2008 by Chuh (Talk)
Jump to: navigation, search

Streaming media is multimedia that is constantly received by, and normally displayed to, the end-user while it is being delivered by the provider.[1] Streaming media technolgy enables on-demand or real-time access to multimedia content via internet and allows users to play those contents without fully downloading them. After playing, there's no copy of played contents leaving on the receiving devices, which protects the copyright of the original mutimedia contents.

Figure 1: Basic Streaming Media Transfer Process [2]

Contents

Introduction

When the user requests to play a media object that is stored on a remote server, the data blocks are retrieved from the remote server over a network, and passes to the client for display.[3] There are ususaly two ways of doing that. First, the player doesn't play until the media object is completely downloaded on the client. Second, the player can start to play while "streaming" the media as long as enough data has been received - without waiting for the fully downloading, which is so-called the streaming media.

Compared with the way of fully downloading, the way of streaming takes many advantages. First, there's almost no waiting time for downloading. Second, no copies are stored during the process, which protects the copyright and reduces the storage requirement of the client. Third, real-time events becomes possible. However, streaming is always limited by the network conditions. If the speed of the network is very slow, the way of streaming won't work well and some data may lost during the transport process.

System Architecture

Assume a streaming media object S that contains n equal size blocks: S0, S1, ..., Sn-1, and is stored on a streaming media server. There are three important time variable needed to mention:

  • The retrieval time of each block is a function of the transfer rate of the server.
  • The delivery time of each block from the server to the client is a function of the network speed, traffic, and protocol used.
  • The display time of each block is a function of the display requirments of each object and the size of the block. For example, if the display requirement of the object S is 3 Mb/s and the size of each block, Si, is 3 Mbytes, then the display time of each block is 8 seconds. [3]


While a client requests the display of a media object from the server, the server schedules the retrieval of the blocks and delivers these blocks to the buffer of the client via network. The server stages a block of S(say Si) from the disk into main memory and delivers it to the buffer of the client. After being received, Si is displayed. The server schedules the retrieval and the delivery of Si+1 before the completion of the display of Si. This process is repeated till all blocks of S have been retrieved, delivered and displayed. [3]

In order to endure the continous display and of object S without any hiccups, block Si+1 must be available in the buffer of the client before the completion of the display of Si. [3]


P.S.: The architecture described here is entirely learned and paraphrased from the book Streaming Media Server Design, which is listed as reference [3].

Storage and Bandwidth

Storage

Streaming media storage size is a funtion of bit rate and length:

SIZE (Kbit) = BIT RATE (Kbit/s) * LENGTH (s).

Becuause the result is usually a very large number, people always use Mbyte to describe the size of the storage.

SIZE (Mbyte) = BIT RATE (Kbit/s) * LENGTH (s)/ 8,388.608

(since 1 megabyte = 8 * 1,048,576 bits = 8,388.608 kilobits)


Figure 2 shows the storage requirements for a 120 minute video clip digitized in different standard encoding formats.

Figure 2: Storage requirements for a 120 minute video clip digitized in different standard encoding formats


Bandwidth

If the file is stored on a server for on-demand streaming and this stream is viewed by 100 people at the same time using a unicast protocol, you would need:

250 kbit/s · 100 = 25,000 kbit/s = 25 Mbit/s of bandwidth

While using a multicast protocol(which is commonly used), such a stream only need a 250 Kbit/s bandwidth. In order to play a streaming media object with no hanging, the bandwidth must be greater than or equal to the bit rate of the streaming meida. object.

Data Compression

Run-length encoding

Relative encoding

Huffman encoding

Transform encoding

To be filled

Network Protocols

RTP

RTCP

RTSP

RSVP

To be filled

Applications

Figure 3: Streaming Media Applications [4]

There are two main forms of streaming media:[4]

  • On Demand: Typicllay requires the downloading of the media for short-term use and allows users to fast forward, pause, and rewind all media as they please.
  • Video Conferencing: Real-time streaming meant for use as it happens and typically is only available when live.


There are five applications which are very popular now.[4]

  • YouTube: Most similar to On Demand as users can download and access media at convenience. However, it's not true On Demand because users let content stream temporarily.
  • Webcasting: Most similar to Video Conferencing as it's typically broadcast over the internet at a certain time and users typically cannot choose exactly what they want to watch. However, it's not true Video Conferencing because material can be prepared beforehand even if it's presented as live.
  • RealPlayer: Functionally similar to YouTube but requires a platform to run it(with a built in explorer).
  • Quicktime: Similar to ASF but with more potential for pause/fast-forward/rewind control.
  • *.asf: A Windows Media format that combines the non-controllable streaming with the potential for On Demand access, but it requires a certain platform to run.

References

[1] Wikipedia, "Streaming Media", April 2008, "http://en.wikipedia.org/wiki/Streaming_media" .

[2] Sequence website, "http://www.sequence.co.uk/services/streamingmedia/howdoesitwork.html" .

[3] Dashti, Ali E.,Streaming Media Server Design, Prentice Hall, 2003

[4] Rosolak, Misha, "BuzzWords - Streaming Media", Software Engineering 3I03, McMaster University, Fall 2007.

See also

External links


--Chuh 15:58, 7 April 2008 (EDT)

Personal tools