Streaming server: Difference between revisions

Content deleted Content added
{{wiki}} and {{sources}} tags
Peter (talk | contribs)
RD Streaming media per AFD
 
(One intermediate revision by one other user not shown)
Line 1:
#REDIRECT [[Streaming media]]
<!-- Please do not remove or change this AfD message until the issue is settled -->{{#if:{{{nosubst|}}}|<div style="display:none;">}} {{#ifeq:{{NAMESPACE}}|| |{{error:not substituted|AFD}}<div style="display:none;">}}{{#if:{{{nosubst|}}}|</div></div>}}
<div class="boilerplate metadata" id="afd" style="margin: 0 5%; padding: 0 7px 7px 7px; background: #EDF1F1; border: 1px solid #999999; text-align: left; font-size:95%;">
'''This article is being considered for deletion''' in accordance with Wikipedia's [[Wikipedia:Deletion policy|deletion policy]].<br />
Please share your thoughts on the matter at '''[[Wikipedia:Articles for deletion/{{{1|Streaming server}}}|this article's entry]]''' on the [[Wikipedia:Articles for deletion|Articles for deletion]] page.<br />
You are welcome to edit this article, but please do not blank this article or remove this notice while the discussion is in progress. For more information, particularly on merging or moving the article during the discussion, read the [[Wikipedia:Guide to deletion|Guide to deletion]].<br/>
<small>If you created the article, please don't take offense. Instead, please join the discussion and consider improving the article so that it meets the [[Wikipedia:Deletion policy|Wikipedia inclusion criteria]].</small><br/>
{{hidden begin|ta1=left|header=<span style="font-weight:normal;">[[Template:AfD in 3 steps|How to list a page for deletion]] ([{{fullurl:Wikipedia:Articles for deletion/Log/{{CURRENTYEAR}} {{CURRENTMONTHNAMEGEN}} {{CURRENTDAY}}|action=edit}} log])</span>}}
{{AfD doc|{{{1|{{PAGENAME}}}}}}}
{{hidden end}}</div>
{{{category|[[Category:Articles for deletion]]}}}
<!-- This tag is not orphaned (see the ParserFunction) --></div>
<!-- End of AfD message, feel free to edit beyond this point -->
{{wiki}}
{{sources}}
'''Streaming''' is a generic term, which in simplistic terms means encoding or decoding data "on the fly." There are many different ways to send and receive streaming data. There are two ways to look at streaming -- from the client side (e.g. end user's software) and from the server side (e.g. a web server). There are also two kinds of basic streaming types: progressive streaming and packet streaming.
 
 
 
==Packet Streaming==
Packet streaming requires specialized server side software to serve data to a "source." The source may be live (such as a microphone connected to a computer) or in file form. When a request is made, server-side software "feeds" the data to a connected client in small "chuncks" known as packets. Usually, the specialized server software uses a proprietry protocol to negotiate the transfer of each packet so that both the client and the server have an understanding of how the stream is progressing with regard to whether or not the stream has been interrupted. After a client receives and reads an incoming packet, the packet is discarded.
 
From a client side prospective, one might be familiar with the term "buffering" or "negotiating." For example, if a person connects to a live radio broadcast through iTunes (client), there is usually a brief period or time between initiating the connection and when the audio starts to play. It is during this time that iTunes is negotiating with the server to connect to a stream. At times the audio may stop, or seem to skip. During these periods of silence, there is a re-negotiation of the connection, usually due to high network traffic, where the server and client must re-negotiate the connection in order to ensure that no packets are dropped or reduce the connection speed to accommodate the high network traffic by establishing a new, lower bandwidth connection.
 
 
 
==Progressive Streaming==
Progressive streaming is traditionally how most web servers "serve" files, web pages and images. Where the "source" is a file residing on the server. When a request for a file is made, the server transfers the file to the client. The file is not transferred all in one huge "chunk," but is moved across the network using standard intenet-based protocols to negotiate when the file transfer is complete. Once the transfer is complete, the entire file is stored on the clients system.
 
From a client side perspective, one might be familiar with downloading a large JPG image with a browser, such as FireFox (client). Some web browsers will actually start to render the image in the browser window from the top down before the entire file is received. In reality, the browser (client) is receiving and presenting the incoming data as soon as possible -- even though the entire image has not been transferred, the browser can still present portions of the data as the data is being received.
 
For audio or video it means that audio or video will be played back as soon as the data is received on the end user's system/software even though the entire audio or video file has not yet been transferred.
 
A good example of a progressive streaming approach is used by the folks as Wimpy Player. The Wimpy tools all rely on the progressive streaming approach to serve and play audio and video files within a web page.
 
 
==Understanding a basic streaming server setup==
 
A streaming server consists of three pieces of software.
 
1. Server (Server software)
Server Software allows your machine to "serve" data to other machines. If you look at things the other way around, the "server software" manipulates the operating system and the hardware to allow remote machines to connect to your machine.
 
2. Player (DSP capable player)
DSP stands for "Digital Signal Processing." There are a couple well-known and widely used audio players that allow third party "plugins."
 
The majority of the DSP plugins are used to add effects to audio files, such as echo and reverb. The idea being that the audio player makes the analog signal available to the plugin prior to releasing it to the speakers (or audio card) so that cool effects can be applied to the sound.
 
Streaming server DSP plugins (see "bridge" below) take this idea of capturing the signal before it goes to the speakers and rather than applying a cool effect, they transmit the signal/data over a network.
 
Here are two audio players with DSP support:
- WinAmp
- Foobar
 
3. Bridge (DSP conversion software)
Bridging software captures an analog signal, then converts the signal into a digital format, then sends the data to the Server Software. In other words, it "bridges" your audio player software to your server software.
 
The Bridging software does the reverse of what a standard audio player does -- it converts an analog signal into digital data.
 
A standard audio player takes a digital file and converts it into an analog signal so that your speakers can play it. The only way to send stuff over a network is if it is digital. We can not send analog data over a network. Phones and telegraphs are used to do that.
 
What we are trying to do here is send raw digital data directly to another machine. In other words, a remote computer can "point" it's audio player to our machine and thereby receive the raw digital data and then convert the digital data back into an analog signal and then out to the speakers -- i.e. stream audio.
 
{{OriginalResearch}}
 
Here is a diagram of how everything is connected:
 
Computer -> audio player -> bridge -> server ->
-> --- internet --- ->
 
-> bob's computer -> bob's audio player -> bob's speakers -> bob's ears -> bob's brain -> bob's thoughts -> bob's dreams -> bob's words -> bob's actions
 
In other words, a computer can control bob's actions.