Dash.js: Player freeze with large side-loaded TTML (3.3 MB)

Created on 18 Apr 2018  路  5Comments  路  Source: Dash-Industry-Forum/dash.js

I've an issue with side-loaded TTML for a ~7 hour long video. Shorter videos works fine, so I assume that it's performance related. The TTML file is 3.3 MB :)

Environment

  • [x] The MPD passes the DASH-IF Conformance Tool on http://dashif.org/conformance.html
  • [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
  • Link to playable MPD file: http://svt-dist-misc.s3-website.eu-central-1.amazonaws.com/dashjs-2534/forum/manifest.mpd
  • Link to TTML: http://svt-dist-misc.s3-website.eu-central-1.amazonaws.com/dashjs-2534/forum/sv.ttml
  • Dash.js version: nightly
  • Browser name/version: Chrome 65.0.3325.181
  • OS name/version: OS X 10.13.4
Steps to reproduce
  1. Load & start the stream
Observed behaviour

Everything freezes after a few seconds.

Console output

https://gist.github.com/carlanton/01c7e41d7ca428f97e6d6a6bf683fb7e

Investigate stale

Most helpful comment

It's getting stuck in TTMLParser.parse, generating ISDs for each of the ~26k events. This is time consuming (takes just under five minutes on my fast desktop!), and memory intensive (this particular TTML file consumes around 20MB when processed completely).

The parser was obviously designed to have fragmented segments appended. One option would to defer generation of the ISD until the cue becomes active if this is a use case that needs solving.

All 5 comments

Hi @carlanton ,

there is no ttml subtitles in your dash stream, only vtt....could you, please, provide your dash url stream with ttml side-loaded file?

Thanks,
Nico

@nicosang - Sorry about that - the manifest now updated and contains ttml again!

It's getting stuck in TTMLParser.parse, generating ISDs for each of the ~26k events. This is time consuming (takes just under five minutes on my fast desktop!), and memory intensive (this particular TTML file consumes around 20MB when processed completely).

The parser was obviously designed to have fragmented segments appended. One option would to defer generation of the ISD until the cue becomes active if this is a use case that needs solving.

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

This issue has been automatically closed because no further activity occurred. If you think this issue is still relevant please reopen it. Thank you for your contributions.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

lioun1729 picture lioun1729  路  6Comments

ProLoser picture ProLoser  路  5Comments

redd29 picture redd29  路  4Comments

NguyenTungs picture NguyenTungs  路  5Comments

davemevans picture davemevans  路  4Comments