Network Bandwidth Requirements
A big part of streaming audio is about transferring encoded streams across networks. Transferring a single stream from your authoring computer to a server computer on the other side of the room requires a small amount of bandwidth. Transferring many files or live streams to servers at a remote location and providing for heavy streaming traffic can require enormous government-level amounts of bandwidth. Here's a general assessment of bandwidth needs for streaming audio.
Authoring
Authoring streaming audio requires a certain amount of network connectivity (bandwidth) between you (the author), a streaming server, and your listeners.
The bandwidth that is necessary between the encoding computer and your streaming server is based on whether you're using a live or on-demand encoding scenario. For on-demand encoding, any connection will suffice. Author scheduling requirements are the only important factor in uploading content. Authors can leave a transfer running all night over a dial-up modem connection or do it all in 10 minutes over a broadband DSL line. Although the former scenario might make you drink yak-butter tea and wear burlap, either speed still gets the job done.
When authoring within the live scenario, sufficient bandwidth must exist between the author's encoding computer and the streaming server to enable the stream to be delivered in real-time. Advanced users set up dedicated connections, such as ISDN lines, as insurance to lessen the chance of a stream's delivery being affected by Internet connectivity bottlenecks. A live stream's smooth delivery is also assisted by keeping some headroom within your connectivity.
Always factor in a little space for network overhead, emergency troubleshooting, or possible line problems. If you know you have 128k available (as with ISDN lines), don't send more than an 80k or 100k stream over it. When using a residential DSL connection to send a live stream to a server, encode your audio at bit rates as low as possible to minimize the chance of interruption. The average route from the author's computer to the listener's computer involves about 10 other computers scattered throughout the Internet. (It's not uncommon to go through 20 or even 30.) Each computer you go through is another place you have absolutely zero personal control over the connection's stability. Remember, if your live encoding stream is interrupted, it affects every person who is listening.
Streaming Server
Unicast streaming means that a separate copy of each audio stream is sent to every concurrent listener. This also explains why the largest bandwidth requirements are between the streaming server and listeners. If 100 people are listening to a single 56Kbps stream at the same time, it's necessary to provide for 100 users at 56Kbps each. This amounts to 5600Kbps, or 5.4Mbps. As you can see, a popular stream being accessed by many people at the same time can quickly require substantial bandwidth at the server.
Although you've heard it already, it bears repeating: When choosing a format, it's vital to estimate how many people you need to stream to concurrently.
The more users to which a streaming server delivers content, the more resources (Internet connectivity and computer processing power) that are required. These resource requirements quickly become more pronounced when you improve the quality of your content by encoding at higher bit rates. Obviously, streaming a song to two people simultaneously doesn't require as powerful a server and as much bandwidth as streaming an Emmylou Harris concert live to 10,000 people. You might be able to stream the former from a residential DSL connection, but you can't do the latter without a rack of computers and many megabits of bandwidth.
When determining how many concurrent users you want to support, remember to allow extra headroom for other related traffic. For example, if you're using the same network connection for serving Web traffic, calculate in those requirements as well. If you plan on running a streaming server from a home connection, also include whatever bandwidth you might need for browsing the Web, sending and receiving e-mail, and so on. Finally, always check with the ISP that is hosting your server to get bandwidth cost estimates. Take a look at Table 2.3 to get a feel for how much bandwidth is required for your projected audience.
Table 2.3 Streaming Server Bandwidth Needs by Audience Size
Stream Bit Rate |
# Concurrent Listeners |
Bandwidth Required |
24Kbps |
1 |
24Kbps |
|
10 |
240Kbps |
|
100 |
2.3Mbps |
|
1000 |
23Mbps |
56K |
1 |
56Kbps |
|
10 |
560Kbps |
|
100 |
5.4Mbps |
|
1000 |
54Mbps |
128K |
1 |
128Kbps |
|
10 |
1.2Mbps |
|
100 |
12Mbps |
|
1000 |
125Mbps |