Skip to content
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

Support xlink:actuate=“onRequest” #3238

Open
ronak2121 opened this issue Mar 16, 2021 · 14 comments
Open

Support xlink:actuate=“onRequest” #3238

ronak2121 opened this issue Mar 16, 2021 · 14 comments
Labels
component: DASH The issue involves the MPEG DASH manifest format priority: P2 Smaller impact or easy workaround type: enhancement New feature or request
Milestone

Comments

@ronak2121
Copy link

ronak2121 commented Mar 16, 2021

Have you read the FAQ and checked for duplicate open issues?
Yes

Is your feature request related to a problem? Please describe.
We are integrating with Ads, and would prefer to use DASH-IF's latest SGAI specifications that allows us to delay filling the Ad Pods while reusing the player heuristics to maintain Quality of Service. Please see: https://dashif.org/docs/CR-Ad-Insertion-r8.pdf and https://drive.google.com/file/d/1TwSuMGa1gfesdWBvlbK1rHLNVwiZNX3l/view for more information. I've asked questions out to the DASH-IF forum about impact to the player timeline (amongst others): Dash-Industry-Forum/AdInsertion#83

Describe the solution you'd like

  • Support for xlinks "onRequest", and some handling to indicate whether a period being played is an Ad or not, and/or exposing manifest events so we can track it on our own
  • Exposing Timed Metadata from the stream
  • Support for Dash Patch Manifests for Live Streaming

Describe alternatives you've considered
We are using CSAI to workaround this limitation, but would prefer to use SGAI to capitalize on the player qos calculations to maintain qos on low bandwidth connections.

@TheModMaker
Copy link
Contributor

We may need to do something similar to handle HLS interstitial support. We will be investigating the work soon, but may take a while to implement. This will require major reworks to implement.

@TheModMaker TheModMaker added type: enhancement New feature or request priority: P2 Smaller impact or easy workaround and removed needs triage labels Apr 26, 2021
@TheModMaker TheModMaker added this to the v3.2 milestone Apr 26, 2021
@ismena
Copy link
Contributor

ismena commented Apr 26, 2021

Corresponding HLS interstitial feature: #3364

@ronak2121
Copy link
Author

Hi, I was wondering if you could share anything about how the discussions with Zach Cava are progressing on this? We are hoping to capitalize on support for SGAI in early/mid 2022 in ShakaPlayer. Would that be a realistic expectation to have?

@Gheri
Copy link

Gheri commented Dec 6, 2021

Hey Team,
Is MPD Chaining / XLink supported in this player ??
Generally what we have been doing to implement Static Pre roll in shaka player for DASH ??
Any examples / references ??
Thanks,
Gheri.

@Gheri
Copy link

Gheri commented Apr 29, 2022

@ronak2121 I can see XLink on Request is not supported yet on Shaka Player
Then how you are going with SGAI ??

@joeyparrish
Copy link
Member

I am not aware of anyone working on either patch manifests or xlink onRequest. Today xlinks are only resolved immediately on parsing the manifest.

@ronak2121
Copy link
Author

ronak2121 commented Apr 29, 2022

@Gheri we aren't doing SGAI yet. We're still on CSAI with Google IMA. I am super motivated to add this support though. I will hit you up @joeyparrish when we're ready to start contributing and get some pointers.

@avelad avelad modified the milestones: v3.3, v4.1 May 4, 2022
@ronak2121
Copy link
Author

ronak2121 commented May 9, 2022

@avelad is this being actually being considered to be added in version 4.1? @joeyparrish if you still need help implementing this and/or HLS Interstitials, we are open to help you. Can you describe the next steps?

@joeyparrish joeyparrish modified the milestones: v4.1, Backlog May 9, 2022
@joeyparrish
Copy link
Member

As far as I can tell, nobody is working on this yet, so it shouldn't be in the v4.1 milestone. I placed this enhancement in the backlog for now.

As for next steps, the original post describes what look like several separate requests:

  • Support for xlinks "onRequest"
  • Some handling to indicate whether a period being played is an Ad or not
  • Or exposing manifest events so we can track it on our own
  • Exposing Timed Metadata from the stream
  • Support for Dash Patch Manifests for Live Streaming

I would say that the next steps depend on which of these you intend to tackle first:

  • I think timed metadata is already exposed, is it not? Can you be more specific about what you need here?
  • Patch manifest support is likely to be independent of the others in terms of implementation. I suggest splitting that into its own issue.
  • Indicating whether a period is an ad or not is a layered problem. First, how does DASH indicate that a Period is an ad? You'd have to parse that. Second, since period-flattening in v3.0, the internal structure loses information about DASH Periods, so some larger architecture change would be necessary. This is not a small problem.
  • Supporting xlink onRequest is another fundamental change to the architecture. Today, manifests have to be fully parsed. To support xlink onRequest, the player would have to fetch and update that portion of the manifest right before it's needed. A communication channel between player and manifest parser would have to be added for that, and the shape of that is an open question. There are also open questions about restrictions on xlinks. For example, if xlink is used in such a way that the duration of some periods (and therefore the duration of the presentation) can't be know in advance, then that could make everything more complicated. The player overall assumes that it knows the presentation duration upfront for VOD. Do we require duration info in the main manifest? Or do we change all the components that want to know duration in advance? Or do we set the duration such that it "stops" close to the boundary of an unknown-duration period, and expand the duration as we resolve xlinks? Lots of open questions here.
@Gheri
Copy link

Gheri commented May 20, 2022

@ronak2121 Did you guys know whats equivalent of xlink onRequest in HLS ?? Becuase HLS interstitial is loading the manifest on load and not on Request ??
Also I did not any equivalent for dynamic uri substitution as well in HLS ?? Dynamic Uri substitution is needed to make actual manifest cacheable and support unique user requests for ads. (https://dashif.org/docs/DASH-TAC-v1.0.htm#_Toc532379025)

@ronak2121
Copy link
Author

@Gheri there's no such thing as xlinks for HLS. Look at the new HLS talks from Apple about how things work there. I have successfully prototyped SGAI on HLS with iOS using AVPlayer, and it works as advertised with delayed resolution.

@avelad avelad added the component: DASH The issue involves the MPEG DASH manifest format label May 17, 2024
@avelad
Copy link
Collaborator

avelad commented Jun 13, 2024

HLS interstitials are now available in the nightly demo, DASH patches are supported since version 4.9, and we also support integrated ID3 in EMSG.

@avelad avelad added the status: waiting on response Waiting on a response from the reporter(s) of the issue label Jun 13, 2024
@ronak2121
Copy link
Author

ronak2121 commented Jun 14, 2024

Hi @avelad, what do you mean exactly by your previous post? Do you mean ShakaPlayer now supports onRequest xlink resolution? DASH patches is the SGAI solution for live streams, not VOD.

@shaka-bot shaka-bot removed the status: waiting on response Waiting on a response from the reporter(s) of the issue label Jun 14, 2024
@avelad avelad changed the title Dash Server Guided Ad Insertion Support - Patch Manifests & XLinks for VOD Jun 17, 2024
@avelad
Copy link
Collaborator

avelad commented Jun 17, 2024

@ronak2121 I have updated the title of the issue to reflect the part that remains to be integrated and that we will follow up on in this issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
component: DASH The issue involves the MPEG DASH manifest format priority: P2 Smaller impact or easy workaround type: enhancement New feature or request
7 participants