Anda di halaman 1dari 24

Manual de conversión de XX formato a H264 (en

contenedor mp4 o mkv) usando MeGUI


Este manual lo hice con la idea de que sea una guía básica para el encodeo en
este fabuloso codec el H264, en este caso en el contenedor mp4 o mkv, el uso
de estos ya queda su gusto, usen el que más les agrade.
Esta guía se basará en el cotenedor mp4, y porque este, porque a mí parecer
es el contenedor más estandarizado en la actualidad.

Todos ya sabrán a que nos referimos cuando hablamos de h264, y pues para el
que no sabe, lea este artículo en wikipedia: http://es.wikipedia.org/wiki/AVC, por
lo que nos queda definir que es MeGUI; MeGUI es la interfaz gráfica del codec
x264 que incluye todas las opciones avanzadas del codec y permite crear
videos en H264 multiplexados en mp4 y mkv, no sólo esto, también puede
encodear en XVID, crear scripts avs (archivos de aviynth), generador de
proyectos .d2v (esto para ripeo de DVD) y muchas otras cosas, lo que lo
convierte en una herramienta muy completa.

Para esta guía se requerirá un conocimiento básico del avisynth y tenerlo


instalado en la pc. Si no lo tienes instalado, puedes descargarlo de de aquí,
bájense el archivo ejecutable e instálenlo.

¿Dónde consigo el MeGUI?


Pues en su página oficial : http://www.x264.nl./ (Vayan al apartado gui y
seleccionen un mirror para su descarga).
Para que corra correctamente se tiene que tener instalado previamente
Microsoft .NET Runtime 2.0

Una vez instalado el MeGUI tendrán una ventana como esta:


En Options-->settings (o apretando crtl+s) tendremos una ventana como esta:
Default Priority: Permite establecer la prioridad del consumo de recursos que
el proceso de codificación va a tener sobre otros procesos que se estén
ejecutando.
Open preview after Avisynth script selection: Teniendo marcada esta casilla
al abrir un script Avisynth se mostrará automáticamente una ventana de vídeo
que permite comprobar la corrección del script, etc.
Delete output of aborted Jobs: Señalando esta casilla los vídeos producidos
en trabajos que sean abortados serán automáticamente eliminados.
Automatically set number of Threads: MeGUI configurará automáticamente
el número de hilos de trabajo según el procesador que detecte.
Use Avanced Tooltips: Esta opción que puede ser considerada estética
permite que MeGUI muestre unos textos explicativos de ayuda cuando
detenemos el cursor sobre alguna opción. (De momento sólo se muestra texto
explicativo en las opciones de configuración de x264).
Shutdown after encoding: Esta casilla permite apagar el ordenador cuando
los trabajos situados en la cola de tareas finalicen.
Autostart Queue: Marcando este recuadro al enviar trabajos a la cola de
tareas comenzarán automáticamente.
Delete completed Jobs: Los trabajos serán eliminados según vayan
completándose.
Delete intermediate files: Con esta casilla activada los archivos intermedios
que se creen serán eliminados automáticamente.
Open progress window: Con este recuadro activado MeGUI mostrará una
ventana del progreso de la codificación, velocidad en frames por segundo,
tiempo transcurrido y restante, tamaño final estimado del vídeo de salida, etc.

Reset All Dialogs: Como su propio nombre indica pulsar este botón permite
volver a la configuración "de fábrica" de MeGUI.
Configure Source Detector: Si pulsamos este botón podremos modificar
parámetros que modifican el análisis, etc que efectúa MeGUI a la hora de
acceder a las fuentes de vídeo, etc con las que queremos trabajar. Se
recomienda no modificar los valores por defecto.

Program Paths:
En la pestaña audio nos dirigimos a donde dice neroAccEnc, en este se debe
colocar la ruta del encoder de audio de Nero, que lo puedes descargar de aquí,
te descargarás un .zip el cual contiene el archivo neroAccEnc.exe. Este
encoder es gratuito.

Después de todo esto empecemos con este manual de encodeo en H264.


Ahora se estarán preguntando como rayos hago que mi archivo se convierta en
un mp4, pues a eso vamos a llegar.

El funcionamiento del MeGUI es tan simple como crear un scriptde avisynth


(.avs), cargarlo en el MeGUI, apretar el botón config, configurar el codec a
nuestro gusto, apretar el botón enqueue, ir a la pestaña queue, darle al botón
Start y esperar .

Creando el script .avs

El MeGUI tiene un creador de scripts, se accede a este en el menú tools-->


avisynth script creador o también se puede acceder a este con l combinación
de teclas ctrl+R
Pestaña options:
Video input: Es donde debemos cargar el archivo (para esto estoy suponiendo
que ya se tienen correctamente instalados los codecs necesarios)
Input DAR: es el cociente entre el ancho y el alto
Avisynth profile: Es donde se especifica el orden en los que aplicaran los
filtros
Crop: Con esta función podemos recortar la imagen
Resize: Cambio de resolución de la imagen AnchoxAlto.

Pestaña filters:
Source info: Al hace clic en analyse, esta herramienta revisa el video y detecta
si la fuente es entrelazada o progresiva
Deinterlace: Aquí se selecciona el filtro que se va a usar en caso la fuente sea
entrelazada.
Reize filter: Aquí se seleccionan los filtros de Resize a usar (este es uno de los
filtros más importantes a usar cuando se encodea ), los cuales son:
BilinearResize(ancho,altura)
BicubicResize(ancho,altura,b,c)
LanczosResize(ancho,altura)
Lanczos4Resize(ancho,altura)
GaussResize(ancho,altura,p)
BlackmanResize(ancho,altura)
PointResize(ancho,altura)
SplineXXResize(ancho,altura) , donde XX puede ser 16, 36 o 64

A continuación la explicación de cada uno:


(Las explicaciones siguientes las he sacado de mundodivx ^^)

Bilinear: tiende a suavizar la imagen, esto significa que es el que menos


detalle deja pasar al redimensionar, asi que es adecuado para cuando usen
bitrates bajos, y/o cuando se reduce la resolución.
Bicubic: es similar en funcionamiento al Bilinear, pero gracias a mejores
algoritmos logra procesar un mayor nivel de detalle y por ende es mejor para
cuando se aumenta la resolución, ya que se logra una imagen mas nítida, pero
solo es recomendable cuando habrá suficiente bitrate como para codificar dicho
detalle extra, sino puede ser mas conveniente el Bilinear si no quieren que la
calidad caiga en picada al comprimir. Puede ser personalizado manualmente
mediante los valores "b" y "c" que pueden ver en la sintaxis de más arriba.
Estos parámetros son llamados blurring y ringing respectivamente; el blurring
sirve para quitar nitidez, agregando un efecto “borroso” y así difuminando el
detalle, puede servir para evitar la aparición de macrobloques al comprimir a
muy bajos bitrates; mientras que el ringing hace todo lo contrario, a mayores
valores mas fino será el filtro y mas detalle dejara pasar. Con b=0 y c=0.75 el
filtro es idéntico al presente en VirtualDub, "VirtualDub`s Precise Bicubic". Un
valor normal seria b=0 y c=0.5 para así lograr una importante ganacia de
detalle, valores mayores a 0.6 pueden producir ruido dado que se estaría
generando mas detalle del que existe, aunque claro depende de la nitidez del
video de origen, si lo amerita entonces pueden aumentar el valor de c. Los
valores b=1/3 y c=1/3, son los valores recomendados por los creadores, ya que
estos ofrecen los “mejores resultados visuales” en tests subjetivos. Valores
grandes de b y c, generan interesantes efectos ópticos en la imagen, por
ejemplo probar c=-5 y b=0
Lanczos: permite alcanzar aun mas detalle y con mejor calidad que el Bicubic,
sólo recomendable para altos bitrates. Sirve como alternativa al Bicubic con
valores de “c” entre 0,6 y 0,75, solo que logra una calidad superior en estos
valores (menos artifacts).
Lanczos4: es una abreviación a LanczosResize(taps=4).
BlackMan: esta es una modificación del Lanczos que permite lograr menos
artifacts (errores) con valores de taps altos.
Gauss: filtro basado en el algoritmo de Gauss. El parametro "p" ajusta la
nitidez, desde 0 (menor detalle, mas borroso) hasta 100 (mayor detalle, mas
fino). Su velocidad es similar al Lanczos4.
Point: es el filtro para resize más simple que existe. Su uso no es para nada
recomendable a no ser que se quiera disminuir la calidad del vídeo adrede. Sus
resultados suelen contener mucho bloque.
SplineXX: este filtro tiene como objetivo alcanzar un maximo nivel de detalle,
con menos artifacts a raiz del mismo que si se usara Lanczos. XX puede tener
valores 16, 36 y 64, cuanto mayor este valor mayor nitidez de lograra.

Noise filtres: activar esta casilla si se observa ruido en el video, en el menú


desplegable se pueden seleccionar varios tipos de filtros.

Pestaña Edit:
En esta pestaña se puede editar a “mano” el script de avisynth. Ojo si editas
algo aquí y luego cambias algo en las otras pestañas, todo lo que editaste se
borrará; así que cuidado con ello . También todo esto “, audio=false” de la
primera linea, será borrado, esto para poder crear el audio con el MeGUI.
Una vez esto hecho esto, hacer clic en el botón save, esto guardara el script,
escogen la ruta y le ponen un nombre. El script se autocargará , ahora resta
configurar el codec.

En Audio cargamos el script, y en encoger settings seleccionamos al Nero AAC


y le daremos 96kbps, ya que a este bitrate se logra una buena calidad en el
audio, puesto que el aac logra una mejor compresión en el audio a una baja
bitrate, comparado con el mp3. Le damos este bitrate al audio para que este
sea pequeño y así poder darle más bitrate al video, luego de ello de damos a
Enqueue y nos vamos a la petaña enqueue y le damos a “Start”; ahora a
esperar a que termine el encodeo del audio.

Luego de esto nos vamos a tools-->Bitrate calculador(ctrl+B )


Si se dan cuenta ya se ha cargado el audio, entonces donde dice file size, en el
botón y nos vamos a “select size” y ponemos el tamaño del archivo que
queremos tener, en mi caso como es el capítulo de un anime, selecciono 170
mb y le damos a “Apply”.
Nos saldrá una ventana que nos dice si queremos aplicar lo calculado a la
config del video, y le damos sí.
Luego en la vetana principal de MeGUI, cliqueamos en “config” y nos saldrá
esto:
Si nos damos cuenta ya se cagó el bitrate calculado, a continuación se explica
cada opción:
General
Mode: Aquí indicaremos el tipo/número de pasadas que se van a efectuar en la
codificación.
• Pasadas Simples:
o ABR: Se efectúa una única pasada en función del bitrate indicado.
o Const. Quantizer: Se efecúa una única pasada en función del quantizer
indicado.
o Const. Quality: Se efecúa una única pasada VBR (Bitrate Variable) en
función del quantizer indicado.
• Pasadas Múltiples:
o 2Pass - 1st/2nd pass, 3Pass - 1st/2nd/3rd pass: MeGUI te permite
configurar pasadas múltiples una a una tanto para codificaciones a dos
pasadas como para codificaciones a tres pasadas (un mayor número de
pasadas suele ser una pérdida de tiempo). Sólo debemos escoger la pasada
que queremos configurar y modificar sus valores a nuestro gusto.
• Pasadas Automáticas:
o Automated 2/3pass: Si queremos efectuar una codificación en múltiples
pasadas (2 o 3) ahorrando algo de tiempo en la configuración MeGUI nos
permite ajustar a la vez los valores para todas las pasadas. Sólo debemos
seleccionar el tipo de pasadas automáticas y configurar de manera normal los
valores. MeGUI guardará después en su cola de tareas el número de pasadas
necesario aplicando los valores seleccionados a cada una de ellas de forma
automática.

OBS: En nuestro caso seleccionaremos automated 2 pass

Turbo: Esta casilla sólo tiene utilidad en caso de seleccionar pasadas múltiples
(o automáticas). Su función es modificar únicamente los valores de la primera
pasada que sirve de análisis para la segunda. Los ajustes a emplear en la
primera pasada se bajarán automáticamente al mínimo permitiendo realizar el
análisis (que casi no es afectado) en un tiempo mucho menor.
Lossless: La opción Lossless sólo se encuentra disponible si en AVC Profiles
hemos seleccionado High Profile. Si la señalamos se efectuará una codificación
Const. Quantizer = 0, es decir, una codificación a una única pasada con un
valor de quantizer = 0 lo que en teoría equivale a una codificación sin pérdida
de calidad. (Por supuesto el tamaño final del vídeo en este tipo de
codificaciones es enorme).

Deblocking
Mpeg4-AVC analiza el vídeo como una rejilla compuesta de cuadrados en
movimiento. Este filtro detecta los bordes de cada cuadrado para suavizarlo.
Aunque el uso de este filtro adaptativo se recomienda en codificaciones a bajo
bitrate tras algunas pruebas he podido comprobar que su uso es beneficioso
casi en cualquier situación pues minimiza la aparición de macrobloques
ayudando en la estimación de movimiento. Aunque sus ventajas se pueden
observar casi en cualquier escena rápida es de destacar la eliminación de
macrobloques en escenas con humo, niebla, fuego, etc donde otros códecs
todavía presentan problemas.
Usando las barras de desplazamiento Strenght y Threshold podemos controlar
el filtrado Alpha y Beta, respectívamente, que se va a aplicar en los bordes de
cada bloque.

Enable deblocking: Se habilita el uso del filtro deblocking.


Deblocking Strenght: Determina la agresividad con que se van a suavizar los
bloques. Valores altos hace que el filtro de "deblockeo" funcione más
efectivamente al costo de perder detalles, un suavizado de las imágenes. Este
parámetro es el más importanteen la determinación de la nitidez total del
encode.
Deblocking Threshold: Determina con que facilidad se detectan los bloques.
El valor por defecto se debe cambiar algunas veces cuando no brinda buenos
resultados para el encode que deseas hacer.
Se recomienda el uso de los valores por defecto que proporcionan una mezcla
precisa entre el filtrado de bloques y la preservación de detalles.

Los valores que pueden tomar las dos variantes se mueven desde -6 a +6. Los
valores negativos no conllevan que el filtro actue en sentido contrario creando
una mayor nitidez sino que el filtrado empleado será menor preservando algún
detalle más pero pudiendo aparecer el conocido ruido (mosquito noise) en los
bordes de figuras, etc; para este caso se puede aplicar el noise reducer
integrado del codec, con un valor de 100 o 200 es sufuciente. Por otro lado los
valores mayores pueden ocasionar pérdida de detalles acusada e incluso un
molesto efecto de "mancha".
En principio los dos valores deben estar relacionados, si se aplica un filtrado
agresivo también se debe aumentar el umbral de detección de bloques. Sin
embargo he podido observar en algunas configuraciones de usuarios que
prefieren conservar más detalles los valores (-2/-1) con lo que disminuye
ligéramente la detección de bloques suavizando aún más la agresividad del
filtrado. Otro buen conjunto de valores que logra muy buenos resultados para
los videos en HD, a los cuales estamos acostumbrados últimamente es (-1/-1).

Si quieres saber más acerca de este filtro echa un vistazo a la sección técnica
de Deblocking. Una buena explcación para el uso de este filtro lo dá *.mp4 guy
en el foro de doom9 (obviamente está en inglés ): How to Use Mpeg4 AVC
Deblocking effect (Small FAQ)

Misc.
PSNR calculation: x264 efectúa un análisis PSNR (calidad del vídeo) que es
mostrado al final de la codificación cuando trabajamos con la línea de
comandos. Este cálculo no influye en la calidad del vídeo obtenido por lo que
se recomienda desactivar la opción para mejorar la velocidad de codificación.
Number of Threads: Esta opción hace referencia a la posibilidad de "dividir" la
codificación en distintos "hilos" para aprovechar las ventajas de velocidad que
ofrecen los nuevos procesadores de doble núcleo, procesadores con
Hyperthreading, etc.
fourCC: Aquí indicamos la identidad de el códec responsable de la codificación
para que pueda ser conveniéntemente reproducido. x264 no debería ser
modificado para asegurarnos la reproducción sin problemas. (Otros FourCC
son XVID para XviD, DX50 para DivX, etc).

AVC Profiles
Cuando comprimimos vídeo con un códec Mpeg4-AVC normálmente podemos
acceder a tres perfiles definidos para el estándar que permiten el acceso a un
número mayor o menor de opciones. Por supuesto el perfil que permite utilizar
sin limitaciones todas las opciones del códec (High Profile) es el que mejores
resultados puede obtener, sin embargo hay dispositivos, decodificadores, etc
que no soportan la reproducción de vídeos que hayan sido codificados con las
opciones más avanzadas.
Baseline Profile: Este perfil no permite el uso de características como
Lossless, Trellis, CABAC, Adaptive DCT, I8x8 ni el uso de B-Frames. Tampoco
podremos utilizar matrices distintas a la que se utiliza por defecto (matriz "flat").
Main Profile: Este perfil no permite el uso de características como Lossless,
Trellis, Adaptive DCT, I8x8 ni el uso de matrices distintas a la que se utiliza por
defecto (matriz "flat"). En cuanto a las B-Frames se pueden usar sin
restricciones excepto el uso de RDO for B-Frames.
High Profile: Este perfil permite emplear todas las opciones disponibles en los
códecs AVC sin ninguna restricción.
AVC Levels.

En el uso de códecs Mpeg4-AVC se han definido distintos niveles que limitan la


codificación pensando en la reproducción de los vídeos de salida en distintos
dispositivos como pueden ser los nuevo reproductores portátiles (iPod Video,
móviles, PSP, etc).
Estos niveles principálmente limitan la tasa de procesado, la resolución de la
imagen, el bitrate y los requerimientos de memoria (para procesadores poco
potentes), etc.
Como ejemplo para vídeos que se vayan a reproducir en un iPod Video se
utiliza el nivel 1.3.
RC and ME

VBV Buffer Size: Esta opción permite limitar el tamaño máximo del Video
Buffer utilizado para la reproducción posterior del vídeo. El Video Buffer Verifier
se puede explicar como la memoria de vídeo que utiliza el decoder para
almacenar los datos que a continuación se van a reproducir. Si el tamaño es
muy grande el tiempo de comienzo de la reproducción se alargará (hasta llenar
la memoria de video), si el tamaño es pequeño la reproducción puede no ser
fluída debido a que se almacenan pocos datos previos para ser mostrados.

En algunos casos esta opción se utiliza para vídeos que van a ser reproducidos
en dispositivos de baja potencia. En todo caso se recomienda no rellenar la
casilla, lo que es lo mismo que utilizar el valor por defecto 0 que establece el
tamaño del Buffer de vídeo automáticamente.
VBV Maximum Bitrate: Aquí se especifica el Bitrate máximo que se puede
alojar en el Buffer de vídeo. Se recomienda no rellenar la casillo (el valor por
defecto 0 regula automáticamente el bitrate).
VBV Initial Buffer: En esta casilla se puede determinar el nivel de llenado del
Buffer de vídeo previo al comienzo de una reproducción. Los niveles bajos
pueden provocar una calidad inicial de vídeo reducida, los niveles altos una
calidad inicial alta de forma artificial. Se recomienda dejar el valor 0,9 por
defecto.
Bitrate Variance: La variación de bitrate (medida en porcentaje) es uno de los
parámetros que determina la facilidad con la que el códec se puede adaptar a
los cambios de escena desviándose del bitrate promedio pedido.
Un valor bajo limita la adaptibilidad del códec pero aumenta la precisión a la
hora de ajustarse al tamaño final. También facilita una reproducción más fluída.

Un valor alto permite que el códec se adapte mejor a los distintos tipos de
escena que encuentre empleando el bitrate necesario en cada ocasión pero
haciendo muy difícil que se ajuste al tamaño final estipulado.
En los extremos podemos decir que un valor del 0% hace que se produzca una
codificación CBR (Bitrate Constante) y que el valor 100% deja total libertad de
bitrate al códec produciendo una codificación CQ (Constant Quantizer).
Se recomienda utilizar el valor 1,0 y no superar en todo caso el 4,0.

Quantizer Compression: La Quantizer Curve Compression es otro de los


parámetros que regula la adaptibilidad del códec. En este caso se ajusta los
cambios en calidad final que se pueden producir cuando se alcanza el bitrate
promedio pedido.
Los valores bajos ofrecen una calidad constante pero limitan la adaptibilidad del
códec para ahorrar bits en escenas donde los detalles no son tan necesarios e
invertirlos donde se necesitan.
Los valores altos puede mejorar la calidad general del vídeo al aprovechar
mejor los bits de zonas de "ahorro" en zonas más importantes pero pudiendo
producir unos cambios de calidad demasiado grandes lo que al final deteriora la
calidad en los cambios de escena.
El valor 0 determina una calidad constante mientras que el valor 1,0 hace casi
imprevisible el cambio de calidad entre escenas. El valor 0,6 es de uso
recomendado.
Temp. Blur of est. Frame complexity: Este parámetro reduce las
fluctuaciones en el quantizer empleado antes de la curva de compresión.
Temp. Blur of Quant after CC: Este parámetro reduce las fluctuaciones en el
quantizer empleado después de la curva de compresión.

M.E. (Motion Estimation)


Chroma M.E.: Activando la casilla se tomará en cuanta los datos de color
dentro de las estimaciones de movimiento con lo que aumentaremos la calidad.
Recomendado su activación.

M.E. Range: En esta casilla se limita el máximo rango empleado para los
vectores en la Estimación de Movimiento acotando el seguimiento de la
evolución de los macrobloques en cualquier cambio en la escena; pudiendo
ampliar el valor hasta 64 y siendo el mínimo 4. El valor por defecto (16) es
suficiente y no se recomienda aumentar por encima de 32 ya que la velocidad
se resiente sobremanera. El valor de 32 es un buen valor cuando se tiene
videos con cambios bruscos de moviento.
Scene Change Sensitivity: Este valor controla la detección de cambios de
escena en el vídeo modificando la "agresividad" con la que se van a insertar I-
frames extras al comienzo de cada cambio de escena. A mayor valor mayor
presencia de I-frames puede darse (lo que puede mejorar la calidad en esos
cambios y de forma general aunque también puede disparar el tamaño final del
vídeo). El valor por defecto (40) es más que suficiente.
M.E. Algorithm: La Estimación del Movimiento puede utilizar cuatro algoritmos
distintos dependiendo de su grado de complejidad, siendo Diamond Search el
más rápido empleando un radio de valor 1 sobre los píxeles; el segundo
método, Hexagonal Search, es el empleado por defecto, utiliza para el análisis
un radio de valor 2 y ofrece buenos resultados a una velocidad media; el tercer
método, Uneven Multi-Hexagon Search ofrece una mayor calidad pero la
velocidad se resiente; por último el método. Exhaustive Search ofrece el
análisis más complejo pero la velocidad es extremádamente lenta.
Por lo tanto la recomendación es usar el algoritmo por defecto o a lo sumo el
tercero de ellos.
Subpixel Refinement: Esta sección controla la precisión de la estimación de
movimiento (similar al Motion Search Precision de XviD).

Se recomienda el empleo del valor 6 - RD on I/P frames que ofrece una calidad
excelente (emplea Rate Distortion Optimized un método de estimación de
movimiento mejorado) aunque vuelve la codificación más lenta. Sin embargo el
valor por defecto (5) puede resultar suficiente. En últimas versiones han salido
2 valores más, el valor 8 - RD refinement on I/P frames y el valor 9 - RD
refinement on all frames. Esto es lo que dijo Dark_Shikari, uno de los
desarroladores del x264:
Code:
commit c89bc900a3bf0d4c4c728ad378703970b4f14e18 r996
Author: Jason Garrett-Glaser <darkshikari@gmail.com>
Date: Tue Sep 30 18:34:56 2008 -0700

Rework subme system, add RD refinement in B-frames


The new system is as follows: subme6 is RD in I/P frames, subme7 is RD in all frames,
subme8 is RD refinement in I/P frames, and subme9 is RD refinement in all frames.
subme6 == old subme6, subme7 == old subme6+brdo, subme8 == old subme7+brdo,
subme9 == no equivalent
--b-rdo has, accordingly, been removed. --bime has also been removed, and instead enabled
automatically at subme >= 5.
RD refinement in B-frames (subme9) includes both qpel-RD and an RD version of bime.

En una de las últimas versiones del codec ya es posible usar un décimo modo,
pero eso sólo se logra con linea de comandos. Habrá que esperar a alguna
versión de MeGUI que pueda utilizar esta opción.

Este parámetro se puede identificar en la linea de comandos como: --subme.

Misc
Keyframe interval: Aquí se indica la máxima distancia que debe existir entre
dos IDR-Frames, o lo que es lo mismo el tamaño máximo de cada GOP (Group
of Pictures). El tamaño de los GOP’s se calcula dinámicamente durante la
codificación.
Al adelantar o atrasar la reproducción de un vídeo se produce un
desplazamiento entre los distintos GOP’s lo que permite acelerar la búsqueda
del nuevo punto de reproducción.

En principio los frames encargados de marcar cambios de escenas y puntos de


búsqueda son los I-Frames pero puede darse el caso de que un I-Frame se
encuentre "en medio" de un GOP por lo que no puede ser localizado al efectuar
búsquedas. Esto es debido a la posibilidad de que cada frame puede usar
como referencia múltiples frames anteriores.
Para remediar esto se situan los llamados IDR-Frames al inicio de cada GOP.
Un IDR-Frame no hará refeferencia a frames anteriores pero los frames
posteriores sí podrán referirse a él como a un I-Frame normal.
Establecer un tamaño máximo previene una reducción en la capacidad de
búsqueda que se daría en GOP’s demasiado grandes.
Min. GOP Size: Aquí se indica la mínima distancia entre dos IDR-Frames, o lo
que es lo mismo el tamaño mínimo de cada GOP (Group of Pictures).
Establecer un tamaño mínimo ayuda a mejorar la compresibilidad en escenas
complejas (movimiento, etc) ya que si los GOP’s son demasiado pequeños
puede producirse un "exceso" de IDR-Frames que dispararía el tamaño final
del vídeo.
Los valores máximo/mínimo para el tamaño del GOP 250/25 son los más
adecuados en la mayoría de codificaciones pero en vídeos NTSC a 29,97fps se
deberían emplear distancias 300/30 entre los IDR-Frames.

Quant Options

Trellis: En esta casilla podemos añadir a los cálculos del códec una función
matemática basada en el análisis de la distorsión. Mediante el uso de
coeficientes se introduce una pequeña pérdida inicial de calidad que se
compensa con una mayor compresión, lo que a su vez termina por facilitar el
uso de quants más bajos que ofrecen una calidad mayor.
El uso de esa función es muy recomendable aunque la velocidad de
codificación baje.
En la versión VfW del códec al activar esta casilla se introduce el uso de la
función de análisis en las decisiones sobre macrobloques (en MeGUI el valor 1
- Final MB), sin embargo si usamos la interfaz MeGui más el ejecutable por
línea de comandos podríamos habilitar el uso de Trellis para absolútamente
todas las decisiones (valor 2 - Always), aunque la velocidad de codificación
disminuye mucho.
Se recomienda utilizar el valor 1 - Final MB que consigue un buen aumento de
calidad sin perjudicar demasiado la velocidad.

No Fast P-Skip: La detección rápida de saltos permite aumentar la velocidad


de codificación, sin embargo puede producir bloques en zonas de color sólido /
(paredes, etc) o ligeras gradaciones en zonas de cielo o con poca luminosidad.
Activando esta opción evitamos estos problemas aunque la codificación será
más lenta. Se recomienda activar.

CABAC: Esta opción se refiere a la activación de un tipo de codificación


entrópica avanzada que se adapta al contexto sacando más provecho de
redundancias, etc. Desactivada esta opción se utiliza el método CAVLC que
aunque consume menos recursos resulta más limitado. Activar esta opción es
muy recomendable.

Number of Reference Frames: Esta opción con valores que oscilan entre 0 y
16 implica la cantidad de frames previos a los que pueden hacer referencia los
P-frames y B-frames de manera que la estimación de movimiento sea mucho
más precisa y se ahorre información en repeticiones de movimientos, etc.
Los valores más empleados se situan entre 3 y 5 y hay que advertir que
cuantos más frames sean utilizados como referencia los procesos de
codificación y reproducción consumirán más recursos al ser procesos de ida y
vuelta.
Si se está codificando animé, es recomendable utilizar varios frames, ya que
abundan las escenas con repeticiones, con 9 sería suficiente, pero también se
podría utilizar 16 frames, siendo este último el más recomendable.
Ahora, si lo que se quiere es codificar una película usar más de 5 frames es
una perdida de tiempo ya que comparada con el poco provecho que se puede
obtener de cara a la calidad (es difícil que en una película abunden las escenas
con repeticiones de movimientos a lo largo de 16 frames).

Mixed: Al activar esta casilla permitimos que cada partición 8x8 y 16x8 dentro
de un macrobloque elijan independientemente su frame de referencia. Con la
casilla desactivada cada macrobloque sólo puede elegir un frame de referencia.
Uso Recomendado. Necesitamos al menos utilizar dos B-Frames para activar
las referencias "mixtas".
La activación de las distintas estimaciones de movimientos reducen la
velocidad de codificación pero permiten al códec ser mucho más preciso a la
hora de detectar variaciones en el vídeo. El uso de todas las casillas es Muy
Recomendable y da lugar al uso del llamado High Profile del códec.
Quantizers

Minimun Quantizer: Esta casilla establece el quantizer mínimo que se


empleará siendo el valor por defecto (10) una buena elección. Valores menores
permitirán utilizar quantizers de mayor calidad pero menor compresibilidad lo
que si bien en ciertas escenas puede beneficiar también puede perjudicar la
calidad global y originar archivos de tamaño excesivo.

Maximum Quantizer: Esta casilla marca el quantizer límite más alto que el
códec puede utilizar. El valor por defecto (51) es reálmente el valor de quant
más alto que existe en x264, los más compresibles pero que menor calidad
ofrecen. Para cualquier película este valor puede ser el adecuado pero si tienes
entre manos un vídeo corto, o muy compresible, siempre puedes limitar ese
valor para intentar conseguir una calidad mayor (por ejemplo se puede probar
con un valor de 40).

Maximum Quantizer Delta: El valor que se define en esta casilla limita el


"salto" de quantizer que puede darse entre dos escenas distintas de manera
que se evita que un salto muy grande cree grandes diferencias visuales de
calidad entre ambas escenas. Por supuesto el valor por defecto (4) ofrece
resultados satisfactorios.

Credits Quantizer: Esta casilla está pensada para codificación a distinto


quantizer de las zonas de introducción y créditos con el fin de mejorar la
compresibilidad. Se puede decir que es la forma de MeGUI de ahorrar tiempo
en la configuración de zonas de distinta compresibilidad.

Factor between I and P frama Quants: Esta opción indica el factor de relación
entre un I-Frame y un P-Frame. Con el valor por defecto indicamos que un I-
Frame es 1,40 veces un P-Frame.
En definitiva definimos cuanto bitrate "extra" puede ser atribuido a un keyframe
(IDR-Frame). Ya que los P-Frames y B-frames hacen referencia a los I-Frames
todos se beneficiarán de ese aumento, sin embargo si el extra atribuido es
excesivo el tamaño final del vídeo crecerá demasiado.

Factor between P and B frama Quants: En este caso indicamos el factor de


relación entre un P-Frame y un B-Frame. Con el valor por defecto
especificamos que un P-Frame tendrá 1,30 veces el "tamaño" de un B-Frame.
De esta forma se indica cuanto bitrate menos se puede llegar a ahorrar en un
B-frame respecto al P-frame anterior al que se hace referencia. Un valor alto
puede volver el vídeo más compresible pero la calidad de las B-frames puede
salir perjudicada dañando la calidad final.
La relación de tamaño entre frames permite si está bien ajustada ahorrar y
emplear en los momentos necesarios los bits requeridos, a la vez que impide
que se noten saltos de calidad si la diferencia entre el tamaño de los frames es
excesiva.

Chroma QP Offset: En este parámetro que puede tomar valores de -12 hasta
12 se ajusta la compensación de calidad entre color y luminosidad. Ya que el
ojo humano es más sensible a los cambios de luminosidad que de color es
posible conseguir una mayor compresión ahorrando datos de color sin llegar a
percibirlo. Sin embargo se recomienda dejar el valor por defecto 0 que
establece un equilibrio entre color y luminosidad.

Macroblock options:

Adaptive DCT: La activación de esta casilla modifica el tipo de


transformaciones que se aplica en los particiones 8x8 dentro de los
macrobloques. Su activación es necesaria para poder usar la intra-estimación
8x8 (I8x8).
I4x4: Permite efectuar intra-estimaciones de "movimiento" en particiones de
ese tamaño dentro de los macrobloques cuando no hay variación a lo largo de
distintos frames.
I8x8: Permite efectuar intra-estimaciones de "movimiento" en particiones de
ese tamaño dentro de los macrobloques cuando no hay variación a lo largo de
distintos frames. Para poder usar esta casilla es necesario marcar la casilla
Adaptive DCT.
P4x4: Permite efectuar estimaciones de movimiento en particiones de ese
tamaño dentro de los macrobloques de las P-Frames. Para poder activar esta
casilla es obligatorio marcar la estimación de movimiento en particiones más
grandes para las P-Frames (P8x8).
P8x8: Permite efectuar estimaciones de movimiento en particiones de tamaño
8x16, 16x8 y 8x8 dentro de los macrobloques de las P-Frames. Su uso es
obligatorio si queremos activar la estimación de movimiento en particiones aún
más pequeñas para las P-Frames (4x8, 8x4, 4x4).
B8x8 Permite efectuar estimaciones de movimiento en particiones de tamaño
8x16, 16x8 y 8x8 dentro de los macrobloques de las B-Frames.

B-Frames
De la misma forma que en XviD, el códec x264 puede hacer uso de las B-
Frames, es decir, frames bidireccionales que no sólo toman como referencia los
frames anteriores sino que intentan predecir el frame siguiente. Las Bi-
directional Predictive Frames son áltamente compresibles ya que sólo
almacenan los datos que cambian desde el frame anterior o que difieren del
frame posterior. Las B-Frames tienen generálmente menos calidad que las I-
Frames/P-Frames pero ayudan a aumentar la calidad general del vídeo
ahorrando bits donde no son reálmente necesarios para destinarlos a zonas
más conflictivas. Uso de B-Frames es recomendable, ya que aumenta la
compresibilidad del encode.

Adaptative B-Frames:
Al marcar esta casilla permites un uso adaptativo de las B-Frames.
Dependiendo de la necesidad de su aplicación el número de B-Frames
consecutivas puede ser reducido impidiendo que se deteriore la calidad del
vídeo comprimido.
El valor 0 (mode 0) indica que no se van a utilizar B-frames.
El valor 1 (mode 1) permite utilizar un B-Frame al estilo de los usados durante
mucho tiempo en DivX usando una predicción temporal o espacial.
El valor 2 (mode 2) ya permite usar esos B-Frames como frames de referencia
a parte de poder activar métodos avanzados de predicción.
x264 permite usar un máximo de 5 B-Frames y se recomienda un valor de 3
que combinado con el uso adaptativo nunca perjudicará la calidad del vídeo.

B-Pyramid: La activación de esta opción permite usar las B-Frames como


frames de referencia para otras B-Frames. Esto permite aumentar la efectividad
de la compresión cuando aparecen dos o más B-Frames consecutívamente.
Las versiones de FFDShow a partir de Marzo del 2005 corrigen ciertos fallos
que se daban al decodificar vídeos que tenían esta opción (también llamada B-
Frames Piramidales) activada.

RDO for B-Frames: Rate Distortion Optimized significa una mejora en la


estimación de movimiento que se aplicará a las B-Frames, si marcamos esta
casilla, con lo que la calidad de las mismas mejoraría.
Por supuesto es recomendable su utilización pero hay que tener en cuenta que
la velocidad de codificación se resiente. Esta opción ha sido quitada en las
últimas versiones del codec.

Weighted B-Prediction: Esta opción de activación recomendada permite que


las B-Frames tengan en cuenta los datos de "brillo" del vídeo (cuyas
variaciones son captadas por el ojo humano con mayor facilidad que las
variaciones de color).
De esta forma se mejora la calidad de las B-Frames en los efectos de
desvanecimiento, gradaciones, etc (por ejemplo la representación del cielo).
Bidirectional M.E.: Con esta opción activada se añade un nivel de búsqueda
adicional para los vectores de avance y retroceso en la codificación de una B-
Frame. Esta opción ha sido quitada en las últimas versiones del codec.

B-Frame Mode: Esta opción modifica el comportamiento de los vectores de


movimiento de las B-Frames.
El modo Temporal es el aconsejado pues trabaja en el sentido clásico
bidireccional de los B-Frames tomando como referencia las particiones dentro
de los frames anteriores y posteriores consiguiendo un nivel de calidad más
estable.
El método Spatial permite trabajar a los vectores de movimiento de las B-
Frames "dentro" del propio frame tomando como referencia las particiones
vecinas ofreciendo un aumento de calidad en los test PSNR; sin embargo de
momento ofrece una calidad global inferior.

Parece que su punto fuerte sería su aplicación en codificaciones de anime


donde la presencia de colores planos "crea" una repetición en píxeles anexos.

El método Auto es el propio códec el que elige automáticamente en que


momento utilizar los modos Temporal-Spatial. Se recomienda su uso
remarcando que en codificaciones a dos o más pasadas es cuando se
consigue más efectividad.

B-Frame Bias: Esta opción cuyos valores van de -100 a 100 permite controlar
la frecuencia de uso de las B-Frames. El valor por defecto 0 es recomendable.
Con valores superiores la aparición de B-Frames sería más probable
aumentando la compresibilidad pero pudiendo perjudicar la calidad global del
vídeo. Valores menores disminuirían la compresibilidad con lo que algunas
ventajas de "ahorro" de bits se perderían, aumentando el riesgo de oversized y
sobre todo de aparición de macrobloques.
En ningún caso aplicar un valor positivo significa que se pueda utilizar un
número mayor de B-Frames al especificado en la casilla Max Consecutive sino
que sólo se aumenta la probabilidad de que se utilicen el máximo de B-Frames
consecutívamente.
Preset: En esta ventana desplegable podemos selecionar.

Después de todo el rollo mandado, en el cual se indicó las mejores


configuraciones para el codec (eto es discutible, ya que uno con la practica
encontrará “valores mejores” que se adapten al tipo de encode que realicen).
Luego le damos “ok” y en ventana principal de MeGUI, en la parte de video,
cliquamos en Equeue y nos dirigimos a la pestaña del mismo nombre y nos
encontraremos nuestro encoding pendiente; simplemente le damos “Start”, este
proceso demora, así que nos preparamos un té y a esperar (no se olviden
de cambiar el nombre a archivo final de antes del encodeo, ya que
anteriormente encodeamos el audio que tiene el mismo nombre del avs
creado,o si no, simplemente a la salida del video, en ves de mp4, le damos
RAWAVC, con esto ya no hay necesidad de cambiar el nombre.

Una vez encodeado el video, vamos a tener los tracks de audio y video
separados y ahora para ponerlos en el contenedor, nos vamos a tool->muxer-
>mp4muxer y nos aparecerá una ventanilla como ésta:

En video Input seleccionamos en stream de video y donde dice audio1,


seleccionamos el audio creado, luego le damos a Queue y por último no vamos
a la pestaña Queue en la pantalla principal de MeGUI y le damos a start y pues
eso sería todo.

He de agradecer a Erunamo quien fue quien me incitó a hacer esta guía.


Saludos!!

Anda mungkin juga menyukai