Update stream documentation for LL-HLS enabled by default (#21310)

Co-authored-by: Justin Wong <46082645+uvjustin@users.noreply.github.com>
This commit is contained in:
Allen Porter 2022-01-24 00:08:07 -08:00 committed by GitHub
parent b20226b001
commit 365dadd935
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -17,26 +17,43 @@ The stream integration provides a way to proxy live streams through Home Assista
## Configuration
The `stream` integration is automatically loaded by `default_config` and enabled by the `camera` platforms that support it. If `default_config` is used, no separate `configuration.yaml` entry is necessary. If `default_config` is not used, the `stream` integration can be activated with the entry below:
The `stream` integration is automatically loaded by `default_config` and enabled by the `camera` platforms that support it. If `default_config` is used, no separate `configuration.yaml` entry is necessary. However, there are some extra options you can configure.
```yaml
# Example configuration.yaml entry. There are no additional options.
stream:
```
{% configuration %}
ll_hls:
description: Allows disabling Low Latency HLS (LL-HLS)
required: false
type: boolean
default: true
segment_duration:
description: The duration of each HLS segment, in seconds (between 2 and 10)
type: float
required: false
default: 6
part_duration:
description: The duration of each part within a segment, in seconds (between 0.2 and 1.5)
type: float
required: false
default: 1
{% endconfiguration %}
## LL-HLS
## LL-HLS - Low Latency HLS
There is the option to enable LL-HLS for lower latency. Please note that LL-HLS has strict timing and network requirements that can be hard to meet, so this option may not work on all setups. As HTTP/2 is required by the LL-HLS specification, the use of an HTTP/2 enabled reverse proxy is strongly recommended.
To enable LL-HLS, add the following to your `configuration.yaml`:
LL-HLS reduces the start time and delay for a stream, but it has strict timing and network requirements and opens additional browser connections. To avoid running into browser limits it is strongly recommended to use an HTTP/2 proxy (e.g., NGINX or haproxy) to take advantage of request pipelining. LL-HLS is enabled by default, but when not using HTTP/2, the Home Assistant frontend will revert back to regular HLS if too many streams are open.
You can further adjust LL-HLS settings in `configuration.yaml` as it may perform better or worse with different values depending on your network setup, cameras, or whether or not they are local or cloud.
Example configuration:
```yaml
# Example LL-HLS configuration.yaml entry.
stream:
ll_hls: true
part_duration: 0.75 # Range of 0.2 to 1.5
segment_duration: 6 # Range of 2 to 10
part_duration: 0.75
segment_duration: 6
```
## Technical Details
The integration currently supports proxying H.264 and H.265 source streams to the HLS protocol and requires at least FFmpeg >= 4. Note that H.265 support is limited to Safari, iOS, and Android. The `stream` integration also provides limited support for audio. PCM codecs (e.g. G.711/G.723/G.726/G.729) are not supported. ADTS AAC audio is also currently not supported. Most other AAC and MP3 encoded audio should work.