OpenVidu 2.18.0: improved recordings, client SDK, reconnection capabilites and much more

NEW FEATURES

Recording improvements

Recording API has been extended in this release. The two main new features are:

  • You can now set the desired frame rate of your COMPOSED recordings.

This second point is the result of a small but significant refactoring of the Session object. Before, Session objects had custom attributes for defining default values for its recordings:

{
"defaultOutputMode": "COMPOSED",
"defaultRecordingLayout": "CUSTOM",
"defaultCustomLayout": "mySimpleLayout"
}

Now it has a single attribute defaultRecordingProperties that is an actual RecordingProperties object, containing all of the available attributes to customize recordings:

{
"defaultRecordingProperties": {
"name": "MyRecording",
"hasAudio": true,
"hasVideo": true,
"outputMode": "COMPOSED",
"recordingLayout": "CUSTOM",
"customLayout": "mySimpleLayout",
"resolution": "1280x720",
"frameRate": 25,
"shmSize": 536870912,
"mediaNode": "media_i-po39jr3e10rkjsdfj"
}
}

In this way, for example, it is now possible to record Sessions set to recording mode ALWAYS with only audio or only video. Before the lack of custom default recording properties for in the Session object made this impossible.

This refactoring introduces small breaking changes that must be addressed if your application initializes Session objects with any default recording property ( defaultOutputMode, defaultRecordingLayout, defaultCustomLayout). This is all carefully detailed in the Breaking changes section of these release notes.

New openvidu-browser SDK features

openvidu-browser SDK has been improved in many ways. The most important points are listed below:

  • PublisherSpeakingEvents are now available also for Publisher objects. Before, they were restricted to Subscriber objects, so it wasn’t easy to know when the local user started or stopped speaking.

New nodeCrashed WebHook event

There is a brand new CDR/WebHook event available in OpenVidu Pro. The new nodeCrashed event allows you to relocate any Session hosted at a Media Node that crashed into a different healthy Media Node. Take a look to its documentation here.

Client logs can now be sent to Elasticsearch

We keep improving the monitoring features of OpenVidu Pro. A very important aspect when analyzing wrong behaviors and possible bugs in your OpenVidu applications is the logging on the client side. Now with OpenVidu Pro you can enable configuration property OPENVIDU_BROWSER_LOGS (disabled by default) to make openvidu-browser automatically send its logs to Elasticsearch.

Only the openvidu-browser’s own logs are sent (your application’s own logs are not). You can inspect them from OpenVidu Inspector session history view.

Easily access client-side logs from OpenVidu Inspector

New analysis features for OpenVidu Inspector session history

In your OpenVidu Inspector session history view you will see now a new land page showing the percentage of successful and problematic sessions. Problematic sessions now show a new “Troubleshooting” section with the list of detected anomalies.

Summary of successfull and problematic sessions available in OpenVidu Inspector
Now your session history view lists all of the problems detected in past sessions

Improved reconnection capabilities under the hood

Previously the reconnection capabilities were based only on the health of the client-server signaling plane. But the media plane can break on its own, without affecting the signaling plane. And up to this point, the application was completely blind when facing these conditions: the media could simply freeze and nobody would be alerted. But now these situations are also taken into account and media connections will be restored automatically.

Take a look to the revamped section Automatic reconnection to learn more.

BUG FIXES

  • openvidu-browser : Network Quality API wasn’t enabled for Microsoft Edge Mobile. Now it is.

BREAKING CHANGES

There is a breaking change for the Recording API. We have consolidated the RecordingProperties object so it can be equally used when configuring the default recording properties of a session or when manually starting the recording of a session. This affects the operation of initializing a Session. Visit 2.18.0 Release Notes in OpenVidu documentation to see the exact changes that you should made in case your application is affected.

Stay tuned for next iterations! You can follow us on Twitter and a Star in GitHub is always welcome :)