[MKV] Problema al convertir *.h264 a AVI [Ayuda!!]

Iniciado por MineHitex, 10 Julio 2013, 22:57 PM

0 Miembros y 2 Visitantes están viendo este tema.

MineHitex

BUenas a todos, bueno ire al grano, mi problema es el siguiente, tengo el archivo h264  (una pelicula) (que antes de ser extraido dicho archivo) la pelicula (osea el contenedor entero MKV) dura 2 h 10 min y 5 segundos, el problema esta cuando convierto el h264 a AVI usando el "MediaCoder",
una vez que lo convierto, el AVI ya no dura 2 h 10 min y 5 seg sino menos (unos 5 min menos) y esto supone un gran problema por que despues el audio que le incorporo no salen sincronizados. (el audio es igual que el orgiinal solo que con unos pcoos cambios)

Porfavor quiero ayuda profesional, que me responda alguien que haya tenido este problema

PD: No soy ningun experto en este tema, es mas empece ayer y hoy llevo todo el dia buscando informacion sobre esto y no encuentro nada, muchas gracias :D

PD2: Se me olvido decir, con el mkvmerge gui (v5.8.0) probe lo del Delay (Desfase en ms), me funciono, peroo solo al principio,  osea los primeros 2 minutos creo que iban bien sincronizados (el video y el audio) pasados esos minutos, nuevamente pasa lo que les digo, mala sincronizacion, asi que el mkvmergen lo descartamos por que no tiene nada que ver.
El problema esta en la conversion de h264 a AVI, por que al convertirlo dura menos?
Gracias nuevamente :D

Kurono90

Hola

El tema pasa que la pista elemental de video .h264 no guarda el metadato que informa a cuantos fps se reproduce y todos los programas, incluidos lo muxers (MP4Box, MKVMerge) cuando se carga una pista .h264 no sabe a cuantos fps anda y asumen por defecto que es a 25 fps, seguramente tu video sera el típico 23.976 fps y el mediacoder asume que es a 25 por lo tanto lo encodea "acelerado", pero es muy leve y casi no se nota, pero en la duración total tiene un impacto de 5 min.

La solución es simple, volvé a meter ese .h264 dentro de un .mkv (no olvides especificarle los fps correctos sino asumirá que va a 25 fps) o directamente no extraigas el .h264 del .mkv original. En este caso al parecer son los contenedores los que contienen este metadato.
Otra opcion es que indexes ese .h264 con DGAVCIndex y cargues con un script de Avisynth al mediacoder, si es que permite cargar scripts .avs.

Saludos  :)

MineHitex

Cita de: Kurono90 en 11 Julio 2013, 01:55 AM
Hola

El tema pasa que la pista elemental de video .h264 no guarda el metadato que informa a cuantos fps se reproduce y todos los programas, incluidos lo muxers (MP4Box, MKVMerge) cuando se carga una pista .h264 no sabe a cuantos fps anda y asumen por defecto que es a 25 fps, seguramente tu video sera el típico 23.976 fps y el mediacoder asume que es a 25 por lo tanto lo encodea "acelerado", pero es muy leve y casi no se nota, pero en la duración total tiene un impacto de 5 min.

La solución es simple, volvé a meter ese .h264 dentro de un .mkv (no olvides especificarle los fps correctos sino asumirá que va a 25 fps) o directamente no extraigas el .h264 del .mkv original. En este caso al parecer son los contenedores los que contienen este metadato.
Otra opcion es que indexes ese .h264 con DGAVCIndex y cargues con un script de Avisynth al mediacoder, si es que permite cargar scripts .avs.

Saludos  :)
Gracias!! Tu ayuda me ha servido de mucho :D Intentare hacer eso de indexarlo con DGAVCIndex, muchas gracias ya lo comentare por aqui si me sirvio :)

Kurono90

De nada  ;)

Para que no tengas dudas de como hacerlo te dejo unos pasos sencillos así no estas buscando de pagina en pagina como cargarlo.

1- Carga el video .h264 al DGAVCIndex y luego vas a "File > Save project", luego de que finalice el proceso se te habrá generado un archivo .dga.

2- Instala Avisynth 2.58 de 32 bits y abrí un bloc de notas.

3- Escribí lo siguiente en el bloc de notas, respeta las comillas y reemplaza rutas por las tuyas:

LoadPlugin("C:\Users\Kurono\My Others\Avisynth\DGAVCDec 1.09\DGAVCDecode.dll")
AVCSource("C:\Users\Kurono\Videos\Youtube\Prueba.dga")
AssumeFPS(24000, 1001)

4- Guarda el archivo de texto con extensión .avs, o guardalo como .txt y después se la cambias a .avs... el icono debe cambiar del bloc de notas debe cambiar por el de Avisynth.

5- Intentalo cargar al MediaCoder, la verdad es que no se si este programa acepta scripts .avs, tendras que probar  :D

Ahora explico que significan las 3 lineas del script, la primera carga un plugin que es externo a Avisynth, en este caso es el DGAVCDecode.dll que esta en la carpeta del ejecutable del DGAVCIndex.exe, lo necesitas para decodificar el .dga.
La segunda linea sirve para cargar el proyecto .dga que creaste, esta linea cargaría el video a traves del indexado .dga.
Y la tercera linea es opcional y no creo que la necesites, si tu video es realmente a 23.976 fps (chequealo con mediainfo) lo que vas a hacer con esta linea es quitarte las dudas en si estará reconociendo los fps correctamente ya que esta linea le estaría diciendo al codificador que el video debe convertirse a 23.976 fps.
Primero intenta usar solo las 2 primeras lineas.

Saludos

MineHitex

Kurono, gracias por tu ayuda, al final me sirvio, bueno al menos consegui lo que quise XD, pero finalmente el archivo convertido pesaba 199gb, una exarada total, gracias por tu ayuda :)

Kurono90

Jajajaaaa 199 GB que exageración  ;D, no uso el Mediacoder pero cuando comprimo a .avi con VirtualDub sucede esto cuando no le diste compresión a XVID, por lo tanto te sale un video "Uncompressed RGB AVI" que es de un tamaño gigante.

Chequea que el Mediacoder no este configurado para Uncompressed RGB, debes comprimir usando XVID y te sale un .avi normal.  :)

Saludos

MineHitex

#6
Cita de: Kurono90 en 16 Julio 2013, 23:49 PM
Jajajaaaa 199 GB que exageración  ;D, no uso el Mediacoder pero cuando comprimo a .avi con VirtualDub sucede esto cuando no le diste compresión a XVID, por lo tanto te sale un video "Uncompressed RGB AVI" que es de un tamaño gigante.

Chequea que el Mediacoder no este configurado para Uncompressed RGB, debes comprimir usando XVID y te sale un .avi normal.  :)

Saludos

Hola Kurono, bueno ahora tengo otro problema, ahora parece ser que no puedo  transformar .h265 metiendo el avs y asi poder transformarlo a AVI, me dice que no se permite dicho formato, pero bueno lo intento con el VirtualDubMod.
Cuando meto el archivo .avs con el script que me indicaste  al VirtualDubMod  (que por cierto le cambie las rutas  por las de mi pc) y me salta un error, te lo muestro con una imagen: http://imageshack.us/f/534/3g23.png/
bueno te pongo aqui por si no se ve bien:

Avisynth open failture:
AVSource: Couldn't find libavcodec.dll specified in the DGA file
(D:\MisArchivos\ScriptAvs.avs, line 2)


Nose a que se debe el error al parecer tiene que ver algo con la dll  libavcodec.dll ssegui todos los pasos que indicas pero nada :( sabes algo acerca de esto?


Bueno modifique el script de esta forma poniendole  las rutas de mi pc y el nombre de la pelicula que quiero transformar:

LoadPlugin("D:\MisArchivos\.Programas\MKVToolnix\dgavcdec109\DGAVCDecode.dll")
AVCSource("D:\MisArchivos\FastAndFurious6.dga")
AssumeFPS(24000, 1001)


Si, el DGAVCDecode lo tengo en la carpeta MKVToolnix para no estar buscando  estos programas de carpeta en carpeta XD

Kurono90

Perdón...  :-[,  olvide que ademas del archivo DGAVCDecode.dll se debe cargar el archivo libavcodec.dll que viene con el DGAVCIndex, carga los 2 y ya te debería funcionar, te debería quedar mas o menos así:

LoadPlugin("D:\MisArchivos\.Programas\MKVToolnix\dgavcdec109\DGAVCDecode.dll")
LoadPlugin("D:\MisArchivos\.Programas\MKVToolnix\dgavcdec109\libavcodec.dll")
AVCSource("D:\MisArchivos\FastAndFurious6.dga")
AssumeFPS(24000, 1001)

Saludos

MineHitex

#8
Pfff ahora me sale otro error si incluyo la dll libavcodec:


Avisynth open failture:
Plugin
D:\MisArchivos\.Programas\MKVToolkinix\dgacdec109\nlibavcodec.dll is
not an AviSynth 2.5 plugin.
(D:\MisArchivos\ScriptAvs.avs, line 2)


Que hagoo??

Kurono90

Hace una cosa, anda al menú de inicio > Todos los programas y busca la carpeta que dice AviSynth 2.5, hace un click para expandirla y de entre las opciones elegí la que dice Plugins Directory.

Se te abrirá una carpeta en la cual debes copiar el archivo libavcodec.dll y si queres ya que estas el DGAVCDecode.dll, haciendo esto ya no necesitas usar la linea LoadPlugin porque los filtros que se copian a esa carpeta se autocargan para Avisynth.

Es indispensable que copies el libavcodec.dll ahí, la otra es opcional aunque recomiendo que también la copies así te olvidas de lo que es cargar filtros a los scripts.

Si copiastes ambas .dll el script te quedará así:

AVCSource("D:\MisArchivos\FastAndFurious6.dga")
AssumeFPS(24000, 1001)


Si solo copiaste la libavcodec.dll te quedará:

LoadPlugin("D:\MisArchivos\.Programas\MKVToolnix\dgavcdec109\DGAVCDecode.dll")
AVCSource("D:\MisArchivos\FastAndFurious6.dga")
AssumeFPS(24000, 1001)

Salu2