Skip to content

Duplicate child manifest and segment is loaded at the beginning of HLS playback #1356

Open
@mayurk2

Description

@mayurk2

Version

ExoPlayer 2.16.1, 2.18.2

More version details

We are using Exoplayer 2.16.1 demo player in our application. We are observing that in case of HLS playback, the Exoplayer downloads a duplicate child manifest and segment at start up.

I am able to reproduce the issue with the demo app and sample stream under HLS section.

      {
        "name": "Apple 4x3 basic stream (TS)",
        "uri": "https://devstreaming-cdn.apple.com/videos/streaming/examples/bipbop_4x3/bipbop_4x3_variant.m3u8"
      },

Here is the screenshot from the Charles log:
Screenshot 2024-05-09 at 1 36 44 PM

I see that it with this file it always downloads gear1/prog_index.m3u8 and gear1/fileSequence0.ts but again gear3/prog_index.m3u8 and gear3/fileSequence0.ts.
Please note that this issue is seen with all HLS contents and with good/bad network cases.

This is impacting overall start up time of the player and consuming extra data.

I am able to reproduce similar issue on Exoplayer 2.18.2 as well. But the only difference is in that version it downloads only the duplicate child manifest and not the segment.

Is this a known issue? Can we resolve this with any steps?

Devices that reproduce the issue

Tested on multiple android phones (Redmi Note 9 Pro, Oneplus Nord CE2 5G). Reproducible on all phones.

Devices that do not reproduce the issue

No response

Reproducible in the demo app?

Yes

Reproduction steps

  1. Install the demo app.
  2. Play some HLS content -
      {
        "name": "Apple 4x3 basic stream (TS)",
        "uri": "https://devstreaming-cdn.apple.com/videos/streaming/examples/bipbop_4x3/bipbop_4x3_variant.m3u8"
      },

Expected result

It should download single child manifest and segment at the beginning (at least in good network case).
During playback it may download different child manifest and segments.

Actual result

It is always downloading 2 child manifest and 2 segments at the beginning of the playback (For timestamp 0).

Media

Can be reproducible with demo app.

HLS > Apple 4x3 basic stream (TS)

      {
        "name": "Apple 4x3 basic stream (TS)",
        "uri": "https://devstreaming-cdn.apple.com/videos/streaming/examples/bipbop_4x3/bipbop_4x3_variant.m3u8"
      },

Bug Report

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions