¿Cuáles son las diferencias entre los perfiles H.264?

56

Estaba renderizando un video en After Effects CS5 y cuando lo formateé elegí el códec H.264 y en ese formato, tenía un perfil con Baseline, Main y High.

Así que hice una pequeña prueba, renderizando ambos archivos con Baseline y High. Lo único que noté fue que el tamaño del video era más pequeño, Alto, entregando el tamaño de archivo más pequeño.

Solo quería saber cuál es la diferencia en cuanto a cuál sería mejor para la calidad y mejor para el tamaño del archivo.

James
fuente

Respuestas:

79

¿Qué es un perfil?

Un perfil H.264 define más o menos qué "campanas y silbatos" puede usar el codificador al comprimir su video, y hay muchas características H.264 que el codificador puede habilitar. El perfil define los que está permitido habilitar. Los perfiles aseguran la compatibilidad entre dispositivos que tienen diferentes capacidades de decodificación. Con los perfiles, el codificador y el decodificador acuerdan un conjunto de características que ambos pueden manejar.

¿Qué hacen los diferentes perfiles?

Para obtener una lista detallada, consulte Perfiles H.264 en Wikipedia.

En general, el perfil de línea de base restringe el codificador a ciertas características básicas solamente. Los videos codificados con el perfil de línea de base se pueden reproducir fácilmente, incluso en dispositivos con menor potencia de cálculo, como los teléfonos inteligentes más antiguos. Los teléfonos Android e iOS, por ejemplo, oficialmente solo reproducen video codificado con el perfil de línea de base, pero no High o Main . Esto ha cambiado un poco en los últimos años, donde cada vez más teléfonos pueden reproducir videos principales o de alto perfil, pero las recomendaciones oficiales aún no lo mencionan .

Principalmente para aplicaciones de bajo costo, este perfil se usa más comúnmente en videoconferencias y aplicaciones móviles. Corresponde al subconjunto de características que son comunes entre los perfiles de línea de base, principal y alto

Main y High solo agregan características a eso. Especialmente el alto perfil se usa a menudo en la transmisión:

El perfil principal para aplicaciones de transmisión y almacenamiento de discos, particularmente para aplicaciones de televisión de alta definición (por ejemplo, este es el perfil adoptado por el formato de almacenamiento Blu-ray Disc y el servicio de transmisión DVB HDTV).

Por ejemplo, los cortes B solo están permitidos en el perfil Principal y superior. Se pueden usar para ahorrar ancho de banda, pero son más difíciles de decodificar, por lo que algunos dispositivos podrían no ser compatibles.

¿Qué tiene eso que ver con la calidad?

El perfil solo influye indirectamente en la calidad. Algunas características de los perfiles más altos pueden permitirle obtener la misma calidad con tamaños de archivo más bajos en comparación con los perfiles más bajos.

Por ejemplo, la codificación de entropía CABAC ( Principal y Alta ) es más eficiente que CAVLC ( Línea de base ). También es computacionalmente más intensivo. Por lo tanto, si le da al codificador una cierta tasa de bits para gastar, podrá crear un video de mejor calidad con CABAC que con CAVLC porque logra una compresión mucho mejor.

Esto también explica por qué logró un tamaño de archivo más pequeño con el perfil alto : obviamente, de alguna manera estableció un nivel de calidad constante y el codificador podría usar técnicas de compresión más avanzadas para crear un archivo de video que tenga la misma calidad que el perfil de línea de base , pero con un tamaño más pequeño Talla.

Entonces ... ¿cuál deberías usar?

Algunas reglas básicas:

  • Perfil de referencia si se dirige a dispositivos móviles antiguos
  • Perfil principal o alto si se dirige a la transmisión web, almacenamiento a largo plazo, PC o Mac, autoría de Blu-ray, etc.
slhck
fuente
8
Dado que esto se escribió por escrito, casi todos los teléfonos inteligentes, incluidos Android y otros dispositivos, ahora juegan el perfil principal y muchos juegan alto. El soporte de alto perfil, por ejemplo, es compatible con la mayoría de los dispositivos que afirman reproducir contenido de alta definición. Seguramente puede confiar en main o superior. La línea de base era una versión altamente lisiada de H. 264 diseñada para los dispositivos limitados de décadas pasadas.
thomasrutter
No todos tienen un teléfono inteligente reciente. Android aún recomienda usar el perfil de línea de base . Lo mismo ocurre con iOS . Por supuesto, algunos dispositivos (la mayoría de los nuevos) admiten perfiles más altos, pero si desea seguir siendo compatible con hardware de gama baja, tendrá que elegir eso. Pero edité mi respuesta para reflejar lo que estás diciendo.
slhck
Interesante: el reproductor integrado me ha estado apoyando durante un tiempo, pero su punto es válido, no puede confiar en esto. Sin embargo, puede confiar en reproductores de software de terceros para el perfil principal y alto, por ejemplo, jugadores como MX Player tienen soporte de software para perfiles más altos, siempre que esté basado en ARM y un rendimiento de CPU lo suficientemente alto.
thomasrutter
Tenga en cuenta que a partir de 2016, Google Photos, al hacer copias de seguridad, convierte los videos cargados que se grabaron en un Android Nexus 6 en perfil alto en el perfil de línea de base (en modo de copia de seguridad "almacenamiento ilimitado" de "alta calidad")
nealmcb
Sigue siendo la mejor información que he leído sobre ffmpeg en 2017. GRAN POST.
typeoneerror