x264 CLI En esta pequeña guía vamos a mostrar como codificar un video con x264.exe usando líneas de comandos. Aplicaciones como MeGUI pueden usar x264.exe, pero ya veremos que trabajar en línea de comandos no es tan complicado. Sirve tanto para usuarios noveles como para expertos, dadas las últimas modificaciones en el códec que cuentan con presets que incluyen las configuraciones más usadas y simplifican mucho la tarea. ¿Por qué usar x264 cli y no x264VFW? Por una razón muy sencilla: la única versión oficial del códec es x264 cli. X264VFW no tiene soporte. Podemos descargar el X264.exe desde aquí http://x264.nl/ Bajad la versión de 32bits. Aunque nuestro equipo esté preparado para la versión de 64bits no la recomiendo por lo siguiente: vamos a necesitar avisynth 64bits. De las docenas de aplicaciones y filtros que hay en avisynth solo un pequeño porcentaje funcionan en 64bits. Y si no las podemos usar estamos atados de manos, así que recomiendo usar avisynth y x264 de 32bits. Algunas opciones del códec x264 que hemos de conocer:
Presets: ordenados de menos eficiencia (más rapidez de codificación) a más eficiencia (menos rapidez) tenemos Ultrafast ? Very fast ? Fast ? Medium ? Slow ? Slower ? Placebo Recomendamos Slow. Si nuestro PC está muy limitado pues Medium.
Tune: (afinar la compresión): opciones para el tipo de video del que partimos (animación, real,). Destacamos Film ? Animation ? Grain Respectivamente para imágenes reales, para dibujos animados (cartoon: fondos planos, sin texturas, tipo Los Simpson) y para conservar el grano del video (como por ejemplo películas filmadas en 16mm. Ojo que esta opción aumenta mucho el bitrate).
Level: para establecer las frames que se tomarán de referencia. Puede ser 3.1, 4.1, 5.1, ? (para un video con resolución resolución 1280x720 correspondería correspondería a 5, 9 y 16 ref-frames respectivamente). Recomendamos el level 4.1 para una mayor compatibilidad con reproductores reproductores tipo mediatank y demás. Nótese que el indicar el 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 video a 40mbit y el buffer de 30mbit. Para ajustar esto incluiremos en la línea de comandos estas instrucciones --vbv-bufsize 30000 --vbv-maxrate 40000
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
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. Al hacerlo en una pasada vamos a buscar una calidad constante, por lo que no tendremos control sobre lo mencionado. También decir que los valores de los quants para cada frame (Q) van desde 1 (más calidad más tamaño) a 51 (menos calidad menos tamaño). Los valores que Q ofrecen gran calidad estarían entre 19 y 23. En cuanto a las resoluciones podemos tranquilamente especificar valores de resolución mod4 cuando creemos el script de avisynth.
Para esta guía suponemos que: El x264.exe está en la ubicación C:\ Hemos creado un script de avisynth para cargar el video y realizar otras operaciones como crop, resize , denoising, etc (ver manual avisynth) C:\script.avs El video resultante va a ser C:\video.mkv
CODIFICACIÓN EN UNA PASADA Podemos usar para una single-pass CQP (Constant Quantization Parameter) o CRF (Constant Rate Factor). La mejor manera de hacerlo es usando CRF. Usando CQP por ejemplo a Q=20, todos los frames se codificaran a Q=20, independientemente independientemente de cómo sean. Habrá valores fijos para las I, P y Bframes. 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 (menos calidad), y en las escenas con poco movimiento disminuye la compresión y baja el valor de Q (más calidad). ¡¿Pero no era al revés?! Lo explicamos. 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. Así, si el CRF lo asignamos en 20, para las escenas con movimiento subirá p.ej a Q=22 y para las sin movimiento a Q=18. ¡Ojo!, 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
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
tiene menos calidad que uno a CQP=20. Pero como nuestra apreciación es subjetiva, usando CRF apreciaremos más calidad. Por ello hay que coger con pinzas los análisis PSNR. Línea de comandos para codificación a una pasada indicando el CRF. Vamos a Menu de inicio>Ejecutar>cmd y le damos a enter. Se abre la consola y escribimos "c:\x264.exe" --preset slow --tune film --crf 19 --crf 19 --level 4.1 --vbv-bufsize 30000 --vbv-maxrate 40000 --output "c:\video.mkv" "c:\ script.avs" Vemos en color las opciones que podemos variar.
CODIFICACIÓN EN DOS PASADAS Usaremos las dos pasadas cuando tengamos que establecer un determinado bitrate por cuestiones de tener que controlar el tamaño final del video. Primer pasada "c:\x264.exe" --preset slow --tune film --pass 1 --bitrate 2500 --stats "c:\video.stats" --level 4.1 --vbv-bufsize 30000 --vbv-maxrate 40000 --output NUL "c:\script.avs" "c:\script.avs" Segunda pasada "c:\x264.exe" --preset slow --tune film --pass 2 --bitrate 2500 --stats "c:\video.stats" --level 4.1 --vbv-bufsize 30000 --vbv-maxrate 40000 --output "c:\video.mkv" "c:\video.mkv" "c:\script.avs" "c:\script.avs" Vemos en color las opciones que podemos variar.
TEST DE COMPRESIBILIDAD. COMO SABER SI EL BITRATE QUE LE INDICO ES EL ADECUADO Si se da el caso de que quiero montar un video y que me quepa digamos en ½ DVD, según sea la resolución y lo que ocupe el audio habré de indicarle el bitrate. Para ello se usa una calculadora de bitrate. Aquí hay una http://forum.doom9.org/ http://forum.doom9.org/showthread.php showthread.php?t=122562 ?t=122562 ¿Cómo saber si me quedo corto o me paso? Podemos hacer un test de compresibilidad compresibilidad sobre una parte del video. Será rápido y nos adelantará resultados finales. En el script de avisynth añadimos al final del mismo la función
Trusted by over 1 million members
Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.
gusto. La línea de comandos: "c:\x264.exe" --preset slow --tune film --pass 2 --bitrate xxxx --stats "c:\video.stats" --level 4.1 --vbv-bufsize 30000 --vbv-maxrate 40000 --output NUL "c:\ script.avs" --slow-firstpass Vemos en color las opciones que podemos variar. El valor del bitrate xxxx será el que nos dé la calculadora. Nótese que se añade --slow antes de first pass ya que por defecto las primeras pasadas se hacen rápido, y a nosotros nos interesa que se haga despacio y bien. Al terminar la codificación nos arrojará la info del ratefactor resultante. x264 [info]: final ratefactor: ratefactor: 20.53 Como hemos dicho que el ratefactor será el parámetro de calidad, si nos da unos valores dentro de los recomendados es que lo hemos acertado. Si no ha sido así, hemos de replantearnos el cambiar el tamaño final buscado y por tanto el bitrate, o variar la resolución, resolución, etc Indicar que si la fuente es mala y tiene mucho ruido, el uso de un denoiser en avisynth puede ahorrarnos algo de bitrate.
CONSIDERACIONES FINALES Las fuentes en HD suelen ser bastante uniformes y no tener mucho ruido y artefactos, así que con un poco de práctica podemos dar con los valores de CRF que más nos convengan y a partir de ahí usarlos. No ocurre lo mismo con los DVDs, que los hay que dan pena.