dash.js
Open Source Media Player
Seamless and reliable DASH streaming on any browser-based device
View onGitHub
5317
1709
48.3k
Sponsors
Trusted by the industry leaders
Latest updates from GitHub
Player is in waiting state and only video segments are requested##### Environment
LG Smart TV
* Dash.js version: 4.7.2
* OS name/version: WeBOS
##### Steps to reproduce
While live playback player went to waiting state and never recovered
Dash logs
DashParser] Parsing complete: ( xml2json: 34.0ms, objectiron: 0.155ms, total: 0.0342s)
[StreamController] Manifest updated... updating data system wide.
[ManifestUpdater] Manifest has been refreshed at Fri Apr 11 2025 10:37:43 GMT+0530 (IST)[1744348063.629]
[AbrController] [audio] switching from buffer occupancy to throughput ABR rule (buffer: 7.342).
[StreamProcessor][video] Buffer is empty! Stalling!
[PlaybackController] Native video element event: waiting
[StreamProcessor][video] OnFragmentLoadingCompleted for stream id 156986248830902 and media type video - Url: video.m4f
[AbrController] Stream ID: 156986248830902 [video] switch from 1 to 0/3 (buffer: 0.2) "InsufficientBufferRule: Buffer is empty"
[StreamProcessor][video] OnFragmentLoadingCompleted for stream id 156986248830902 and media type video - Url: init.mp4
[StreamProcessor][video] [video] lastInitializedRepresentationInfo changed to 0
[StreamProcessor][video] OnFragmentLoadingCompleted for stream id 156986248830902 and media type video - Url: vidoe.m4f
[Play Session] redirect URL present
[DashParser] Parsing complete: ( xml2json: 34.0ms, objectiron: 0.160ms, total: 0.0341s)
[StreamController] Manifest updated... updating data system wide.
[ManifestUpdater] Manifest has been refreshed at Fri Apr 11 2025 10:37:48 GMT+0530 (IST)[1744348068.998]
[StreamProcessor][video] OnFragmentLoadingCompleted for stream id 156986248830902 and media type video - Url: video.m4f
[DashParser] Parsing complete: ( xml2json: 40.0ms, objectiron: 0.155ms, total: 0.0401s)
[StreamController] Manifest updated... updating data system wide.
[ManifestUpdater] Manifest has been refreshed at Fri Apr 11 2025 10:37:54 GMT+0530 (IST)[1744348074.357]
[Play Session] redirect URL present
[DashParser] Parsing complete: ( xml2json: 32.2ms, objectiron: 0.180ms, total: 0.0324s)
[StreamController] Manifest updated... updating data system wide.
[ManifestUpdater] Manifest has been refreshed at Fri Apr 11 2025 10:37:59 GMT+0530 (IST)[1744348079.676]
[Play Session] redirect URL present
[StreamProcessor][video] OnFragmentLoadingCompleted for stream id 156986248830902 and media type video - Url: video.m4f
[DashParser] Parsing complete: ( xml2json: 39.2ms, objectiron: 0.230ms, total: 0.0394s)
[StreamController] Manifest updated... updating data system wide.
[ManifestUpdater] Manifest has been refreshed at Fri Apr 11 2025 10:38:04 GMT+0530 (IST)[1744348084.886]
[Play Session] redirect URL present
[StreamProcessor][video] OnFragmentLoadingCompleted for stream id 156986248830902 and media type video - Url: video.m4f
[DashParser] Parsing complete: ( xml2json: 37.6ms, objectiron: 0.145ms, total: 0.0377s)
[StreamController] Manifest updated... updating data system wide.
[ManifestUpdater] Manifest has been refreshed at Fri Apr 11 2025 10:38:10 GMT+0530 (IST)[1744348090.076]
[Play Session] redirect URL present
[DashParser] Parsing complete: ( xml2json: 30.5ms, objectiron: 0.170ms, total: 0.0306s)
[StreamController] Manifest updated... updating data system wide.
[ManifestUpdater] Manifest has been refreshed at Fri Apr 11 2025 10:38:15 GMT+0530 (IST)[1744348095.47]
Opened by shogtapur—4 days ago
`enableManifestDurationMismatchFix` does not work for periods without `duration` field##### Environment
<!-- Replace [] with [x] to check off the list -->
- [x] The MPD passes the DASH-IF Conformance Tool on https://conformance.dashif.org/
- [x] The stream has correct Access-Control-Allow-Origin headers (CORS)
- [x] There are no network errors such as 404s in the browser console when trying to play the stream
- [x] The issue observed is not mentioned on https://github.com/Dash-Industry-Forum/dash.js/wiki/FAQ
- [x] The issue occurs in the latest reference client on http://reference.dashif.org/dash.js/ and not just on my page
* Dash.js version: v4.7.4 (haven't try with v5, but read the code. Issue should still exists)
* Browser name/version: Chrome
* OS name/version: Mac
##### Steps to reproduce
Set `enableManifestDurationMismatchFix` to true and play an asset with duration mismatch issue and some periods in the MPD does not have `duration` field.
##### Observed behavior
The duration is still the incorrect value from `MediaPresentationDuration` instead of the sum of all periods.
##### Root cause
https://github.com/Dash-Industry-Forum/dash.js/blob/development/src/streaming/ManifestLoader.js#L218
When calculating sum of all periods, currently, we are
```const sumPeriodDurations = manifest.Period.reduce((totalDuration, period) => totalDuration + period.duration, 0);```
Therefore, if there are any periods without `duration`, `sumPeriodDuration` will be `NaN`, and it will not continue to do the duration fix.
##### Potential fix
Use the `SegmentTemplate` to calculate the real duration.
Opened by KimmyWFox—15 days ago
We want to implement license rotation for DRM(widevine/playready) content while playback in our dash.js playerWe want to implement license rotation for DRM(widevine/playready) content while playback in our dash.js player.
We want to implement that license expiry time is 10 minutes, so every 10 minutes player should call the license server and get new license and keep playing, without affecting the playback experienceOpened by krishnakumar-ViewLift—17 days ago