¡Hola, Invitado! (Iniciar sesiónRegístrate)
Hora: 16 Apr 2024, 16:52

Solución autodidacta a problema en archivos MP4

17 Aug 2014, 09:16
Mensaje: #1

Solución autodidacta a problema en archivos MP4

Síntomas del problema:
1* Se reproduce perfectamente, pero el reproductor muestra el tiempo de duración mal. Ejem: 2 horas y fracción, pero la linea de tiempo termina mucho antes.
2* Se reproduce solo el video pero no se escucha el audio.
+----> Al terminar o adelantar el video se reproduce el audio.
3* Se reproduce el video pero se bloquean todas las funciones de la barra de reproducción.
4* Se reproducen bien en reproductores viejos pero no en los nuevos.
+----> No se reproduce en videoconsolas, tablets y otros dispositivos.
5* No poder convertir el MP4 a otro formato similar. Ejem: Convertir a 3gp, MOV, etc.

Posibles razones del problema:
1* Error al hacer el encode.
2* Corrupción del header (cabecera) o metadatos del archivo.
3* Un bug en el programa que creo el MP4 (el más común).
4* No usar un flujo MPEG-4 bajo estándar ISO.
5* Audio delay...
etc.

Soluciones que enmascaran el problema:
1* Usar reproductores y codecs viejos/descontinuados (no recomendable).
2* Usar Media Player Classic y activar el filtro interno para MP4/MOV.
3* Instalar y configurar Haali Media Splitter como predeterminado para MP4.
+----> Al instalar un Codec Pack que incluya Haali y LAV, configurar Haali como default para los MP4.

Solución personal, recomendable y reversible:
Personalmente me gusta tener los archivos originales e íntegros, cuando esto no me es posible por X o Y razón, me aseguro que los cambios sean reversibles.
A partir de aquí, daré instrucciones que posiblemente se dificulten para usuarios de Windows que no utilizaron versiones como Win9X o inferiores. Si son usuarios que les gusta aprender o acostumbran usar el símbolo del sistema o editar el registro de sistema, posiblemente esto les sera pan comido. Usuarios que no usen "W1nb0ws" podrán usar esta pequeña guía como referencia.

Primer paso: Descargar GPAC - http://gpac.wp.mines-telecom.fr/
Abran su navegador de Internet favorito y bajen

Segundo paso: Descargar xdelta3 - http://code.google.com/p/xdelta/
Preferentemente la versión que corresponda a la arquitectura de su sistema operativo, 32-bit, 64-bit, etc. Si no saben que arquitectura tiene su SO usen la de 32-bit...

Tercer paso: Instalar GPAC como usuarios limitados
No tiene caso instalarlo en el sistema, pero hallá cada quien. Preferentemente desmarquen las asociaciones de archivos y los iconos que no quieran.

Ejem:
Solución autodidacta a problema en archivos MP4 - w7unO7i

Solución autodidacta a problema en archivos MP4 - 4W20NUy

Cuarto paso: Poner el video que deseen reparar en el escritorio y también el programa xdelta3 ya que andan por ahí
Si quieren pueden renombrar el archivo xdelta3-X.X.X-x64.exe o xdelta3-X.X.X-win32.exe a xdelta3.exe, solo por comodidad.
Si son usuarios avanzados pueden saltearse esto y hacerlo como a ustedes les plazca =P

Quinto paso: Abrir un "símbolo del sistema" (cmd, consola, etc.)
La instalación del tercer paso creó en "Inicio>Todos los programas" una carpeta llamada Osmo4, pero eso no lo utilizaremos. Lo que nos debe importar es el nuevo agregado a la variable PATH del usuario local.
Si no tienen idea de a que me refiero, no importa. Solo vayan al botón "Inicio" o "Windows" y busquen el símbolo del sistema. Una forma mas directa seria teclear Windows+R y abrir cmd, esto les ahorrara dolores de cabeza especialmente a los que utilicen Winbugs 8.

Ejem:
Solución autodidacta a problema en archivos MP4 - wSBfSKD

Solución autodidacta a problema en archivos MP4 - 3jdeorv

Sexto paso: Ir a la ruta en la que se encuentra el video desde el símbolo del sistema
No importa que no estén familiarizados con MS-DOS o el símbolo del sistema. Simplemente sigan ciegamente las instrucciones aquí presentes y no deberían tener menor problema.
Tecleen en el símbolo del sistema "cd Desktop", si tienen Windows XP en español seria "cd Escritorio", después de teclear eso usen Enter o Intro para confirmar. Siempre deberán confirmar las sentencias para ejecutar las ordenes en símbolo del sistema.

Séptimo paso: Reparar el video
Para esto teclearan "mp4box -add video_original.mp4 video_reparado.mp4", dicha sentencia no es literal y cada quien debe adaptar los nombre como en el caso de las imágenes de ejemplo. Si el nombre del video tiene espacios deberán poner el nombre entre comillas, si el nombre es muy largo pueden teclear los primeros caracteres del nombre del video y autocompletar presionando la tecla Tab las veces que sean necesarias. Cabe resaltar que la parte referente a "video_reparado.mp4" es una archivo que aun no existe, este se creara en el momento en que ustedes den su confirmación con Enter.

Ejem:
Solución autodidacta a problema en archivos MP4 - fU0srxC

Solución autodidacta a problema en archivos MP4 - 0YRirbf

Una vez creado el nuevo video, pueden abrirlo y verlo en el escritorio... y probar si les funciona, ponerle un nombre mejor, agregarle un CRC o que se yo.
Nota 1: En el video que utilicé, el archivo reparado es 220 bytes más pequeño que el original. Por lo que no aumento el tamaño en absoluto, como suele pasar con otras herramientas que dicen "hacer lo mismo", ya que meten información basura o hacen cambios innecesarios.
Nota 2: Cuando mp4box genera un archivo MP4 a partir de otro, utiliza la fecha del localhost para cambiar el "Encoded date" y "Tagged date". La excepción en mi caso es el "Encoded date" de la pista de video, la cual se quedo igual que en el archivo original (valores visibles con MediaInfo).

Octavo paso: Crear un parche que revierta el cambio
Esto es para poder generar los archivos originales a partir de los archivos que ustedes arreglaron, podrían querer recuperar dichos archivos para un reshare en DD, para una red P2P como BitTorrent, eD2k, etc.
Para esto usaremos el xdelta3 que pusimos anteriormente en el escritorio escribiendo en el símbolo del sistema "xdelta3.exe -e -s video_reparado.mp4 video_original.mp4 parche_inverso01.xdelta". Nuevamente la sentencia no es literal y cada quien usa los nombres de archivo que correspondan en su propio caso, con la misma lógica usada en el ejemplo del séptimo paso. El "parche_inverso01.xdelta" nuevamente corresponde a un archivo inexistente que se generara cuando confirmen la sentencia, la extensión no tiene mucha importancia, pero es recomendable una que no se confunda con otra cosa...

Ejem:
Solución autodidacta a problema en archivos MP4 - hfwRZi6

Dichos archivos serán respaldados junto con los archivos arreglados, no necesariamente en la misma carpeta pero si "que estén a la mano" y sean fácilmente identificables por ustedes mismos.

Noveno paso (opcional): Confirmar que el parche funcione.
Aquí necesitaran una aplicación que genere checksums para ver si el parche realmente hace lo que debe hacer. En mi caso usare FSUM en mi PATH para generar CRC32 y SHA256, con eso debería ser mas que suficiente para verificar. Ustedes usen cualquier otra herramienta de su gusto.
Usare nuevamente xdelta3, pero con la sentencia "xdelta3 -d -s video_reparado.mp4 parche_inverso01.xdelta nuevo_video_original.mp4". Una vez ejecutado esto deberían haber obtenido nuevamente el archivo original (el que da problemas).

Ejem:
Solución autodidacta a problema en archivos MP4 - 1sSMt1H

Solución autodidacta a problema en archivos MP4 - RTTQ5HL

Ahora bien, si no les gusta la consola o quieren un sistema mas fácil e intuitivo pueden ir al blog de mrm, y descargar Patchwerk, es una linda GUI para xdelta que ademas crea parches automatizados en lindos *.bat y *.sh ^.^
Nota: Patchwerk requiere NET 3.5, si no sabes que significa eso es porque seguramente no necesitas saberlo... la ignorancia es felicidad.
Si buscan en Internet podrán encontrar una GUI para mp4box, pero cuando arreglan los archivos con dicha aplicación. agregara información que sera visible desde MediaInfo similar a esta:
Código:
Aplicación de codifición : My MP4Box GUI 0.5.6.0 <http://my-mp4box-gui.zymichost.com>
Si no les importa eso pueden descargarla y olvidarse completamente de esta guía.
Si les gusto la guía siéntanse libre de "piratearla", modificarla, hacerla apta y legible para los seres humanos, complementarla, etc, etc. en foros, blogs o lugares de mala muerte de su preferencia.

Nota: Usuarios de "Unix", especialmente los de Ubuntu. Después de instalar gpac e invocar mp4box posiblemente no aparezca, pero si tiene un manual, en el "man" aparece como "MP4Box" y así es como hay que llamarlo, desconozco si en otras distribuciones sea igual.
27 Feb 2016, 03:47
Mensaje: #2

RE: Solución autodidacta a problema en archivos MP4

Si estas por hay me puedes ayudar a mi no me funciono y sinceramente no se que hice mal.....??? o por que no me sale???
28 Feb 2016, 05:46
Mensaje: #3

RE: Solución autodidacta a problema en archivos MP4

Hmm... necesito actualizar esta guía un poquito.
En la versión más nueva de GPAC/MP4Box, ya no funciona la sintaxis: "mp4box -add video_original.mp4 video_reparado.mp4"
Ahora seria: "mp4box -delay 1=0 -delay 2=0 -add video_original.mp4 video_reparado.mp4"

Con eso se eliminarían los "delay" tanto en el traker de audio como el de vídeo... sin mencionar que se corregirá cualquier malformación en el contenedor.
Espero que eso resuelva tu problema. Si no... podrías ser un poco más especifico en cual es la parte que no te funciona.

cya


Usuario(s) navegando en este tema: 1 invitado(s)