2011-02-12 13 views
5

Todos los navegadores actualmente implementan HTML5 <video> API de búsqueda de marcos como divisiones de tiempo. p. En un video de 10 fps, Marco # 10 es time=1.0 segundos. Por lo tanto, si desea poder buscar marcos correctamente, es decir avanzar un cuadro hacia adelante, debe ir a time=1.1 segundos. Este cálculo de fotograma a fotograma se realiza conociendo la velocidad de fotogramas del video (fps).¿Cómo calculan los navegadores la velocidad de fotogramas (fps) para HTML5 <video> para una búsqueda de fotogramas precisa?

Sin embargo, no sé cómo los navegadores calculan la velocidad de cuadros.

O bien leen la información del contenedor del archivo de video para alguna propiedad fps, o la calculan por su cuenta.

Al usar FFmpeg, puede obtenerlo por FFmpeg -i video.avi que devuelve Stream #0.0: Video: libvpx, yuv420p, 512x288, PAR 1:1 DAR 16:9, 25 fps, 25 tbr, 1k tbn, 25 tbc, y aquí puede ver el fps.

La pregunta es: ¿es esto exacto? Si no, ¿hay una forma precisa de calcular esto? Solo quiero imitar a los navegadores para poder buscar marcos correctamente.

+0

¿Se las arregló para encontrar cómo descubrir la velocidad de cuadros en los matadatos? –

Respuesta

7

La velocidad de fotogramas de un video no es calculada como, se almacena como parte de los metadatos del video. Solo hay un campo en el encabezado del video que indica cuántos fotogramas por segundo (o posiblemente la cantidad de tiempo que se muestra cada fotograma). Es la misma forma en que el navegador conoce la resolución del video.

+0

¿Y si los metadatos fps son incorrectos/inconsistentes? Es decir, puede haber casos en los que el fps sea una variante del video, ¿no? –

+1

Los metadatos no pueden ser "incorrectos". Si la velocidad de fotogramas es demasiado alta, el video se reproducirá más rápido de lo que usted desea. Nunca he oído hablar de un formato de video que permita que los fps varíen. – Gabe

+4

En realidad, los metadatos pueden ser absolutamente incorrectos, si el valor de fps en el contenedor se establece en algo diferente de los fps de la secuencia. Además, existe tal cosa: se llama velocidad de cuadro variable o VFR. –

Cuestiones relacionadas