-
Notifications
You must be signed in to change notification settings - Fork 13
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
Section 3.2.2: Clarify Use Case #123
Conversation
Questions about the use case: Is RTP used both before and after fanout, or is RTP only used before fanout (but data channel after), or does it cover both? |
Since this is for critical applications like auctions or betting, RTP is used before fanout (e.g. WHEP distribution), rather than a streaming protocol (e.g. HLS, LL-HLS) that transports CMAF. To remove latency, the fanout also uses RTP, rather than using CMAF over data channel to move them around. While unreliable/unordered data channel with application FEC could be used to transport the frames, the low-latency congestion control of RTP (e.g. gcc) will be preferred to data channel's NewReno. |
In that case, I wonder whether we could make the use case more precise according your description. N39 could tell it wants to do forwarding at the packet level (to not require assembling frames). Currently it is vague, maybe intentionally. Another requirement might be that the forwarding UA needs to expose RTCP info like PLI or FIR that it receives from its end clients so that the web page can trigger some recovery mechanism like asking for a key frame to the media source, as quickly as possible. This really is the SFU in a browser use case. Also, in parallel to forwarding, the user agent should be able to consume the incoming media for local playback. I am not sure how much a technical requirement that is. But this could somehow influence the API design so that consumption be easy to do with no/as little JS as possible. |
This issue was mentioned in WebRTC TPAC 2023 meeting – 12 September 2023 (Back to WebRTC use case issues) |
The notes from TPAC were "Continue discussing with intent to merge". |
Additional point: the use case is really about stringent latency and also ensuring that all peers render media at precisely the same time. |
index.html
Outdated
and data is sent to thousands (or even millions) of recipients. Limited interactivity | ||
may be supported, such as capturing audio/video from auction bidders. Both the media | ||
sender and receivers may be behind a NAT. Peer-to-peer relays may be used to improve | ||
scalability, with ingestion, distribution and fanout utilizing RTP. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'd prefer use cases that do not prescribe a solution, so I'd prefer removing mention of RTP. I think we should trust the "less than 300ms" requirement to already cover this.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Since we seem to be having the debate about "but you should consider whether or not datachannels are an equally good solution" at every juncture where we propose extensions that assume the use of RTP, I wonder if it would make sense to add sub-use cases where one is "RTP is used for media transport", and one is "non-RTP protocols are used for media transport in some or all parts of the solution".
That would give us some clean identifiers to point to when saying "THIS extension is applicable to THAT use case".
But I think we should merge this PR and take that up later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This use case is focused on non-datachannel approaches because:
- The requirement for low latency congestion control cannot be met by datachannel.
- Datachannel-related requirements are already covered in Section 3.1 File Sharing.
This issue was discussed in WebRTC December 5 2023 meeting – 05 December 2023 (Low Latency Broadcast w/fanout PR #123) |
Partial fix for #103
Preview | Diff