-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
EMSG box support #259
Comments
I am very interested in this feature which can enable advertising support with multi period support together. |
I have now also subscribed to this issue. Lewis (above) indicates why we need this, but thought I could add a little context. Our third-party advertising vendor requires that the player to support the following features:
Since this enhancement is not planned for Shaka v2.0, we may need to look at implementing this ourselves. If we move ahead with this, we will contact you to discuss a potential solution. Let us know if you have any feedback or guidance that may help us here. Thanks (as always)! |
We would be happy to discuss design and ultimately to review a pull request for this. Thanks for expressing your interest! What we had in mind is a network filter that would listen for the responses to segment requests and parse those segments before they are processed by The only tutorial we have right now that discusses network response filters is docs/tutorials/license-wrapping.md, so you can look at that for examples of how response filters work. For I imagine the parsing would require a generic MP4 box parser to locate the The data extracted from The whole feature would ideally be modular and easily omitted from the build. See docs/tutorials/plugins.md for an overview of plugins and how they exist in the build system. |
We're changing direction on this slightly. Instead of dispatching emsg events from Player, we will use the presence of an emsg box to trigger an MPD update. For efficiency, we will only filter segments for emsg boxes if the manifest indicates that they are present. This appears to be the only use of the emsg box from what I can tell. |
Hi Joey, reading over your latest update, I'm not sure this is sufficient. We are planning on using EMSG box for the following:
In both cases, I believe we will need EMSG events to be dispatched from the player. Does this make sense? |
@dougdoe Can you provide some details on what those EMSG boxes will look like? For example, what scheme URIs will be used for those two cases? |
Hi @joeyparrish I am about to send you an email with two documents that contain information on EMSG box and ID3 tags. |
@dougdoe be careful of #409 -- I think one of your assumptions might be broken. @joeyparrish it seems like any implementation of EMSG support should be inline with support for |
@baconz, can you point me to a reference for Event and EventStream? I admit, I'm not familiar with those yet. |
Sure! Check out 5.3.3.7 and 5.3.2.4 of the latest IOP (http://dashif.org/wp-content/uploads/2016/06/DASH-IF-IOP-v3.3.pdf). Here's the example that they give:
There's also section 12.1.5 of the SCTE-67 spec, which talks about how SCTE-35 data should be integrated into DASH (http://www.scte.org/documents/pdf/standards/SCTE%2067%202014.pdf). There isn't a ton of info fleshed out in the IOP, but the features that they hint at would be extremely useful to us. |
@baconz, we would consider EventStream and VAST support as a separate enhancement from the basic EMSG support we're working on here. |
That sounds reasonable @joeyparrish, should I open a separate issue for EventStream? |
Sure, sounds good. |
Hi Joey, In this last commit (f1a4e25), there are what appear to be example test messages on lines 756 - 784 of file "test/dash/dash_parser_manifest_unit.js", including an example custom message.
Decoding it looks as though the box goes straight from the type "emsg" in bytes 4 - 7 (0 indexed) to the EMSG scheme_id_uri, in this case "emsgfoo:bar:customdatascheme". This might not be correct.
We believe that this implies that there should be an additional 4 bytes of version and flags (set to 0) between these two fields as defined by Section 4.2 of "ISO/IEC 14496-12 Information technology — Coding of audio-visual objects — Part 12: ISO base media file format":
|
@ismena, can you please take a look? |
@joeyparrish Absolutely! @vto5623 Thank you for drawing our attention to this, I will work on the fix at once. |
Hi @vto5623 |
We could support EMSG boxes through a network response filter on segments. The filter would parse the MP4 segments looking for EMSG boxes, then emit JavaScript events through Player if found.
Please comment and give specifics if this is of interest to you.
The text was updated successfully, but these errors were encountered: