General Information

How to Optimize Video quality for bandwidth

Often times, bandwidth is unpredictable. Bandwidth congestion can occur when user suddenly starts a streaming service or download a file from the internet. Sudden hike in the bandwidth usage may cause network congestion and results in poor meeting experience. Optimizing video quality for available bandwidth is very important for ensuring quality meetings.

HDmeet SDK provides 3 different quality levels (streams) for remote participants video quality

At any time, client can send below message to switch between video quality Sample message :

meetingsession.remoteParticipantVideoQuality([participant_id], bit_rate, quality)
Bit RateBandwidth (KBps)QualityQuality Type
05000Low
115001Medium (SD)
225002High (HD)

Another use case can be client application can be of different UI. For eg, your application might have a speaker only view where you show only the person who speaks and other videos are hidden from the view. In another case you might wanted to show video of all participants. Pausing and resuming a video stream is a life saver here.

Hoolva SDK support pausing a video stream and resume the stream functionality. Client can use :

meetingsession.pauseSubscriberVideo([participantID_1,participantID_2],true) //for pause
meetingsession.pauseSubscriberVideo([participantID_1,participantID_2],false) //for unpause

Bandwidth optimization is current not supported in react-native sdk

How to start a screen share in the meeting

Once the user is in the meeting he can initiate screen share with the below message

meetingsession.contentShareAction(audio, video, options)

audiotrue: share the system audio along with screen share , false: will not share the system audio along with the screen share
videotrue: shares the screen. This value also denotes that the client is starting a screen share.
options (only for electron)chromeMediaSourceId: to pass the id of a specific open window

To stop a screen share session, client should send audio:false and video:false

Audio only sharing is currently not supported in this version of the SDK which means, video:false and audio: true combination won’t work at this time.

For electron, we have to follow the below steps as well.

// In the main process.
const { desktopCapturer } = require('electron')
desktopCapturer.getSources({ types: ['window', 'screen'] }).then(async sources => {
for (const source of sources) {
if (source.name === 'Electron') {
mainWindow.webContents.send('SET_SOURCE', source.id)
return
}
}
})

Screen sharing is not supported in this version of react-native sdk