Intel® Collaboration Suite for WebRTC
Community support and discussions on the Intel® Collaboration Suite for WebRTC (Intel® CS for WebRTC).

How to work without mixing of streams?

Bipin_Kesharwani
Beginner
590 Views

Hi,

Is it possible to subscribe to streams without mixing it on server? I have set following in woogeen_config.js:

// If true, the streams from different clients in a room will be mixed by the media server.
config.erizoController.mixer = false;

Is there any sample or working example that someone can provide for subscribing to streams in a room while above configuration is used (without mixing streams). I can publish but cannot see any stream in basic Sample being provided with Intel CS for webrtc (working with mixed stream mode).

0 Kudos
6 Replies
Artem_M_
New Contributor I
590 Views

Yes, of cause It is possible. You can disable (or enable) mixing stream in configuration.

On javaScript part you should 

conference.on('stream-added', function(event) {
            var stream = event.stream;
            L.Logger.info('stream added:', stream.id());

           
            if(stream.from != "")
            {
                     conference.subscribe(stream, function() 
                    {...});
            }
})

 

stream.from - shows from who stream is comming. If from is empty - it is mixed stream. Else it has hash of participant.

0 Kudos
Bipin_Kesharwani
Beginner
590 Views

Hi Artem,

Thanks for the info. It seems working after I modified code for stream-added event. As per documentation of Conference Server user guide (section 3.2.2)  - MCU room can produce both forwarded and mix stream which can be subscribed by sending /?mix= parameter. But when I have changed it to forwarded stream in configuration file, I am not able to subscribe to mixed stream, every stream is opening separately.

I wanted to achieve both mixed + forwarded in a room . Could you please suggest something?

0 Kudos
Artem_M_
New Contributor I
590 Views

As I know, if config.erizoController.mixer = true   - you will recieve both mixed and unmixed stream.

If config.erizoController.mixer = false - you will recieve only unmixed.

When mixe is enabled - you will recieve stream immideate after joining to room even nobody translates video.

to understand what stream is mixed and what are not - just make breakpoint on any 'stream-added'

And then only check stream.from

In our project we use only unmixed streams, so I don'n remember well how it worked togeter.

But note that mixing increase processor very hight.

0 Kudos
Chunbo_H_Intel1
Employee
590 Views

Hi there,

You're right about how "config.erizoController.mixer" works.

In case you just want to subscribe the forward streams, use the code like following:

    if (!stream.isMixed()) {
      conference.subscribe(stream, function () {
        L.Logger.info('subscribed:', stream.id());
        displayStream(stream);
      }, function (err) {
        L.Logger.error(stream.id(), 'subscribe failed:', err);
      });
    }

0 Kudos
Bipin_Kesharwani
Beginner
590 Views

Hi Chunbo,

It is working.. Thanks to you and Artem.

 

0 Kudos
Chunbo_H_Intel1
Employee
590 Views
Sound great! Let us know if you have further questions.
0 Kudos
Reply