I have spent days on end scouring the web trying to find an answer to this question. I am developing a club website. I want a club member to be able to login, navigate to and start a stream from his computer's line in/mic. I know I will need to run some sort of streaming service/server control from the box itself (running IIS7 currently). I want the user to be able to "remotely" control the "begin stream" function and be able to disconnect the said stream when finished all the while anonymous users will be able to navigate to a page to connect to the live stream. Obviously, that also means that I would need some sort of client plugin from the users side. Other than expression and smooth streaming, what are my options?

I consider myself an intermediate ASP.NET user and I do have some VB and Java knowledge as well. So, I am not looking for any code here. Just suggestions for what to run server side and what to run client side. Any and all suggestions are welcome. Thank you.

Not much coding is needed, but resources are... mainly 2 ingredients:

1. Encoding software
2. Media server

There are many Flash streaming services and many are free that will host your Flash stream, from live recordings or static archives. Regardless of whether it's Flash or other movie media the principles are the same.

Flash streaming is viewable using Flash players, and normal video streaming can be watched using Windows Media Player. Flash streaming services will provide custom encoders tailored to their services and also provide the code for embedding a suitable player on web pages.

Everyone uses Windows Media Player (WMP), so let's look at setting up a stream for WMP. WMP is free and so is the Windows Media Encoder (WME). WME is so stable that it hasn't been updated in a decade and yes we are still using 10 year old technology and it still works well. WME is to be installed on your PC or laptop and interfaced with your video camera or web cam. Interfacing is easy as WME will detect the cameras suitable/connected and all you need do is select one, then in your WME settings point it to the IP number of your stream server.

The stream server component for WME is Windows Media Server (WMS) which is bundled with every Windows Server version since 2000. It's not installed by default so to enable it you need to use Control Panel > Add/Remove > Windows components.

On the WMS end you can create and configure channels for static media or on-demand. An on-demand channel is what you need so that when you start sending from the encoder, the channel becomes available to your users.

If you have access to WMS it may be a good opportunity to familiarize yourself with how streaming works. For example, you will soon find out that streaming at 1.5 Mbps is not only virtually impossible, but its also a very dumb idea because no-one will be able to watch your stream. And when you find that 200-400 kbps is better all round, then you'll find out that the recording of your stream is very poor quality and that to also create a quality recording, that you will need a second camera, and so on... a learning curve awaits you.

If you don't have access to WMS it may save you a lot of time because you can start with a Flash streaming service that can provide enough bandwidth to connect more than one simultaneous user. Oh yeah, the learning curve is steep... if you want to provide a 500Kbps stream to your audience and you have 100 people watching your stream, you will need bandwidth to provide 100 x 500 Kbps which is about 50 MB per second!

Have fun!

Thanks for the reply. I am up for any challenge. I am not looking to provide streaming video of any kind; Just an audio stream which, as I understand, wouldn't require any sort of monster bandwidth. I like your ideas and will begin to pursue and tinker with them. Thanks again.

The same principles apply even with audio, but yes much less bandwidth is required. I'd start with WMS on your IIS server.