| Streaming media is media that is consumed (read, heard, viewed) while it is
being delivered. Streaming is more a property of the delivery system than the media itself. The distinction is usually applied to
media that is distributed over computer networks; most other delivery systems are either inherently streaming (radio, television)
or inherently non-streaming (books, video cassettes, audio CDs).
The word "stream" is also used as a verb, meaning to deliver streaming media.
The remainder of this article discusses technology for streaming media over computer networks.
History
Attempts to display media on computers date back to the earliest days of computing, in the mid-20th century. However, little
progress was made for serveral decades, due primarily to the high cost and limited capabilties of computer hardware.
Academic experiments in the 1970s proved out the basic concepts and feasibility of streaming media on computers.
During the 1980s, consumer-grade computers became powerful enough to display media. The primary technical issues were:
- having enough CPU power and bus bandwidth to support the required data rates
- creating low-latency interrupt paths in the OS to prevent underrun
However, computer networks were still limited, and media was usually delivered over non-streaming channels, such as
CD-ROM.
The 1990s saw:
- greater network bandwidth, especially in the last mile
- increased access to networks, especially the Internet
- use of standard protocols and formats, such as TCP/IP, HTTP, and HTML
- commercialization of the Internet
These advances in computer networking combined with powerful home computers and modern operating systems to make streaming
media practical and affordable for ordinary consumers.
Technology
A streaming media system is made of many interacting technologies. Video cameras and audio recorders create raw media. Editors
use composition tools to combine raw media into a finshed work. Servers
store media and make it available to many people. Clients retrieve media from servers and display it to the user. Servers and clients store media in
various file formats; they send and receive it in various stream
formats.
Servers and clients communicate over computer networks,
using agreed upon network protocols. Servers
encode media into a stream for transmission; clients receive the stream and decode it for display. codecs perform the encoding and decoding.
Media is big. Under current (2005) technology, media storage and transmission costs are still significant; therefore, media is
often compressed for storage or streaming.
A media stream can be on demand or live. On demand streams are stored on a server for a long period of time, and
are available to be transmitted at a user's request. Live streams are only available at one particular time, as in a video stream
of a live sporting event.
Protocol issues
Designing a network protocol to support streaming media raises many issues.
Datagram protocols, such as the User Datagram
Procotol (UDP), send the media stream as a series of small packets, called datagrams. This is simple and efficient;
however, packets are liable to be lost or corrupted in transit. In such an event, the client would be unable to play part of the
media, but many clients nowadays employ clever techniques ranging from interpolating over the missing part to attempting partial
or complete recovery using error correction techniques.
The Real-time Transport Protocol (RTP),
the Real Time Streaming Protocol (RTSP) and
the Real Time Control Protocol (RTCP) were specifically designed to stream media over the
network. They are all built on top of UDP.
Reliable protocols, such as the Transmission Control Procotol (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 minimze the effect of this by buffering data for
display.
Another issue is that firewalls are more likely to block UDP-based protocols than TCP-based protocols.
Unicast protocols send a separate copy of the media stream from the server to each client. This is simple, but can lead to
massive duplication of data on the network. Multicast protocols undertake to send only one copy of the media stream over any
given network connection, i.e. along the path between any two network routers. This is a more efficient use of network capacity,
but it is much more complex to implement. Furthermore, multicast protocols must be implemented in the network routers, as well as
the servers.
As of 2005, most routers on the Internet do not support multicast protocols, and many firewalls block them. Multicast is most
practical for organizations that run their own networks, such as universities and corporations. Since they buy their own routers
and run their own network links, they can decide if the cost and effort of supporting a multicast protocol is justified by the
resulting bandwidth savings.
Peer-to-peer (P2P) protocols arrange for media to be sent from clients
that already have it to clients that do not. This prevents the server and its network connections from becoming a bottleneck.
However, it raises technical, performance, quality, business, and legal issues.
Newer camcorders can stream video to a computer over a Univeral Serial Bus (USB) connection. However, USB isn't a true networking technology: it only connects devices
to a single CPU.
Social and legal issues
Some streaming broadcasters use streaming systems that interfere with the ability to record streams for later playback, either
inadvertantly through poor choice of streaming protocol or deliberately because they believe it is to their advantage to do so.
Broadcasters may be concerned that copies will result in lost sales or that consumers may skip commercials. Whether users have
the ability and the right to record streams has become a significant issue in the application of law to cyberspace.
In principle, there is no way to prevent a user from recording a media stream that has been delivered to their computer. Thus,
the efforts of broadcasters to prevent this consist of making it inconvenient, or illegal, or both.
Broadcasters can make it inconvenient to record a stream, for example, by using unpublished data formats or by encrypting the
stream. Of course, data formats can be reverse engineered,
and encrypted streams must be decrypted with a key that resides—somewhere—on the consumer's computer, so these
measures are security through obscurity, at
best.
Efforts to make it illegal to record a stream may rely on copyrights, patents, license agreements, or—in the United
States—the DMCA.
Related articles
References
External Links
Streaming media systems
Description formats
- SDP - Session Description Protocol
- SMIL - Synchronized Multimedia Integration Language
Companies
|