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

LastN #9

Closed
emcho opened this issue Jan 15, 2014 · 10 comments
Closed

LastN #9

emcho opened this issue Jan 15, 2014 · 10 comments
Labels
performance Issue related to performance of the app or browser when running Jitsi Meet
Milestone

Comments

@emcho
Copy link
Member

emcho commented Jan 15, 2014

Jitsi Videobridge now has a LastN feature that allows it to only forward the video for the last N active speakers. This is a mandatory feature for large scale conferences.

@ghost ghost assigned fippo Jan 15, 2014
@fippo
Copy link
Member

fippo commented Jan 16, 2014

Can you show me some examples for LastN? How does the focus signal it?

@lyubomir
Copy link
Contributor

In order to support LastN, two new attributes have been introduced in the channel element:

(1) The channel attribute endpoint specifies the identity of the conference participant who is streaming on that channel to Jitsi Videobridge. It is an opaque string as far as Jitsi Videobridge is concerned and is optional. For example, Jitsi uses the JID of the conference participant. For example, the following (schematic depiction of an) IQ tells Jitsi Videobridge that the audio streamed on c1 and the video streamed on c2 are coming from the same conference participant/endpoint p1@jit.si/resource:

<conference>
    <content name="audio">
        <channel endpoint="p1@jit.si/resource" id="c1" />
    </content>
    <content name="video">
        <channel endpoint="p1@jit.si/resource" id="c2" />
    </content>
</conference>

(2) The channel attribute last-n on a video channel specifies the maximum number of last active in the sense of audible audio endpoints/conference participants whose video is to be transmitted through the channel from Jitsi Videobridge. It is a positive number and is optional. For example, the following (schematic depiction of an) IQ tells Jitsi Videobridge that at most 8 videos of actively speaking conference participants are to be sent by Jitsi Videobridge on the video channel c2 i.e. to the endpoint p1@jit.si/resource

<conference>
    <content name="audio">
        <channel endpoint="p1@jit.si/resource" id="c1" />
    </content>
    <content name="video">
        <channel endpoint="p1@jit.si/resource" id="c2" last-n="8" />
    </content>
</conference>

As common with Jitsi Videobridge, the two new channel attributes endpoint and last-n may be specified at any time i.e. either during the allocation of a new channel or as an update to an existing channel.

@fippo
Copy link
Member

fippo commented Jan 26, 2014

Let's discuss this at fosdem. The plan at the RTP stream layer is not clear to me since the webrtc API doesn't give me clear indications that a stream is not progressing anymore. Well, getstats, but...

@emcho
Copy link
Member Author

emcho commented Jan 28, 2014

I guess that would require further signalling from the bridge ... and then the focus. @fippo would an RTCP bye help? Would that destroy the stream? If not, we have to send this from bridge->focus->participant

@emcho
Copy link
Member Author

emcho commented Feb 4, 2014

We discussed this today. Definitely doable. Would require a moderate amount of signalling from the bridge, to tell the application about the currently dominating speaker.

@emcho emcho modified the milestones: February, January Feb 4, 2014
@emcho emcho added Prio2 and removed Prio3 labels Feb 13, 2014
@emcho
Copy link
Member Author

emcho commented Feb 13, 2014

This is proving out to be our currently biggest performance bottleneck so we'd need to think about it in the short term. Since an SCTP implementation does not look as something easily achievable, we may have to resort to bridge->focus->participant signalling.

@emcho emcho closed this as completed Feb 13, 2014
@emcho emcho reopened this Feb 13, 2014
@emcho emcho modified the milestones: March, February, April Mar 2, 2014
@emcho emcho added Prio1 and removed Prio2 labels Mar 2, 2014
@emcho
Copy link
Member Author

emcho commented Mar 2, 2014

This would require active speaker detection and SCTP support at the bridge so March might be a bit optimistic. April sounds fine though. @bgrozev and @paweldomas are the likely victims here ;)

@emcho emcho mentioned this issue Mar 2, 2014
@fippo fippo removed their assignment Mar 5, 2014
@hristoterezov
Copy link
Member

Already implemented.

@markreg
Copy link

markreg commented Nov 27, 2015

How are stream changes signaled to lastN endpoints?

@bgrozev
Copy link
Member

bgrozev commented Nov 28, 2015

Through data channels. See here.

Zlash65 added a commit to kredily/jitsi-meet that referenced this issue May 7, 2020
@luixxiul luixxiul added the performance Issue related to performance of the app or browser when running Jitsi Meet label Jun 4, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
performance Issue related to performance of the app or browser when running Jitsi Meet
Projects
None yet
Development

No branches or pull requests

7 participants