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

MPD Chaining support in Dash #3926

Closed
Gheri opened this issue Feb 8, 2022 · 10 comments · Fixed by #6641
Closed

MPD Chaining support in Dash #3926

Gheri opened this issue Feb 8, 2022 · 10 comments · Fixed by #6641
Assignees
Labels
component: DASH The issue involves the MPEG DASH manifest format priority: P3 Useful but not urgent status: archived Archived and locked; will not be updated type: enhancement New feature or request
Milestone

Comments

@Gheri
Copy link

Gheri commented Feb 8, 2022

SO/IEC 23009-1:2014/ Amdendent 4 added definition for MPD Chaining. Chaining adds a new supplemental property to a manifest, instructing the player to load a new manifest once playback is complete. It is designed to allow simplified ad insertion capabilities, especially placing static ads as pre-rolls to live streams, which are otherwise complicated to achieve with multi-period manifests. It also allows for simplified player development, as manifests only ever contain a single period.

The DASH IF has created two test vectors which can be used for development

http://testassets.dashif.org/#feature/details/588a48c27459f8cb201b881b

@Gheri Gheri added the type: enhancement New feature or request label Feb 8, 2022
@github-actions github-actions bot added this to the Backlog milestone Feb 8, 2022
@joeyparrish
Copy link
Member

Great idea! Let us know if you'd like to start working on this.

@joeyparrish
Copy link
Member

In case it's helpful:

You can wait for a video's "end" event and call player.load() again. If you want to implement chaining support in the player, that's effectively what you'd do with the supplemental property in the DASH manifest.

@Gheri
Copy link
Author

Gheri commented Feb 8, 2022 via email

@avelad avelad added the component: DASH The issue involves the MPEG DASH manifest format label Apr 28, 2022
@Gheri
Copy link
Author

Gheri commented Apr 29, 2022 via email

@joeyparrish
Copy link
Member

Let's discuss xlink in the xlink issue for clarity. As for chaining, as I mentioned before:

You can wait for a video's "end" event and call player.load() again. If you want to implement chaining support in the player, that's effectively what you'd do with the supplemental property in the DASH manifest.

I think that's roughly the control flow you want. The rest is a question of where to put the code, how to organize things, and how to plumb through the data you need to do it.

Since this is signaled in the manifest, you could always add a property to shaka.extern.Manifest, populated by shaka.dash.DashParser, then use that property in shaka.Player to react to the ended event on the media element and load new media.

@Gheri
Copy link
Author

Gheri commented May 1, 2022

Thanks @joeyparrish . I am going with xlink for SGAI for now as some devices does not support MPD Chaining and I have no control over their implementation.
Just Like for MPD Chaining #3238 issue you roughly gave pointers for implementation. Can you help us with some pointers for this issue xlink implementation ??

@avelad avelad added the priority: P3 Useful but not urgent label May 3, 2022
@avelad
Copy link
Collaborator

avelad commented May 17, 2024

I think this is feasible to implement in Shaka currently, is anyone interested in seeing this implemented?

Related to Dash-Industry-Forum/dash.js#1770

@Gheri
Copy link
Author

Gheri commented May 17, 2024

I m interested But might need help and some time also as I m busy with my office work

@avelad
Copy link
Collaborator

avelad commented May 17, 2024

@Gheri I can implement it, but I want to know if there is interest in adding this functionality to Shaka, do you have more example streams besides the dashif ones?

@Gheri
Copy link
Author

Gheri commented May 17, 2024

Let me check I can revert early next week.

@avelad avelad self-assigned this May 20, 2024
@avelad avelad modified the milestones: Backlog, v4.9 May 20, 2024
avelad added a commit that referenced this issue May 21, 2024
@shaka-bot shaka-bot added the status: archived Archived and locked; will not be updated label Jul 20, 2024
@shaka-project shaka-project locked as resolved and limited conversation to collaborators Jul 20, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
component: DASH The issue involves the MPEG DASH manifest format priority: P3 Useful but not urgent status: archived Archived and locked; will not be updated type: enhancement New feature or request
4 participants