Skip to content

LL-HLS subtitles does not load the latest partial segment #7460

@Yeongjin-Jeong

Description

@Yeongjin-Jeong

What version of Hls.js are you using?

1.6.9

What browser (including version) are you using?

chrome 139.0.7258.66

What OS (including version) are you using?

Mac 15.3.2(24D81)

Test stream

No response

Configuration

{
  "debug": true,
  "enableWorker": true,
  "lowLatencyMode": true,
  "backBufferLength": 90
}

Additional player setup steps

  1. Using hls.js v1.6.9 with LL-HLS live stream (It seems doesn't matter what version. It is same in v1.5.4)
  2. Stream contains with interleaved VIDEO and SUBTITLE (The PDT of all streams is synchronized.)
  3. Player is set to live edge with low latency mode enabled
  4. No custom segment or playlist loaders configured

Checklist

Steps to reproduce

  1. Load an LL-HLS live stream with Part segments.
  2. Let the player buffer and start playback at live edge.
  3. After playing, turn on the subtitles.

Expected behaviour

  1. Subtitle partial loading works perfectly.
  2. Player downloads and renders subtitles from the same edge as the video.

What actually happened?

  1. The latest vtt partial is downloaded so many times(dozens of times per second), but the subtitles are not rendered.
  2. After a while, when the parent segment is completed, the partial segments is received bundle. In other words, all partial segments contained in the parent segment are received at once. Partial loading is not performed and and this situation repeats.

If v1.5.4 or lower, step 1 is skipped.

It seems that the subtitle track has a wrong targetBufferTime value (or wrong target fragment), so the frag variable is replaced with a preload hint by

if (targetBufferTime > frag.end && details.fragmentHint) {
frag = details.fragmentHint;
}
.

console.log

Console output

Console output exceeded 65536 characters, so I uploaded it to the 'console.log' file.

Chrome media internals output

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    Status

    To do

    Status

    Nice to have

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions