Parsing error on token protected Akamai stream leading to 404s
Created by: laola1technik
Environment
-
The MPD passes the DASH-IF Conformance Tool on http://dashif.org/conformance.html -
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://dashif.org/reference/players/javascript/ and not just on my page
- Link to playable MPD file:
https://itfpmd-a.akamaihd.net/itf/delivery/da/32/da324f2c-79fa-43ba-83b6-5599934351b6/dash-ondemand/M-DC-2016-WG-M-CAN-FRA-01-R2-interview-Gilles_SIMON_FRA-80_1533347-291272e9-b360-336d-a0a6-ffc9991c3cb6-ondemand.mpd?hdnea=st=1499357209
exp=1499962009acl=/*~hmac=e47edaab70d3a7bfa1585ec4bfdf631e1066a71b62ddc8ccc7fd9beffbaaabe5 - Dash.js version:
2.4.1
- Browser name/version: chrome 59.0.3071.115
- OS name/version: Windows 10
Steps to reproduce
hello, I got a problem with DASH.JS Version > 2.3 when playing an token protected Akamai stream seems a the manifest is not parsed correctly which leads to 404 s on requests for subsequent segments Problem does not happen in DASH reference Player
If I manually remove "./" from ./ (@mpd manifest) Dash.JS based Player is working as expected
Observed behaviour
DASH reference player (http://dashif.org/reference/players/javascript/1.3.0/samples/dash-if-reference-player/index.html)
mainfest with token
https://itfpmd-a.akamaihd.net/itf/delivery/da/32/da324f2c-79fa-43ba-83b6-5599934351b6/dash-ondemand/M-DC-2016-WG-M-CAN-FRA-01-R2-interview-Gilles_SIMON_FRA-80_1533347-291272e9-b360-336d-a0a6-ffc9991c3cb6-ondemand.mpd?hdnea=st=1499357209exp=1499962009acl=/*~hmac=e47edaab70d3a7bfa1585ec4bfdf631e1066a71b62ddc8ccc7fd9beffbaaabe5
subsequent segment playing correctly
But DASH.JS Player (i.e. http://players.akamai.com/dash/)
same manifest https://itfpmd-a.akamaihd.net/itf/delivery/da/32/da324f2c-79fa-43ba-83b6-5599934351b6/dash-ondemand/M-DC-2016-WG-M-CAN-FRA-01-R2-interview-Gilles_SIMON_FRA-80_1533347-291272e9-b360-336d-a0a6-ffc9991c3cb6-ondemand.mpd?hdnea=st=1499357209
exp=1499962009acl=/*~hmac=e47edaab70d3a7bfa1585ec4bfdf631e1066a71b62ddc8ccc7fd9beffbaaabe5 subsequent segment is different and leading to 404
https://itfpmd-a.akamaihd.net/itf/delivery/da/32/da324f2c-79fa-43ba-83b6-5599934351b6/dash-ondemand/M-DC-2016-WG-M-CAN-FRA-01-R2-interview-Gilles_SIMON_FRA-80_1533347-291272e9-b360-336d-a0a6-ffc9991c3cb6-ondemand.mpd./M-DC-2016-WG-M-CAN-FRA-01-R2-interview-Gilles_SIMON_FRA-80_1533347_450k_1.m4v
leads to a 404 error
Console output
[32] [dash.js 2.5.0] MediaPlayer has been initialized
angular.min.js:103 XHR finished loading: GET "http://players.akamai.com/dash/app/sources.json".
(anonymous) @ angular.min.js:103
n @ angular.min.js:99
(anonymous) @ angular.min.js:96
(anonymous) @ angular.min.js:131
$eval @ angular.min.js:145
$digest @ angular.min.js:142
$apply @ angular.min.js:146
(anonymous) @ angular.min.js:20
invoke @ angular.min.js:41
c @ angular.min.js:20
Bc @ angular.min.js:21
fe @ angular.min.js:20
(anonymous) @ angular.min.js:317
j @ jquery-3.1.1.min.js:2
k @ jquery-3.1.1.min.js:2
Debug.js:108 [7654] Playback Initialized
XHRLoader.js:223 XHR finished loading: GET "https://itfpmd-a.akamaihd.net/itf/delivery/da/32/da324f2c-79fa-43ba-83b6-55…l=/*~hmac=e47edaab70d3a7bfa1585ec4bfdf631e1066a71b62ddc8ccc7fd9beffbaaabe5".
internalLoad @ XHRLoader.js:223
load @ XHRLoader.js:256
load @ ManifestLoader.js:108
load @ StreamController.js:609
initializePlayback @ MediaPlayer.js:2054
resetAndInitializePlayback @ MediaPlayer.js:1887
attachSource @ MediaPlayer.js:1851
$scope.doLoad @ main.js:285
fn @ VM230:4
b @ angular.min.js:126
e @ angular.min.js:276
$eval @ angular.min.js:145
$apply @ angular.min.js:146
(anonymous) @ angular.min.js:276
dispatch @ jquery-3.1.1.min.js:3
q.handle @ jquery-3.1.1.min.js:3
Debug.js:108 [7702] Parsing complete: ( xml2json: 4.84ms, objectiron: 1.52ms, total: 0.00636s)
Debug.js:108 [7714] MediaSource attached to element. Waiting on open...
Debug.js:108 [7715] Manifest has been refreshed at Tue Jul 18 2017 09:22:09 GMT+0200 (W. Europe Daylight Time)[1500362529.1]
Debug.js:108 [7722] MediaSource is open!
Debug.js:108 [7724] Duration successfully set to: 135.489
Debug.js:108 [7726] Added 0 inline events
Debug.js:108 [7728] video codec: video/mp4;codecs="avc1.42c01f"
Debug.js:108 [7745] Perform SIDX load: https://itfpmd-a.akamaihd.net/itf/delivery/da/32/da324f2c-79fa-43ba-83b6-55…C-2016-WG-M-CAN-FRA-01-R2-interview-Gilles_SIMON_FRA-80_1533347_450k_1.m4v
Debug.js:108 [7747] Perform SIDX load: https://itfpmd-a.akamaihd.net/itf/delivery/da/32/da324f2c-79fa-43ba-83b6-55…C-2016-WG-M-CAN-FRA-01-R2-interview-Gilles_SIMON_FRA-80_1533347_700k_1.m4v
Debug.js:108 [7750] Perform SIDX load: https://itfpmd-a.akamaihd.net/itf/delivery/da/32/da324f2c-79fa-43ba-83b6-55…-2016-WG-M-CAN-FRA-01-R2-interview-Gilles_SIMON_FRA-80_1533347_1500k_2.m4v
Debug.js:108 [7752] audio codec: audio/mp4;codecs="mp4a.40.2"
Debug.js:108 [7760] Perform SIDX load: https://itfpmd-a.akamaihd.net/itf/delivery/da/32/da324f2c-79fa-43ba-83b6-55…DC-2016-WG-M-CAN-FRA-01-R2-interview-Gilles_SIMON_FRA-80_1533347_a128k.m4a
Debug.js:108 [7761] No text data.
Debug.js:108 [7762] No fragmentedText data.
Debug.js:108 [7763] No embeddedText data.
Debug.js:108 [7763] No muxed data.
Debug.js:108 [7765] Start Event Controller
Debug.js:108 [7768] Native video element event: play
itfpmd-a.akamaihd.net/itf/delivery/da/32/da324f2c-79fa-43ba-83b6-5599934351…016-WG-M-CAN-FRA-01-R2-interview-Gilles_SIMON_FRA-80_1533347_1500k_2.m4v:1 GET https://itfpmd-a.akamaihd.net/itf/delivery/da/32/da324f2c-79fa-43ba-83b6-55…-2016-WG-M-CAN-FRA-01-R2-interview-Gilles_SIMON_FRA-80_1533347_1500k_2.m4v 404 (Not Found)
XHRLoader.js:223 XHR finished loading: GET "https://itfpmd-a.akamaihd.net/itf/delivery/da/32/da324f2c-79fa-43ba-83b6-55…-2016-WG-M-CAN-FRA-01-R2-interview-Gilles_SIMON_FRA-80_1533347_1500k_2.m4v".