About Taringa!

Popular channels

● Es hora de aprender Encoder Basico




● Esta guía esta orientada principalmente al encoder de Anime.

● En este guía podrán encontrar todo lo necesario para poder saber como realizar un encoder básico.

● Si realizan encoder a una fuente de Vídeo entrelazada con solo los datos aquí presentes es probable que tengan malos resultados.

● Por limitaciones impuesta por Taringa hay texto que en verdad son imágenes, puede que se vean horrible así que les pido disculpa si es molesto a la vista.

● El Post esta divido por partes, es necesario para usar x264 que sepan usar AviSynth, en cambio con MeGUI, se pueden saltar estas dos partes.

● Mas adelante vendra un Post con el MediaCoder, ya que por restricciones de taringa no cabio aqui y luego uno de Desentrelazado.




Parte 1 ---> AviSynth

¿Que es AviSynth?




Descarga

A través de un intermediario (Mundodivx)

http://www.mundodivx.com/descargas.php?id=66

o su pagina oficial

http://avisynth.org/mediawiki/Main_Page



Conociendo el lenguaje de AviSynth




Filtro:
Comando que le indica a AviSynth que debe aplicar una determinada acción en ese punto del script. Este comando se compone por el nombre del filtro seguido de dos paréntesis entre los que es posible dar valores personalizados a ciertos parámetros que regulan su configuración.

Ejemplo ----> NombreDelFiltro()


Filtros Internos: Son aquellos incluidos con AviSynth y pueden usarse directamente (AVISource, Crop, Resize) .

Filtros Externos o Plugins: Filtros no incluidos con AviSynth, también llamados plugins. Se componen de un único archivo .dll aunque en algunos casos pueden requerir que otras librerías estén presentes en el sistema (como DirectShowSource2 necesita Haali Media Splitter).
Para poder invocar un plugin en el script (mediante el lenguaje correspondiente de AviSynth) primero deben introducir la siguiente linea con la ubicación del plugin en el comienzo del script:LoadPlugin("C:\...\plugin.dll" ), o para que se cargue automáticamente, colocar el plugin en la carpeta por defecto: C:\Archivos de programa\AviSynth 2.5plugins.
Por supuesto que en un mismo script pueden utilizar tantos plugins como gusten, nada mas deben usar una linea por cada uno para cargarlos, o ponerlos todos en la carpeta mencionada.

Un script básico seria este (cada linea representa un filtro).


AVISource("C:\carpeta con el video\el video.avi", audio=true)
#filtros de desentrelazado
Crop(4, 8, -4, -12)
Lanczos4Resize(1280, 720)


Que al mismo tiempo es lo mismo que se escriba del siguiente modo, ya que las líneas que empiezan con # o los espacios son ignorados por AviSynth.

AVISource("C:\carpeta con el video\el video.avi", audio=true)Crop(4, 8, -4, -12)Lanczos4Resize(1280, 720)

Como prioridad yo ocupare la primera forma ya que es mucho mas ordena y sencilla de leer por nosotros.

El orden de los filtros siempre debe ser el siguiente para no tener problemas con nuestro resultado final.



No les enseñare como usar cada categoría de Filtros, solo las mas básica para hacer una compresión simple y sencilla.


Filtros de Carga de archivos


AviSource

AviSource("C:\...\video.avi", pixel_type="YV12" )
AviFileSource("C:\...\video.avi", pixel_type="YV12" )
OpenDMLSource("C:\...\video.avi", pixel_type="YV12" )


AviSource:permite cargar archivos AVI, WAV, AVS o VDR(frameserver de VirtualDub). Si el archivo AVI es estandar y no posee cosas raras como audio AAC o video H264 este filtro deberia ser frame accurate.
Esta detecta automaticamente el tipo de archivo y lo pasa a la interfaz AVIFile o OpenDML según corresponda. En caso de encontrase problemas se puede forzar el uso de alguna de estas utilizando las otras dos lineas de carga, teniendo en cuenta las siguientes caracterizticas.


AviFileSource: sirve para archivos AVI menores de 2GB y el resto de formatos mencionados anteriormentes en AviSource.

OpenDMLSource: puede abrir archivos AVI de cualquier tamaño pero no los otros formatos.

En la linea también se puede agregar el parámetro audio=false que sirve para evitar la carga de audio, si se quiere lo contrario se cambia la linea false por true.

El parámetro pixel_type sirve para forzar un formato de color en la salida del decodificador, siendo validos los siguientes: YV12, YV411, YV16, YV24, YUY2, Y8, RGB32 y RGB24. Si se omite (que es lo mas común y recomendable) AviSynth usara el primer formato soportado por el decodificador respetando el orden ya mostrado.

DirectShowSource2

DSS2("C:\...\video.mp4", fps=25, convertfps=false)

Este es un Filtro externo por lo tanto recuerden agregar la linea LoadPlugin("C:\...\plugin.dll" ) y el Plugin necesario viene con el Haali Media Splitter que es el archivo avss.dll

descarga Haali Media Splitter

http://www.mundodivx.com/descargas.php?id=48


Los formatos soportados son MKV, TS, M2TS, MP4 y OGM.

Definir el parámetro fps sirve para fijar el frame rate de reproducción, pero solo es necesario en ciertos casos de decoders directshow que fallan en informarlo, como cuando se trata de archivos ASF o MOV.

Para vídeos con framerate variable o VFR se puede usar convertfps=true para convertir a framerate constante o CFR mediante duplicado de frames. Aparentemente ofrece mejores resultados si también se fija el framerate a un valor de 120 usando fps=120, dado que este valor es el primero que posee como múltiplos a 24 y 30. Esto surge de una cuestión de entrelazado, pero como no suele ser necesario usar este parámetro en otro post daré mas info de Desentrelazado, por lo tanto, por ahora no les recomiendo usar este parámetro.

No sirve para la carga de audio.



Filtros para Transformaciones Geométricas

(corte, tamaño, bordes)


AddBorders

AddBorders(0,32,0,32,$696969)



Aquí pueden ver una lista con los códigos y colores soportados por el filtro.

http://avisynth.org/mediawiki/Color_presets


Crop

Crop(4,4,-8,-8)

Este filtro sirve para cortar cierta cantidad de pixeles de los lados de la imagen.
Se configura indicando la cantidad a cortar de cada lado, donde el primer numero es izquierda, el segundo es arriba, el tercero es derecha y el cuarto es abajo. Y deben colocar los últimos dos valores negativos como se ve en la linea de texto.


FlipHorizontal / FlipVertical

FlipHorizontal()
FlipVertical()


Filtro que rota el vídeo de tal manera que lo que se veía de izquierda-derecha pasa a verse de derecha-izquierda, en el caso del horizontal, el vertical hace lo mismo pero en vertical, arriba-abajo pasa a ser abajo-arriba.
Dicho de otra forma el vídeo pasa a verse como el original se vería en un espejo.


Turn

TurnLeft()
TurnRight()
Turn180()


Rota el vídeo 90 grados hacia la izquierda(left), derecha(right) o 180 grados.

Resize

Este filtro se usa para modificar la resolucion del video, para asi estirarlo o comprimirlo(espacialmente hablando) lo necesario hasta alcanzar la nueva resolución deseada. Existen unas cuantas variantes que se pueden usar:

BilinearResize(ancho,altura)
BicubicResize(ancho,altura,b,c)
LanczosResize(ancho,altura,taps)
Lanczos4Resize(ancho,altura)
BlackmanResize(ancho,altura,taps)
GaussResize(ancho,altura,p)
PointResize(ancho,altura)
SincResize(ancho,altura,taps)
SplineXXResize(ancho,altura)
donde XX puede ser 16, 36 o 64

El ancho y altura deben indicarse con valores enteros, dado que la unidad mas chica posible es el pixel. También tengan en cuenta que muchos codecs compresores requieren para su correcto funcionamiento que el vídeo a comprimir tenga valores de resolución, tanto horizontal como vertical, múltiplos de 8 o 16, así que antes de aplicar el resize averigüen cual es el caso que les compete para no encontrarse luego con errores inexplicables.

Explicación de cada variante:





Otros filtros

(subtitulos)

VSFilter

Filtro dedicado a pegar subtitulos sobre el video. Archivos soportados: .sub, .srt, .ssa, .ass, .pcb, .smi

linea de texto para el script.


TextSub("C:\...\subtitulos.ass" ) -> para archivos de subtitulos que contienen texto (SRT, SSA, ASS)

VobSub("C:\...\subtitulos.sub" ) -> para archivos de subtitulos que contienen imágenes, como aquellos extraídos de un DVD-Video.

Este es un filtro externo por lo tanto aquí se los dejo para descargar el archivo .dll correspondiente.

http://sourceforge.net/projects/guliverkli2/files/DirectShow%20Filters/DirectVobSub%202.39/

Es el archivo de nombre VSFilter_20090624.zip dentro de este zip esta el .dll.


Creando mi Script


Bueno ahora que ya conocen los filtro de uso mas básico que tal si creamos nuestro script, pueden simplemente crear un archivo de texto nuevo (.txt) y luego cambiar su extencion por .avs o si la instalación de AviSynth salio todo bien al presionar con el botón derecho de su mause deberían aparecerles la opción destacada en la imagen.




Buscamos nuestro vídeo.



Como pueden ver es un MKV por lo tanto el filtro necesitamos para abrirlo es el DirectShowSource2, entonces nuestra primera linea seria lago así.

LoadPlugin("C:\Program Files (x86)\HaaliMatroskaSplitter\avss.dll" )

dss2("C:\carpeta con el video\FateZero OP.mkv" )


No agrego las lineas fps=24 y convertfps=false ya que no pienso hacer ningún cambio respecto a los FPS.

Ahora que ya tenemos lista la primera linea de nuestro script, vienen los demás filtros ustedes eligen cuales usaran, yo le haré un pequeño Resize de 1080P a 720P y le pegare unos sub en ASS, por lo tanto agregamos las lineas correspondientes a nuestro script, que ahora debería quedarnos algo como lo siguiente:


LoadPlugin("C:\Program Files (x86)\HaaliMatroskaSplitter\avss.dll" )

dss2("C:\carpeta con el video\FateZero OP.mkv" )
Lanczos4Resize(1280,720)
TextSub("C:\carpeta con el video\subtitulos.ass" )


Nótese que para usar el filtro de para los sub, no use la linea LoadPlugin("C:\...\plugin.dll" ) ya que el plugin que usa el filtro lo deje en la carpeta correspondiente en el directorio de AviSynth.

Guardamos y nuestro script esta listo y habremos sobrevivido al aprendizaje del uso de AviSynth, y ahora viene nuestro siguiente reto, aprender a usar el codec compresor x264.


A modo de ultimo dato si quieren ver una previsualizancion de como se vera su video pueden usar un programa llamado AvsPmod la versión oficial se llama AvsP, pero esta algo descontinuada por eso les recomiendo el primero.

Descarga

http://forum.doom9.org/showthread.php?t=153248



Parte 2 ---> x264




Descarga

http://x264.nl/






Empecemos, aquí el ejemplo de nuestra linea de comando:

"C:\x264.exe" --level 4.1 --preset slower --tune Animation --crf 18 --output "C:\video.mkv" "C:\Script.avs"

La explicación de cada comando es la siguiente:

"C:\x264.exe": directorio en donde se encuentra nuestro archivo x264.exe, que obviamente deben editar según la ubicación de su x264.exe.

--output "C:\video.mkv": el directorio de nuestro archivo de salida, junto con su nombre que puede tener por extensión .264, .mkv o .mp4. como va a salir un solo archivo de vídeo que luego empaquetaremos junto con el audio les recomiendo usar .264

"C:\Script.avs": El directorio con nuestro archivo de entrada, osea el Script que aprendimos a crear mas arriba. También puede se un archivo .AVI.



level


--level: Como el codec x264 tiene un amplio abanico de parámetros dependiendo de los que usemos, el equipo encargado de reproducir el archivo necesitarán de más o menos prestaciones. En resumen más o menos potencia de proceso. Por eso y para crear unos estándares se crearon los niveles ( --level ). Cada aparato que tenga reproductor multimedia que compramos está certificado para cierto nivel, como pasa por ejemplo con la Playstation 3 o Xbox que es nivel 4.1 ó la PSP que es nivel 3.1, o mi reproductor de mi Blu-ray o LED reproduce hasta 4.1. Solo se recomienda usar el 5.1 en caso de que el archivo este destinado para ser reproducido en un PC. Yo recomiendo usar el 4.1 que el que brindara mayor compatibilidad a nuestro vídeo para ser reproducido en un número mayor de reproductores multimedia.

Abra ocasiones en las cuales aunque indiquemos el parámetro --level 4.1 el archivo final puede no tener ese nivel. Ya que este parámetro se usa para advertirle al códec que queremos ese nivel y si las opciones de codificación no son las adecuadas, entonces el codec emitirá un mensaje de aviso como que nos estamos pasando de la raya, pero nada más.

Nótese que el indicar Level a 4.1 no siempre asegura que los vídeos codificados se reproducirán correctamente, ya que los reproductores tienen limitaciones en cuanto al máximo de flujo de datos que puede gestionar el procesador del aparato. Las especificaciones para los Blu-ray limitan la tasa de datos de vídeo a 40mbit y el buffer de 30mbit. Para ajustar esto pueden incluir en la línea de comandos estas instrucciones --vbv-bufsize 30000 --vbv-maxrate 40000 para no confundirlos con otros temas mas abajo les defino estos 2 parámetros




profile


--profile : lo mas común y recomendable aquí es usar 2, high y high10 para codificaciones a 10 bits. cada parámetro activa un paquete de opciones en el x264, que se los defino a continuación:

baseline:
--no-8x8dct --bframes 0 --no-cabac --cqm flat --weightp 0
No entrelazado.

main:
--no-8x8dct --cqm flat

high:
Con pérdida.

high10:
Soporte para profundidad de color de 8 y 10 bits.

high422:
Soporte para profundidad de color de 8 y 10 bits.
Soporte para submuestreo chroma de 4:2:0/4:2:2.

high444:
Soporte para profundidad de color de 8 y 10 bits.
Soporte para submuestreo chroma de 4:2:0/4:2:2/4:4:4.

Yo les recomiendo usar solamente --profile high, pero a la vez como este parámetro es el predeterminado se puede omitir de la linea de comando perfectamente sin tener algún problema.




preset


--preset :Aquí es donde elegimos la forma en la que se codifica, que es lo que mayormente tomara en cuenta nuestro codec para hacer la codificación. Hay muchas opciones y todas inciden directamente en la velocidad de codificación. Ordenados de menos eficiencia (más rapidez de codificación) a más eficiencia (menos rapidez) tenemos ultrafast - superfast - veryfast - faster - fast - medium - slow - slower - veryslow - placebo. Los paquetes de opciones que usa cada uno son los siguientes.

ultrafast:
--no-8x8dct --aq-mode 0 --b-adapt 0 --bframes 0 --no-cabac --no-deblock
--no-mbtree --me dia --no-mixed-refs --partitions none --rc-lookahead 0 --ref 1
--scenecut 0 --subme 0 --trellis 0 --no-weightb --weightp 0

superfast:
--no-mbtree --me dia --no-mixed-refs --partitions i8x8,i4x4 --rc-lookahead 0
--ref 1 --subme 1 --trellis 0 --weightp 1

veryfast:
--no-mixed-refs --rc-lookahead 10 --ref 1 --subme 2 --trellis 0 --weightp 1

faster:
--no-mixed-refs --rc-lookahead 20 --ref 2 --subme 4 --weightp 1

fast:
--rc-lookahead 30 --ref 2 --subme 6 --weightp 1

medium:
Por defecto.

slow:
--b-adapt 2 --direct auto --me umh --rc-lookahead 50 --ref 5 --subme 8

slower:
--b-adapt 2 --direct auto --me umh --partitions all --rc-lookahead 60
--ref 8 --subme 9 --trellis 2

veryslow:
--b-adapt 2 --bframes 8 --direct auto --me umh --merange 24 --partitions all
--ref 16 --subme 10 --trellis 2 --rc-lookahead 60

placebo:
--bframes 16 --b-adapt 2 --direct auto --slow-firstpass --no-fast-pskip
--me tesa --merange 24 --partitions all --rc-lookahead 60 --ref 16 --subme 11 --trellis 2

Les recomiendo usar el slow pero si tiene un PC mas poderoso usen los mas eficientes, y si tienen un PC muy pero muy limitado usen medium.




tune


--tune : Adapta los ajustes predeterminados en preset para un uso en particular. El como usarla dependerá de nuestra fuente de vídeo (animación o imagen real). Aquí destaca film - animation - grain Respectivamente para imágenes reales, para dibujos animados (cartoon: fondos planos, sin texturas, animes) y para conservar el grano del vídeo (como por ejemplo películas filmadas en 16mm. Ojo que esta opción aumenta mucho el bitrate).

Se pueden introducir varios tune separados por comas, pero si es de tipo psy sólo se puede usar uno. acontinuacion la lista de tune con sus respectivo paquete de opciones que utiliza.


film (psy tuning):
--deblock -1:-1 --psy-rd :0.15

animation (psy tuning):
--bframes {+2} --deblock 1:1 --psy-rd 0.4: --aq-strength 0.6 --ref {Double if >1 else 1}

grain (psy tuning):
--aq-strength 0.5 --no-dct-decimate --deadzone-inter 6 --deadzone-intra 6
--deblock -2:-2 --ipratio 1.1 --pbratio 1.1 --psy-rd :0.25 --qcomp 0.8

stillimage (psy tuning):
--aq-strength 1.2 --deblock -3:-3 --psy-rd 2.0:0.7

psnr (psy tuning):
--aq-mode 0 --no-psy

ssim (psy tuning):
--aq-mode 2 --no-psy

fastdecode:
--no-cabac --no-deblock --no-weightb
--weightp 0

zerolatency:
--bframes 0 --force-cfr --no-mbtree --sync-lookahead 0 --sliced-threads --rc-lookahead 0




Bitrate / Calidad


Por ultimo la decisión mas crucial, el como queremos codificar. A diferencia del XviD, el x264 funciona perfectamente a una pasada, y no vale la pena realizar dos a no ser que queramos fijar un bitrate o un tamaño final concreto, o simplemente queremos que los archivos se vean bien lindos y ordenas en el explorador de windows. Al hacerlo en una pasada vamos a buscar una calidad constante, por lo que no tendremos control sobre el tamaño final.

Codificacion en una pasada

Podemos usar para codificación a una sola pasada CQP (Constant Quantization Parameter) o CRF (Constant Rate Factor). La mejor manera de hacerlo a mi parecer es usando CRF.

Usando --qp (CQP) por ejemplo a a un valor Q=20, todos los frames se codificaran a Q=20, independientemente de cómo sean. Habrá valores fijos para las I, P y B-frames.

En cambio el modo --crf (CRF), el Rate Factor es una medida de calidad, y puede variar los valores de Q según cómo sean nuestras frames ya que tiene en cuenta el movimiento. Asignará valores medios no fijos para las I/P/B. En las escenas con mucho movimiento aumenta la compresión y por tanto el valor de Q (baja la calidad calidad), y en las escenas con poco movimiento disminuye la compresión y baja el valor de Q (aumenta la calidad). explicado de otro modo seria así.
En escenas con mucho movimiento asigna un Q mayor ya que el ojo humano no puede fijarse en todos los detalles, y si hay alguna imperfección no nos daremos cuenta. En escenas con poco movimiento sí nos podemos dar cuenta si hay alguna imperfección. Por lo tanto, si el --crf lo asignamos en 20, para las escenas con movimiento subirá, por ejemplo, a Q=22 y para las sin movimiento a Q=18.
Esto no quiere decir que el bitrate asignado a las escenas con mucho movimiento será menor que a las de poco. Estamos hablando de calidad constante, luego como es lógico, una escena movida tendrá un bitrate mayor aunque esté ligeramente más comprimida que una que no.

--crf : Los valores son logarítmicos y van de 0 a 51. a menor número mayor calidad y a mayor numero menor calidad, como es lógico mientras mas calidad tenga nuestro vídeo mayor sera su peso, yo les recomiendo usar valores que van entre 18 y 21.

Ejemplo de una codificación con modo CRF:
"C:\x264.exe" --crf 18 --output "C:\video.mkv" "C:\Script.avs"

--qp: Como ya se dijo aquí la calidad es constante y la compresión sera la misma para todo el vídeo. No lo uso mucho debido a que el modo CRF ofrece a mi parecer muchas más ventajas. sus valores van de 0 a 69, y como recomendación usen entre 20 y 24

Ejemplo de una codificación con modo CQP:
"C:\x264.exe" --qp 21 --output "C:\video.mkv" "C:\Script.avs"


Codificación en dos pasadas

Solo la recomiendo cuando por ciertos motivos quieran jugar a ser dios y deseen controlar el tamaño final de nuestro archivo la linea de comando seria la siguiente.

Primera pasada
"C:\x264.exe" --level 4.1 --preset slower --tune animation --pass 1 --bitrate 2500 --stats "C:\video.stats" --output NUL "C:\Script.avs"

Segunda pasada
"C:\x264.exe" --level 4.1 --preset slower --tune animation --pass 2 --bitrate 2500 --stats "C:\video.stats" --output "C:\video.mkv" "C:\Script.avs"

Nótese que solo lo que enmarque en rojo en ambas lineas es el principal cambio en el comando con respecto a la codificación a una pasada, siendo --pass 1 el parámetro indicador de que pasada corresponde, --bitrate 2500 el bitrate que determinara el peso final de nuestro archivo, --stats es el archivo que se genera con los datos del análisis del vídeo, --output NUL en todas las pasadas, excepto en la que este al ultimo, ya que el único propósito de las pasadas que anteceden a la ultima es analizar el vídeo.

A modo de recomendación para vídeos de a 720P les recomiendo usar valores entre 2000 y 3000, mientras que para 1080P entre 5000 y 7000.


¿Como saber si el Bitrate que elegí es el correcto?

Como dato final les diré como hacer un pequeño test de compresibilidad que les dirá si el bitrate es el adecuado o no.

En el script de Avisynth añadimos la función SelectRangeEvery(500, 25), debajo del filtro de manipulación de archivo, para que comprima solo un 5% del vídeo.
Descripción del filtro SelectRangeEvery(): los parámetros del ejemplo que di significa que cada 500 frames tomara 25 (en un vídeo a 25FPS equivale a un segundo por cada 20). Los valores los pueden variar a gusto.

Con la pequeña modificación en el script ya hecha la linea de comando seria la siguiente.

"C:\x264.exe" --level 4.1 --preset slow --tune animation --pass 1 --bitrate xxxx --stats "C:\video.stats" --output NUL "C:\Script.avs" --slow-firstpass

El valor XXXX lo cambia por el valor de Bitrate que quieran probar ustedes, y el parámetro --slow-firstpass sirve para que en esta como es la primera pasada no se hagan tan rápido ya que es es común que así sea, a fin de conseguir que se hagan un buen trabajo.

Al terminar la codificación nos arrojará la info del ratefactor resultante.

x264 [info]: final ratefactor: 27.24



Si recuerdan lo que les dije antes de los valores que les recomendé para ratefactor (CRF) eran entre 18 y 21, pero en el resultado me dio la drástica suma de 27.24, el video que use para el ejemplo tenia una resolución de 1080P y el Bitrate lo puse a 2500 y nuevamente recordando mis palabras anteriores, para una resolución a 1080P lo recomendable era entre 5000 y 7000. Probemos de nuevo con un Bitrate mayor que sera 6000 haber como nos va.



Como pueden ver ahora el resultado del ratefactor fue de 20.69, que es lo que esta dentro del rango que yo considero aceptable



Otros Ajuste



Y por ultimo los parámetros individuales que creo que son los mas importante que conozcan, y si los van a usar háganlo con cuidado (ninguno de estos comando es obligatorio de ejecutar).

--bframes: para decirlo de alguna manera es la forma en que se almacenan las imágenes. Hay tres tipos B, I y P. Tipo I: no se referencia con ninguna otra por lo tanto casi no se comprime. Tipo P: se referencia con imágenes anteriores, por lo tanto se puede comprimir más ya que lo que hace es repetir todos los datos que puede de la imagen anterior. Tipo B: Se referencia con imágenes anteriores y también posteriores por lo que ofrece la mayor compresibilidad. Este parámetro nos indica cuantas imágenes tipo B pueden ir seguidas. A mayor número mayor puede ser la compresibilidad, pero también necesitamos más potencia y el moverse por el vídeo puede acabar siendo difícil para nuestro reproductor, ya que tiene que encontrar las imágenes de referencia para poder construir la imagen.

--ref: Número de imágenes de referencia. Nos indica el número de imágenes antes y después que estudia el codec para comprimir la imagen actual. En anime como pueden imaginar podemos subir este parámetro bastante más de lo normal para conseguir compresiones increíbles (hay bastardos que se aprovechan y salen las jodidas versiones ligeras).

--trellis: Cuantización para los macroblocks. Estudia la forma de comprimir los bloques de imagen. De 0 a 2.

--deblock: Es un filtro que como su nombre indica hacer deblock. Para anime útil, pues trabajamos con imágenes principalmente de colores planos.

--vbv-maxrate: con este se controla de flujo de datos, por lo tanto no influye mucho en el resultado final de la imagen. El valor de este parámetro y el siguiente vienen de acuerdo con la siguiente pregunta: ¿Dónde voy a reproducir el vídeo y qué velocidad de transferencia me ofrece el soporte?
Como en el caso que nombre anterior de los Blu-ray su tasa de datos de vídeo generalmente es a 40mbit, por lo tanto si tratamos de reproducir un vídeo con un flujo mayor, este andará a saltos.

--vbv-bufsize: Muy relacionado con el anterior. El cambio de QP o factor de calidad no es algo inmediato y lleva un tiempo. Por eso necesitamos crear un buffer de datos que alimente la imagen mientras se produce ese cambio y el flujo de datos vuelve a su límite. Normalmente es suficiente poner la misma cantidad que hemos puesto en --vbv-maxrate. Si nos queremos atener a los límites del perfil 4.1 estos valores son en ambos casos 62500. Un ejemplo, si comprimimos a un bitrate de 2500, con 62500 tendríamos 62.5 segundos de buffer.

--me: método de estimación de movimiento. Estudia las imágenes para ver si es la cámara la que se mueve y de esa manera mover los pixels para ganar compresión. Hay varios métodos mientras mas complejo mayor tiempo de compresión.

--subme: Define la forma en que el decodificador toma la decisión de cómo codificar esa imagen. Va de 0 a 11. A mayor numero mejor resulta de imagen, pero mayor tiempo de trabajo de codificación. Les recomiendo usarlo a partir de 8.

--threads: sirve para indicar el numero de nucles que queremos que x264.exe use para el trabajo, en auto (--threads auto) usa todos los núcleos de procesamiento disponibles, misma cosa si se omite dicho comando.

Bueno eso fue todos lo referente al uso básico de x264.exe ahora ya están listo para hacer una compresión decente.

2 ultimas cosas. Como recuerdan esta es nuestra linea de comando para realizar nuestra compresión.

"C:\x264.exe" --level 4.1 --preset slower --tune Animation --crf 18 --output "C:\video.mkv" "C:\Script.avs"

Tal vez a algunos les resulte molesto el estar escribiendo siempre cada comando, existe la alternativa de usar un archivo *.bat o *.cmd. Ya que estamos trabajando con windows, lo mejor seria usar un *.cmd
Un *.cmd es un archivo de texto que contiene una serie de comandos que se ejecutan en el mismo orden en que están en el archivo. Cada linea en el archivo es un comando nuevo. El sistema espera la ejecución de un nuevo comando hasta que el anterior se ha finalizado. para no ampliar mas el post y como esto es algo fuera del encoder los invito a investigar como crearlo o haber si tengo tiempo y hago otro post con el tutorial.

Y por ultimo deben estarce preguntando, y donde mierda dejaste el audio ?. Bueno el X264 no sirve para compresión de audio, y como hay diversidad de codec de audio y la compresión con estos no toma mas de 10 minutos mejor les enseño a hacerlo con el MeGUI y el mediacoder aprovechando que a continuación vienen los tutoriales con sus respectivos usos para la compresión de vídeo.




Parte 3 ---> MeGUI

Introducción






Instalación


para su correcto funcionamiento MeGUI requiere lo siguiente:

AviSynth: pero si se llega a dar el caso de usar un Script de creación externa al MeGUI necesitaran tenerlo instalado

http://www.mundodivx.com/descargas.php?id=66

Haali Media Splitter

http://www.mundodivx.com/descargas.php?id=48

FFdshow

http://www.mundodivx.com/descargas.php?id=28

Con estos tres para su correcto funcionamiento con el MeGUI solo es necesario tenerlos instalados en el PC y nada mas.

Por ultimo nuestro actor principal MeGUI

http://www.mundodivx.com/descargas.php?id=73

Una vez descargado el MeGUI extraen todo en un carpeta cualquiera y ejecutan su .exe





Con el primer inicio instala todos sus componente y se actualiza solo. Pónganle que si a todo para que no obstaculicen el proceso.





Una vez finalizado les pedirá Reinicio le ponen que si.





Ahora ya esta instala el MeGUI en nuestro equipo con un único pero, que es que todavía no puede codificar audio en AAC. Para lograr que puedo llevar a acabo este tipo de trabajo necesitamos neroAacEnc.exe, para descargarlo sigan el link de mas abajo y acepten las condiciones de la pagina y luego les pedirá un mail lo ingresan y se descargara un zip el cual contiene el archivo que necesitamos.

Nero AAC

http://www.nero.com/enu/company/about-nero/nero-aac-codec.php


Ejecutamos el MeGUI nos vamos a Options > Settings y presionamos la pestaña External Program Configuration (1) y en la primera casilla (2) veremos la localización en donde debe quedar nuestro archivo neroAacEnc.exe, una vez lo tengamos en dicho directorio marcamos el cuadro Enable NeroAacEnc (3) guardamos (save) una vez hecho esto reiniciamos



Y ahora estamos completamente listo para usar MeGUI



Codificación: Vídeo


Creando el Script

Como método de entra el MeGUI no acepta vídeo propiamente tal, si no que tiene que ser cargados a través de un archivo .avs (los Scripts de AviSynth) y luego dependiendo de lo que queramos podemos codificar en XviD o x264, nosotros solo nos enfocaremos en x264 por razones obvias.

Para Crear nuestro .avs a través de las herramientas de MeGUI nos vamos a Tools > AVS Script Creator





Habiendo seleccionado AVS Script Creator se nos abrirá una ventana nueva en la cual deben presionar en Video Input (1) para seleccionar el vídeo a codificar, una vez habiendo seleccionado el vídeo se abrirá otra pestaña con 3 opciones. Seleccionan DirectShowSource (2). Habiendo hecho esto se les abrirá en una nueva ventana una pre-vizualisacion la pueden cerrar sin ningún problema.





A continuación pueden realizar los siguientes ajustes a su vídeo

1 Crop: cortar la cantidad selecciona en números enteros equivalentes a pixeles del vídeo

2 Resize: hacer un cambio de resolución de video





Ahora la pestaña Filters (1) les recomiendo siempre tener el cuadro Prefer DSSource2 over DSSource (2) marcado ya que el DSS2 es un filtro mas avanzado y tiene mejor manejo de archivos. El recuadro FPS (3) sirve para cambiar la cantidad obviamente de los FPS les recomiendo dejarlo tal y como esta.

En Resize Filter (4) eligen el filtro a usar para el cambio de resolución, en la primera parte del tutorial (FIltros de AviSynth) ya les explique las diferencia de cada uno.

Si quieren pegar algún subtitulo al vídeo seleccionan la casilla subtitles (5) y buscan sus subtitulo.

Por ultimo le damos a save (6) y abremos terminado de crear el Script. Al final se nos abrirá una ventana con una pre-vizualisacion de nuestro vídeo con cada filtro aplicado, la pueden cerrar.






Configurando x264

Teniendo ya creado nuestro .avs y cargado en MeGUI procedemos a la configuración de x264, para ello primero fíjense de tener en la casilla Encoder settings (1) tener seleccionado x264: *scratchpad* que es la plantilla predeterminada de configuración del codec. en File format (2) pueden elegir el formato se salida que puede ser .mp4, .mkv o .264 que es la opción que dice RAWAVC, como recomendación usen la ultima mencionada. y por ultimo seleccionamos Config (3) para ir a lo importante.






En la configuración del codec, primero que nada seleccionamos el cuadro Show Advanced Settings (1), que nos permitirá ver todos los parámetros variables, los cuales ya les explique cada uno en la segunda parte de la guía, así que no me extenderé mucho en estos puntos.

Encoding Mode (2): donde Const. Quality correcponde a CRF, Const. Quantizer a CQP y Automated 2pass a un codificación a doble pasada en la cual somos nosotros los que elegimos el Bitrate, que decidirá el tamaño del archivo.

Preset (3): la forma en la que se codifica, que es lo que mayormente tomara en cuenta nuestro codec para hacer la codificación. Ordenados de menos eficiencia (más rapidez de codificación) a más eficiencia (menos rapidez) tenemos ultrafast - superfast - veryfast - faster - fast - medium - slow - slower - veryslow - placebo.

Tuning (4): adapta la codificación al tipo de vídeo en que se trabaja, siendo Animation para anime y cartoon, y Film para películas a imagen real

AVC Profile (5): solo déjenlo en High Profile

AVC Level (6): como recomendación usar 4.1

Target Playback Device (7): especifica para que dispositivo esta destinado nuestro vídeo y adapta los ajuste para ello. Recomiendo dejarlo en Default

Cuando ya tenga todo listo y decidido le dan OK(8)



Ya estamos listo para iniciar la Compresión del vídeo con solo darle al botón "Queue" esta empezara, pero si quieren agregarle audio mejor esperamos un poco que ahora que ahora viene la codificación del audio.


Codificación: Audio


Actualmente la gran mayoría de los Blu-ray viene con audio FLAC en el caso de lo proveniente de japón como los animes, en cambio la gran mayoría de las Películas de este lado del mundo el audio de mayor calidad que suelen usar es el DTS-HD, que es simplemente glorioso. Bueno volvamos a lo nuestro como estamos enfocados en anime la mayoría de audio con la nos encontraremos sera FLAC, si fuera por mi lo dejaría tal cual, pero como se que muchos quieren ahorrarse todos los Bytes posibles, les enseñare a comprimirlo en AC3 y AAC.

De los dos el mejor es el AC3, solo tienen el pero de que solo es compatible con MKV y no MP4.

AC3

En la sección de audio del MeGUI nos vamos a Audio Input (1) y seleccionamos nuestra fuente de audio, en Encoder settings (2) selecionamos Aften AC-3: *scratchpad* y luego Config (3).







Por ultimo el parámetro que definirá el peso de nuestro audio, Bitrate (5), recomiendo dejarlo solo en 640, para así obtener la mejor calidad en caso de solo contar con audio 2.0 pueden bajarlo a 448.

le damos a Ok (6) y estamos listo para proceder a la codificación.





AAC

En la sección de audio del MeGUI nos vamos a Audio Input (1) y seleccionamos nuestra fuente de audio, en Encoder settings (2) seleccionamos Nero AAC: *scratchpad*, también podemos elegir la Extensión (3) del archivo entre MP4-AAC y M4A, recomiendo la primera. Finalmente nos vamos a Config (4).







Adaptive y Constant Bitrate (5): sirven para especificar el valor de los Kbits/s a fin de obtener el tamaño deseado para el archivo. No lo recomiendo mucho pero si lo van a usar háganlo en en Adaptive Bitrate y con valor mínimo de 320Kbits/s.

Variable Bitrate (6): El que mejor calidad entrega pero no podrán controlar el tamaño final del audio. usa valores de 0.0 a 1.0. Cuanto más alto, mejor calidad. Recomiendo usar este método.

AAC Profile (7): Por defecto en Automatic y como recomiendo usarlo, el codec elige uno dependiendo del bitrate o de la calidad, pero se puede forzar uno diferente. Forzar un profile sirve para mejorar la compatibilidad con reproductores multimedia o para mejorar la compresión.

AAC-LC (Low Complexity Advanced Audio Coding): maximiza la compatibilidad con los reproductores.

HE-AAC (High-Efficiency Advanced Audio Coding): mejora el AAC incluyendo SBR (Spectral band replication - Replicación de la banda espectral). En resumen significa que gran parte de las frecuencias altas son eliminados en la compresión y reconstituidos durante la reproducción a partir de las frecuencias bajas.

HE-AAC+PS: incluye además de SBR, estéreo paramétrico (PS - Parametric Stereo). En vez de comprimir cada canal por independiente, comprime la diferencia entre las canales. A bitrates inferiores PS mejora la calidad porque aumenta el bitrate del canal principal. Cuando el bitrate no tiene importancia es mejor no usar PS dado que reduce la sensación envolvente. PS no es compatible con audio mono.

le damos a OK (8) y hemos terminado con lo que correspondería a codificación de audio.




Creando el archivo final


Ya teniendo todo listo para iniciar el proceso de encoder, pueden hacer el encoder tanto del vídeo como el del audio por separado presionando sobre el botón "Queue" respectivo de cada uno y luego empaquetar ustedes mismo los archivos por algún X programa (con MeGUI también se puede) o simplemente dejar que MeGUI haga todo el trabajo.





Ya, todo listo damas y caballeros, le damos a "Queue" y el lindo proceso de codificación empezara y cuando termine tendrá su archivo multimedia listo.




● Recuerden con los datos en esta Guía solo lograran una compresión satisfactoriamente siempre y cuando usen fuentes de vídeo de naturaleza Progresivo, si les pasara lo de la imagen a continuación.



● Es todo por ahora







0No comments yet