Video streaming: Difference between revisions
Jump to navigation
Jump to search
(using an external editor) |
(using an external editor) |
||
Line 14: | Line 14: | ||
* Clients can be web browser plug-ins or special stand-alone applications. | * Clients can be web browser plug-ins or special stand-alone applications. | ||
* A compression method (also called | * 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. | * A special transport protocol is needed for optimal transfer. |
Revision as of 18:00, 19 March 2007
Definition
- Streaming video is a a video/audio data transfer technique to allow steady and continuous processing by a client.
See also: Videoconferencing
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.
- Bandwidth
Problems arrise 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
Transport protocols
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 gurantee 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 alreay have to other clients (that will save a lot of bandwidth but raises other issues).
Links
- Streaming technologies
- Flash (Wikipedia - Flash)
- Windows Media (Wikipedia - Windows Media)
- Ogg-Vorbis (Wikipedia Ogg)
- Wikipedia (Wikipedia QuickTime)
- RealAudio (Wikipedia RealAudio)
- Bytes and Bibytes
- Mebibyte (Wikipedia)
- Binary prefix (Wikipedia) (Wikipedia)
- Binary vs. Decimal Measurements (pcguide.com)