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

Intermediates #53

Open
kixelated opened this issue Mar 3, 2022 · 5 comments
Open

Intermediates #53

kixelated opened this issue Mar 3, 2022 · 5 comments
Assignees
Labels
Current author focus Authors are working on PR text NextInterim Target PR text for next interim requirement Impacts Requirements section

Comments

@kixelated
Copy link

kixelated commented Mar 3, 2022

This is kind of awkward to phrase, but it's something that gets overlooked quite often.

There are use-cases that are fully glass-to-glass. A broadcaster can use WebRTC to send media to one or more peers without involving an intermediary. However, I would say that most media is transmitted via a pipeline involving multiple processing and fanout steps.

It's important that the protocol is designed with intermediates in mind. This means minimal processing and preserving any latency strategy throughout the pipeline. The glue between contribution and distribution needs to be factored in.

SRT is an example of a protocol that gets this wrong. It uses a fixed-size latency buffer (I hope it's been changed by now), meaning each SRT hop adds a fixed amount of latency. This makes it a poor syndication protocol because these buffers are additive within a video pipeline. And it also makes SRT less ideal in general, as just using this protocol within a pipeline (even just for contribution) incurs this fixed latency.

This is very close to the syndication use-case but it might be better phrased as a requirement.

@SpencerDawkins SpencerDawkins self-assigned this Mar 4, 2022
@acbegen
Copy link

acbegen commented Mar 12, 2022

I think introducing a fixed delay is not the right way of describing the issue. The additional delay due to an intermediary could be fixed but also quite small compared to the e2e delay and in that case, maybe it is not that critical anymore. Intermediaries are a fact of life and new ones will keep coming up, so we just need to know when they start being a "problem" so maybe defining some limits/ranges might help here.

@SpencerDawkins
Copy link
Collaborator

@acbegen, I roughly agree with you on this. I'm planning to add an issue specifically for the meaning of latency, to work on.

@SpencerDawkins SpencerDawkins added the requirement Impacts Requirements section label Oct 18, 2022
@SpencerDawkins
Copy link
Collaborator

I'm leaving this discussion for reference during work on requirements, now that MOQ has been chartered.

@kixelated
Copy link
Author

I tried to tackle this in the motivation section of the latest warp draft.

@SpencerDawkins SpencerDawkins added the ForAdoption Should be addressed before adoption label Feb 1, 2023
@SpencerDawkins SpencerDawkins removed the ForAdoption Should be addressed before adoption label Feb 13, 2023
@SpencerDawkins
Copy link
Collaborator

@fiestajetsam and @SpencerDawkins discussed this issue.

The motivation for intermediates ("relays") should probably be in the architecture draft.

We should limit ourselves to requirements for relays in this draft.

We are held up by lack of discussion/consensus on architecture (and terminology, but that's nothing new).

@SpencerDawkins SpencerDawkins added the Current author focus Authors are working on PR text label Aug 8, 2023
@SpencerDawkins SpencerDawkins added the NextInterim Target PR text for next interim label Jan 9, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Current author focus Authors are working on PR text NextInterim Target PR text for next interim requirement Impacts Requirements section
Projects
None yet
Development

No branches or pull requests

3 participants