Long answer? Google for a while and talk to a bunch of developers and then try to weigh your options and go for the one that fits you best. I'm not going to go into how to technically do this because it's a long answer and I don't have the time to type.
So the short answer then.
Look for services like Kaltura, Kyte, even YouTube, but also Vimeo and other larger video hosting services.
The business part...
These services are going to cost you more money in the long run. Sometimes charging you 75 cents per GB transferred! Yea, that's a lot, Amazon S3 is going to set the bar for hosting at about 16 cents per GB. Of course storage costs and requests, but using something like Amazon S3 or Rackspace Files or any other CDN combined with a custom solution is going to be cheaper in the long run.
Your custom solution which can be basic or complex depending on your needs and willingness to compromise can cost a good deal up front. Again, I won't get into the technical aspects of it and depending on the developer you talk to what they propose and what they charge hourly you're going to pay all sorts of different prices.
...But generally speaking trying to find a service is going to be a way to roll out with what you want fast (and yea there's still compromises) but pay more over time. Video uploading custom on your site and even hosted by your site will have you paying less over time.
How much does it cost? Well that all boils down to how big your videos are and how much traffic you have. Just keep in mind with video, 8 times out of 10 you're going to get into the realm of needing CDNs and such.