WebRTC Solutions Featured Article

KMS v6.0 is Going into Production

July 23, 2015

There is news from Kurento that its Media Server v 6.0 (KMS v6.0) after a bit of a gestation period is going into production.  As Kurento notes in making the announcement to its community, the new release is in reaction to input from community members looking for enhanced stability, efficiency and monitoring capabilities.

The reason this is noteworthy for WebRTC developers is that Kurento has made tweaks for those looking to upgrade from KMS v5.x to KMS v6.0. In fact, Kurento says, “Somehow, we consider KMS v6.0 as the first version of our media server suitable to be considered as ‘production ready’ in the sense that it provides the appropriate characteristics for being integrated into production systems.”

Enhancements of note

Here is what Kurento is saying about its latest solution: “KMS v5.x and v6.0 APIs are very similar. The only significant difference is that v6.0 WebRtcEndpoint negotiation scheme is based on Trickle ICE and does not support the (desperately) slow mechanism based on exchanging candidates as part of SDPs.” 

They go on to explain that there is a cost here as v5.x WebRTC applications are not compatible with KMS v6.0. However, they believe in the development process they have compensated with a relevant increase in connectivity speed. This is sure to catch the eye of community members. The reason is that for example, v5.x average time for establishing a WebRTC stream between a browser and the media server was around 16 seconds while the same stream now is an average of 3 seconds on most common network topologies. The benefit cited is that this “clearly brings a significant improvement for QoE and end-user satisfaction.” And, while this causes incompatibility issues that could be annoying for KMS v5.x developers wishing to migrate to v6.0, modifications required by applications are said to be minor.  

In fact, Kurento has adapted its support materials to describe Trickle ICE support to guide developers through the migration process so that developers can figure out how to add support for it in a seamless way.

As to the enhancements in KMS v 6.0, it is a rather long and impressive list. They include (as listed in Kurento’s announcement):

  • Full migration to GStreamer 1.5 for enjoying latest improvements on the low level media capabilities KMS has been written on. Any new enhancement, fix or improvement in GStreamer 1.5 gets automatically incorporated in KMS.
  • Full migration to OpenSSL, which enhances security and avoids the many instabilities KMS v5.x had in its DTLS implementation.
  • Bug fixes both in KMS and in Gstreamer.
  • Efficiency improvement in around 30 percent in most use cases, with the corresponding improvement on the scalability.
  • Support for AES Hardware acceleration on Intel platforms, which makes possible to improve WebRTC performance in and additional 15 percent.
  • Support for WebRTC monitoring capabilities through an implementation of the WebRTC W3C Stats recommendation for RTP streams. This makes possible to obtain statistics showing how WebRTC applications behave in real-time.
  • Improved WebRTC congestion control algorithm providing much better QoE in presence of eventual packet loss. In addition, the algorithms has been parameterized and the corresponding parameters have been exposed as part of the WebRtcEndpoint API, so that it can be customized to behave appropriately under specific network conditions.
  • Enhanced configuration mechanism for KMS enabling each module to be configured in a specific configuration file.
  • Enhanced log management mechanism avoiding log files to become to large and implementing the appropriate log rotation mechanisms.
  • Enhanced recording capability fixing the problems KMS v5.x had with time stamps and providing full support for MP4 format: one of the requests more demanded by Kurento developers.
  • Enhanced and adapted documentation.

And, that is not all. Kurento has also made public the Kurento Room API which enables room-based applications for group communications. They also are working a number of further enhancements for KMS v.6.0 that will be integrated when available so check back on their site for updates. You can take a look into this API and to a room application based on this API in the kurento-room repository.

Finally, Kurento puts in a pitch for the evolutions of the NUBOMEDIA and FIWARE projects, the two research initiatives funded by the European Commission (EC) that are helping drive Kurento’s evolution. In short, as has been noted many times in the WebRTC Solutions Community, while sometimes it may seem like WebRTC developments are not living up to expectations, as Kurento proves you don’t have to look very far to see that this is far from the case. 

Edited by Dominick Sorrentino

Article comments powered by Disqus