# Streaming

A media stream can be streamed either live or on demand. Live streams are generally provided by a means called true streaming. True streaming sends the information straight to the computer or device without saving the file to a hard disk. On Demand streaming is provided by a means called progressive streaming or progressive download. Progressive streaming saves the file to a hard disk and then is played from that location. On Demand streams are often saved to hard disks and servers for extended amounts of time; while the live streams are only available at one time only (e.g. during the Football game).In general, multimedia content has a large volume, so media storage and transmission costs are still significant. To offset this somewhat, media are generally compressed for both storage and streaming. The Solutions should handle the audio and video stream compression, player format negotiation, bandwidth adjustment and serving over the Internet The primary technical issues related to streaming were:

• having enough CPU power and bus bandwidth to support the required data rates
• creating low-latency interrupt paths in the operating system (OS) to prevent buffer underrun.
• greater network bandwidth, especially in the last mile
• use of standard protocols and formats, such as TCP/IP, HTTP, and HTML
• commercialization of the Internet.

# Streaming bandwidth and storage

A broadband speed of 2.5 Mbit/s or more is recommended for streaming movies, for example to an Apple TV, Google TV or a Sony TV Blu-ray Disc Player, 10 Mbit/s for High Definition content.Unicast connections require multiple connections from the same streaming server even when it streams the same contentStreaming media storage size is calculated from the streaming bandwidth and length of the media using the following formula (for a single user and file):

storage size (in mebibytes) = length (in seconds) × bit rate (in bit/s) / (8 × 1024 × 1024)


# Real world example

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

(3,600 s × 300,000 bit/s) / (8×1024×1024) requires around 128 MiB of storage. If the file is stored on a server for on-demand streaming and this stream is viewed by 1,000 people at the same time using a Unicast protocol, the requirement is:

300 kbit/s × 1,000 = 300,000 kbit/s = 300 Mbit/s of bandwidth This is equivalent to around 135 GB per hour. Using a multicast protocol the server sends out only a single stream that is common to all users. Hence, such a stream would only use 300 kbit/s of serving bandwidth. See below for more information on these protocols.

The calculation for Live streaming is similar.

Assumptions: speed at the encoder, is 500 kbit/s.

If the show lasts for 3 hours with 3,000 viewers, then the calculation is:

Number of MiB transferred = encoder speed (in bit/s) × number of seconds × number of viewers / (8*1024*1024) Number of MiB transferred = 500,000 (bit/s) × 3 × 3,600 ( = 3 hours) × 3,000 (nbr of viewers) / (8*1024*1024) = 1,931,190 MiB

# Audio Video Streaming

Codec, bitstream, transport, controlThe audio stream is compressed using an audio codec such as MP3, Vorbis or AAC.

The video stream is compressed using a video codec such as H.264 or VP8.

Encoded audio and video streams are assembled in a container bitstream such as FLV, WebM, ASF or ISMA.

The bitstream is delivered from a streaming server to a streaming client using a transport protocol, such as MMS or RTP.

The streaming client may interact with the streaming server using a control protocol, such as MMS or RTSP.

# Protocol issues

Designing a network protocol to support streaming media raises many issues, such as:

Datagram protocols, such as the User Datagram Protocol (UDP), send the media stream as a series of small packets. This is simple and efficient; however, there is no mechanism within the protocol to guarantee delivery. It is up to the receiving application to detect loss or corruption and recover data using error correction techniques. If data is lost, the stream may suffer a dropout. The Real-time Streaming Protocol (RTSP), Real-time Transport Protocol (RTP) and the Real-time Transport Control Protocol (RTCP) were specifically designed to stream media over networks. RTSP runs over a variety of transport protocols, while the latter two are built on top of UDP. Another approach that seems to incorporate both the advantages of using a standard web protocol and the ability to be used for streaming even live content is the HTTP adaptive bitrate streaming. HTTP adaptive bitrate streaming is based on HTTP progressive download, but contrary to the previous approach, here the files are very small, so that they can be compared to the streaming of packets, much like the case of using RTSP and RTP. Reliable protocols, such as the Transmission Control Protocol (TCP), guarantee correct delivery of each bit in the media stream. However, they accomplish this with a system of timeouts and retries, which makes them more complex to implement. It also means that when there is data loss on the network, the media stream stalls while the protocol handlers detect the loss and retransmit the missing data. Clients can minimize this effect by buffering data for display. While delay due to buffering is acceptable in video on demand scenarios, users of interactive applications such as video conferencing will experience a loss of fidelity if the delay that buffering contributes to exceeds 200 ms. Unicast protocols send a separate copy of the media stream from the server to each recipient. Unicast is the norm for most Internet connections, but does not scale well when many users want to view the same television program concurrently.

Multicasting broadcasts the same copy of the multimedia over the entire network to a group of clientsMulticast protocols were developed to reduce the data replication (and consequent server/network loads) that occurs when many recipients receive unicast content streams independently. These protocols send a single stream from the source to a group of recipients. Depending on the network infrastructure and type, multicast transmission may or may not be feasible. One potential disadvantage of multicasting is the loss of video on demand functionality. Continuous streaming of radio or television material usually precludes the recipient's ability to control playback. However, this problem can be mitigated by elements such as caching servers, digital set-top boxes, and buffered media players. IP Multicast provides a means to send a single media stream to a group of recipients on a computer network. A multicast protocol, usually Internet Group Management Protocol, is used to manage delivery of multicast streams to the groups of recipients on a LAN. One of the challenges in deploying IP multicast is that routers and firewalls between LANs must allow the passage of packets destined to multicast groups. If the organization that is serving the content has control over the network between server and recipients (i.e., educational, government, and corporate intranets), then routing protocols such as Protocol Independent Multicast can be used to deliver stream content to multiple Local Area Network segments. Peer-to-peer (P2P) protocols arrange for prerecorded streams to be sent between computers. This prevents the server and its network connections from becoming a bottleneck. However, it raises technical, performance, quality, and business issues.

# List of streaming media systems

This is a list of streaming media systems with articles. A more detailed comparison of streaming media systems is also available.

1. Servers
2. P2P and multicasting
3. Software as a service
4. Clients
5. Others

## Servers

Ampache Darwin Streaming Server dyne:bolic GNU/Linux live CD ready for radio streaming FFserver included in FFmpeg Firefly Media Server Flash Media Server Flumotion Streaming Server FreeJ video streamer for Icecast Helix Universal Server Helix Universal Streaming Server for mobile phone and broadband RTSP, HTTP iPhone OS, RTMP delivery developed by RealNetworks HelixCommunity RealNetworks Open Source development community Icecast an open source streaming media server Kaltura Full featured open source video platform running on your own servers or cloud. PlayOn a media server that runs on a PC and supports Netflix streaming PS3 Media Server open source media server for streaming to a Playstation 3 QuickTime Broadcaster Sirannon an open source media server and client SHOUTcast audio streaming (HTTP and/or multicast) Squeezebox Server Open source music streaming server, backboned by a music database (formerly known as SlimServer) Steamcast a freeware streaming media server Subsonic is an open source, web-based media server TVersity Media Server partially open source, web-based media server VideoLAN WebORB Integration Server Windows Media Encoder Windows Media Services Wowza Media Server Unified media server for Flash, Silverlight, Apple iOS (iPhone/iPad), QuickTime, 3GPP mobile, IPTV and game console video/audio streaming

## P2P and multicasting

FreeCast Java application which allows peer-to-peer stream broadcast MediaBlog Octoshape PeerCast is a peer-to-peer broadcasting tool which allows you to broadcast without needing much upstream bandwidth Peercasting multicasting streaming in a P2P network Rawflow Red Swoosh Tribler Veoh

## Software as a service

Deezer eMusic gogoyoko Grooveshark iLike Justin.tv Allows users to produce and watch live streaming video. Last.fm Internet radio and music community website Live365 Live365 streaming media library MeeMix mog Musicovery MySpace Pandora Radio Play.it Playlist.com Tikilive.com HD Streaming Qik Radiolicious Internet radio RadioTime RadioPalmwine Red5Cam.Tv Erotic Webcam Chat and Video Streaming ShareTheMusic Songza Spotify free and paid streaming music tool (currently Sweden, Spain, Norway, Finland, France, the Netherlands, United Kingdom and the United States only) Stitcher Radio Tvoop.com Ustream.tv we7 Wuala a free online storage solution with streaming capability

## Clients

Amarok Clementine (forked from Amarok 1.4) MediaMonkey MPlayer Screamer Radio StationRipper Streamripper Totem VLC media player Winamp a freeware media player for Microsoft Windows XBMC, a free and open source media center software and framework platform XMMS Zinf Total Recorder

## Others

Campcaster Open source radio station management, live broadcast and remote automation FFmpeg FORscene Java video reviewing, logging, editing and publishing LastBASH Liquidsoap Mod4Win Muziic Qtch QuickTime SAM Broadcaster Professional Internet broadcasting automation system SomaPlayer Swarmcast Traction Xiph.Org Foundation