¿Qué es HLS o Http Live Streaming?
HLS es un protocolo utilizado para enviar audio y video sobre HTTP, soporta bitrate adaptivo y es compatible con la mayoría de los dispositivos. Este protocolo fue desarrollado por Apple y puede ser utilizado tanto para video en vivo como video en demanda.
Entre sus características importantes se encuentra:
- Se adapta a las condiciones de la red. Dependiendo el ancho de banda de internet del espectador, se le entregará una calidad o bitrate adecuado.
- Además puede ser entregado desde un servidor tradicional de HTTP.
- Y puede ser protegido con encripción o autenticación. Esto con el fin de proteger derechos de autor.
¿Cómo es el flujo de HLS?
Primero el archivo de video se debe codificar con compresión de video H.264 y compresión de Audio AAC. Posteriormente se debe seleccionar MPEG2-TS como contenedor de video, esto lo hace normalmente un encoder de video.
Una vez codificado el video se realiza un proceso de segmentación. Este proceso realiza cortes del video cada ciertos segundos, usualmente cada 10 segundos. A estos fragmentos se les conoce como segmentos o chunks de video.
Dentro del sitio de desarrollo de apple se pueden descargar herramientas para preparar los segmentos de HLS.
Una vez que el archivo se encuentra segmentado se genera un archivo índice. Este archivo contiene la información de los segmentos y en donde se encuentran para que el player los descargue. Este mismo proceso se realiza tanto para video en vivo o video en demanda (video almacenado)
Cuando se decide encriptar la información, se debe ejecutar un algoritmo para proteger cada uno de los segmentos. Y sólo el player que tenga la llave para desencriptarlos podrá ver el contenido. Estas llaves pueden ser estáticas o dinámicas, puede generarse una llave para todos los videos o una llave por video.
Y lo único que hace falta es compartir el URL del archivo índice que es algo como:
http://nombre-del-dominio/directorio-del-video/mi-video.m3u8