Tutorial básico de ripeo MKV (AFR)
Publicado: 15 Mar 2013 13:48
Hola a todos y todas,
Más abajo van a encontrar un tutorial para comprimir video utilizando el codec X264 y el contenedor MKV. El tutorial presenta algunas limitaciones y particularidades que paso a detallar:
1) Es completo, pero no exhaustivo. Funciona más como una orientación.
2) Está pensado para comprimir "a mano", y no en forma automatizada.
3) Es sencillo, pero requiere algunos conocimientos previos, por ejemplo, saber evaluar el archivo de video indexado para buscar fantasmas, entrelazado, etc.
4) Por el mismo motivo, sólo cubre aspectos del encoding (compresión). No provee soluciones para las líneas de script necesarias en caso de fantasmas, entrelazado, etc.
5) La compresión se hace sin utilizar un software específico, sólo el codec X264 y la línea de comando de Windows (cmd).
6 El tutorial no analiza ripeos X264 en CFR (Constant Rate Factor). Sólo cubre ripeos en AFR (Advanced Filesize Regulation) es decir, ripeos en tañamos susceptibles de ser almacenados en DVD-R (1 GB. 1.45 GB, 2.18 GB)
7) No tiene respaldo técnico. Yo lo uso siempre, y podría dar algunas explicaciones respecto a "cómo hacer", pero no explicar muchos "porqués", ya que no soy técnico, sino un usuario con experiencia.
El tutorial no es mío. Su autor me permitió publicarlo sin mencionar su nombre, así que, gracias, anónimo, por compartir tus conocimientos con la comunidad ripeadora. Como algunas personas no tienen conocimientos previos de extracción del video y audio desde el DVD original e indexación, le agregué al tutorial una primera parte de mi autoría explicando estos temas. Pongo ese texto en bordó para diferenciarlo del tutorial original.
Que los disfruten y aprovechen, ¡bienvenidos al mundo X264/MKV!
-------------------------------------------------------------------------------------------------------------------------------------
Guía Básica de Codificación X264
Más allá de las opciones de ripeo que ofrece x264, la principal diferencia frente a los AVIs es que nos podemos dar el lujo de ripear en formato anamórfico y conservar la resolución completa de los DVDs. Lo único que tenemos que decidir es cual es el PAR (Pixel Aspect Ratio) del DVD.
Divido el mini-tutorial en Extracción de video e indexado, Aspect Ratio, Test de Compresibilidad y Codificado. Todos los demás temas que hacen al ripeo (desentrelazado, filtrado para sacar ruido, etc.) son comunes entre ripeos AVI/Xvid o MKV/x264, así que no los vamos a tratar aquí.
Primer paso, extracción correcta del video
Vas a necesitar bajar e instalar los siguientes programas: MakeMKV, MKVToolnix, y MKVExtractGUI (MKVExtractGUI es un programa asociado al MKVToolnix, por eso debes instalar primero este último.)
Lo primero es evitar problemas en la extracción del video y el audio del DVD. Hay muchos métodos buenos (DVDDecrypter, PGDemux) pero todos pueden dar cada tanto alguna sorpresa, por ejemplo, que al final de la cadena de video te quede pegado el trailer de la película que venía en el DVD. La mejor manera de evitar esto es utilizando MakeMKV, ya que es el único software que no da errores de este tipo en la extracción.
Una vez que lo tengas instalado, abre el DVD (si es un DVD original, se abrirá automáticamente cuando lo pongas en el DVD-Rom, si es un DVD-R que tienes en el rígido, búscalo navegando a través del icono de folder. Una vez que abras el DVD en el programa, te aparecerán los contenidos del DVD en la ventana de la izquierda. Deselecciona todo, menos los correspondientes a la película. ¿Cómo sabes cuál es? Por la duración. Una vez que tengas seleccionada la película, eliges una ruta, y le das OK (como más adelante vamos a trabajar con lineas de comando, te sugiero que abras rutas fáciles, creando carpetas directamente en el directorio raíz del disco C). Al cabo de un rato tendrás la película extraída en la forma de un solo archivo MKV, ¡pero ese no es el ripeo!, es sólo un contenedor MKV con el archivo de video MPEG original del DVD, sin comprimir, y la cadena/s de audio/s. Sigamos adelante.
Una vez que tengas la película extraída, abre MKVExtractGUI, y arrastra el archivo MKV que te dejó MakeMKV al primer campo, Input file. Te aparecerán en el campo central la cadena de video, la de audio, los subtítulos, y el timing de las escenas. Selecciona sólo la cadena de video y la de audio (o "las" si fuera dual). Si vas a utilizar esos subs, seleccionalos también, de lo contrario no. Tilda la casilla que dice "Use source dir for output, para que todo vaya alk mismo directorio del gran archivo MKV original. Dale OK. Al cabo de un rato tendrás una cadena de video MPEG, una (o más) cadena/s de audio, y dos archivos sub+idx de subtítulos. Ya podemos enpezar el proceso de indexado
Segundo paso, indexado del video
Vas a necesitar bajar e instalar MeGUI, AviSynth y VirtualdubMod (generalmente, después de instalarlo, MeGUI te pide actualizar todos sus archivos, acepta y espera a que se actualice).
Luego baja esta carpeta de plugins: TinyUpload
Descomprímela y guarda todo su contenido en la carpeta Plugins de AviSynth. Dentro de la carpeta de plugins vas a encontrar también una carpeta llamada system32, copia las 3 DLLs de esa carpeta en la carpeta WINDOWS\system32\ de tu sistema si usas un sistema de 32 bits. Si usas un sistema de 64 bits, la carpeta es WINDOWS\SysWOW64\.
Ya podemos seguir. Lo que viene es indexar el archivo de video para crear un archivo d2v, y a partir de él dejar listo el script avs (no importa si todo esto suena a chino, luego te resultará familiar) para hacer el ripeo.
Abres Megui, vas a Tools > File Indexer. En Input file, navegas hasta el archivo MPG que extrajiste del primer MKV. En Output file, eliges un nombre de archivo para el d2v, eliges la ruta, tildas On completion load files y and close, y haces click en Queue.
Seguimos. El programa va a indexarte el archivo. Cuando termine de hacerlo te abrirá el video en una pantalla (se va a mostrar anamórfico, luego, no te extrañes si lo ves deformado) y te dará algunas opciones.
Del cuadro de diálogo que se abre junto al del video (se te abrirán dos, uno con el video, y otro con opciones, llamado AviSynth script creator) tilda la casilla crop, y con las flechitas procede a crear el crop (recorte) de las banda negras que habitualmente traen los DVDs (algunos no las traen, pero son muy excepcionales). Suma el número de pixeles que recortas (arriba y abajo, y derecha e izquierda) para dar el paso siguiente.
El cropeo en mod4 (que la suma de los piexeles que recortas a cada lado sea divisble por cuatro) es un poco más compatible que otros (hay mucha discusión sobre esto, pero dejémosla para más adelante) así que de momento nos vamos a concentrar en eso. Si por ejemplo la suma de pixeles que recortas arriba y abajo suma 32 (32/4=8) está perfecto, pero si suma 30 (30/4=7,5) necesitas cortar dos pixeles más arriba o abajo hasta que sea divisible por cuatro.
Una vez que tengas eso, haces click en Preview AVS Script parar revisar el cropeo. Mueve el slide hasta agarrar zonas claras del video (cuanto más claras, mejor) que te permitan cerciorarte que no te quedó ningún pixel negro en los bordes. Una vez que estés seguro de eso, en Output file, escribe el nombre del archivo AVS, elige una ruta, y haz click en Save.
Ahora ve a la carpeta en donde guardaste el script AVS. Haz click derecho sobre él, Abrir con, y elige el Bloc de notas. Se verá algo más o menos así, al margen de las rutas:
Edita todo, quitando las dos líneas que empiezan con LoadPlugin y todas las demás que empiecen con #. Deja solo la línea de crop y la DGDecode_mpeg2source("C:\mipelicula/mipelicula.d2v", info=3) a la que puedes quitarle también la parte que dice , info=3. Te quedará más o menos así:
Guárdalo (save), haz click derecho sobre él y elige abrirlo con VitualDubMod. Si se abre, ya estamos listos para el próximo paso
[/color]
Aspect Ratio
A través del reporte que deja DGIndex en el archivo d2v veremos si el DVD de origen es PAL/NTSC, Fullscreen/Widescreen.
Copiamos este nuevo script en un block de notas y lo guardamos como como SAR.avs, en el mismo directorio en donde guardamos mi.pelicula.avs. Ahora vamos a editar format (formato) y wide (ancho) en este script, de acuerdo a los datos reportados por DGIndex en el archivo d2v.


Recordando que:
720x576 = PAL
720x480 = NTSC
4:3 = Fullscreen
16:9 = Widescreen
Abrimos SAR.avs en VDM (VirtualDubMod). No nos preocuparemos por los bordes negros que se observarán, sólo nos concentraremos en el AR. Miraremos tantos cuadros como sean necesarios para decidir si es ITU o no. La tercera línea dice x264 --sar junto a un número, por ejemplo 40:33. Lo anotamos. Ese es el Pixel Aspect Ratio aka SAR (Sample Aspect Ratio).
Test de Compresibilidad
1) Abrimos mi.pelicula.avs en MeGUI:
2) Vamos a Tools -> Bitrate Calculator. Elegimos la cadena de audio, la abrimos, y elegimos también un tamaño final de archivo (filesize), por ejemplo, 1/4DVD. Nota: si se desea arribar a un tamaño exacto de archivo, lo ideal es colocar el tamaño en MB, poniendo 1480 MB, para archivos finales de 1.45 GB, y 2239 MB para archivos finales de 2.18 GB.
3) Anotamos el bitrate resultante, en el ejemplo de arriba es 1895 kbits/s
4) Editamos mi.pelicula.avs y le agregamos selectrangeevery(280,14) como última línea. En el ejemplo que seguimos, el script debería verse así:
5) Necesitamos conocer la ruta al codec x264, a mi.pelicula.avs y el birate que obtuvimos en el paso 3). Con estos datos, abrimos una ventana de cmd (lìnea de comando) y, editando convenientemente las rutas, hacemos correr lo siguiente:
"D:\x264\x264.exe" --preset veryslow --pass 1 --bitrate 1895 --stats "h:\my.movie.stats" --level 4.1 --output NUL "h:\my.movie.avs" --no-fast-pskip --no-dct-decimate --deblock -2:-1 --b-pyramid normal --aq-strength 0.8 --psy-rd 1.2:0.15 --slow-firstpass
A tener en cuenta: a --slow-firstpass no es necesario para la codificación final, pero es MUY importante para el test de compresibilidad.
Cuando el test termine, buscamos el valor que marca la línea final ratefactor. Valores entre 19.00 and 20.40 generalmente están bien. Si el valor es superior a 20.50, apuntamos entonces a un tamaño de archivo mayor al hacer el cáclculo del bitrate y hacemos correr el test otra vez. Si, en cambio, el valor está cerca de 18.50 o menos, haremos correr el test nuevamente con esta lìnea de comando (siempre editando convenientemente las rutas):
"D:\x264\x264.exe" --preset veryslow --tune grain --pass 1 --bitrate 1895 --stats "h:\my.movie.stats" --level 4.1 --output NUL "h:\my.movie.avs" --no-fast-pskip --b-pyramid normal --slow-firstpass
Si todavía da un resultado menor a 19.00, utilizaremos un tamaño de archivo más pequeño.
6) A continuación, borramos selectrangeevery(280,14) del scrip mi.pelicula.avs y borramos los archivos *.stats and *.stats.mbtree generados en el directorio.
Nota:
Codificado
De acuerdo al test de compresibilidad, utilizaremos la línea de codificación "regular", o la que incluye --tune grain:
Primera pasada (--slow-firstpass ya no es necesario)
Edite la ruta al codec x264, al script .avs y .stats, y coloque el bitrate necesario.
"D:\x264\x264.exe" --preset veryslow --pass 1 --bitrate 1895 --stats "h:\my.movie.stats" --level 4.1 --output NUL "h:\my.movie.avs" --no-fast-pskip --no-dct-decimate --deblock -2:-1 --b-pyramid normal --aq-strength 0.8 --psy-rd 1.2:0.15
Segunda pasada
Edite la ruta al codec x264, al script .avs, .stats y .MKV, coloque el bitrate necesario y el SAR que corresponda.
"D:\x264\x264.exe" --preset veryslow --pass 2 --bitrate 1895 --stats "h:\my.movie.stats" --level 4.1 --output "h:\my.movie.mkv" "h:\my.movie.avs" --no-fast-pskip --no-dct-decimate --deblock -2:-1 --b-pyramid normal --aq-strength 0.8 --psy-rd 1.2:0.15 --sar 40:33
Notas:
Seteos avanzados
Compresibilidad: ¿Usted cree que la compresibilidad es muy buena para el codificado "regular" pero no lo suficiente para utilizar --tune grain? Utilice entonces la codificación regulara como base y reemplace --deblock -2:-1 por --deblock -3:-3 y agregue --qcomp 0.7
Si usted está utilizando el seteto regular de codificación, entonces otros seteos que podrían ser necesarios de acuerdo a la fuente (DVD) utilizada son Psy-Trellis y AQ.
AQ: Grano fino sobre fondos planos o de bajo contraste como este podrían beneficiarse con un AQ mayor:

En estos casos, cuando utilice la opción de codificación "regular" puede elevar el sugerido --aq-strength 0.8 por --aq-strength 1.0
Si la fuente tuviera un grano muy grueso todo el tiempo y en todas partes, un AQ mayor podrìa entonces arruinar la calidad general introduceindo un poco de blur sobre los bordes definidos. En esos casos mantenga el seteo sugerido, o bájelo hasta --aq-strength 0.7, pero no vaya más abajo.
Psy-Trellis: Si la fuente tiene pocos detalles y mucho grano, podría beneficiarse con un mayor Psy-Trellis. Si está utilizando la opción de codificación "regular", cambie --psy-rd 1.2:0.15 por --psy-rd 1.2:0.25
Cómo hacer capturas de pantalla
1) Haga el remuxado de video, audio (y subs, si lo desea) utilizando MKVToolnix.
2) Ábralo en VirtualDubMod utilizando este script, que incluye número y tipo de cuadro:
FFVideoSource("my.movie.mkv")
Spline36Resize(converttorgb,ffsar>1?round(width*ffsar):width,ffsar<1?round(height/ffsar):height).ScriptClip("""subtitle("Frame: "+string(current_frame)+"\nType: "+Chr(ffpict_type),lsp=0)""",after_frame=true)
3) Para capturas limpias (sin número y tipo de cuadro):
FFVideoSource("my.movie.mkv")
Spline36Resize(converttorgb,ffsar>1?round(width*ffsar):width,ffsar<1?round(height/ffsar):height)
¡Listo!
Para evitar malos entendidos, aquí van algunos ejemplos de líneas de comando:
Seteo "regular"
Primera pasada:
"D:\x264\x264.exe" --preset veryslow --pass 1 --bitrate 1895 --stats "h:\my.movie.stats" --level 4.1 --output NUL "h:\my.movie.avs" --no-fast-pskip --no-dct-decimate --deblock -2:-1 --b-pyramid normal --aq-strength 0.8 --psy-rd 1.2:0.15
Segunda pasada:
"D:\x264\x264.exe" --preset veryslow --pass 2 --bitrate 1895 --stats "h:\my.movie.stats" --level 4.1 --output "h:\my.movie.mkv" "h:\my.movie.avs" --no-fast-pskip --no-dct-decimate --deblock -2:-1 --b-pyramid normal --aq-strength 0.8 --psy-rd 1.2:0.15 --sar 40:33
Seteo --tune grain
Primera pasada:
"D:\x264\x264.exe" --preset veryslow --tune grain --pass 1 --bitrate 1895 --stats "h:\my.movie.stats" --level 4.1 --output NUL "h:\my.movie.avs" --no-fast-pskip --b-pyramid normal
Segunda pasada:
"D:\x264\x264.exe" --preset veryslow --tune grain --pass 2 --bitrate 1895 --stats "h:\my.movie.stats" --level 4.1 --output "h:\my.movie.mkv" "h:\my.movie.avs" --no-fast-pskip --b-pyramid normal --sar 40:33
Seteo "regular" con --slow-firstpass
Primera pasada:
"D:\x264\x264.exe" --preset veryslow --pass 1 --bitrate 1895 --stats "h:\my.movie.stats" --level 4.1 --output NUL "h:\my.movie.avs" --no-fast-pskip --no-dct-decimate --deblock -2:-1 --b-pyramid normal --aq-strength 0.8 --psy-rd 1.2:0.15 --slow-firstpass
Segunda pasada:
"D:\x264\x264.exe" --preset veryslow --pass 2 --bitrate 1895 --stats "h:\my.movie.stats" --level 4.1 --output "h:\my.movie.mkv" "h:\my.movie.avs" --no-fast-pskip --no-dct-decimate --deblock -2:-1 --b-pyramid normal --aq-strength 0.8 --psy-rd 1.2:0.15 --sar 40:33
Seteo "regular" con extra detalle (ver Seteos Avanzados)
Primera pasada:
"D:\x264\x264.exe" --preset veryslow --pass 1 --bitrate 1895 --stats "h:\my.movie.stats" --level 4.1 --output NUL "h:\my.movie.avs" --no-fast-pskip --no-dct-decimate --deblock -3:-3 --b-pyramid normal --aq-strength 0.8 --psy-rd 1.2:0.15 --qcomp 0.7
Segunda pasada:
"D:\x264\x264.exe" --preset veryslow --pass 2 --bitrate 1895 --stats "h:\my.movie.stats" --level 4.1 --output "h:\my.movie.mkv" "h:\my.movie.avs" --no-fast-pskip --no-dct-decimate --deblock -3:-3 --b-pyramid normal --aq-strength 0.8 --psy-rd 1.2:0.15 --qcomp 0.7 --sar 40:33
Seteo --tune grain con --preset placebo
Primera pasada:
"D:\x264\x264.exe" --preset placebo --tune grain --pass 1 --bitrate 1895 --stats "h:\my.movie.stats" --level 4.1 --output NUL "h:\my.movie.avs" --no-fast-pskip --b-pyramid normal
Segunda pasada:
"D:\x264\x264.exe" --preset placebo --tune grain --pass 2 --bitrate 1895 --stats "h:\my.movie.stats" --level 4.1 --output "h:\my.movie.mkv" "h:\my.movie.avs" --no-fast-pskip --b-pyramid normal --sar 40:33
Nota: siempre recuerde utilizar --slow-firstpass para el test de compresibilidad, aun cuando usted no vaya a utilizar slow firstpass cuando codifique.
----------------------------------------------------------------------------------------------------------------------------------------
Nota: el tutorial no está actualizado, y es probable que algún enlace pueda estar roto. Cualquier inquietud, reportarla aquí.
Saludos
Más abajo van a encontrar un tutorial para comprimir video utilizando el codec X264 y el contenedor MKV. El tutorial presenta algunas limitaciones y particularidades que paso a detallar:
1) Es completo, pero no exhaustivo. Funciona más como una orientación.
2) Está pensado para comprimir "a mano", y no en forma automatizada.
3) Es sencillo, pero requiere algunos conocimientos previos, por ejemplo, saber evaluar el archivo de video indexado para buscar fantasmas, entrelazado, etc.
4) Por el mismo motivo, sólo cubre aspectos del encoding (compresión). No provee soluciones para las líneas de script necesarias en caso de fantasmas, entrelazado, etc.
5) La compresión se hace sin utilizar un software específico, sólo el codec X264 y la línea de comando de Windows (cmd).
6 El tutorial no analiza ripeos X264 en CFR (Constant Rate Factor). Sólo cubre ripeos en AFR (Advanced Filesize Regulation) es decir, ripeos en tañamos susceptibles de ser almacenados en DVD-R (1 GB. 1.45 GB, 2.18 GB)
7) No tiene respaldo técnico. Yo lo uso siempre, y podría dar algunas explicaciones respecto a "cómo hacer", pero no explicar muchos "porqués", ya que no soy técnico, sino un usuario con experiencia.
El tutorial no es mío. Su autor me permitió publicarlo sin mencionar su nombre, así que, gracias, anónimo, por compartir tus conocimientos con la comunidad ripeadora. Como algunas personas no tienen conocimientos previos de extracción del video y audio desde el DVD original e indexación, le agregué al tutorial una primera parte de mi autoría explicando estos temas. Pongo ese texto en bordó para diferenciarlo del tutorial original.
Que los disfruten y aprovechen, ¡bienvenidos al mundo X264/MKV!
-------------------------------------------------------------------------------------------------------------------------------------
Guía Básica de Codificación X264
Más allá de las opciones de ripeo que ofrece x264, la principal diferencia frente a los AVIs es que nos podemos dar el lujo de ripear en formato anamórfico y conservar la resolución completa de los DVDs. Lo único que tenemos que decidir es cual es el PAR (Pixel Aspect Ratio) del DVD.
Divido el mini-tutorial en Extracción de video e indexado, Aspect Ratio, Test de Compresibilidad y Codificado. Todos los demás temas que hacen al ripeo (desentrelazado, filtrado para sacar ruido, etc.) son comunes entre ripeos AVI/Xvid o MKV/x264, así que no los vamos a tratar aquí.
Primer paso, extracción correcta del video
Vas a necesitar bajar e instalar los siguientes programas: MakeMKV, MKVToolnix, y MKVExtractGUI (MKVExtractGUI es un programa asociado al MKVToolnix, por eso debes instalar primero este último.)
Lo primero es evitar problemas en la extracción del video y el audio del DVD. Hay muchos métodos buenos (DVDDecrypter, PGDemux) pero todos pueden dar cada tanto alguna sorpresa, por ejemplo, que al final de la cadena de video te quede pegado el trailer de la película que venía en el DVD. La mejor manera de evitar esto es utilizando MakeMKV, ya que es el único software que no da errores de este tipo en la extracción.
Una vez que lo tengas instalado, abre el DVD (si es un DVD original, se abrirá automáticamente cuando lo pongas en el DVD-Rom, si es un DVD-R que tienes en el rígido, búscalo navegando a través del icono de folder. Una vez que abras el DVD en el programa, te aparecerán los contenidos del DVD en la ventana de la izquierda. Deselecciona todo, menos los correspondientes a la película. ¿Cómo sabes cuál es? Por la duración. Una vez que tengas seleccionada la película, eliges una ruta, y le das OK (como más adelante vamos a trabajar con lineas de comando, te sugiero que abras rutas fáciles, creando carpetas directamente en el directorio raíz del disco C). Al cabo de un rato tendrás la película extraída en la forma de un solo archivo MKV, ¡pero ese no es el ripeo!, es sólo un contenedor MKV con el archivo de video MPEG original del DVD, sin comprimir, y la cadena/s de audio/s. Sigamos adelante.
Una vez que tengas la película extraída, abre MKVExtractGUI, y arrastra el archivo MKV que te dejó MakeMKV al primer campo, Input file. Te aparecerán en el campo central la cadena de video, la de audio, los subtítulos, y el timing de las escenas. Selecciona sólo la cadena de video y la de audio (o "las" si fuera dual). Si vas a utilizar esos subs, seleccionalos también, de lo contrario no. Tilda la casilla que dice "Use source dir for output, para que todo vaya alk mismo directorio del gran archivo MKV original. Dale OK. Al cabo de un rato tendrás una cadena de video MPEG, una (o más) cadena/s de audio, y dos archivos sub+idx de subtítulos. Ya podemos enpezar el proceso de indexado
Segundo paso, indexado del video
Vas a necesitar bajar e instalar MeGUI, AviSynth y VirtualdubMod (generalmente, después de instalarlo, MeGUI te pide actualizar todos sus archivos, acepta y espera a que se actualice).
Luego baja esta carpeta de plugins: TinyUpload
Descomprímela y guarda todo su contenido en la carpeta Plugins de AviSynth. Dentro de la carpeta de plugins vas a encontrar también una carpeta llamada system32, copia las 3 DLLs de esa carpeta en la carpeta WINDOWS\system32\ de tu sistema si usas un sistema de 32 bits. Si usas un sistema de 64 bits, la carpeta es WINDOWS\SysWOW64\.
Ya podemos seguir. Lo que viene es indexar el archivo de video para crear un archivo d2v, y a partir de él dejar listo el script avs (no importa si todo esto suena a chino, luego te resultará familiar) para hacer el ripeo.
Abres Megui, vas a Tools > File Indexer. En Input file, navegas hasta el archivo MPG que extrajiste del primer MKV. En Output file, eliges un nombre de archivo para el d2v, eliges la ruta, tildas On completion load files y and close, y haces click en Queue.
Nota importante: como vamos a trabajar con rutas, desde la línea de comando, te sugiero que crees rutas fáciles, para hacer más sencilla la lectura y escritura de los scripts, por ejemplo, en el disco C, creas la carpeta mipelicula, y a todos los archivos que vayas creando les pones el mismo título: mipelicula.d2v, mipelicula.avs, etc. (obviamente puedes remplazar mipelicula por lo que desees, pero te sugiero que sea una palabra corta, en minúsculas, sin espacios y fácil de leer)
Seguimos. El programa va a indexarte el archivo. Cuando termine de hacerlo te abrirá el video en una pantalla (se va a mostrar anamórfico, luego, no te extrañes si lo ves deformado) y te dará algunas opciones.
Del cuadro de diálogo que se abre junto al del video (se te abrirán dos, uno con el video, y otro con opciones, llamado AviSynth script creator) tilda la casilla crop, y con las flechitas procede a crear el crop (recorte) de las banda negras que habitualmente traen los DVDs (algunos no las traen, pero son muy excepcionales). Suma el número de pixeles que recortas (arriba y abajo, y derecha e izquierda) para dar el paso siguiente.
El cropeo en mod4 (que la suma de los piexeles que recortas a cada lado sea divisble por cuatro) es un poco más compatible que otros (hay mucha discusión sobre esto, pero dejémosla para más adelante) así que de momento nos vamos a concentrar en eso. Si por ejemplo la suma de pixeles que recortas arriba y abajo suma 32 (32/4=8) está perfecto, pero si suma 30 (30/4=7,5) necesitas cortar dos pixeles más arriba o abajo hasta que sea divisible por cuatro.
Una vez que tengas eso, haces click en Preview AVS Script parar revisar el cropeo. Mueve el slide hasta agarrar zonas claras del video (cuanto más claras, mejor) que te permitan cerciorarte que no te quedó ningún pixel negro en los bordes. Una vez que estés seguro de eso, en Output file, escribe el nombre del archivo AVS, elige una ruta, y haz click en Save.
Ahora ve a la carpeta en donde guardaste el script AVS. Haz click derecho sobre él, Abrir con, y elige el Bloc de notas. Se verá algo más o menos así, al margen de las rutas:
Código: Seleccionar todo
LoadPlugin("C:\Program Files (x86)\MeGUI\tools\dgindex\DGDecode.dll")
DGDecode_mpeg2source("C:\mipelicula\mipelicula.d2v", info=3)
LoadPlugin("C:\Program Files (x86)\MeGUI\tools\avisynth_plugin\ColorMatrix.dll")
ColorMatrix(hints=true, threads=0)
#deinterlace
crop(8, 4, -8, -4)
#resize
#denoiseCódigo: Seleccionar todo
DGDecode_mpeg2source("C:\mipelicula\mipelicula.d2v")
crop(8, 4, -8, -4)
Aspect Ratio
A través del reporte que deja DGIndex en el archivo d2v veremos si el DVD de origen es PAL/NTSC, Fullscreen/Widescreen.
Código: Seleccionar todo
avsfile = "mi.pelicula.avs" # Encoding script
format = 1 # 1=NTSC, 0=PAL
wide = 1 # 1=Widescreen 16:9, 0=Full screen 4:3
#########################
ITU = (format==1?10:12)/11.0*(wide==1?4.0/3:1)
SARs = """"12:11","16:11","10:11","40:33","16:15","64:45","8:9","32:27""""
ITUprof = "SDB "+(wide==1?"ANAMORPHIC ":"")+(format==1?"NTSC":"PAL")
i=import(avsfile).converttorgb
i
ab = round(height*(sqrt(45.0/44)-1))
a = spline36resize(round(width*ITU),height)
a = a.addborders(0,floor(ab/2.0),0,ceil(ab/2.0))
bb = width(a)-round(width*ITU/sqrt(45.0/44))
b = spline36resize(round(width*ITU/sqrt(45.0/44)),height+ab)
b = b.addborders(floor(bb/2.0),0,ceil(bb/2.0),0)
interleave(a,b)
scriptclip("""subtitle("Playback Resolution: "+\
string(round(width(i)*ITU*pow(44.0/45,current_frame%2)))+"x"+string(height(i))+\
"\nMeGUI Profile: "+ITUprof+(current_frame%2==1?" NON-ITU":"")+\
"\nx264 --sar "+eval("select(2*format+wide+current_frame%2*4,"+SARs+")"),lsp=0)""")


720x576 = PAL
720x480 = NTSC
4:3 = Fullscreen
16:9 = Widescreen
Abrimos SAR.avs en VDM (VirtualDubMod). No nos preocuparemos por los bordes negros que se observarán, sólo nos concentraremos en el AR. Miraremos tantos cuadros como sean necesarios para decidir si es ITU o no. La tercera línea dice x264 --sar junto a un número, por ejemplo 40:33. Lo anotamos. Ese es el Pixel Aspect Ratio aka SAR (Sample Aspect Ratio).

Test de Compresibilidad
1) Abrimos mi.pelicula.avs en MeGUI:


4) Editamos mi.pelicula.avs y le agregamos selectrangeevery(280,14) como última línea. En el ejemplo que seguimos, el script debería verse así:
Código: Seleccionar todo
DGDecode_mpeg2source("I:\VTS_01_1.demuxed.d2v")
crop( 52, 14, -52, -14)
selectrangeevery(280,14)"D:\x264\x264.exe" --preset veryslow --pass 1 --bitrate 1895 --stats "h:\my.movie.stats" --level 4.1 --output NUL "h:\my.movie.avs" --no-fast-pskip --no-dct-decimate --deblock -2:-1 --b-pyramid normal --aq-strength 0.8 --psy-rd 1.2:0.15 --slow-firstpass
A tener en cuenta: a --slow-firstpass no es necesario para la codificación final, pero es MUY importante para el test de compresibilidad.
Cuando el test termine, buscamos el valor que marca la línea final ratefactor. Valores entre 19.00 and 20.40 generalmente están bien. Si el valor es superior a 20.50, apuntamos entonces a un tamaño de archivo mayor al hacer el cáclculo del bitrate y hacemos correr el test otra vez. Si, en cambio, el valor está cerca de 18.50 o menos, haremos correr el test nuevamente con esta lìnea de comando (siempre editando convenientemente las rutas):
"D:\x264\x264.exe" --preset veryslow --tune grain --pass 1 --bitrate 1895 --stats "h:\my.movie.stats" --level 4.1 --output NUL "h:\my.movie.avs" --no-fast-pskip --b-pyramid normal --slow-firstpass
Si todavía da un resultado menor a 19.00, utilizaremos un tamaño de archivo más pequeño.
6) A continuación, borramos selectrangeevery(280,14) del scrip mi.pelicula.avs y borramos los archivos *.stats and *.stats.mbtree generados en el directorio.
Nota:
- El test de compresibilidad es solamente un test. Nada puede reemplazar a la evaluación final hecha por nuestros ojos, pero si la compresibilidad es buena para la combinación de seteo/tamaño de archivo/filtrado (settings/filesize/filtering) hay muy buenas chances de que el ripeo final quede bien.
Codificado
De acuerdo al test de compresibilidad, utilizaremos la línea de codificación "regular", o la que incluye --tune grain:
Primera pasada (--slow-firstpass ya no es necesario)
Edite la ruta al codec x264, al script .avs y .stats, y coloque el bitrate necesario.
"D:\x264\x264.exe" --preset veryslow --pass 1 --bitrate 1895 --stats "h:\my.movie.stats" --level 4.1 --output NUL "h:\my.movie.avs" --no-fast-pskip --no-dct-decimate --deblock -2:-1 --b-pyramid normal --aq-strength 0.8 --psy-rd 1.2:0.15
Segunda pasada
Edite la ruta al codec x264, al script .avs, .stats y .MKV, coloque el bitrate necesario y el SAR que corresponda.
"D:\x264\x264.exe" --preset veryslow --pass 2 --bitrate 1895 --stats "h:\my.movie.stats" --level 4.1 --output "h:\my.movie.mkv" "h:\my.movie.avs" --no-fast-pskip --no-dct-decimate --deblock -2:-1 --b-pyramid normal --aq-strength 0.8 --psy-rd 1.2:0.15 --sar 40:33
Notas:
- ¿Todo es demasiado lento para ti? Entonces reemplaza --preset veryslow en todas partes por --preset slower
- ¿Puedes/quieres utilizar más tiempo de codificación? Entonces utiliza --slow-firstpass en la primera pasada.
- ¿Estás completamente loco? Al costo de hacer tres veces más lenta la velocidad de codificación puede mejorar la compresibilidad e un ~1% reemplazando--preset veryslow por --preset placebo
- ¿Quieres evitarte tipear la líneas de comando, y hacer correr las dos pasadas en una sola operación? Copia las líneas de comando elegidas en un block de notas (con todas sus rutas convenientemente editadas, sin la indicación de Primera o Segunda Pasada, y con un espacio entre ambas), y guárdalo como codificado.bat en el directorio en donde tienes los scripts. El último ejemplo citado debería verse así:
Luego puedes hacerlo correr con un doble click (aunque al terminarse cerrará la ventana y no te dejará ver el informe del enconding). Otra opción, que dejará la ventana abierta al terminar, es hacerlo correr desde la línea de comando: Inicio > Buscar > CMD. Cuando se abre la consola, escribe exactamente la ruta al archivo *.bat (por ejemplo C:\mipelicula\ripeo.bat) y le das enter. Nota: las barras invertidas que se usan en la rutas se escriben mediante las teclas Alt+9+2. Si quieres una opción más sencilla, instala Clipboard Path, haz click derecho sobre el archivo *.bat que quieres rutear, copia la ruta haciendo click en el menú emergente, y pégala en la consola.Código: Seleccionar todo
"D:\x264\x264.exe" --preset veryslow --pass 1 --bitrate 1895 --stats "h:\my.movie.stats" --level 4.1 --output NUL "h:\my.movie.avs" --no-fast-pskip --no-dct-decimate --deblock -2:-1 --b-pyramid normal --aq-strength 0.8 --psy-rd 1.2:0.15 "D:\x264\x264.exe" --preset veryslow --pass 2 --bitrate 1895 --stats "h:\my.movie.stats" --level 4.1 --output "h:\my.movie.mkv" "h:\my.movie.avs" --no-fast-pskip --no-dct-decimate --deblock -2:-1 --b-pyramid normal --aq-strength 0.8 --psy-rd 1.2:0.15 --sar 40:33
Seteos avanzados
Compresibilidad: ¿Usted cree que la compresibilidad es muy buena para el codificado "regular" pero no lo suficiente para utilizar --tune grain? Utilice entonces la codificación regulara como base y reemplace --deblock -2:-1 por --deblock -3:-3 y agregue --qcomp 0.7
Si usted está utilizando el seteto regular de codificación, entonces otros seteos que podrían ser necesarios de acuerdo a la fuente (DVD) utilizada son Psy-Trellis y AQ.
AQ: Grano fino sobre fondos planos o de bajo contraste como este podrían beneficiarse con un AQ mayor:

En estos casos, cuando utilice la opción de codificación "regular" puede elevar el sugerido --aq-strength 0.8 por --aq-strength 1.0
Si la fuente tuviera un grano muy grueso todo el tiempo y en todas partes, un AQ mayor podrìa entonces arruinar la calidad general introduceindo un poco de blur sobre los bordes definidos. En esos casos mantenga el seteo sugerido, o bájelo hasta --aq-strength 0.7, pero no vaya más abajo.
Psy-Trellis: Si la fuente tiene pocos detalles y mucho grano, podría beneficiarse con un mayor Psy-Trellis. Si está utilizando la opción de codificación "regular", cambie --psy-rd 1.2:0.15 por --psy-rd 1.2:0.25
Cómo hacer capturas de pantalla
1) Haga el remuxado de video, audio (y subs, si lo desea) utilizando MKVToolnix.
2) Ábralo en VirtualDubMod utilizando este script, que incluye número y tipo de cuadro:
FFVideoSource("my.movie.mkv")
Spline36Resize(converttorgb,ffsar>1?round(width*ffsar):width,ffsar<1?round(height/ffsar):height).ScriptClip("""subtitle("Frame: "+string(current_frame)+"\nType: "+Chr(ffpict_type),lsp=0)""",after_frame=true)
3) Para capturas limpias (sin número y tipo de cuadro):
FFVideoSource("my.movie.mkv")
Spline36Resize(converttorgb,ffsar>1?round(width*ffsar):width,ffsar<1?round(height/ffsar):height)
¡Listo!
Para evitar malos entendidos, aquí van algunos ejemplos de líneas de comando:
Seteo "regular"
Primera pasada:
"D:\x264\x264.exe" --preset veryslow --pass 1 --bitrate 1895 --stats "h:\my.movie.stats" --level 4.1 --output NUL "h:\my.movie.avs" --no-fast-pskip --no-dct-decimate --deblock -2:-1 --b-pyramid normal --aq-strength 0.8 --psy-rd 1.2:0.15
Segunda pasada:
"D:\x264\x264.exe" --preset veryslow --pass 2 --bitrate 1895 --stats "h:\my.movie.stats" --level 4.1 --output "h:\my.movie.mkv" "h:\my.movie.avs" --no-fast-pskip --no-dct-decimate --deblock -2:-1 --b-pyramid normal --aq-strength 0.8 --psy-rd 1.2:0.15 --sar 40:33
Seteo --tune grain
Primera pasada:
"D:\x264\x264.exe" --preset veryslow --tune grain --pass 1 --bitrate 1895 --stats "h:\my.movie.stats" --level 4.1 --output NUL "h:\my.movie.avs" --no-fast-pskip --b-pyramid normal
Segunda pasada:
"D:\x264\x264.exe" --preset veryslow --tune grain --pass 2 --bitrate 1895 --stats "h:\my.movie.stats" --level 4.1 --output "h:\my.movie.mkv" "h:\my.movie.avs" --no-fast-pskip --b-pyramid normal --sar 40:33
Seteo "regular" con --slow-firstpass
Primera pasada:
"D:\x264\x264.exe" --preset veryslow --pass 1 --bitrate 1895 --stats "h:\my.movie.stats" --level 4.1 --output NUL "h:\my.movie.avs" --no-fast-pskip --no-dct-decimate --deblock -2:-1 --b-pyramid normal --aq-strength 0.8 --psy-rd 1.2:0.15 --slow-firstpass
Segunda pasada:
"D:\x264\x264.exe" --preset veryslow --pass 2 --bitrate 1895 --stats "h:\my.movie.stats" --level 4.1 --output "h:\my.movie.mkv" "h:\my.movie.avs" --no-fast-pskip --no-dct-decimate --deblock -2:-1 --b-pyramid normal --aq-strength 0.8 --psy-rd 1.2:0.15 --sar 40:33
Seteo "regular" con extra detalle (ver Seteos Avanzados)
Primera pasada:
"D:\x264\x264.exe" --preset veryslow --pass 1 --bitrate 1895 --stats "h:\my.movie.stats" --level 4.1 --output NUL "h:\my.movie.avs" --no-fast-pskip --no-dct-decimate --deblock -3:-3 --b-pyramid normal --aq-strength 0.8 --psy-rd 1.2:0.15 --qcomp 0.7
Segunda pasada:
"D:\x264\x264.exe" --preset veryslow --pass 2 --bitrate 1895 --stats "h:\my.movie.stats" --level 4.1 --output "h:\my.movie.mkv" "h:\my.movie.avs" --no-fast-pskip --no-dct-decimate --deblock -3:-3 --b-pyramid normal --aq-strength 0.8 --psy-rd 1.2:0.15 --qcomp 0.7 --sar 40:33
Seteo --tune grain con --preset placebo
Primera pasada:
"D:\x264\x264.exe" --preset placebo --tune grain --pass 1 --bitrate 1895 --stats "h:\my.movie.stats" --level 4.1 --output NUL "h:\my.movie.avs" --no-fast-pskip --b-pyramid normal
Segunda pasada:
"D:\x264\x264.exe" --preset placebo --tune grain --pass 2 --bitrate 1895 --stats "h:\my.movie.stats" --level 4.1 --output "h:\my.movie.mkv" "h:\my.movie.avs" --no-fast-pskip --b-pyramid normal --sar 40:33
Nota: siempre recuerde utilizar --slow-firstpass para el test de compresibilidad, aun cuando usted no vaya a utilizar slow firstpass cuando codifique.
----------------------------------------------------------------------------------------------------------------------------------------
Nota: el tutorial no está actualizado, y es probable que algún enlace pueda estar roto. Cualquier inquietud, reportarla aquí.
Saludos