Espera hasta que se cargue un video HTML5

Tengo una etiqueta de video, que cambio dinámicamente su fuente, ya que le permito al usuario elegir entre una cantidad de videos de la base de datos. El problema es que cuando cambio el atributo src, el video no se carga aunque se lo diga.

Aquí está mi código:

$("#video").attr('src', 'my_video_'+value+'.ogg');
$("#video").load();
while($("#video").readyState !== 4) {
        console.log("Video is not ready");
};

El código aún permanece en un bucle infinito.

¿Alguna ayuda?

EDITAR:

A Ian Devlin:

//add an listener on loaded metadata
v.addEventListener('loadeddata', function() {
    console.log("Loaded the video's data!");
    console.log("Video Source: "+ $('#video').attr('src'));
    console.log("Video Duration: "+ $('#video').duration);
}, false);

Ok este es el código que tengo ahora. La fuente imprime muy bien, pero todavía no puedo obtener la duración: /

Respuestas a la pregunta(4)

Su respuesta a la pregunta