Dashjs does not playback properly if multifragment has MOOF/MDAT/TFDT atom in just first pair but the other moof-mdat pairs did not have. This is not a major problem as I can tell mp4box to add tfdt in every fragment pair but something to look after. Current default setting was changed in a mp4box not to write multiple tfdt atoms.
notfdt does not work: http://refapp.hbbtv.org/videos/test01_notfdt/manifest.mpd
yestfdt works ok: http://refapp.hbbtv.org/videos/test01_yestfdt/manifest.mpd
Test player
http://reference.dashif.org/dash.js/nightly/samples/dash-if-reference-player/index.html
GPAC people told me There is no bug(packaging), the first moof in a segment shall have a tfdt in each traf, it is optional for the others moof.traf in the segment. See GPAC issue where also had a solution how to package dash content with the latest mp4box binary.
https://github.com/gpac/gpac/issues/1593
[ Environment: Windows 10, Firefox 81.0b8-64-bit ]
@Murmur Do you see this behavior only in dash.js or also other players like Shaka? I don't see a way to fix this in the player since we append the segments to the sourcebuffers without modifying them. So I feel like this is rather a limitation of the browser/platform.
Run a test on Dashjs and ShakaPlayer behaving the same so you are correct, this is a limitation of the browsers. I need to ask GPAC team about the default value change in a packaging rules (earlier wrote tfdt in every moofmdat pair, new release writes just one). People should use a new mp4box argument --tfdt_traf to fix this.
Win10 + Firefox: Playback 10x step speed
Win10 + Chrome: Playback failed on load
Win10+ EdgeChromium: Playback failed on load
MSE MP4 bytestream format requires tfdt in all trafs by my reading - see point 6 in https://www.w3.org/TR/mse-byte-stream-format-isobmff/#iso-media-segments.
Seem that the UA should reject segments that do not contain a tfdt, which appears to be what Chrome/ium is doing.
Closing this as it is not a player issue
Most helpful comment
MSE MP4 bytestream format requires
tfdtin alltrafs by my reading - see point 6 in https://www.w3.org/TR/mse-byte-stream-format-isobmff/#iso-media-segments.Seem that the UA should reject segments that do not contain a
tfdt, which appears to be what Chrome/ium is doing.