I would probably farm this out to a service -- lots of options depending on budget and features and they can probably deliver it cheaper and better than you can make it. Most of the better ones have an API so you can make it quite white label.
If you need to roll your own, you probably don't store the video assets in a db per se. Rather, you would manage metadata about the video assets with the videos themselves living on a filesystem. In terms of transcoding, check out ffmpeg -- that is basically how youtube was originally built. Not alot of db programming but more shell scripts glued together with a little db.