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

Manifest Format #4

Open
KevinCJohns opened this issue Mar 21, 2018 · 6 comments
Open

Manifest Format #4

KevinCJohns opened this issue Mar 21, 2018 · 6 comments

Comments

@KevinCJohns
Copy link

In reading over the Section Overall Media Ingest Protocol Behavior Specification, I am unclear as to what is contained in the Manifest posted by the Encoder and when it is posted. The text implies the Manifest contains a list of Media Segments? and is posted before each segment? I am not sure this is the intent nor that I agree with this approach. IMO, the Manifest should describe the media that will be posted, only posted once and not with each subsequent segment being posted.

Can someone clarify, within the document, what is expected to be contained within the Manifest?

@unifiedstreaming
Copy link
Collaborator

I agree this is key issue, without this we cannot make many assertions about the manifests, so I kept most text around the manifest optional untill this is resolved. In this case the manifest is only used to that passive entities can pass it through, it is not used for the active media processing targeted in the spec.

@unifiedstreaming unifiedstreaming deleted a comment from KevinCJohns Mar 22, 2018
@unifiedstreaming
Copy link
Collaborator

unifiedstreaming commented Mar 28, 2018

@wilaw could you follow up on this ?

@unifiedstreaming unifiedstreaming deleted a comment from will Mar 30, 2018
@wilaw
Copy link

wilaw commented Mar 30, 2018

I was not envisaging that SegmentList would be used, therefore the manifest would not contain a list of segments. SegmentTemplate/$Number addressing would be sufficient and the manifest only needs to be posted once per session, or when the nature of what the encoder is publishing changes.

Unifed have a strong public position on the use of SegmentTimeline vs SegmentTemplate, which is documented here: http://www.unified-streaming.com/blog/stop-numbering-underappreciated-power-dashs-segmenttimeline. I will point out that most of the issues identified in that blog post have to do with timing, which don't apply in this contribution use case because the origin is not requesting the segments. The ability of SegmentTimeline to describe a gap in content is valid. However, the same gap could be described using SegmentTemplate/Number by adding a new period and updating the manifest.

In this case, using SegmentTimeline would also work for contribution, in the r=-1 mode, which would prevent the encoder having to issue a new manifest with each segment. If the segment durations vary, then a new manifest would have to be sent with each variation in segment duration.

@unifiedstreaming say that "In this case the manifest is only used to that passive entities can pass it through". This is purely the position of Unifed Streaming, who are intent on ignoring the manifest content and instead parsing every media segment to extract the same information. While I respect their right to do that, other active origins may choose to trust the manifest to describe the content and therefore the manifest would have a utility beyond that of a pass-through object.

@unifiedstreaming
Copy link
Collaborator

unifiedstreaming commented Apr 1, 2018

@wilaw we would like to have an input on the format of the manifest to be used what exact profile etc., this is why this issue is still open. If we don't get input on this it will remain that any manifest can be used. The active passive differentiation is another issue that was already resolved and closed

@wilaw
Copy link

wilaw commented Apr 6, 2018

The format options would be one of the DASH IF "Simple Live" 4.4 or "Main Live" 4.5 as specified in http://dashif.org/wp-content/uploads/2017/09/DASH-IF-IOP-v4.1-clean.pdf. The difference is really the reliance on embedded EMSG. Since much of the proposal assumes the origin will be parsing the incoming segments anyway, the logical candidate is probably Main Live in sect 4.5 . The relevant profiles are defined at http://dashif.org/identifiers/profiles/

profiles="urn:mpeg:dash:profile:isoff-live:2011,http://dashif.org/guidelines/dash-if-main"

The input spec may want to constrain this even further to allow only one type of addressing. That is a subject of much debate however!

@unifiedstreaming
Copy link
Collaborator

@wilaw thanks for the additional update, this is helpful! Would it also make sense to ingest other types of manifests such as based on HLS that now also supports fragmented MPEG-4 ?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants