Youtube sube los archivos y los codifica en flv (Flash Video), para hacerlo hay una libreria que los convierte en el servidor y te dice donde esta tu archivo ya codificado.
La libreria es
FFMPEG y la llamas desde PHP usando exec, la libreria convierte un archivo subido via POST a FLV, luego tienes que crear un FLV Player con Flash para poder cargar el video.
Saludos.