Is CAN-BLOCK-RELOAD=YES required for getting low latency behaviour on Safari and AVPlayer?

I am testing HLS Low latency streams but could not to a low playback latency. For comparison purpose I used Apple HLS-LL stream(https://ll-hls-test.cdn-apple.com/llhls4/ll-hls-test-04/multi.m3u8) where I can get latency of 6 seconds on Safari and AVPlayer.

The main difference between the non-working and working streams is CAN-BLOCK-RELOAD attribute. This is set as YES for Apple HLS-LL test stream where latency is observed as 6 seconds vs other stream where latency is ~= 3 full segments duration(~18 seconds).

As a test I tried to change CAN-BLOCK-RELOAD=YES to CAN-BLOCK-RELOAD=NO in variant playlist response of the Apple stream using a proxy tool after which I get same result of latency ~= 3 full segments duration(~18 seconds).

On AVPlayer, I see following log with CAN-BLOCK-RELOAD=YES which seems to point towards AVPlayer entering low latency mode when setting up blocking reload.

mediaserverd    <SEGPUMP> segPumpSetupBlockingReload: 0x1040e7600: Player entering Low Latency mode

Can Apple support or someone forum members who might have experience with this please share if CAN-BLOCK-RELOAD=YES is mandatory for low latency mode to be enabled in Safari browser and AVPlayer on iOS/tvOS?

Post not yet marked as solved Up vote post of lg_bitmovin Down vote post of lg_bitmovin
509 views

Replies

Found following section in HLS spec https://datatracker.ietf.org/doc/html/draft-pantos-hls-rfc8216bis-14#section-2 which indicates the low latency mode refers to combination of partial segments, blocking playlists reload(CAN-BLOCK-RELOAD=YES) and preload hinting(EXT-X-PRELOAD-HINT). So I guess that HLS spec kind of suggests to have these 3 features in setup to enable low latency mode.

Certain streams can be played in Low-Latency Mode.  Low-Latency Mode
refers to the combined use of Partial Segments, Blocking Playlist
Reload and preload hinting to enable playback at a reduced delay from
live.

Can Apple Support team please confirm if this is reason for Safari and iOS native players only working in low latency mode when CAN-BLOCK-RELOAD=YES in the LL-HLS variant playlists?

Yes, you need to use all of Partial Segments, Blocking Playlist Reload and preload hinting to achieve low-latency playback. Please refer to Enabling Low-Latency HTTP Live Streaming (HLS) and to Reduce latency with HLS Blocking Playlist Reload for detailed information.

Hi Cayley, thank you very much for confirming the requirements.