Hiya-
As mentioned before *BANDWIDTH*. Specifically UPLINK bandwidth. ADSL for example has a much lower uplink bandwidth than download bandwidth. For a client appliation, this is usually fine. For critters serving the web, uplink is the real key. Usually if the client is putting *HIS/HER* content ON the server, he/she is much more willing to wait. It's the download that clients will not want to wait for.
Unfortunately, bandwidth also costs....... If you were thinking of doing a video server of medium resolution to a small number of viewers, you can get away with some of the smaller SDSL (symetrical DSL links). However, thinking along a T1 line for uploading might be more to your viewers liking. You can expect hundreds of dollars per month to get that sort of performance.
For the servers, not all that much is really required for performance. Google (from a talk by the CTO at a linux users group meeting) at one time had hundreds and hundreds of consumer off the shelf (COTS) motherboards in large rack mounted systems. Kind of like a precursor to the "blade" systems pushed by the major server houses.
Almost any server can be used to serve video content. For uploading you might want to look at some of the blogging software to hack up and organize stuff.
Clustering of the video servers would be just like any other web server cluster. A disk farm server via 100baseT would most likely be enough bandwidth on the local lan for the video servers to pass data. The load sharing of the servers can be done with a round robin scheduling form for the incoming server. It then passes links to the particular video server for that client instance.
Linux is a popular operating system with Apache as a web server software. PHP is often used for the blogging type software. Fortunately, it's all free software, generally robust, and there are active groups of users/contributors to keep bug fixes current.
I hope this helps!
Cheers,
Rich S.