HTTP stream load balancing - does it exist?

I've made sveeral posts about the broadcasting class I'm in at school already, but here we go again. If anyone wants to know the details of the studio I can post that separately, but for the sake of time lets just say we can output in the following formats:

UDP streaming, RTSP, HTTP, and recording to a PC's hard disk.

What I want to do is encode the stream we have set up, which uses UDP and multicast, to OGG/Theora and use it in an HTML5 video tag. I want to build a custom web "app" so the teachers can go to one place and view archived broadcasts, see what's live if anything, and automatically be pointed to the most efficient delivery method their device can handle.

The catch is I want to do this without spending any money. The school has around 3 old Vista-era dual cores we can do whatever the crap we want with, and 6-7 single cores from the XP era, all of which can take up to 4GB of RAM and currently have 10/100 NICs, however we may upgrade them with some cheap 1Gbps NICs.

I want to stream in 720p 30fps and it seems the nitrate for that will be around 5-6mbps. With 30-50 clients at a time, there's no way that will work using only one of those dual core machines. Not only would the machine be overloaded, I'm pretty sure the IT department would want to murder me for having so much bandwidth burned up to hop across all the switches and routers to get to the 8 port switch in our studio. So here's what I'm wondering:

Is there a way we could put those machines strategically throughout the school in communications closets, with a 1gbps link to the rest of the LAN, and have the streaming automatically load balance between all those servers? So for example if we have 5 clients total, 3 of which are connected to "Server 1" the next client gets sent to "Server 2" since it's less loaded?

I know there's load balancing for web servers but will that work for real-time HTTP video streaming? We're talking 1 minute or less of latency here, "live" for all intents and purposes.

I guess what I'm asking is does software exist to do this sort of thing, or do I need to learn PHP and write some?

Try looking into NGINX. It's amazingly capable as a load balancer and has more features with that, like redirecting traffic like a proxy, loading static web pages etc. I'm not too sure how streaming is going on under the hood, but I think you might able to configure NGINX to load streams even from a couple of those pc's at a time, this would balance all of them perfectly. That is assuming you can load chunks of the stream that are not dependent on each other in any way, otherwise you could run into some problems i think. But even if that is not possible, you could redirect a single client to a single server anyways like you described.

I don't know about the software balancing but I would talk with IT and put the machines in the server room with the switches. Also they should be statically addressed which will cause issues with IT's DHCP settings.

if you hook up 8 pcs to the 100Mbps switch the single link that switch has to the backbone can only do 100Mbps as well, thus a load balance wouldn't do anything unless your limiting factor is the cpu and harddrives speed, each computer would need its own connection into the backbone switches.