OBS CON MÍNIMA LATENCIA A YOUTUBE
Muchas veces vemos a unos clientes muy preocupados por la latencia de su streaming. Para mi es algo que siempre me ha hecho mucha gracia ya que la persona que esté viendo el streaming es más que probable que no esté en la sala y nunca sea consciente de esa latencia a no ser que llame por teléfono. Y saber como configurar OBS o nuestro codificador es indispensable.
Si que es cierto que de pronto en mitad de la conferencia se acerca un tipo trajeado con su flamante móvil a tu control y te dice: «Ey, mira que retardo tiene tu transmisión». Yo pienso para mis adentros: «¿Qué hace es tío mirando el móvil en lugar de atender a la conferencia?» pero me contengo y le explico amablemente: «Claro, eso es debido a que estamos usando una codificación estándar que tiene como prioridad la calidad de las imágenes y además usamos un pequeño buffer de 120 fotogramas para evitar que cualquier bajada del ancho de banda interrumpa la emisión». Normalmente no suelen preguntar mucho más.
Pero cabe la posibilidad que queramos interactuar con con nuestros espectadores a través del chat por lo que debemos bajar la latencia lo más posible. A continuación os voy a dejar varias configuraciones para OBS que van desde la que más prioriza a la calidad del vídeo a la que menos latencia tiene.:
Configuración básica:
- Control de frecuencia: CBR
- Intervalo de fotogramas: 2
- Preset: superfast
- Profile: main
A Partir de aquí vamos a ir añadiendo las configuraciones según el tune o Sintonizador que eligamos:
MENOR LATENCIA POSIBLE.:
- Zerolatency: bframes= b-adapt=0 partitions=none scenecut=0 no-weightb weightp=0 sliced-threads
MENOR LATENCIA Y GRAN RENDIMIENTO.:
- film/animation/grain/stillimage: aq-mode=0 subme=0 no-deblock
- zerolatency: aq-mode=0 subme=0 no-deblock sync-lookahead=3
BAJA LATENCIA.:
- film/animation/grain/stillimage/zerolatency: force-cfr aq-mode=0 subme=0 no-deblock
EQUILIBRADO.:
- film: aq-mode=0 subme=0
- animation/grain/stillimage: subme=0
- zerolatency: aq-mode=0 subme=0 no-deblock sync-lookahead=3
ALTA CALIDAD.:
- film: aq-mode=0 subme=0 trellis=1
- animation: subme=6
- grain: subme=0 trellis=1
- stillimage: subme=6 trellis=1
- zerolatency: force-cfr aq-mode=0 subme=0 no-deblock
LOS ARTEFACTOS DE COMPRESIÓN
Cuando codificamos el vídeo que sale de nuestra cámara o realización hay que entender que también estamos restando información de la señal para que quepa en el ancho de banda de la red. Es cierto que mucha de esa información que se está restando no es apreciable al ojo humano y es por eso que se usan estas técnicas para emitir por Internet.
Los anchos de banda cada vez mueven más datos y por lo que sabemos los ingenieros aún tienen muchas tecnologías que iremos viendo a lo largo de los próximos 60 años. La tecnología 5G ya es una realidad y nos han prometido muchas cosas con esta tecnología que sabemos no es la definitiva.
Pero por lo pronto no nos queda otra opción que comprimir nuestra señal manteniendo un equilibrio entre compresión y calidad.
Voy a enumerar los artefactos que posiblemente nos encontremos. Los dividimos en dos grupos, los espaciales, que son los que vemos en una parte de la imagen deformándola. Por otro lado tenemos los temporales que son los que modifican por ejemplo la tasa de fotogramas y los que apreciamos solo cuando la vídeo avanza.
- ARTEFACTOS DE COMPRESIÓN
- ARTEFACTOS ESPACIALES
- Patrón de base.: Este efecto aparece en las zonas con texturas complejas clonando partes o promediando el entorno.
- Efecto bloque.: Se ve en la imagen como un mosaico de cuadros degradados como si en una superficie realizada un promedio de color. Cuando aumentamos la resolución estos bloques se suelen hacer más pequeños.
- Desenfoque.: Perdemos definición en zonas concretas como bordes afilados y hace que partes del vídeo se vean desenfocadas.
- Color desplazado.: Este efecto se ve como un color que superpone con el que tiene al lado y se debe a que el submuestreo de color es bajo.
- ARTEFACTOS TEMPORALES
- Parpadeo.: Se aprecia como una fluctuación de la luminosidad y el color de las imágenes.
- Flotante.: De pronto se aprecia como una parte de la imagen se congela y empieza a moverse por su cuenta o empieza a flotar de forma independiente a toda la imagen.
- Temblor.: Esto sucede cuando intentamos codificar a una tasa de fotogramas por segundo distinta a la original. Hay métodos como el «pulldown» que extrae por ejemplo 25p de 50i o 30p de 60i hasta aquí es aceptable y el resultado es más que satisfactorio. Pero he visto «profesionales» en un directo que han usado la codificación para convertir 25p en 30p o viceversa. Sacrilegios como 60p en 25p y otros peores. Obviamente el resultado es una catástrofe.
- Ruido de mosquito.: Se ve como un fantasma alteando el borde de ciertos espacios. También se aprecia como una especie de brillo o halo que aparece alrededor de las personas. Aparece en transiciones bruscas que no dan tiempo a procesar.
- ARTEFACTOS ESPACIALES
SOLUCIONES FÁCILES
Hoy día tenemos la suerte que el codec H264 ha avanzado tanto y se han implementado nuevas instrucciones que estos artefactos se han corregido casi en su totalidad. Podemos emitir a unas tasas de transferencia de 6000Kbps y obtener un vídeo más que decente para YouTube.
Para conseguir una calidad buena yo siempre sigo las siguientes premisas a raja tabla.:
- Respetar formatos de entrada y salida.: Esto es sencillo, si todas las fuentes de vídeo van a 720p50, el streaming de salida debe ir a esa resolución. Evitar conversiones tanto de tamaño como de la tasa de fotogramas.
- Evitar señales entrelazadas, usar solo en progresivo.: Es cierto que emito muchas veces en 1080p25 aunque mis cámaras todas sacan 1080i50 por la salida HD-SDI. Para esto hay un pequeño truco, las cámaras internamente tienen la posibilidad de configurar la grabación en 25p a pesar que la salida sea a 50i. Hay equipos que pueden extraer esos 25p de la señal 50i usando un sistema llamado «pulldown 2:3 ó 3:2». Yo uso un conversor de la marca ATOMOS que funciona muy bien para este cometido. Se debe de intercalar entre la salida de programa de nuestra realización y el codificador usando esta señal solo para el streaming para evitar latencias en la pantalla.
- Asegúrate que tu señal de programa es buena.: Tenemos que asegurarnos que la señal que vamos a codificar no solo es buena, si no muy buena. Hay que tener en cuenta que esa señal va a ser degradada y comprimida para que quepa por la Red, si es mala tendrás una codificación peor. Yo recomiendo a 10bits y 4:2:2.
- Codifica con equipos profesionales.: Hoy día tenemos equipos como el teradek Vidiu, SlingStudio, LiveU Solo, Epiphan Webcaster X2. También existen otros tantos equipos interesantes que puedes encontrar por AMAZON.
Os dejo aquí un enlace al vídeo del curso donde explico esto de viva voz.
PARA LOS EXPERTOS
Hace poco estuve mirando opciones para codificar y he comprobado de primera mano que si usamos un PC no deberíamos tener ningún problema. Eso si usando una buena tarjeta de vídeo que nos permita codificar sin restricciones como son las tarjetas QUADRO de NVIDIA.
Tengo pendiente ahondar en el software FFMPEG que nos brinda un sin fin de posibilidades en lo que se refiere a la codificación para hacer un streaming. Obviamente yo aconsejaría un equipo exclusivamente dedicado a este propósito con un Linux instalado. Os dejo aquí continuación una configuración que recomendé hace bien poco.
Aquí os dejo el primero de los vídeos de la serie de tutoriales en los que tratamos el streaming de forma más profunda. En este vídeo hablo sobre la función del servidor para streaming y la importancia de la codificación.