Convertir 29.970030 fps .mp4 a 29.970000

Estoy trabajando en un proyecto web donde la posición del mouse del usuario activa un video para reproducirlo hacia adelante y hacia atrás.

Aquí está mi problema : el código que estoy usando para lograr esto requiere que el archivo de video tenga exactamente 29.97000 fps, pero exportar mi trabajo desde Photoshop/Premiere me da 29.970030 fps. Volver a codificar el video con Handbrake me dio el mismo resultado. Actualmente usando OSX 10.11.6.

¿Hay alguna manera de "forzar" las aplicaciones de Adobe Suite/Handbrake para exportar video a exactamente 29.97000 fps, o necesito usar un método más básico (VirtualDubMod, AviSynth, ffmpeg, etc.) para lograr esto?

¡Cualquier ayuda/consejo es muy apreciada!

Si su código requiere literalmente 29.97, entonces use ffmpeg con el argumento -r 29.97.

Respuestas (2)

La definición de "29,97" es correctamente 30 * (1000/1001), que es 29,97002997. Eso es lo que tienes. No sé por qué crees que necesitas exactamente 29,97000, pero probablemente sea un malentendido.

¡Gracias por aclararlo! En mi caso, cuando inspeccioné el archivo de video que pretendo reemplazar con VLC, el panel de información de medios indicó que la velocidad de fotogramas era 29.970000, mientras que el archivo que creé para reemplazarlo aparece como 29.970030. original - - reemplazo
A continuación, ¿alguna idea de por qué la velocidad de fotogramas exacta que informan estos dos archivos sería diferente?
@Androbaut Ni idea. En muchos casos, la "velocidad de fotogramas" se almacena realmente como el intervalo de fotogramas, el inverso de la velocidad. Entonces, el verdadero 29,97 podría almacenarse como 33,36666... ​​(mSeg por fotograma), donde 29,970000 se almacenaría como 33,36670. Pero eso no explica dónde surgió el error. Como dije, tal vez un malentendido por parte de alguien, una mala suposición de que "29.97" significaba exactamente 29.97. También podría ser un redondeo prematuro, o llevar un número de doble precisión como flotante, o... algo más.
¡Gracias por volver a mí! Entonces, para resolver esto de una vez por todas, digamos que mi objetivo (por quijotesco que sea) es que el archivo de video que reproduje aparezca como 29.970000 cuando se examine en VLC (como el otro archivo al que me referí anteriormente) en lugar de 29.970030. ¿Hay alguna manera de que pueda modificar el intervalo de fotogramas (de 33,36666 a 33,36670)?
@Androbaut Depende del códec y el contenedor que esté utilizando. No veo ninguna mención de eso en tu publicación o comentarios. Si el contenedor es (digamos) MP4, entonces necesitará obtener el diseño del encabezado MP4, ubicar los campos que contienen este valor y usar un editor binario/hexadecimal para cambiar los campos. No es necesario realizar ningún cambio en los datos de vídeo. También puede haber herramientas disponibles para editar el encabezado, como MP4Box o mp4ui.sourceforge.net o posiblemente avconv o ffmpeg. Google "velocidad de fotogramas de cambio de encabezado de video" para obtener más información.

Lo más probable es que solo se trate de un error de redondeo en la visualización de un entero de coma flotante. Incluso si ese no es el caso, 0.00003 fps es un cuadro adicional cada nueve horas y media de video. Si el software que consume este archivo no puede manejar eso, debe cambiar ese componente, no el codificador.