-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Open
Milestone
Description
Environment
- The MPD passes the DASH-IF Conformance Tool on https://conformance.dashif.org/
- The stream has correct Access-Control-Allow-Origin headers (CORS)
- There are no network errors such as 404s in the browser console when trying to play the stream
- The issue observed is not mentioned on https://github.com/Dash-Industry-Forum/dash.js/wiki/FAQ
- The issue occurs in the latest reference client on http://reference.dashif.org/dash.js/ and not just on my page
- Link to playable MPD file: http://demoprobe.qligent.com/probe_id/2/flow_id/41000783/plp_id/null/channel_id/1/manifest.mpd
- Dash.js version: 4.7.4
- Browser name/version: Google Chrome/127.0.6533.120
- OS name/version: Windows 10 Home/22H2
Steps to reproduce
- Open the Dash.js player in live mode.
- In devtools -> network set throttling to 3G or slow 4G or run several players simultaneously to slow down the channel.
- wait 5-10 minutes
Observed behavior
A network error appears in the console. error code 416 (Requested Range Not Satisfiable)
the player gives an error and stops playing video and sound.
however, the manifest continues to be constantly requested
Moreover, if you look at the manifest and at the request that throws an error, we can notice that the request specifies an incorrect range (or segment Url)
for Rrepresentation with BaseUrl === 101051/_30__9927111640246786043/20240822/120413.m4v
does not exist range === 1532636-1570522
this range is valid for Representation with baseUrl === 101051/_30__9927111640246786043/20240822/120213.m4v
REQUEST HEADERS
Request URL: https://probe01-qa-ubuntu20.vot/probe_id/4/data/101051/_30__9927111640246786043/20240822/120413.m4v
Request Method: GET
Status Code: 416 Requested Range Not Satisfiable
range: bytes=1532636-1570522
MANIFEST SEGMENTS
<Period id="2024-08-22T12:02:15.086007+00:00" start="PT59.603777S" duration="PT118.80771S">
<AdaptationSet mimeType="video/mp4" codecs="avc1.42C00D" id="58847325642394" lang="" contentType="video" segmentAlignment="true">
<Representation width="256" height="144" frameRate="1/1" mimeType="video/mp4" codecs="avc1.42C00D" id="_9927111640246786043" bandwidth="256000">
**<BaseURL>101051/_30__9927111640246786043/20240822/120213.m4v</BaseURL>**
<SegmentList timescale="16384" presentationTimeOffset="11647110222">
<Initialization range="0-789"/>
....
<SegmentURL mediaRange="1463410-1498011"/>
<SegmentURL mediaRange="1498012-1532635"/>
**<SegmentURL mediaRange="1532636-1570522"/>**
<SegmentURL mediaRange="1570523-1598683"/>
<SegmentURL mediaRange="1598684-1627728"/>
.....
</SegmentList>
</Representation>
</AdaptationSet>
</Period>
......
<Period id="2024-08-22T12:04:13.893717+00:00" start="PT178.411487S">
<AdaptationSet mimeType="video/mp4" codecs="avc1.42C00D" id="58847325642394" lang="" contentType="video" segmentAlignment="true">
<SupplementalProperty schemeIdUri="urn:mpeg:dash:period-continuity:2015" value="2024-08-22T12:02:15.086007+00:00"/>
<Representation width="256" height="144" frameRate="1/1" mimeType="video/mp4" codecs="avc1.42C00D" id="_9927111640246786043" bandwidth="256000">
<BaseURL>101051/_30__9927111640246786043/20240822/120413.m4v</BaseURL>
<SegmentList timescale="16384" presentationTimeOffset="11649056768">
<Initialization range="0-789"/>
<SegmentTimeline>
<S t="11649056768" d="32768"/>
<S t="11649089536" d="32768"/>
<S t="11649122304" d="32768"/>
<S t="11649155072" d="32768"/>
<S t="11649187840" d="32768"/>
<S t="11649220608" d="32768"/>
<S t="11649253376" d="32768"/>
<S t="11649286144" d="32768"/>
<S t="11649318912" d="32768"/>
<S t="11649351680" d="32768"/>
<S t="11649384448" d="32768"/>
<S t="11649417216" d="32768"/>
<S t="11649449984" d="32768"/>
<S t="11649482752" d="32768"/>
<S t="11649515520" d="32768"/>
<S t="11649548288" d="32768"/>
<S t="11649581056" d="32768"/>
<S t="11649613824" d="32768"/>
</SegmentTimeline>
<SegmentURL mediaRange="790-12492"/>
<SegmentURL mediaRange="12493-46306"/>
<SegmentURL mediaRange="46307-85784"/>
<SegmentURL mediaRange="85785-121297"/>
<SegmentURL mediaRange="121298-162754"/>
<SegmentURL mediaRange="162755-206148"/>
<SegmentURL mediaRange="206149-252184"/>
<SegmentURL mediaRange="252185-265922"/>
<SegmentURL mediaRange="265923-288043"/>
<SegmentURL mediaRange="288044-324228"/>
<SegmentURL mediaRange="324229-355125"/>
<SegmentURL mediaRange="355126-389725"/>
<SegmentURL mediaRange="389726-426862"/>
<SegmentURL mediaRange="426863-463948"/>
<SegmentURL mediaRange="463949-494801"/>
<SegmentURL mediaRange="494802-529595"/>
<SegmentURL mediaRange="529596-559969"/>
<SegmentURL mediaRange="559970-599820"/>
</SegmentList>
</Representation>
</AdaptationSet>
</Period>
Console output
[3149968][StreamProcessor][audio] OnFragmentLoadingCompleted for stream id 2024-08-22T12:02:13.893717+00:00 and media type audio - Url: https://probe01-qa-ubuntu20.vot/probe_id/4/data/101051/_30__9927110540735157832/20240822/120213.m4a , Range:611594-628031
Debug.js:169 [3149968][AbrController] [audio] switching from throughput to buffer occupancy ABR rule (buffer: 2.255).
Debug.js:169 [3151252][AbrController] [video] switching from buffer occupancy to throughput ABR rule (buffer: 0.955).
Debug.js:169 [3151253][AbrController] [audio] switching from buffer occupancy to throughput ABR rule (buffer: 0.973).
Debug.js:169 [3151979][StreamProcessor][video] OnFragmentLoadingCompleted for stream id 2024-08-22T12:02:13.893717+00:00 and media type video - Url: https://probe01-qa-ubuntu20.vot/probe_id/4/data/101051/_30__9927111640246786043/20240822/120213.m4v , Range:1463410-1498011
Debug.js:169 [3151980][AbrController] [video] switching from throughput to buffer occupancy ABR rule (buffer: 2.225).
Debug.js:169 [3152050][StreamProcessor][audio] Buffer is empty! Stalling!
Debug.js:169 [3152171][PlaybackController] Native video element event: waiting
Debug.js:169 [3152427][StreamProcessor][audio] OnFragmentLoadingCompleted for stream id 2024-08-22T12:02:13.893717+00:00 and media type audio - Url: https://probe01-qa-ubuntu20.vot/probe_id/4/data/101051/_30__9927110540735157832/20240822/120213.m4a , Range:628032-644490
Debug.js:169 [3152428][AbrController] [audio] switching from throughput to buffer occupancy ABR rule (buffer: 2.051).
Debug.js:169 [3153794][DashParser] Parsing complete: ( xml2json: 21.9ms, objectiron: 0.100ms, total: 0.0220s)
Debug.js:169 [3153795][StreamController] Manifest updated... updating data system wide.
Debug.js:169 [3153798][ManifestUpdater] Manifest has been refreshed at Thu Aug 22 2024 14:04:55 GMT+0200 (Центральная Европа, летнее время)[1724328295.586]
Debug.js:169 [3155069][StreamProcessor][video] OnFragmentLoadingCompleted for stream id 2024-08-22T12:02:13.893717+00:00 and media type video - Url: https://probe01-qa-ubuntu20.vot/probe_id/4/data/101051/_30__9927111640246786043/20240822/120213.m4v , Range:1498012-1532635
Debug.js:169 [3155158][StreamProcessor][audio] OnFragmentLoadingCompleted for stream id 2024-08-22T12:02:13.893717+00:00 and media type audio - Url: https://probe01-qa-ubuntu20.vot/probe_id/4/data/101051/_30__9927110540735157832/20240822/120213.m4a , Range:644491-660885
Debug.js:169 [3155161][PlaybackController] Native video element event: playing
XHRLoader.js:102
GET https://probe01-qa-ubuntu20.vot/probe_id/4/data/101051/_30__9927111640246786043/20240822/120413.m4v 416 (Requested Range Not Satisfiable)
GET https://probe01-qa-ubuntu20.vot/probe_id/4/data/101051/_30__9927110540735157832/20240822/120413.m4a 416 (Requested Range Not Satisfiable)
Debug.js:169 [3158314][AbrController] [video] switching from buffer occupancy to throughput ABR rule (buffer: 0.868).
Debug.js:169 [3158315][AbrController] [audio] switching from buffer occupancy to throughput ABR rule (buffer: 0.880).
Debug.js:169 [3158801][DashParser] Parsing complete: ( xml2json: 8.40ms, objectiron: 0.00ms, total: 0.00840s)
Debug.js:169 [3158801][StreamController] Manifest updated... updating data system wide.
Debug.js:169 [3158803][ManifestUpdater] Manifest has been refreshed at Thu Aug 22 2024 14:05:00 GMT+0200 (Центральная Европа, летнее время)[1724328300.592]
Debug.js:169 [3159112][StreamProcessor][video] Buffer is empty! Stalling!
Debug.js:169 [3159113][StreamProcessor][audio] Buffer is empty! Stalling!
Debug.js:169 [3159142][PlaybackController] Native video element event: waiting
XHRLoader.js:102
GET https://probe01-qa-ubuntu20.vot/probe_id/4/data/101051/_30__9927111640246786043/20240822/120413.m4v 416 (Requested Range Not Satisfiable)
GET https://probe01-qa-ubuntu20.vot/probe_id/4/data/101051/_30__9927110540735157832/20240822/120413.m4a 416 (Requested Range Not Satisfiable)
Debug.js:169 [3163932][DashParser] Parsing complete: ( xml2json: 9.90ms, objectiron: 0.00ms, total: 0.00990s)
Debug.js:169 [3163932][StreamController] Manifest updated... updating data system wide.
Debug.js:169 [3163934][ManifestUpdater] Manifest has been refreshed at Thu Aug 22 2024 14:05:05 GMT+0200 (Центральная Европа, летнее время)[1724328305.723]
XHRLoader.js:102
GET https://probe01-qa-ubuntu20.vot/probe_id/4/data/101051/_30__9927111640246786043/20240822/120413.m4v 416 (Requested Range Not Satisfiable)
GET https://probe01-qa-ubuntu20.vot/probe_id/4/data/101051/_30__9927110540735157832/20240822/120413.m4a 416 (Requested Range Not Satisfiable)
GET https://probe01-qa-ubuntu20.vot/probe_id/4/data/101051/_30__9927111640246786043/20240822/120413.m4v 416 (Requested Range Not Satisfiable)
Debug.js:169 [3168875][StreamProcessor][video] OnFragmentLoadingCompleted for stream id 2024-08-22T12:02:13.893717+00:00 and media type video - Url: https://probe01-qa-ubuntu20.vot/probe_id/4/data/101051/_30__9927111640246786043/20240822/120413.m4v , Range:1532636-1570522
Debug.js:169 [3168875][StreamProcessor][video] Fragment loading completed with an error
Debug.js:169 [3168877][StreamProcessor][audio] onFragmentLoadingAbandoned request: https://probe01-qa-ubuntu20.vot/probe_id/4/data/101051/_30__9927110540735157832/20240822/120413.m4a has been aborted
Debug.js:169 [3168878][StreamProcessor][audio] onFragmentLoadingAbandoned request: https://probe01-qa-ubuntu20.vot/probe_id/4/data/101051/_30__9927110540735157832/20240822/120413.m4a has to be downloaded again, origin is not seeking process or switch track call
XHRLoader.js:102
GET https://probe01-qa-ubuntu20.vot/probe_id/4/data/101051/_30__9927110540735157832/20240822/120413.m4a 416 (Requested Range Not Satisfiable)
Debug.js:169 [3168897][DashParser] Parsing complete: ( xml2json: 16.5ms, objectiron: 0.00ms, total: 0.0165s)
Debug.js:169 [3168897][StreamController] Manifest updated... updating data system wide.
Debug.js:169 [3168899][ManifestUpdater] Manifest has been refreshed at Thu Aug 22 2024 14:05:10 GMT+0200 (Центральная Европа, летнее время)[1724328310.688]
Debug.js:169 [3173951][DashParser] Parsing complete: ( xml2json: 8.20ms, objectiron: 0.00ms, total: 0.00820s)
Debug.js:169 [3173951][StreamController] Manifest updated... updating data system wide.
Debug.js:169 [3173953][ManifestUpdater] Manifest has been refreshed at Thu Aug 22 2024 14:05:15 GMT+0200 (Центральная Европа, летнее время)[1724328315.742]
Debug.js:169 [3178719][DashParser] Parsing complete: ( xml2json: 9.40ms, objectiron: 0.00ms, total: 0.00940s)
Debug.js:169 [3178719][StreamController] Manifest updated... updating data system wide.
Debug.js:169 [3178720][ManifestUpdater] Manifest has been refreshed at Thu Aug 22 2024 14:05:20 GMT+0200 (Центральная Европа, летнее время)[1724328320.51]
Debug.js:169 [3183738][DashParser] Parsing complete: ( xml2json: 11.4ms, objectiron: 0.00ms, total: 0.0114s)
Debug.js:169 [3183738][StreamController] Manifest updated... updating data system wide.
Debug.js:169 [3183740][ManifestUpdater] Manifest has been refreshed at Thu Aug 22 2024 14:05:25 GMT+0200 (Центральная Европа, летнее время)[1724328325.529]
Debug.js:169 [3188801][DashParser] Parsing complete: ( xml2json: 9.20ms, objectiron: 0.00ms, total: 0.00920s)
Expected behavior
The player must request the correct Range and not stop
Metadata
Metadata
Assignees
Type
Projects
Status
No status