Skip to content

LL-DASH streaming not resuming after buffering #4175

@krackjack234

Description

@krackjack234
Environment
  • Link to playable MPD file: Client stream so unable to share
  • Dash.js version: 4.6.0
  • Browser name/version: Mac Chrome
  • OS name/version: Mac
Steps to reproduce
  1. Start playing the low latency CMAF stream
  2. Open Chrome Dev tools and after few mins, switch network to Slow 3G
  3. Wait for a min
  4. Switch network speed back to No Throttling
Observed behavior

When we switch the network to low speed, after some time the player stops downloading new segments.
Once we switch back to normal speed, the player does not resume playback

Console output
[11884][StreamProcessor][audio] OnFragmentLoadingCompleted for stream id 0 and media type audio - Url: https://example.akamaized.net/cmaf/live-ull/2099527/640c3daee4b0868976f9169e/1681892999/chunk-stream_t_0-000586.m4s  
135237 [11897][StreamProcessor][video] OnFragmentLoadingCompleted for stream id 0 and media type video - Url: https://example.akamaized.net/cmaf/live-ull/2099527/640c3daee4b0868976f9169e/1681892999/chunk-stream_t_3-000586.m4s  
135237 [12963][StreamProcessor][audio] OnFragmentLoadingCompleted for stream id 0 and media type audio - Url: https://example.akamaized.net/cmaf/live-ull/2099527/640c3daee4b0868976f9169e/1681892999/chunk-stream_t_0-000587.m4s  
135237 [13009][StreamProcessor][video] OnFragmentLoadingCompleted for stream id 0 and media type video - Url: https://example.akamaized.net/cmaf/live-ull/2099527/640c3daee4b0868976f9169e/1681892999/chunk-stream_t_3-000587.m4s  
135237 [13979][StreamProcessor][video] OnFragmentLoadingCompleted for stream id 0 and media type video - Url: https://example.akamaized.net/cmaf/live-ull/2099527/640c3daee4b0868976f9169e/1681892999/chunk-stream_t_3-000588.m4s  
135237 [13981][StreamProcessor][audio] OnFragmentLoadingCompleted for stream id 0 and media type audio - Url: https://example.akamaized.net/cmaf/live-ull/2099527/640c3daee4b0868976f9169e/1681892999/chunk-stream_t_0-000588.m4s  
135237 [14901][StreamProcessor][video] OnFragmentLoadingCompleted for stream id 0 and media type video - Url: https://example.akamaized.net/cmaf/live-ull/2099527/640c3daee4b0868976f9169e/1681892999/chunk-stream_t_3-000589.m4s  
135237 [14943][StreamProcessor][audio] OnFragmentLoadingCompleted for stream id 0 and media type audio - Url: https://example.akamaized.net/cmaf/live-ull/2099527/640c3daee4b0868976f9169e/1681892999/chunk-stream_t_0-000589.m4s  
135237 [16001][StreamProcessor][video] OnFragmentLoadingCompleted for stream id 0 and media type video - Url: https://example.akamaized.net/cmaf/live-ull/2099527/640c3daee4b0868976f9169e/1681892999/chunk-stream_t_3-000590.m4s  
135237 [16004][StreamProcessor][audio] OnFragmentLoadingCompleted for stream id 0 and media type audio - Url: https://example.akamaized.net/cmaf/live-ull/2099527/640c3daee4b0868976f9169e/1681892999/chunk-stream_t_0-000590.m4s  
135237 [16884][StreamProcessor][audio] OnFragmentLoadingCompleted for stream id 0 and media type audio - Url: https://example.akamaized.net/cmaf/live-ull/2099527/640c3daee4b0868976f9169e/1681892999/chunk-stream_t_0-000591.m4s  
135237 [16950][StreamProcessor][video] OnFragmentLoadingCompleted for stream id 0 and media type video - Url: https://example.akamaized.net/cmaf/live-ull/2099527/640c3daee4b0868976f9169e/1681892999/chunk-stream_t_3-000591.m4s  
135237 [17996][StreamProcessor][video] OnFragmentLoadingCompleted for stream id 0 and media type video - Url: https://example.akamaized.net/cmaf/live-ull/2099527/640c3daee4b0868976f9169e/1681892999/chunk-stream_t_3-000592.m4s  
135237 [17999][StreamProcessor][audio] OnFragmentLoadingCompleted for stream id 0 and media type audio - Url: https://example.akamaized.net/cmaf/live-ull/2099527/640c3daee4b0868976f9169e/1681892999/chunk-stream_t_0-000592.m4s  
135237 [18967][StreamProcessor][audio] OnFragmentLoadingCompleted for stream id 0 and media type audio - Url: https://example.akamaized.net/cmaf/live-ull/2099527/640c3daee4b0868976f9169e/1681892999/chunk-stream_t_0-000593.m4s  
135237 [19070][StreamProcessor][video] OnFragmentLoadingCompleted for stream id 0 and media type video - Url: https://example.akamaized.net/cmaf/live-ull/2099527/640c3daee4b0868976f9169e/1681892999/chunk-stream_t_3-000593.m4s  
135237 [19898][StreamProcessor][video] OnFragmentLoadingCompleted for stream id 0 and media type video - Url: https://example.akamaized.net/cmaf/live-ull/2099527/640c3daee4b0868976f9169e/1681892999/chunk-stream_t_3-000594.m4s  
135237 [19960][StreamProcessor][audio] OnFragmentLoadingCompleted for stream id 0 and media type audio - Url: https://example.akamaized.net/cmaf/live-ull/2099527/640c3daee4b0868976f9169e/1681892999/chunk-stream_t_0-000594.m4s  
135237 [20998][StreamProcessor][audio] OnFragmentLoadingCompleted for stream id 0 and media type audio - Url: https://example.akamaized.net/cmaf/live-ull/2099527/640c3daee4b0868976f9169e/1681892999/chunk-stream_t_0-000595.m4s  
135237 [21009][StreamProcessor][video] OnFragmentLoadingCompleted for stream id 0 and media type video - Url: https://example.akamaized.net/cmaf/live-ull/2099527/640c3daee4b0868976f9169e/1681892999/chunk-stream_t_3-000595.m4s  
135237 [22771][StreamProcessor][video] Buffer is empty! Stalling! 
135237 [22772][StreamProcessor][audio] Buffer is empty! Stalling! 
371 player WAITING Event 
146761 onWaiting...........
135237 [22999][PlaybackController] Native video element event: waiting 
135237 [23957][StreamProcessor][audio] OnFragmentLoadingCompleted for stream id 0 and media type audio - Url: https://example.akamaized.net/cmaf/live-ull/2099527/640c3daee4b0868976f9169e/1681892999/chunk-stream_t_0-000596.m4s  
146683 playing event 
146685 #####onPlaying#####
135237 [23968][PlaybackController] Native video element event: playing 
135237 [24851][StreamProcessor][audio] Buffer is empty! Stalling! 
371 player WAITING Event 
146761 onWaiting...........
135237 [24981][PlaybackController] Native video element event: waiting 
135237 [26263][StreamProcessor][video] OnFragmentLoadingCompleted for stream id 0 and media type video - Url: https://example.akamaized.net/cmaf/live-ull/2099527/640c3daee4b0868976f9169e/1681892999/chunk-stream_t_3-000596.m4s  
135237 [27034][StreamProcessor][audio] OnFragmentLoadingCompleted for stream id 0 and media type audio - Url: https://example.akamaized.net/cmaf/live-ull/2099527/640c3daee4b0868976f9169e/1681892999/chunk-stream_t_0-000597.m4s  
135237 [28235][PlaybackController] Requesting seek to time: 596.2925 
371 onseekingEvent
135237 [28236][PlaybackController] Seeking to: 596.2925 
135237 [28236][StreamProcessor][video] onFragmentLoadingAbandoned request: https://example.akamaized.net/cmaf/live-ull/2099527/640c3daee4b0868976f9169e/1681892999/chunk-stream_t_3-000597.m4s has been aborted 
146761 onWaiting...........
135237 [28237][PlaybackController] Native video element event: waiting 
135237 [30277][StreamProcessor][video] OnFragmentLoadingCompleted for stream id 0 and media type video - Url: https://example.akamaized.net/cmaf/live-ull/2099527/640c3daee4b0868976f9169e/1681892999/init_3.m4s  
135237 [30277][ScheduleController][video] [video] lastInitializedRepresentationInfo changed to 0 
135237 [30308][StreamProcessor][audio] OnFragmentLoadingCompleted for stream id 0 and media type audio - Url: https://example.akamaized.net/cmaf/live-ull/2099527/640c3daee4b0868976f9169e/1681892999/init_0.m4s  
135237 [30309][ScheduleController][audio] [audio] lastInitializedRepresentationInfo changed to 0 
135237 [32797][StreamProcessor][audio] OnFragmentLoadingCompleted for stream id 0 and media type audio - Url: https://example.akamaized.net/cmaf/live-ull/2099527/640c3daee4b0868976f9169e/1681892999/chunk-stream_t_0-000598.m4s  
147565 {type: 'liveedgechange', target: span.vjs-event-bus, relatedTarget: undefined, defaultPrevented: false, preventDefault: ƒ}
is player is at live state false
Expected behaviour

The stream should start playing once we switch from low to high network speed.

Streaming Configuration used
{
  "abandonLoadTimeout": 10000,
  "wallclockTimeUpdateInterval": 100,
  "manifestUpdateRetryInterval": 100,
  "cacheInitSegments": false,
  "applyServiceDescription": true,
  "applyProducerReferenceTime": true,
  "applyContentSteering": true,
  "eventControllerRefreshDelay": 100,
  "enableManifestDurationMismatchFix": true,
  "parseInbandPrft": false,
  "enableManifestTimescaleMismatchFix": false,
  "capabilities": {
    "filterUnsupportedEssentialProperties": true,
    "useMediaCapabilitiesApi": false
  },
  "timeShiftBuffer": {
    "calcFromSegmentTimeline": false,
    "fallbackToSegmentTimeline": true
  },
  "metrics": {
    "maxListDepth": 100
  },
  "delay": {
    "liveDelayFragmentCount": 1,
    "liveDelay": 1,
    "useSuggestedPresentationDelay": true
  },
  "protection": {
    "keepProtectionMediaKeys": false,
    "ignoreEmeEncryptedEvent": false,
    "detectPlayreadyMessageFormat": true
  },
  "buffer": {
    "enableSeekDecorrelationFix": false,
    "fastSwitchEnabled": true,
    "flushBufferAtTrackSwitch": false,
    "reuseExistingSourceBuffers": true,
    "bufferPruningInterval": 10,
    "bufferToKeep": 20,
    "bufferTimeAtTopQuality": 30,
    "bufferTimeAtTopQualityLongForm": 60,
    "initialBufferLevel": null,
    "stableBufferTime": 12,
    "longFormContentDurationThreshold": 600,
    "stallThreshold": 0.3,
    "useAppendWindow": true,
    "setStallState": true,
    "avoidCurrentTimeRangePruning": false,
    "useChangeTypeForTrackSwitch": true
  },
  "gaps": {
    "jumpGaps": true,
    "jumpLargeGaps": true,
    "smallGapLimit": 1.5,
    "threshold": 0.3,
    "enableSeekFix": true,
    "enableStallFix": false,
    "stallSeek": 0.1
  },
  "utcSynchronization": {
    "enabled": true,
    "useManifestDateHeaderTimeSource": true,
    "backgroundAttempts": 2,
    "timeBetweenSyncAttempts": 30,
    "maximumTimeBetweenSyncAttempts": 600,
    "minimumTimeBetweenSyncAttempts": 2,
    "timeBetweenSyncAttemptsAdjustmentFactor": 2,
    "maximumAllowedDrift": 100,
    "enableBackgroundSyncAfterSegmentDownloadError": true,
    "defaultTimingSource": {
      "scheme": "urn:mpeg:dash:utc:http-xsdate:2014",
      "value": "https://time.akamai.com/?iso&ms"
    }
  },
  "scheduling": {
    "defaultTimeout": 500,
    "lowLatencyTimeout": 0,
    "scheduleWhilePaused": true
  },
  "text": {
    "defaultEnabled": true,
    "extendSegmentedCues": true,
    "webvtt": {
      "customRenderingEnabled": false
    }
  },
  "liveCatchup": {
    "maxDrift": null,
    "playbackRate": {
      "min": null,
      "max": null
    },
    "playbackBufferMin": 0.5,
    "enabled": null,
    "mode": "liveCatchupModeDefault"
  },
  "lastBitrateCachingInfo": {
    "enabled": true,
    "ttl": 360000
  },
  "lastMediaSettingsCachingInfo": {
    "enabled": true,
    "ttl": 360000
  },
  "cacheLoadThresholds": {
    "video": 50,
    "audio": 5
  },
  "trackSwitchMode": {
    "audio": "alwaysReplace",
    "video": "neverReplace"
  },
  "selectionModeForInitialTrack": "highestSelectionPriority",
  "fragmentRequestTimeout": 20000,
  "fragmentRequestProgressTimeout": -1,
  "manifestRequestTimeout": 10000,
  "retryIntervals": {
    "MPD": 500,
    "XLinkExpansion": 500,
    "MediaSegment": 1000,
    "InitializationSegment": 1000,
    "BitstreamSwitchingSegment": 1000,
    "IndexSegment": 1000,
    "FragmentInfoSegment": 1000,
    "license": 1000,
    "other": 1000,
    "lowLatencyReductionFactor": 10
  },
  "retryAttempts": {
    "MPD": 3,
    "XLinkExpansion": 1,
    "MediaSegment": 3,
    "InitializationSegment": 3,
    "BitstreamSwitchingSegment": 3,
    "IndexSegment": 3,
    "FragmentInfoSegment": 3,
    "license": 3,
    "other": 3,
    "lowLatencyMultiplyFactor": 5
  },
  "abr": {
    "movingAverageMethod": "slidingWindow",
    "ABRStrategy": "abrDynamic",
    "additionalAbrRules": {
      "insufficientBufferRule": true,
      "switchHistoryRule": true,
      "droppedFramesRule": true,
      "abandonRequestsRule": true
    },
    "bandwidthSafetyFactor": 0.9,
    "useDefaultABRRules": true,
    "useDeadTimeLatency": true,
    "limitBitrateByPortal": false,
    "usePixelRatioInLimitBitrateByPortal": false,
    "maxBitrate": {
      "audio": -1,
      "video": -1
    },
    "minBitrate": {
      "audio": -1,
      "video": -1
    },
    "maxRepresentationRatio": {
      "audio": 1,
      "video": 1
    },
    "initialBitrate": {
      "audio": -1,
      "video": -1
    },
    "initialRepresentationRatio": {
      "audio": -1,
      "video": -1
    },
    "autoSwitchBitrate": {
      "audio": true,
      "video": true
    },
    "fetchThroughputCalculationMode": "abrFetchThroughputCalculationMoofParsing"
  },
  "cmcd": {
    "enabled": false,
    "sid": null,
    "cid": null,
    "rtp": null,
    "rtpSafetyFactor": 5,
    "mode": "query",
    "enabledKeys": [
      "br",
      "d",
      "ot",
      "tb",
      "bl",
      "dl",
      "mtp",
      "nor",
      "nrr",
      "su",
      "bs",
      "rtp",
      "cid",
      "pr",
      "sf",
      "sid",
      "st",
      "v"
    ]
  },
  "cmsd": {
    "enabled": false,
    "abr": {
      "applyMb": false,
      "etpWeightRatio": 0
    }
  }
}

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    Status

    Selected for Development

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions