Cómo configurar x264 en OBS
Aquí vas a aprender cómo configurar x264 en OBS para transmitir o grabar. Vas a comprender el por qué de cada parámetro para sacarle el máximo partido.
Este es el codificador de vídeo por defecto en OBS y el único que aparece cuando no tenemos un codificador hardware en el equipo. Si es tu caso, necesitarás saber dónde tocar para sobrevivir haciendo streaming con tu equipo o no derrochar recursos inútilmente.
Cómo configurar x264 en OBS - Los parámetros en detalle
En este vídeo tienes toda información de una manera más ilustrada sobre cómo configurar x264 en OBS, pero aquí te dejo esta guía por escrito para consultar rápidamente cuando lo necesites. Vamos punto a punto.
La escala de salida en OBS
La escala de salida nos permite reducir el tamaño del fotograma si la plataforma donde vamos a transmitir no es compatible con el tamaño que tenemos asignado en el proyecto. También reduciría el consumo de CPU en la codificación.
Pero si vas muy mal de recursos, lo primero que deberías hacer es bajarte un poquito la resolución de todo el proyecto.
Es decir, para que todo vaya más ligero, olvídate de esta casilla y vete directamente a la configuración de vídeo, reduce la resolución base y trabajas así en el proyecto. No tiene sentido tener un montaje a tanta resolución si no la puedes mover.
¿Qué bitrate poner en OBS?
Para transmitir en directo, el bitrate debe ser constante (CBR) y para una resolución típica de 1080p a 30 fotogramas por segundo, es recomendable no bajar de 3500kbps. Tampoco vale la pena subir de 8000kbps. Aquí tienes la tabla de calidades recomendadas:
Control de frecuencia del bitrate
El control de la frecuencia define la variabilidad de la tasa de bits. Estos son os modos de frecuencia disponibles en x264:
Constant Bit Rate es el modo en el que cada segundo de vídeo va a tener la misma cantidad de información, sin cambios.
Es el modo recomendado para transmitir debido a la facilidad de la ingestión en una plataforma o en un player.
Variable Bit Rate. En este modo, la tasa de bits va a depender de la necesidad. Si hay pocos cambios en la imagen, se reducirá automáticamente la tasa de bits. Si hay mucho movimiento, aumentará. Y eso lo hace con un parámetro adicional.
El VBR puede complementarse de dos maneras, con un campo llamado CRF que define el objetivo de calidad con un número entre 0 y 51. Siendo 0 el mínimo de compresión y mayor calidad, y 51 la mayor compresión y pésima calidad. Siendo lo normal 23.
O puede complementarse con un campo que define la tasa de bits máxima. Es decir, definimos la tasa de bits nominal y la máxima.
Constant Rate Factor. En este modo la constante es la calidad, por lo que es de tasa de bits variable.
La diferencia con respecto a VBR es que aquí no hay un bitrate base. Todo depende del factor de calidad que ajustemos.
El bitrate será variable, pero si el valor es 0 no habrá compresión, obtendremos un vídeo sin pérdidas. Y si el valor es 51 la compresión será máxima y la calidad pésima. El normal también es 23.
Average Bit Rate. En este modo, la tasa de bits es un objetivo a alcanzar.
El codificador tendrá que adivinar cómo alcanzar esa tasa de bits. Esto significa que la velocidad en sí variará, especialmente al comienzo del clip, y en algún momento alcanzará el objetivo. No ofrece una buena calidad de manera confiable.
Es el método más extraño para la gestión de la tasa de bits.
Recuerda que para transmitir, lo más apropiado es usar CBR ya que facilita la ingesta en las plataformas.
Para grabar, si nos queda potencia para emplear otra instancia del codificador mientras transmitimos o si sólo vamos a grabar, lo suyo sería hacerlo en variable, siendo CRF la opción más interesante para conservar la calidad y ahorrar espacio.
¿Para qué sirve la caché personalizada en OBS?
El parámetro de caché personalizada de OBS puede hacer que la transmisión se vea fluida con conexiones inestables o que fluctúan demasiado. Esto es un truco de supervivencia ¿Cómo?, subiéndola.
Aumentarla puede dar buen resultado a costa de un poco de retraso en la llegada de la señal.
Si la usas debe ser mayor que la tasa de bits. Se trata de asignar a la caché tu velocidad de subida óptima, dejando la tasa de bits por debajo de esa velocidad, obviamente.
Recuerda que tu velocidad de subida óptima debe ser un 20% inferior que el resultado del test de velocidad.
Intervalo de fotogramas clave
El intervalo de fotogramas clave es el tiempo que pasa hasta que obtenemos un fotograma completo. A partir de él se generan el resto de fotogramas comprimidos así que cuanto mayor es este tiempo más calidad perdemos.
En el post anterior tienes más información sobre esto. Lo más importante es que esto viene definido por la plataforma donde queramos transmitir.
Por lo general, el requisito es fijarlo en 2 segundos. Cada 2 segundos aparecerá un fotograma completo.
¿Fast, Veryfast, Ultrafast? El perfil de uso de la CPU en OBS
¿Cómo configurar x264 en OBS sin sobrecargar el procesador? Tocando el parámetro de perfil de uso de la CPU, que es el esfuerzo que va a dedicar tu CPU en codificar cada segmento de vídeo. Si vas muy mal de procesador o si quieres mejorar tu calidad, este concepto lo debes comprender.
En x264 vamos desde Placebo, que es donde le decimos al procesador que se esfuerce más, hasta Ultrafast que es tu último recurso cuando tu procesador se atraganta.
Empieza por Veryfast que es lo normal y por defecto, y a partir de ahí debes experimentar mirando el uso de CPU en el contador inferior de OBS.
Si a tu máquina le sobra potencia, tanto como tener un procesador de más de 8 núcleos a velocidades respetables, pero en cambio tienes una conexión muy lenta, puede que te interese codificar en Medium. Aprovecharás cada kilobit.
Baseline, Main y High ¿qué perfil elegir?
El Perfil es manera que tiene de afinar con el tamaño de los macrobloques, adaptándose a cada situación.
En baseline, los macrobloques son de 4×4 pixels y se procesan de manera independiente. Con el perfil high, esto cambia drásticamente, pues se usan métodos de transformación adaptativa que determinan sobre la marcha si hay que usar bloques de 4×4 u 8×8 píxeles. Dependiendo del nivel de detalle.
Recomiendo seleccionar siempre High y ver cómo andamos de CPU. Y es que el uso alto de perfil puede ser otra estrategia para arañar en curvas cuando tenemos pocos recursos, ya que High consume un poco más de CPU.
Si usas ultrafast y sigues teniendo problemas, selecciona Baseline. Pero el punto de partida siempre a la hora de probar con qué perfil de uso de CPU nos quedamos, debe ser con High ya seleccionado.
Optimiza la compresión con la SINTONIZACIÓN en OBS
El campo sintonizar es otro ajuste posible de h264, pero que solo el codec x264 puede tocar. Pero ojo porque hay gente que cree que esto no tiene importancia y si la tiene. Es más, afecta directamente al uso de la CPU y puede optimizar bastante el resultado si lo elegimos bien. Vamos a verlos uno a uno.
Film es el preset más alto de la jerarquía, siendo el más todoterreno. Pensado para escenas bruscas y con mucho movimiento y también profundidad de color. Además de ser lo indicado para usar altos bitrates.
Animation está pensado para escenas de caricaturas, con imágenes más planas por así decirlo y movimientos más suaves o localizados.
Grain, como su nombre indica, está hecho para el contenido granulado. Es el preset que debes usar si tu imagen tiene mucho ruido o si usas un efecto de envejecimiento. Este modo no pasa filtros para evitar la descomposición de la imagen.
Still image es el preset indicado para los que hacen, por ejemplo, vídeos musicales con imágenes fijas, como portadas o álbumes de fotos. Siempre que hayan muchos fotogramas repetitivos, este modo mejora la compresión y por lo tanto se obtienen mejores resultados en las imágenes con menor bitrate.
PSNR y SSIM se consideran modos de prueba o benchmarks para el codificador, no son para un uso normal realmente. PSNR (Peak Signal to Noise Ratio) se basa en la relación señal ruido y SSIM (Structural Similarity) intenta relacionar formas o estructuras similares en las imágenes.
Fast Decode está pensado para afectar al receptor. Empeora bastante la imagen porque desactiva CABAC, que es el algoritmo que le da eficiencia a la compresión, y también el filtro DeBlock, lo que impide que se vea la imagen a bloques. Si bien, desactivar eso también nos ahorrará ciclos de nuestra CPU pero el objetivo en este caso es permitir una descodificación más rápida en dispositivos con menor potencia computacional, ya que los flujos de vídeo con esos estándares cuestan un poquito más de descifrar.
O sea, esto está pensado para enviar vídeo a dispositivos muy antiguos o flojos que no pueden con ciertas resoluciones.
Zero Latency es el preset que más ahorra en codificación. Es la ausencia total de filtros. No va a someter al codificador a ningún esfuerzo adicional. La calidad y la eficiencia es la menor, pero es lo que debes usar si quieres la menor latencia posible o arañar más ciclos a tu CPU.
Cómo configurar x264 en OBS con comandos
Respecto a las opciones x264, es otra manera de configurar todo esto, como si fuera una línea de comandos. Podemos copiar parámetros de ffmpeg:
–keyint 60 –min-keyint 1 –bframes 2 –b-pyramid –no-cabac –no-deblock –ref 2 –crf 18 –pbratio 1.20 –scenecut 50 –direct «auto» -A «p8x8,b8x8,i4x4» –weightb –me «umh» –subme 6 –b-rdo –mixed-refs –no-fast-pskip –no-dct-decimate
Configuraciones recomendadas de x264
Espero que este post te sirva mucho para aprender a configurar x264 en OBS en cualquier situación, sea cual sea tu caso.
En próximos capítulos repasaremos la configuración de otros codificadores.