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).
連結已複製
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.
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?
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.
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);
});
}
