Safari: Regression in HLS stream playback from Player v7 to v8

Hi everyone at Bitmovin,

I’ve encountered an issue that looks like a regression from Bitmovin Player v7 to v8 when playing back an HLS stream. I could use some help troubleshooting this. Any ideas what I’m doing wrong?

Environment

  • Bitmovin Player v8.131.0
    • installed via CDN
  • Browsers Tested:
    • Safari 16.6 (macOS 13.5.2 and iOS 16.6.1) - Issue occurs
    • Chrome (latest) - Works as expected
    • Firefox (latest) - Works as expected

Expected behavior

The HLS stream should play smoothly without any errors in the console.

Actual behavior

Upon clicking the play button, the player loads a still image from the stream but fails to initiate playback. The Safari console shows an error: Unhandled Promise Rejection: [object Object].

Screenshot stack trace Safari console

What I’ve tried to mitigate/troubleshoot

  • Different browsers: Works as expected in current versions of Chrome and Firefox
  • Different player version: Bitmovin Player v7.8.21 in Safari – works as expected
  • Playback of HLS stream in QuickTime and ffplay: Works as expected
  • Config keys:
    • preferredTech: to force playback using player: "html5" or player: "native": No change in behavior
    • tweaks: Various hls options tested, no change in behavior

Code used to trigger the issue

<!DOCTYPE html>
<html lang="en">
  <head>
    <title>Native HLS URL issue</title>
    <meta charset="UTF-8" />
    <script
      type="text/javascript"
      src="https://cdn.jsdelivr.net/npm/bitmovin-player@8/bitmovinplayer.js"
    ></script>
  </head>
  <body>
    <div>
      <div id="player"></div>
    </div>

    <script type="text/javascript">
      var conf = {
        key: "<redacted>",
        tweaks: {
          log_level: bitmovin.player.LogLevel.DEBUG,
        },
        preferredTech: [
          {
            player: "html5",
            streaming: "hls",
          },
          {
            player: "native",
            streaming: "hls",
          },
        ],
      };

      var source = {
        title: "Test",
        hls: "https://<redacted>/smil:1234567-8.smil/playlist.m3u8",
      };

      var player = new bitmovin.player.Player(
        document.getElementById("player"),
        conf
      );
      player.load(source);
    </script>
  </body>
</html>

I’ve redacted sensitive information like the key and hls URL for security reasons.

Content of HLS manifest

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="aac",NAME="Original",DEFAULT=YES,AUTOSELECT=YES,URI="chunklist_b128000_ao_t64T3JpZ2luYWw=.m3u8"
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="aac",LANGUAGE="eng",NAME="Simtrans",DEFAULT=NO,AUTOSELECT=YES,URI="chunklist_b128000_ao_sleng_t64U2ltdHJhbnM=.m3u8"
#EXT-X-STREAM-INF:BANDWIDTH=2000000,NAME="Main",CODECS="avc1.42001e,mp4a.40.2",RESOLUTION=1280x720,AUDIO="aac"
chunklist_b2000000_vo_t64TWFpbg==.m3u8

Hi @paul-pb , welcome to Bitmovin community and thanks for reaching out here. Is this issue happening for HLS Live or VOD assets?

We are aware of an issue in player versions later than 8.126.0 wherein playback of HLS Live assets with a small DVR window(rolling DVR window with 3 segments or less) fails with similar error.

If your case is same, then please try using player version 8.126.0.

But if your case is not of HLS Live with small DVR Window, then please share a test asset with us to repro the issue as first step. In that case, it is also advisable to open a support case with Bitmovin using your Bitmovin account dashboard(https://dashboard.bitmovin.com/) to share the asset information discreetly.

Hi @lucky.goyal,

Thanks for your support and pointing me in the right direction. Yes, I’m encountering the issue with HLS Live assets, however I’m not using DVR, as far as I’m aware.

I have tried 8.126.0 as you suggested but encountered the same error. After trying out multiple versions I could find the version where the regression appears first:

I’ve prepared a test asset and created a support case as you suggested.

Thanks @paul-pb for checking the older versions and creating a support case. As I can see my colleague has forwarded to the player engineering team for further investigation. I will mark this conversation as closed and further updates on the issue will be provided via the support ticket.

1 Like

This topic was automatically closed 60 minutes after the last reply. New replies are no longer allowed.