Multiple Event/Emsg-related problems
Created by: nicoweilelemental
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 (live stream, 2s segments): https://c4af3793bf76b33c.mediapackage.us-west-2.amazonaws.com/out/v1/769dc73e096b47b290bfc3f7278f28f9/index.mpd
- Dash.js version: 3.1.3
- Browser name/version: Chrome 85
- OS name/version: Win10
Steps to reproduce
-
Please provide clear steps to reproduce your problem Load stream in dash.js or load Crafter player for more debugging capability (https://videosuite.craftercms.org)
-
If the bug is intermittent, give a rough frequency if possible Problems are permanent
Observed behaviour
We are injecting KLV metadata in emsg boxes v1 (one emsg box per KLV message). This is done as per the MISB ST 1910 spec. The data rate can be as high as one KLV message per video frame.
-
Emsg don't trigger stream event in VOD When a VOD extract of the live stream is played, no event is triggered like with the live stream. https://c4af3793bf76b33c.mediapackage.us-west-2.amazonaws.com/out/v1/769dc73e096b47b290bfc3f7278f28f9/index.mpd?start=2020-10-12T14:30:00-07-00&end=2020-10-12T14:35:00-07-00 We suspect that there might be a problem with events management in VOD streams.
-
Multiple emsg boxes content are aggregated inside a single event payload This is visible in the Crafter player. The left counter ("emsg messages") is the number of events received and the right counter is the number of KLV samples found inside the events. The two counters should have the same value if each emsg box was treated as a single event. This can be further shown by typing "printKlvEvents=1" in the javascript console of the Crafter player. It will show the detail of the received messages. The number of lines in the messageData section of each Event wil show how many emsg boxes are contained in a single event: one emsg box is 2 lines of data, and the Events including 3 emsg boxes have 6 lines of data. We suspect that there might be an aggregation of multiple emsg boxes contents into a single event messageData.
-
Segment duration influences extracted events rate Same stream but with 30s segments shows a much higher number of events being extracted https://c4af3793bf76b33c.mediapackage.us-west-2.amazonaws.com/out/v1/e0c840c123cb48429edca086064d299f/index.mpd We suspect that this is correlated to the previous point, meaning that the events signaling cycle seems to not be based on the number of emsg boxes present in the segments, but on a timing logic that is specific to the player.
-
Emsg boxes v1 don't seem to be supported We use emsg boxes v1 (and not v0). But when we look at the details of the Events (using the "printKlvEvents=1" console command in the Crafter player), we see that the Events have got a presentationTime: NaN field value. We suspect that this is either the result of the concatenation of multiple emsg boxes content into a single Event, or caused by a lack of support for emsg boxes v1, where the data fields are not ordered the same way in the payload.
A diagnosis would be highly appreciated. Thanks!