-
Notifications
You must be signed in to change notification settings - Fork 0
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
Loosen restrictions on SIDX usage #40
Comments
Can you clarify the use cases you're referring to? Is it for static/VoD files (e.g. to allow seeking to a chunk) or is it for live streaming? |
The use case which made me discover the limitation is around VoD, to enable direct byte range addressing of iframes to improve trick play performance without a dedicated trick play rendition. I think for live SIDX comes with too many issues. |
Can you please suggest a concrete proposal on how to address this in CMAF? We discussed that at MPEG 142 but are not sure how to proceed. |
The goal is to emulate an iframe-only file. The basic idea and file structure would be to package all iframes, and all frames between iframes (or the remainder of the GOP), into their own chunks, and use the SAP flags on SIDX to signal to the player which chunks have iframes. In a typical file this would mean that an average segment is split into two chunks, the iframe chunk (carrying one frame only) and then the rest of the segment (leaving aside that there may be multiple iframes in a segment). As current players assume that a referenced segment (or here chunk) with a SAP isn't just one frame long, the proposal is to add a second "top level" SIDX which uses daisy chaining of at least two additional SIDX (one for all the SAP chunks, and one for all the other chunks) to provide the new byte ranges. |
Waiting for input, we need to see if we could easily address it. |
It is not clear if this has a wide support. We want to encourage more feedback before resolution. |
We will close this issue unless we receive feedback before the next MPEG meeting (January 2024) |
I think I understand the point, but I'm unsure whether two separate sidx boxes are needed. If we need an I-frame like "alternative" sidx, we can have an external file, this already exists. |
I like the idea using Regarding the other proposal and also the question of @krasimirkolarov: the use case came up in the context of standardization in the APEX Association where we specified the next gen media format for inflight entertainment. A version of the proposed solution is actually in the latest spec draft of APEX 0415. The main selling point is to have the most basic enablement and common denominator for trick play in a self contained track file, without requiring higher level specs like DASH or HLS. In that market there is a great desire for reuse of encoded content across systems and airlines, so we were looking for something which could be "built-in" on content level - while remaining CMAF compliant. Currently a lot of TS based content is used which is encoded with short GOPs to enable the same in a very legacy way. We tried to improve on that. |
Do we want to close this issue or are we expecting some concrete proposal to the CMAF group? |
The concrete proposal is to either loosen the restriction mentioned above, or allow 'ssix' as proposed above. Is anything more concrete needed than this? Like a redline or similar? |
How does this fit with the CMAF profiles / brands? Loosening restrictions in an existing profile / brand is not backwards compatible. Is there going to be a looser profile that it could be added in? |
Maybe my original proposal of daisy chaining 'sidx' would pose issues when allowed in existing profiles. But allowing an optional 'ssix' shouldn't break anything I think. |
If it was made optional for content in one of the existing profiles then a file reader / decoder may find a box which it's not been tested against. That's not backwards compatible. |
Well, 14496-12 is pretty clear about this: I didn't check if CMAF defines a different behavior, but 14496-12 also says in the informative Annex B (i.e. Guidance on deriving from it): |
Btw, unless CMAF doesn't contradict that guidance elsewhere (does someone know for sure?), then when looking at 6.6.3, and specifically 7.3.3. bullet b) WDYT? It would solve this without need for any change. However, for cosmetics, what I noticed when checking now, is that the spec isn't 100% clear about whether it's really limited to a single 'sidx' box as the text uses plural form at various places like the one copied above. Only Table 10 says clearly So maybe this is an opportunity to clarify those things while also making clear that additional boxes not mentioned in CMAF may be used? |
From CMAF BoG at MPEG146: We will add a text to the WD of Amd. 2 of Ed. 3 to include .ssix box - Cyril will provide text. For all other requests for clarifications we welcome contributions with concrete text to be discussed. |
Cyril (with Thomas's help) will provide the text to be integrated in the CD text tat this meeting. |
Sorry I couldn't join the discussion but I have to note that real world experience is that implementations are seldom tested for correctly ignoring things they're not expected to support. |
Currently SIDX capabilities in CMAF are constrained to a single SIDX box which can only index fragments (and not CMAF chunks).
For some use cases it would be desirable to use daisy chaining of SIDX boxes, as well as allow referencing chunks.
For maximum player compatibility it's likely advisable to require daisy chaining when chunks which don't start with a RAP should be referenced, rather than loosening the requirement that a single SIDX can only reference fragments.
The text was updated successfully, but these errors were encountered: