¿Qué es el streaming en HTTP? | Streaming HLS

El streaming en directo HTTP (HLS) es un protocolo de retransmisión de vídeo muy utilizado que se puede ejecutar en casi cualquier servidor y es compatible con la mayoría de dispositivos. El HLS permite que los dispositivos del cliente se adapten sin problemas a las condiciones cambiantes de la red mediante el aumento o la disminución de la calidad de la retransmisión.

Share facebook icon linkedin icon twitter icon email icon

Streaming en directo HTTP

Objetivos de aprendizaje

Después de leer este artículo podrá:

  • Definir el streaming en directo HTTP (HLS)
  • Más información sobre cómo funciona HLS
  • Explorar los beneficios del streaming de tasa de bits adaptable

¿Qué es el streaming en directo HTTP (HLS)?

El streaming en directo HTTP (HLS) es uno de los protocolos de streaming de vídeo más ampliamente utilizados. Aunque se le conoce como streaming "en directo" HTTP, se usa tanto para streaming a la carta como para streaming en directo. HLS convierte los archivos de vídeo en archivos HTTP descargables más pequeños y los entrega mediante el protocolo HTTP. Los dispositivos cliente cargan estos archivos HTTP y luego los reproducen como vídeo.

Una de las ventajas de HLS es que todos los dispositivos conectados a Internet son compatibles con HTTP, lo que hace más sencilla su implementación que la de protocolos de streaming que requieran el uso de servidores especializados. Otra ventaja es que una retransmisión HLS puede aumentar o disminuir la calidad del vídeo en función de las condiciones de la red sin llegar a interrumpir la reproducción. Por esta razón, la calidad de un streaming puede mejorar o empeorar durante el visionado. Esta función se conoce como "entrega de vídeo de tasa de bits adaptable" o "streaming de tasa de bits adaptable" y, sin esto, la reproducción de un vídeo puede llegar a detenerse sin las condiciones de red empeoran.

HLS fue desarrollado por Apple para sus propios productos, pero ahora se utiliza en una amplia gama de dispositivos.

¿Qué es el streaming?

El streaming es una forma de ofrecer medios visuales y de audio a los usuarios a través de Internet. Funciona mediante el envío continuo del archivo multimedia al dispositivo de un usuario, pero no todo a la vez sino poco a poco. El archivo multimedia original se almacena en remoto o, en el caso del streaming en directo, se crea en tiempo real con una cámara o un micrófono en remoto. De este modo, se puede reproducir el vídeo o el audio sin que sea necesario que el dispositivo del usuario se descargue primero el archivo completo.

¿Qué es HTTP?

HTTP es un protocolo de capa de aplicación para transferir información entre los dispositivos conectados a una red. Todos los sitios web y aplicaciones que son accesibles para los usuarios normales se ejecutan en HTTP. La transferencia de datos a través de HTTP se basa habitualmente en solicitudes y respuestas. Casi todos los mensajes HTTP son una solicitud o una respuesta a una solicitud.

Con el streaming a través de HTTP, no se puede aplicar el patrón estándar de solicitud-respuesta. La conexión entre el cliente y el servidor permanece abierta mientras dure la retransmisión, y el servidor va enviando los datos de vídeo al cliente para que el cliente no tenga que solicitar cada segmento de datos de vídeo.

¿Cómo funciona HLS?

Servidor: una retransmisión HLS se origina en un servidor en el que estén almacenados los archivos multimedia (en streaming a la carta), o donde se cree la retransmisión (streaming en directo). Ya que HLS se basa en HTTP, cualquier servidor web ordinario puede ser el origen de la retransmisión.

En el servidor tienen lugar dos procesos principales:

  1. Codificación: los datos de vídeo se reformatean para que los pueda reconocer e interpretar cualquier dispositivo. HLS debe usar la codificación H.264 o H.265.
  2. Segmentación: el vídeo se divide en segmentos de unos pocos segundos de duración. La duración de los segmentos puede variar, aunque la duración predeterminada es de 10 segundos.
    • Además de dividir el vídeo en segmentos, HLS crea un archivo de índice de los segmentos de vídeo para registrar el orden al que pertenecen.
    • HLS creará también varios conjuntos duplicados de segmentos con diferentes niveles de calidad: 480p, 720p, 1080p, etc.

Distribución: los segmentos de vídeo codificados se envían a los dispositivos del cliente a través de Internet cuando los dispositivos del cliente solicitan la retransmisión. Habitualmente, una red de entrega de contenido (CDN) ayudará a distribuir la retransmisión por diferentes áreas geográficas. Además, una CDN almacenará en caché la retransmisión para que se pueda servir a los clientes de forma más rápida.

Dispositivo cliente: el dispositivo cliente es el dispositivo que recibe la retransmisión y reproduce el vídeo, por ejemplo, un teléfono inteligente o un portátil del usuario. El dispositivo cliente usa el archivo de índice como referencia para ensamblar el vídeo en el orden correcto, y cambia de una imagen de mayor calidad a una de menor calidad (y viceversa) según se vea necesario.

¿Qué es el streaming de tasa de bits adaptable en HLS?

Una de las ventajas que tiene HLS con respecto a otros protocolos de streaming es el streaming de tasa de bits adaptable. Esto hace referencia a la capacidad de ajustar la calidad del vídeo en medio de una retransmisión según vayan cambiando las condiciones de la red. Esto permite que los vídeos se sigan reproduciendo incluso si empeoran las condiciones de la red; por otra parte, también maximiza la calidad de video para que esta sea tan alta como permita la red.

Si se ralentiza la red, lo detecta el reproductor de vídeo del usuario, y el streaming de tasa de bits adaptable reduce la calidad de la retransmisión para que el vídeo se siga reproduciendo. Si se dispone de más ancho de banda de red, el streaming de tasa de bits adaptable mejora la calidad de la retransmisión.

El streaming de tasa de bits adaptable es posible porque HLS crea varias retransmisiones segmentadas duplicadas con niveles distintos de calidad durante el proceso de segmentación. El reproductor de vídeo del usuario puede cambiar sin problemas de una a otra de las retransmisiones durante la reproducción del vídeo.

¿HLS utiliza TCP o UDP como su protocolo de transporte?

TCP y UDP son protocolos de transporte, lo que hace que sean responsables de entregar contenido a través de Internet. TCP suele entregar datos de una manera más fiable que UDP, pero este último es mucho más rápido, aunque puedan llegar a perderse algunos datos en el camino.

Debido a que UDP es más rápido, muchos protocolos de streaming utilizan UDP en lugar de TCP. Sin embargo, HLS usa TCP. Esto se debe a varias razones:

  1. HLS está por encima HTTP, y el protocolo HTTP está diseñado para usarse con TCP (con algunas excepciones).
  2. El Internet moderno es más fiable y eficiente de lo que era cuando se desarrolló el streaming por primera vez. Hoy en día, en muchas partes del mundo, la conectividad del usuario ha mejorado notablemente, en especial para las conexiones móviles. Como resultado, los usuarios cuentan con suficiente ancho de banda para poder aceptar la entrega de cada fotograma de vídeo.
  3. El streaming de tasa de bits adaptable ayuda a compensar la entrega de datos potencialmente más lenta de TCP.
  4. El streaming HLS no tiene que ser "en tiempo real", como es el caso de las conexiones por videoconferencia. Unos segundos adicionales de lag no afectan a la experiencia del usuario de la misma manera que lo haría la falta de unos fotogramas de vídeo.

¿Qué otros protocolos se utilizan habitualmente para streaming?

Hay varios protocolos similares a HLS, como MPEG-DASH y HDS, que también se ejecutan a través de HTTP y ofrecen streaming de tasa de bits adaptable. Adobe Flash, que se ejecuta en el protocolo RTMP, solía ser la principal opción elegida para el streaming de vídeo; sin embargo, muchos navegadores ya no son compatibles con Flash. RTMP todavía se sigue utilizando.

¿Es compatible Cloudflare con el streaming en directo HTTP?

Cloudflare es compatible con HLS tanto para streaming a la carta como en directo. Cloudflare Stream integra almacenamiento de vídeo, codificación y un reproductor personalizable con la red rápida, segura y de confianza de Cloudflare, que abarca 200 ciudades en más de 100 países. Esto permite que los usuarios de todo el mundo reciban retransmisiones HLS rápidas y de alta calidad. Más información sobre Cloudflare Stream.