La duración del vídeo muestra 0:00 — Cómo solucionarlo
El archivo tiene cientos de megabytes (o gigabytes). Es posible que incluso se muestre la miniatura de vista previa del Finder/Explorer. Pero la duración indica «0:00» en QuickTime, en Obtener información de Finder, en el cuadro de diálogo de importación de Premiere y en «ffprobe». Al parecer, el vídeo no tiene duración.
Esto casi siempre es un problema de metadatos, no un problema de contenido. Los datos del vídeo están en el archivo. La información que indica la duración del vídeo es lo que falta o está dañado.
Dónde se encuentra la duración en un MP4/MOV
La duración se almacena en el átomo «mvhd» (encabezado de la película) dentro de MOOV, y también por pista en «tkhd» y «mdhd». Los tres deben coincidir. Si falta MOOV por completo, faltan los tres: la duración se lee como 0 porque no hay nada de donde leer.
Tres patrones:
Patrón 1: falta MOOV → la duración muestra 0
La misma causa principal que MOOV atom not found: la grabación se interrumpió antes de que se escribiera el índice. El campo de duración no existe en ninguna parte del archivo.
Indicio: el archivo es grande, pero «ffprobe» devuelve «moov atom not found» y la duración se indica como 0 o «N/A».
Este es el caso más recuperable.
Patrón 2: MOOV existe pero tiene escala de tiempo = 0 o duración = 0
El MOOV está ahí; el campo de duración dentro de «mvhd» está establecido en cero (o la escala de tiempo es cero, lo que hace que la duración mostrada sea cero por división). Esto sucede a veces con MOOV de escritura parcial que no terminaron de rellenar la duración antes de que la cámara se apagara.
Indicador: «ffprobe» devuelve un recuento de secuencias e información del códec, pero una duración de 0 o N/A. El archivo se reproduce, pero el reproductor no puede buscar y no muestra ninguna barra de progreso.
A menudo se soluciona con un remultiplexor que recalcula la duración a partir de las marcas de tiempo de los fotogramas:
ffmpeg -i broken.mp4 -c copy fixed.mp4
FFmpeg recalcula la duración a partir de las marcas de tiempo a nivel de códec y escribe un MOOV nuevo.
Patrón 3: desbordamiento de enteros en grabaciones muy largas
Menos común. Algunas herramientas antiguas almacenan la duración como un valor de 32 bits con una escala de tiempo alta, que se desborda en el caso de grabaciones de más de unas pocas horas. El valor se convierte en un número negativo o se lee como cero.
Indicio: el archivo es de una grabación de varias horas (cámara de seguridad, transmisión en directo, evento largo). El remultiplexor de FFmpeg soluciona esto escribiendo una duración de 64 bits cuando es necesario.
Cómo averiguar qué patrón
ffprobe -v error -show_format broken.mp4
Mira el resultado:
| Valor «duration» | Patrón |
|---|---|
| «N/A» y advertencia «moov atom not found» | Patrón 1 |
| «0.000000» con información de flujo presente | Patrón 2 |
| Número negativo o gran disparate | Patrón 3 |
| Número real pero incorrecto | Ver a continuación |
Si la duración es real pero incorrecta (por ejemplo, el archivo muestra 12 minutos pero la grabación en realidad duró 47 minutos), se trata de un patrón separado de «duración incorrecta», normalmente una discrepancia en la escala de tiempo. Volver a multiplexar con FFmpeg lo soluciona la mayoría de las veces.
Lo que puedes probar tú mismo
Para el patrón 1: consulta la guía de recuperación de MOOV.
Para los patrones 2 y 3, la solución más sencilla es el re-mux de FFmpeg:
ffmpeg -i broken.mp4 -c copy out.mp4
Esto reescribe el MOOV con la duración calculada a partir de las marcas de tiempo de los fotogramas. Normalmente funciona.
Si «-c copy» no corrige la duración, fuerza la recodificación del flujo de audio (lo que regenera de forma fiable los metadatos de la marca de tiempo):
ffmpeg -i broken.mp4 -c:v copy -c:a aac out.mp4
Si ninguna de las dos opciones funciona, los datos de la marca de tiempo en el flujo del códec también están dañados y la recuperación será más difícil.
Cómo gestiona nuestra recuperación los archivos de duración cero
- Patrón 1: síntesis completa de MOOV a partir de fotogramas. La duración se calcula a partir del recuento y la sincronización de los fotogramas detectados en «mdat».
- Patrón 2 / 3: el MOOV se reconstruye desde cero (no confiamos en el existente). Duración escrita con valores de 64 bits cuando la longitud de la grabación lo justifica; escala de tiempo elegida para que coincida con la tasa natural del códec.
- «co64» para archivos de más de 4 GB para que los desplazamientos de los fragmentos no se desborden junto con la corrección de la duración.
Qué debes hacer
- Sube el archivo.
- Vista previa gratuita de 5 segundos aproximadamente 1 minuto después. La duración en el archivo recuperado mostrará la duración real de la grabación.
- Paga solo si funciona.
FAQ
Mi archivo muestra la duración correcta en VLC, pero 0:00 en QuickTime. Lector permisivo frente a lector estricto. VLC calcula la duración a partir de las marcas de tiempo de los fotogramas incluso cuando MOOV indica 0; QuickTime confía en MOOV. Re-mux soluciona ambos problemas.
El archivo es de una cámara de seguridad/cámara de salpicadero: la duración es incorrecta en las grabaciones de varias horas. Probable patrón 3 (desbordamiento de enteros). El re-mux de FFmpeg con las compilaciones actuales soluciona esto en la mayoría de los casos.
Mi archivo recuperado tiene una duración, pero el reproductor no busca. A menudo falta un «stss» (tabla de muestras de sincronización): el reproductor tiene duración, pero no hay un mapa de fotogramas clave al que buscar. La recuperación reconstruye «stss» a partir de las posiciones observadas de IDR/fotogramas clave.
Obtengo una duración de cero en un archivo de la recuperación de otra herramienta. Es posible que su recuperación haya producido un MOOV parcial. Sube el archivo original (previo a la recuperación); lo reharemos desde cero.
¿Está a salvo mi material de archivo? Servidor en Francia, eliminación automática después de 48 horas, nunca se utiliza para entrenar nada ni se comparte. Política de privacidad.
Relacionado
- No se ha encontrado el átomo MOOV
- No se pueden encontrar los datos esenciales
- Cómo funciona nuestro motor de recuperación
Vista previa gratuita · Sin compromiso
¿Todo listo para recuperar tu vídeo?
Sube tu archivo y obtén gratis una previsualización de 5 segundos en aproximadamente un minuto. Pague solo si la previsualización le parece correcta.
Sube tu vídeo →