Giter VIP home page Giter VIP logo

Comments (10)

fippo avatar fippo commented on May 20, 2024

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

from jitsi-meet.

lyubomir avatar lyubomir commented on May 20, 2024

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 [email protected]/resource:

<conference>
    <content name="audio">
        <channel endpoint="[email protected]/resource" id="c1" />
    </content>
    <content name="video">
        <channel endpoint="[email protected]/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 [email protected]/resource

<conference>
    <content name="audio">
        <channel endpoint="[email protected]/resource" id="c1" />
    </content>
    <content name="video">
        <channel endpoint="[email protected]/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.

from jitsi-meet.

fippo avatar fippo commented on May 20, 2024

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...

from jitsi-meet.

emcho avatar emcho commented on May 20, 2024

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

from jitsi-meet.

emcho avatar emcho commented on May 20, 2024

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.

from jitsi-meet.

emcho avatar emcho commented on May 20, 2024

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.

from jitsi-meet.

emcho avatar emcho commented on May 20, 2024

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 ;)

from jitsi-meet.

hristoterezov avatar hristoterezov commented on May 20, 2024

Already implemented.

from jitsi-meet.

markreg avatar markreg commented on May 20, 2024

How are stream changes signaled to lastN endpoints?

from jitsi-meet.

bgrozev avatar bgrozev commented on May 20, 2024

Through data channels. See here.

from jitsi-meet.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.