Video streaming

This article or section is a stub. It does not yet contain enough information to be considered a real article. In other words, it is a short or insufficient piece of information and requires additions.

Draft

## Contents

* 1 Definition
* 2 Architecture
* 2.1 Streaming bandwidth and storage
* 2.2 Transport protocols overview
* 2.3 Major transport protocols
* 2.4 Container formats
* 3 Links
* 3.1 General, overviews and discussion
* 3.2 Streaming and container formats
* 3.3 Streaming technologies
* 3.4 Other Information

## Definition[edit | edit source]

* Streaming video is a a video/audio data transfer technique to allow steady and continuous processing by a client.

See also: Videoconferencing, Flash video component tutorial

## Architecture[edit | edit source]

Multimedia (or video) streaming is based on the following technology

* In order to play video immediately as it is downloaded from the Internet (as opposed to storing it in a file on the receiving computer first) special servers and clients are needed.

* Clients can be web browser plug-ins or special stand-alone applications.

* A compression method (also called Codec) is used to compress data. In order to decompress a file in real time, a fast computer is needed.

* A special transport protocol is needed for optimal transfer.

### Streaming bandwidth and storage[edit | edit source]

Storage size

According to Wikipedia, storage size is calculated from streaming bandwidth and length of the media with the following formula:

storage size (in mebibytes) = length (in seconds) · bit rate (in kbit/s) / 8388.608

Real world example:

One hour of video encoded at 300 kbit/s (this is a typical broadband video for 2005 and it's usually encoded in a 320×240 pixels window size) will be:

(3600 s * 300 kbit/s) / 8388.608 = 128.7 MiB of storage

Note: A mebibyte is roughly a megabyte.

Here is an example taken from the ePresence website: "Compressed video is about 200mb per hour per format. If you support all 3 media formats (Windows Media, Real media and QuickTime) you will need about 500-600 mb per hour. Therefore one a 100 GB hard drive can hold approximately 500 hours of video in one format or 150 hours x 3 formats. Please note that these numbers can vary depending on the encoding options.", retrieved 13:13, 20 March 2007 (MET).

Bandwidth

Problems arise when lots of people pull the a file. E.g. if the above stream is viewed by by 1000 people, one would need:

300 kbit/s * 1000 = 300'000 kbit/s = 300 Mbit/s of bandwidth

Video compression (codecs) can make a difference. E.g. the more recent MPEG-4 H.264 standard has the following performance according to Apple (retrieved 13:13, 20 March 2007 (MET)):

Use Scenario | Resolution & Frame Rate | Example Data Rates

|
|

Mobile Content | 176x144, 10-15 fps | 50-60 Kbps
Internet/Standard Definition | 640x480, 24 fps | 1-2 Mbps
High Definition | 1280x720, 24p | 5-6 Mbps
Full High Definition | 1920x1080, 24p | 7-8 Mbps

### Transport protocols overview[edit | edit source]

See the Wikipedia article on Video streaming. It explains several issues:

Underlying protocol

* Datagram protocols (UDP) based solutions are simpler and more efficient, but there can be data loss.
* Transmission Control Protocol (TCP) based solutions guarantee correct delivery, however this can lead to timeouts and therefore needs clients to have a sufficient buffer (data stored before displayed)

Streaming for multiple clients

* Multicast protocols send only one copy of the media stream over any given network connection (this is more difficult to implement).
* Peer-to-peer solutions will have clients sent data that they already have to other clients (that will save a lot of bandwidth but raises other issues).

### Major transport protocols[edit | edit source]

HTTP

* is not a streaming protocol, but can be used to distribute small files. E.g. as in podcasting

Real-time Streaming Protocol (RTSP)

* allows a client to remotely control a streaming media server, issuing VCR-like commands such as "play" and "pause", and allowing time-based access to files on a server.
* Supported clients: Realplayer, MPlayer, Windows Media Player, QuickTime, Skype

Real-time Transport Protocol (RTP) and Real-time Transport Control Protocol (RTCP)

* The Real-time Transport Protocol (or RTP) defines a standardized packet format for delivering audio and video over the Internet. It was developed by the Audio-Video Transport Working Group of the IETF. [1]
* RTCP partners RTP in the delivery and packaging of multimedia data, but does not transport any data itself. It is used periodically to transmit control packets to participants in a streaming multimedia session. Its primary function is to provide feedback on the quality of service being provided by RTP.

Real Data Transport (RDT)

* RDT is RealNetwork's (RealAudio and RealVideo creator's) proprietary alternative to RTP and often used with the control protocol RTSP

### Container formats[edit | edit source]

A streamed content is delivered with a multimedia container format, e.g. QuickTime, Real Audio, AVI, ...

## Links[edit | edit source]

### General, overviews and discussion[edit | edit source]

* Video in the Web: Technical Challenges and Standardization Soohong Park, Erik Mannens, Rik Van de Walle, Joakim Soderberg, Glenn Adams, Philippe Le Hegaret, and Choong Seon Hong. Published by the IEEE Computer Society

### Streaming and container formats[edit | edit source]

* See codecs for compression formats
* See multimedia container formats

### Streaming technologies[edit | edit source]

Streaming media systems

* BlindSideNetworks started the BigBlueButton open source project in 2007 to enable educational institutions and commercial companies to deliver a high-quality learning experience to remote students. There are integration modules for Moodle, Joomla, Wordpress, ... [2/2011]
* Ampache (wikipedia). Free opensource Web-based Audio file manager.
* ePresence an open source infrastructure for webcasting audio, video and synchronized presentation media and automated creation of navigable and searchable multimedia archives (special hardware and services are commercial)
* QuickTime Streaming Server (QTSS), Supports H.264, MPEG-4 and 3GPP and is included in MacOSX
* Unreal Media Server (commercial streaming media platform to be used for web casting, video conferencing, distance learning, video surveillance, Internet Radio/TV, ....). A free version is limited to 15 concurrent connections.
* Helix Community is a collaborative effort among both leading technology companies and open-source developers to extend the Helix DNA, the first open multi-format digital media platform. It includes Client/Player, Producer, Server software and supports a large range of datatypes (containers and codecs).

Index pages Streaming media systems

* Wikipedia List of streaming media systems
* Wikipedia Streaming media

### Other Information[edit | edit source]

Bytes and Bibytes

* Mebibyte (Wikipedia)
* Binary prefix (Wikipedia) (Wikipedia)
* Binary vs. Decimal Measurements (pcguide.com)