Una ayudita con Mencoder...

Hola!

Tengo unas dudas relacionadas con el ripeo de DVD-Video en MPEG-4 (DivX, XviD, etc.) .

Uso Debian GNU/Linux 4.0 testing "Etch" y las aplicaciones que uso para los rips son el archiconocido Mencoder (Mplayer), instalado desde los repositorios de http://www.debian-mulimedia.org, y el vobcopy (instalado desde el mirror oficial de etch en ftp.es.debian.org).

Una vez hecho el back-up del DVD-video al disco duro con vobcopy con el comando:
$vobcopy -n1 -l -i /punto_montaje_lector-dvd/ -o directorio_destino

obtengo en /.../directorio_destino/ tres archivos .vob, dos de dos GB y otro que no llega a los dos gigas, (esto es así por que inclui la opcion -l en la llamada a vobcopy para que no devolviese archivos de mas de dos gigas).

Los archivos serian como nombre_pelicula1-1.vob , nombre_pelicula1-2.vob , nombre_pelicula1-3.vob . Estos archivos tal cual los devuelve vobcopy los puedo ver y escuchar sin problemas con Mplayer; contienen todos los idiomas disponibles en el DVD-video asi como los subtitulos y los tres .vob juntos forman la pelicula principal del DVD-video.

Ahora hago lo siguiente para el rip:

Primero renombro los .vob a .mpg para que Mencoder no se queje, y encuentre rapido que el video que le paso es un MPEG-2. Pero dejando los vob como .vob tambien valdria.

Paso 1, Extraccion del audio.
-----------------------------

Me situo en el directorio en el que estan los .mpg

$mencoder ./nombre_pelicula1-1.mpg -aid numero_del_idioma -oac mp3lame -lameopts abr:br=256:vol=7 -ovc frameno -o ./frameno.avi

Esto lo hace rapido y genera en ese directorio el archivo frameno.avi que no puede ser escuchado con , por ejemplo, totem-xine. Si se renombra a frameno.mp3 totem-xine tampoco lo lee pero XmmS si que lo lee y se escucha el audio de la pelicula,con idioma, por ejemplo, espaniol.

Paso 2, Primera pasada de codificacion de video
------------------------------------------------

$mencoder /ruta/nombre_pelicula1-1.mpg -aid numero_del_idioma -oac copy -sws 2 -ovc xvid -xvidencopts bitrate=2500:vhq=4: pass=1 -vf pp=de,crop=704:432:8:72,scale=704:432 -o /dev/null

Este paso genera el archivo /ruta/divx2pass.log necesario para la segunda pasada del video y con los datos necerarios para que el audio este sincronizado con el video. Mencoder por la salida estandar (pantalla) dice que encuentra la relacion de aspecto a la que se debe ver la peli y escribe un header dicha informacion. -Esto ultimo del header no se muy bien que es pero lo hace.

Paso 3, Segunda pasada de video
-------------------------------

$mencoder /ruta/nombre_pelicula1-1.mpg -aid numero_del_idioma -oac copy -sws 2 -ovc xvid -xvidencopts bitrate=2500:vhq=4: pass=2 -vf pp=de,crop=704:432:8:72,scale=704:432 -o /ruta/nombre_pelicula-parte1.avi

Bueno, despues de esto y haber pasado unas horitas (mi equipo es un poquitin antiguo) tengo el archivo nombre_pelicula-parte1.avi con el primer vob ripeado.... ¡pero!, el audio codificado como AC3 5.1 (liba52) y _NO_ como mp3 como se puede ver que se indica en el Paso 1, 0_o . Ademas, si no pones el "-aid numero_del_idioma" en los pasos 2 y 3 el idioma que te saca es uno que no es el mismo que le indicas en Paso 1 y no se por que. Parece que con lo del paso 2 de "-oac copy" lo que hicese es coger el .mpg y _copiar_ el AC3 5.1 de la pelicula 0_o .

¿Como habria que hacer -con tres pasadas- para que mencoder saque el audio en mp3 sin tener que hacer que en los tres pasos trate el audio?



Otra cuestion es que cuando ya tengo los tres .avi los uno con el comando:

$mencoder -oac copy -ovc copy /ruta/nombre_pelicula-parte1.avi /ruta/nombre_pelicula-parte2.avi /ruta/nombre_pelicula-parte3.avi -o /ruta/nombre_pelicula.avi

¡Pero el dichoso aspect header no lo encuentra o que se yo y no lo escribe en la union final nombre_pelicula.avi y cuando se ve la pelicula en totem-xine o mplayer hay que poner el aspecto, por ejempo a 2.35:1, a mano para que se vea bien lo cual es un rollo y ademas los reproductores domesticos de DivX de salon sacan la peli con una relacion de aspecto que da miedo (muy alargada la imagen).

¿Como se podria evitar esto ultimo que comento?, o lo que es lo mismo, ¿como decirle a mencoder en el paso de la union cual es la relacion de aspectos correcta y que no deje el header de la relacion de aspectos vacio?


Bueno perdon por el rollo-tocho que acabo de soltar .... espero vuestros comentarios.

Salu2.

PD.- Perdonad por no usar tildes ;).
uffff, una pasadita por el man no te vendria mal :P.

Vamos a ver, no me acuerdo de todo, para el aspect ratio hay una ocpion qe la indica explicitamente, deberias usarla. por qe sacas el audio antes ?? mencoder es muy listo, puede hacer el avi con el audio multiplexado en un solo paso. Si haces mencoder file1.vob file2.vob file3.vob -o file.avi te apareceran todos juntitos, y con la pista de audio como debe, siempre qe el aid sea el mismo en todos los videos. Si el aid no es el mismo te recomiendo qe saqes los 3 audios antes, a archivos de audio, nada de frameno.avi ;), los juntes y despues multiplexes, mencoder tiene una opcion para indicar qe la pista de audio es otro archivo, yo la he usado para probar sincronismos y demas. Y mirando las lineas qe utilizas para codificar el video, es perfectamente normal qe el audio este en AC3 (-oac copy ... ). Lo dicho, echale un vistacillo al man.

Un saludo.
Gracias por responder Sertinell !

Cuando empeze a trastear con mencoder, empece por el manual que tienen los artistas del invento --> http://www.mplayerhq.hu/DOCS/HTML/es/mencoder.html .Ayudado por el manual de mencoder y mplayer --> $man mencoder para ver que querian decir las opciones que pasaban a la aplicacion. Pero ambos textos son enormes (no es que me de pereza leer) y con un monton de cosas a tener en cuenta y así de primeras me encontré un poco perdido.

También googleé para ver si podia encontrar soluciones para empezar y que fueran menos traumaticos mis primeros rips. Usé un poco AcidRip y eso pero no me convenció (mas que nada por que no sabia que hacia cada cosa en la gui)

Normalmente los rips los hacia asi, con dos pasadas, así:

$mencoder archivo_con_toda_la_pelicula_principal.vob -sws 2 -alang el_que_sea -sid el_que_sea -oac mp3lame -lameopts abr:br=256:vol=7 -ovc xvid -xvidencopts bitrate=2500:vhq=4: pass=1 -vf pp=de,crop=720:544:0:16,scale=720:544 -o pelicula.avi

$mencoder archivo_con_toda_la_pelicula_principal.vob -sws 2 -alang el_que_sea -sid el_que_sea -oac mp3lame -lameopts abr:br=256:vol=7 -ovc xvid -xvidencopts bitrate=2500:vhq=4: pass=2 -vf pp=de,crop=720:544:0:16,scale=720:544 -o pelicula.avi

y salia una cosa bastante buena.

Pero luego lei lo de tratar el audio por separado para que la cosa fuera un pelín mas rápido y lo probé. Pero se puede ver que no funciona bien.

Intentare sacar con vobcopy mejor un unico vob o unirlos antes como comentas y a sacar el audio por separado... ¿sería algo así?:

$mencoder ./nombre_pelicula1-1.mpg -aid numero_del_idioma -oac mp3lame -lameopts abr:br=256:vol=7 -o ./audio_pelicula.mp3

$mencoder ./nombre_pelicula1-1.mpg -audiofile ./audio_pelicula.mp3 -sws 2 -ovc xvid -xvidencopts bitrate=2500:vhq=4: pass=1 -vf pp=de,crop=704:432:8:72,scale=704:432 -o /dev/null


También que he intentado buscar en google cómo meter dos idiomas en un mismo avi con mencoder pero no encuentro nada (uno que es torpe), a ver si me indicais alguna pagina donde lo expliquen y eso, por que me interesa bastante.

Bueno , salu2 y gracias de antemano al que se anime a contestar.
tratar el audio por separado para seguir tratandolo con mencoder es tonteria, eso tenia sentido antes, cuando mencoder no soportaba lame ni toolame. El manual español esta "bastante" desfasado, yo te recomiendo el ingles encarecidamente. Lo de meter 2 idiomas, va a ser qe con mencoder no. Tendras qe usar un multiplexador a parte de mencoder, para avi's ahora mismo no caigo, pero tienes las ogmtools para ogm, las utilidades de mkv, y mplex para mpeg's. Si vas a usar un multiplexador externo a mencoder si qe puede ser recomendable qe de inicio dejes los archivos de audio y video aparte, tendria qe mirar como hacer para qe mencoder no le ponga cabecera de video a todo lo qe escupe, aunqe podrias tratar el audio con lame, y usar mencoder solo para el video.

Googlea qe la cosa es bastante sencilla.
Muchas gracias otra vez !

Ya veo que lo de meter los dos idiomas no va ser tan sencillo... bueno ya me pondré con ello.

y tomo nota de eso del man en ingles.

Salu2.
4 respuestas