¿Qué es H264? Guía de configuración en OBS
Configuración OBS para transmitir o grabar

¿Qué es H264? Guía de configuración en OBS

Si quieres aprovechar bien tu PC al hacer directos, debes saber qué es H264 y cómo configurar sus parámetros de compresión. Tanto para sobrevivir con un equipo viejo como para mejorar la calidad.

H264 es el formato de compresión más utilizado. De hecho, es el estándar de codificación de vídeo en directo porque es el que tiene mejor relación entre compresión y recursos necesarios. Cualquier dispositivo móvil hoy en día tiene hardware de sobra para codificar en tiempo real en este formato, que ya es un veterano (fue creado en 2003).

En la actualidad, hay formatos de compresión mucho más eficientes pero siguen destinándose más a la grabación o al servicio de streaming de contenidos diferidos. En la práctica, en todas las plataformas donde cualquiera puede hacer directos (Twitch, YouTube, Facebook…) tenemos que usar H264.

TODO sobre H264 en OBS

En este vídeo te explico gráficamente todo lo que tienes que saber para comprender cómo funciona este formato de compresión tan extendido.

Si lo prefieres, a continuación tienes un resumen de todos los conceptos.

El codificador de H264

Empezamos por lo principal, el codificador. ¿Qué es y qué hace? El codificador es un subprograma o un procesador físico, porque puede ser software o puede ser hardware, que recoge la imagen de nuestra producción a tantos fotogramas por segundo como hayamos configurado en el proyecto. Los encapsula en un formato de vídeo comprimido.

Ese formato de compresión en este caso es el H264 con el que trabajan todas las plataformas que conocemos. Y se basa en la agrupación de porciones de imagen que tienen redundancia, o sea que no cambian fotograma tras fotograma. Que se repiten.

Acuérdate de este concepto, a esas porciones de imagen se les llama MACROBLOQUES. Y H264 tiene una particularidad, analiza el movimiento de esos macrobloques y puede predecir fotogramas. De esa manera consigue resumir más la información.

 

Macrobloques de compresión de vídeo

Este proceso requiere mucha dedicación del procesador si usamos un codificador software, que es un algoritmo que le dice a nuestro procesador que se ponga a transcribir ese flujo de vídeo. Y nuestro procesador que es muy obediente, lo hace pero a costa de compartir sus ciclos con otros procesos, hasta que llega la saturación. Y es cuando vienen esos tirones y pérdidas de fotogramas.

Codificadores de vídeo por software

Un codificador de vídeo por software es un algoritmo que se ejecuta en el procesador a través de un programa como OBS. El algoritmo más utilizado es x264, pues es el que aparece por defecto en este programa.

Pero hay otro codificador de vídeo por software distinto en Mac. Se trata del Apple VT software H264. Básicamente es casi lo mismo que el x264 pero desarrollado por Apple y con sus particularidades. Los codificadores Apple VT trabajan en VBR y no son tan recomendables para streaming. Hablaremos de esto en detalle.


Codificadores de vídeo por hardware

Los codificadores de vídeo por hardware son procesadores dedicados, hechos para esta tarea. El algoritmo de compresión está impreso en el circuito, por así decirlo. Y aunque también dependen del software, en este caso sólo se encarga de ajustar parámetros.

Existen varios codificadores de vídeo por hardware:

  1. Quick Sync: Un pequeño núcleo de codificación integrado en los procesadores Intel con gráfica integrada. Es el codificador hardware de peor calidad. Pero es la salvación sobre todo en portátiles. Usarlo puede llegar a ser la diferencia entre hacer un directo medianamente decente… y no hacerlo.
  2. NVENC es el codificador desarrollado por NVIDIA, presente en sus tarjetas gráficas desde la arquitectura Kepler. Este codificador en su última versión ofrece una calidad más que aceptable a tiempo real y baja latencia, sin usar un ápice de tu procesador.
  3. VCE es la opción hardware de AMD que también incorpora en sus gráficas. Ofrece una calidad y funcionalidad más que viables, aunque se queda un poquito atrás en rendimiento con respecto a NVENC.
  4. Apple VT hardware, es equivalente a Quicksync, de hecho usa el mismo núcleo de codificación en los Macs de Intel. No es recomendable por funcionar únicamente en VBR, pero es la única solución cuando vas mal de procesador.
  5. Y por último citar los codificadores de las capturadoras caras, como las Avermedia. Que van con su propio software. En principio, no es viable usarlas en OBS, aunque eso lo dejamos para otra aventura.

 

Los parámetros comunes de H264

Vamos a repasar uno a uno el glosario técnico de codificación de vídeo para comprender como funciona H264. Será necesario para comprender la configuración de cada codificador que veremos en esta serie.

¿Qué es la tasa de bits?

La tasa de bits es el peso que va a tener cada segundo de vídeo. Se expresa en kilobits por segundo (kbps) y es la cantidad de información que va a tener cada segundo de vídeo.

Es obvio que cuanto menor sea esta tasa, peor se verá el vídeo y menor ancho de banda gastaremos. Pero poco se habla de que también influye en el procesador, ya que gastamos menos CPU si este valor es bajo. No gastamos el procesador igual codificando a 2500 que a 10000.

Qué bitrate poner en OBS

El control de la frecuencia

El concepto de tasa de bits va ligado al de control de la frecuencia. Esto se refiere básicamente a si la tasa de bits es constante a lo largo del vídeo o si es variable. Estos son los modos más comunes:

 

Recuerda, el método más recomendado para transmitir es CBR y para grabar VBR o CQP.

Intervalo de fotogramas clave

El fotograma clave (o i-frame) es el fotograma completo de la imagen en un video. Los fotogramas posteriores, llamados delta o P-Frames, nacen a partir del fotograma clave y solo contienen la información de los macrobloques que han cambiado.

Qué son los fotogramas clave

En el intervalo definimos cuánto tiempo transcurre entre fotogramas clave. Esto es importantísimo en la compresión, ya que cuanto más largo es ese tiempo, menos puntos de referencia tenemos. Cuanto menor es, más fotogramas completos tenemos y por lo tanto más contenido fiel acaba teniendo el vídeo.

Pero esto no es algo que debamos decidir nosotros. Es un dato que nos especifica la plataforma donde vamos a transmitir. El valor que se suele pedir siempre es de 2 segundos y si no lo cumplimos no suele ser muy grave, aunque de vez en cuando podrían aparecer cosas raras en la imagen. Lo que se conoce como fallos de macroblocking pero prácticamente por todo el fotograma durante un instante.

¿Qué son los B-Frames?

Los B-Frames son un tipo de fotograma parcial que se generan haciendo referencia a datos de fotogramas anteriores y futuros. Es decir, de manera bidireccional, de ahí la B.


I-Frames, B-Frames y P-Frames

Ahorra aún más espacio al utilizar las diferencias entre el fotograma actual y los fotogramas anterior y siguiente para especificar su contenido.

Pueden mejorar bastante la relación de compresión, pero requieren más potencia del codificador. El valor recomendado es de 2 o 3 como mucho y el tope es 4.

Perfil de uso de la CPU

El perfil de uso trata de cuánto esfuerzo tiene que dedicarle el codificador a la compresión.

Por ejemplo, en x264 desde Placebo hasta Ultrafast, tenemos todo este abanico de niveles. Cuanto más lento se describe, más esfuerzo dedica el procesador. Y por lo tanto, más calidad tenemos. El valor por defecto y más utilizado es veryfast, pero poder llegar hasta fast o medium da un resultado excelente.

Perfil ¿High, Main o Baseline?

El parámetro llamado Perfil define el nivel de complejidad de los macrobloques en la compresión de vídeo. Se trata de 3 opciones, High, Main y Baseline. 

En el perfil 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.

Por eso, High hace posible una mejor compresión manteniendo un buen resultado. Digamos que es más concreto cuando tiene que serlo. Esto obviamente consume un poquito más de CPU así que es otro punto a tener en cuenta cuando vamos muy mal.

Para hacer un streaming típico no hay ningún problema ya en usar High. Los descodificadores que no lo soportaban ya no están en uso.

Pero si vas a recibir el stream en una Raspberry, tendrías que usar Baseline.

 

Hasta aquí todos los parámetros comunes que comparten los codificadores.

En esta web encontrarás los siguientes capítulos en los que repasaremos la configuración de cada uno de los codificadores en OBS.

Espero que te haya sido útil.

Publicaciones Similares