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.

Dani AI

Generated

A couple of practical paths that fit what is after (remote start/stop of a member microphone and public listeners) and that build on 's point about needing server-side infrastructure.

Browser-based capture (recommended today): use getUserMedia/WebRTC so the member simply logs in, grants mic access, and clicks "Start broadcast." A small signalling/SFU component on your server (or a hosted service) accepts the published audio and either forwards it directly to listeners (low latency) or records/transcodes it for wider delivery. This avoids plugins and makes remote control trivial from your web UI. See the browser API notes at MDN — getUserMedia.

Encoder-to-server (classic): run an audio-focused stream server (mountpoint model) and have the broadcaster push audio with a lightweight encoder. The server serves listeners over HTTP streams and can also record. This is simple and well supported for audio-only deployments; consider a hosted relay if you expect many simultaneous listeners to avoid saturating your uplink. See Icecast as an example of an audio-first server you can run or host.

Operational tips (applies to either approach): enforce authentication and short-lived publish tokens so only the logged-in member can open the ingest; use TLS for signalling/stream transport; choose Opus/AAC for quality-per-kilobit; plan server-side recording if you must archive; be aware of NAT/firewall issues for direct pushes (browser WebRTC helps here); and check public-performance licensing if you expect music or copyrighted material. For remote start/stop, either have the broadcaster's browser act as the publisher (simplest) or run a tiny agent on the broadcaster machine that polls or receives secure commands from your site to start/stop an encoder.

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.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.