If ``--low_latency_dash_mode`` is enabled, low latency DASH (LL-DASH) packaging will be used.
This will reduce overall latency by ensuring that the media segments are chunk encoded and delivered via an aggregating response.
The combination of these features will ensure that overall latency can be decoupled from the segment duration.
For low latency to be achieved, the output of Shaka Packager must be combined with a delivery system which can chain together a set of aggregating responses, such as chunked transfer encoding under HTTP/1.1 or a HTTP/2 or HTTP/3 connection.
The output of Shaka Packager must be played with a DASH client that understands the availabilityTimeOffset MPD value.
Furthermore, the player should also understand the throughput estimation and ABR challenges that arise when operating in the low latency regime.
This tutorial covers LL-DASH packaging and uses features from the DASH, HTTP upload, and FFmpeg piping tutorials.
For more information on DASH, see :doc:`dash`; for HTTP upload, see :doc:`http_upload`;
for FFmpeg piping, see :doc:`ffmpeg_piping`;
for full documentation, see :doc:`/documentation`.
*************
Documentation
*************
Getting started
===============
To enable LL-DASH mode, set the ``--low_latency_dash_mode`` flag to ``true``.
All HTTP requests will use chunked transfer encoding:
``Transfer-Encoding: chunked``.
..note::
Only LL-DASH is supported. LL-HLS support is yet to come.
Synopsis
========
Here is a basic example of the LL-DASH support.
The LL-DASH setup borrows features from "FFmpeg piping" and "HTTP upload",
see :doc:`ffmpeg_piping` and :doc:`http_upload`.
Define UNIX pipe to connect ffmpeg with packager::