Hi, you get Adobe Media Encoder for free when you buy any of the Suite editions of CS4, CS5 or CS5.5. Not sure if you get it if you buy Flash on its own.

That lets you create either FLV or F4V videos. F4V is supposed to be the successor to FLV but personally I stick with FLV for 95% of my video needs. The main reason for that is because FLV supports cue points straight out of the box whilst F4V just serves up a list of them at the start and you have to use your own timer system to fire them.

You can publish under a load of different presets or you can tweak with the quality level manually to get the desired result.

So that will give you a Flash playable video file. To actually play it you can just use the build in FLVPlayback component which is a skinnable video player. There are also a ton of custom video players out there, just have a search for them. There are a lot of free ones so I'd explore those before you splurge any cash out for a paid player.

Forgot to mention, size won't be a matter since it streams down. Obviously it will affect bandwidth if users watch the whole thing but it means the user doesn't have to sit there waiting for the whole file to download before they can watch it. It just buffers X amount and starts playing, buffering more whilst doing that.

No special server required. Just a host with enough room to host the video, the player and HTML/CSS files used to display it.