Video streaming
Definition
- 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
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
- 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
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
- 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
A streamed content is delivered with a multimedia container format, e.g. QuickTime, Real Audio, AVI, ...
Links
General, overviews and discussion
- 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
- See codecs for compression formats
- See multimedia container formats
Streaming technologies
- 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
Other Information
- Bytes and Bibytes
- Mebibyte (Wikipedia)
- Binary prefix (Wikipedia) (Wikipedia)
- Binary vs. Decimal Measurements (pcguide.com)