There are a number of key areas when designing a high performance and scalable site:
- caching
- Disk IO and location
- Database locking
- Did I mention caching?
It will be impossible for anyone to give you a complete solution on Stackoverflow. You need to sit down and determine what content types you are going to deliver to users, how often that content is going to change and where you can store it.
For caching of content you should look at: Squid, Apache's mod_cache and memcached
Physical disks should be considered. If you scale your solution by having more than one web server then will you share one copy of your content (videos, images etc) or will you have one copy for each server? If you share one copy then beware of IO on that single disk. If you have one copy of the content for each server then you need to keeps the copies in sync.
Database usage should be kept to a minimum. Never, ever store graphics in a database or other content that can be kept in a flat file on disk - web servers do a great job of serving files from disk but databases aren't so good for that. Think what you need to put in your database and how often that data is going to change and be read. When do you need to lock that database? 9 times out of 10 the database is the bottleneck in a system.
Cache. Cache. Cache. Look at delivering as much static content as possible. Build your webpage HTML once and then store it as a cached file - either on disk or in memcached or similar.
To answer some of your technology questions directly:
Web server is a given: Apache Httpd. Not the fastest out there but bullet proof and high configurable.
OS: Your OS is never likely to be your bottleneck so choose something stable and well supported - CentOS works well.
DB: Your obvious choices are mySQL and Postgres. Postgres has better performance of the two, but as I said before you must look to keep your DB activity to a minimum.
Language: It doesn't matter. Seriously. You can create a scalable, well performing site in any of Python, Ruby, PHP, Java, .NET, etc. Your language will not be your bottleneck.