jueves, 23 de diciembre de 2010

Recuperar un fichero MP4 de GoPro corrupto e ilegible

Tal vez le pasó darse cuenta mientras filmaba que la grabación se había parado.

Batería baja, una caída fuerte, los misterios de la electrónica... hay motivos múltiples.

En algunos casos, de vuelta a casa y conectando la cámara con el PC, el fichero tiene un tamaño normal pero resulta ilegible.

Los ficheros MP4 incluyen un índice que describe las características del vídeo y es imprescindible para la buena lectura del fichero. Cuando la grabación se interrumpe repentinamente, la cámara no tiene tiempo de hacer un índice completo.

La GoPro incluye una función que puede solucionar el problema, pero no está bien explicada. Se trata de la función SOS.

Si su último fichero resulta corrupto, ponga nuevamente la tarjeta SD en la cámara y póngala en marcha. Si la pantalla LCD de la cámara indica "SoS", significa que localizó el fichiero corrupto. Basta entonces con apretar cualquier tecla (p.e. el disparador) para que la GoPro intente arreglar el fichero, lo que suele funcionar en la mayoría de los casos (re-escribe el header: los 'moov atom' del fichero MP4). Cuando finaliza la reparación, la luz roja deja de parpadear.

Obviamente, no intente manipular los ficheros antes de probar esta vía.

Si fracasa, algunos consiguen recuperar el flujo vídeo de los ficheros MP4.
Primera condición: que el fichero no esté vacío (compruebe el tamaño)

Existen 2 técnicas: la re-escritura del índice o la exportación de los frames vídeo uno por uno.

Se creó un script PERL con este motivo, lo puede descargar aquí. Sólo permite recuperar el flujo vídeo.
Pasos a seguir:
  1. Bajar la versión 5.8 o superior de Perl
  2. Crear una carpeta
  3. Copiar en la carpeta el contenido del fichero fix.zip, es decir el fichero llamado "fix.pl", que es el script en Perl, y un fichero "lancez_moi.cmd" que es un batch.
  4. Copiar en el mismo repertorio el fichero vídeo dañado (llamemoslo 'video.mp4', y supongamos que se filmó en modo R3).
  5. Doble-clic en el fichero "ejecutar.cmd"
  6. Se abre una ventana. Seguir las instrucciones:
    • nombrar el fichero corrupto y su extensión (video.mp4 en nuestro ejemplo)
    • indicar el modo en que se filmó (r3 en nuestro ejemplo, o sea el modo 720p60fps)
    • para el primer intento indicar 0 para la compensación. Cambiaremos este parámetro sólo si la lectura del vídeo corregido no es satisfactoria
  7. El script intentará arreglar el fichero y crear una copia restaurada con una extensión '.restore.mp4'.
    Comprobar en el lector vídeo VLC que se recuperó la grabación. Si la lectura sale mal, volver a iniciar el script indicando un parámetro de compensación diferente (primero 1, luego 2...) hasta conseguirlo.
    Es probable que tenga dificultades con funciones tipo avance rápido. Es consecuencia de los problemas de índice. Se recomienda volver a codificar.

Para los usuarios de Mac, aquí tienen el código fuente de la herramienta  recoverMP4.
Se trata de un SOURCE diseñado para un tipo muy concreto de ficheros y lo tendrá que adaptar a las características de su vídeo (tamaño, framerate, etc.). Reservado a los expertos.

Para acabar si su fichero perdido tiene un gran valor para Ud, existe un servicio comercial que propone la restauración de los ficheros MP4.
Para los usuarios de Mac, el software gratuito, Treasured, le permitirá comprobar que su fichero existe. Entonces puede solicitar un software de restauración (repair kit, de pago) válido sólo para este fichero.

Existe el mismo servicio para Windows, pero sin posibilidad de previsualizar el vídeo. Tendrá que enviar una parte de la grabación para que el servicio le confirme si es posible arreglarlo o no.

1 comentario:

  1. Hola luego de hacer todos los paso y despues de terminar el scaneo me tira este msj... y nunca me genera el archivo reparado.. porque sera, como hago para solucionarlo...
    El archovo original tine 2,2g...

    Attempting to fix roto.mp4

    Found frame 032248 at 793e9e48Out of memory!
    Presione una tecla para continuar . . .

    ResponderEliminar

Nota: solo los miembros de este blog pueden publicar comentarios.