HTTP Live Streaming (HLS) is an HTTP-based streaming protocol defined by Apple, and supported natively by iOS, macOS, and some other platforms. This protocol works by breaking the stream into chunks (usually around 10 seconds) that are downloaded individually by the player. This makes the HLS protocol particularly well suited for mobile applications, as it is more robust in the face of varying network conditions (such as moving between cellular data sources, or when the device switches from wifi to cellular or vice-versa), and therefore less likely to cause re-connects. It is also more efficient from a power usage point of view.
This streaming specification does not document the HLS protocol itself. La documentación oficial se encuentra disponible aquí:
http://tools.ietf.org/html/draft-pantos-http-live-streaming.
Como la mayoría de los reproductores HLS dependen del reproductor multimedia nativo del sistema operativo, y por consiguiente no reciben los metadatos adicionales (es decir, los puntos de referencia) que forman parte del stream, los reproductores HLS por lo general implementarán metadatos de banda lateral también. Ver "Metadatos de banda lateral" para obtener más información.
When streaming over the HLS protocol, additional cue points (of type hls) will be sent to identify individual HLS segments. Refer to the Triton Digital STWCue Metadata Dictionary for details.
Streaming adaptable
HLS streams can also be configured for adaptive streaming, which offers several variants of the same audio with different encoding settings. Los reproductores pueden intercambiar estos streams alternativos dependiendo de las condiciones de la red (por ej.: cambiarse a una tasa de bits más baja cuando la red no es lo suficientemente rápida) u otras condiciones (por ej.: opción de "ancho de banda bajo" controlado por el usuario, etc.).
Adaptive streams can be identified by the contents of the <media-format> element of the Provisioning Response. Cuando hay streams alternativos disponibles, pueden identificarse de la siguiente manera:
- The trackScheme attribute of the <media-format> element will be audio-adaptive
- Multiple <audio> elements are used to describe the alternative streams
In most cases, the player does not need to do anything special to support adaptive streams.