21
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:

Manual de conversión de XX formato a H264

  • Upload
    jonax91

  • View
    396

  • Download
    3

Embed Size (px)

Citation preview

Page 1: Manual de conversión de XX formato a H264

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:

Page 2: Manual de conversión de XX formato a H264

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.

Page 3: Manual de conversión de XX formato a H264

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 .

Page 4: Manual de conversión de XX formato a H264

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.

Page 5: Manual de conversión de XX formato a H264

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

Page 6: Manual de conversión de XX formato a H264

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.

Page 7: Manual de conversión de XX formato a H264

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.

Page 8: Manual de conversión de XX formato a H264

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 )

Page 9: Manual de conversión de XX formato a H264

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:

Page 10: Manual de conversión de XX formato a H264

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

Page 11: Manual de conversión de XX formato a H264

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).

Page 12: Manual de conversión de XX formato a H264

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.

Page 13: Manual de conversión de XX formato a H264

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.

Page 14: Manual de conversión de XX formato a H264

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

Page 15: Manual de conversión de XX formato a H264

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 <[email protected]> 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

Page 16: Manual de conversión de XX formato a H264

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

Page 17: Manual de conversión de XX formato a H264

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.

Page 18: Manual de conversión de XX formato a H264

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.

Page 19: Manual de conversión de XX formato a H264

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

Page 20: Manual de conversión de XX formato a H264

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:

Page 21: Manual de conversión de XX formato a H264

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.