Streaming Media Standards
Seem to be helpful starting our discussion of the different standards that come to play in current media streaming technology standards by making a necessary distinction between the terms "downloading" and "streaming".
Downloading vs streaming
The term streaming refers to the process of receiving data that is used near immediately as it is received, while the transmission is still in progress and which may not be stored long-term. The process of downloading on the other hand, would imply that the data is only usable when it has been received in its entirety. Increasingly, sites that offer streaming media or in-browser displayed media, place restrictions on the ability of users to save these materials to their devices after received. therefore downloading is not permitted. Streaming then means sending data, usually audio or video, in a way that allows it to start being processed before it's completely received.
Progressive download or progressive streaming
In progressive downloadthe end user experience is similar to streaming media, however the digital file is downloaded to a physical drive on the end user's device, the digital file is typically stored in the temp folder of the associated web browser if the digital media was embedded into a web page or is diverted to a storage directory that is set in the preferences of the media player used for playback. The digital media file will stutter or stop play back if the rate of play back exceeds the rate at which the file is downloaded. The file will begin to play again after further download. It requires no special protocols, but it requires a format that can be processed based on partial content. This has been around for a long time; interleaved images, where the odd-numbered pixel rows are received and displayed before any of the even ones, are a familiar example. They're displayed at half resolution before the remaining rows fill in the full resolution.
Progressive streaming doesn't have the flexibility of true streaming, since the data rate can't be adjusted on the fly and the transmission can't be separated into multiple streams. If it delivers a whole file quickly and the user listens to or watches just the beginning, it wastes bandwidth. The user is given the whole file and can copy it without any effort. "True" streaming uses a streaming protocol to control the transfer. The packets received don't add up to a file.
True streaming may be adaptive. This means that the rate of transfer will automatically change in response to the transfer conditions. If the receiver isn't able to keep up with a higher data rate, the sender will drop to a lower data rate and quality. This may be done by changes within the stream, or by switching the client to a different stream, possibly from another server.
From the inter-networking perspective, a multimedia streaming flow starts with a client request for media files from a server a pipeline reception flow starts over the network which displays on the end user device.
Media streaming protocols deal with the following challenges:
- Rate control: determine the sending rate based on the available bandwidth in the network.
- Error control: improve video presentation quality in the presence of packet loss
- Continuous distribution: TCP/UDP/IP suite provides best-effort, no guarantees on expectation of variance of packet delay.
Some of the techniques apply in multimedia streaming protocols are:
- Rate control:
- scalable compression
- rate filtering
- QoS feedback
- Error Control:
- add redundant data in coding: Multiple Description Coding (MDC), Forward Error Coding (FEC).
- receiver end error concealment: receiver conceal data loss, spatial interpolation used in intra-coded frame, temporal interpolation used in inter-coded frame.
- Continuous distribution:
- network filter, e.g. frame-dropping filter.
- content replication, caching and mirroring.
- resource reservation (RSVP).