Tuesday, January 15, 2019

WebRTC : WebAssembly role


WebAssembly in WebRTC will enable vendors to create differentiation in their products, probably favoring the more established, larger players.
WebAssembly (abbreviated Wasm) is a binary instruction format for a stack-based virtual machine. Wasm is designed as a portable target for compilation of high-level languages like C/C++/Rust, enabling deployment on the web for client and server applications.

WebAssembly is a JVM for your browser. The same as Java is a language that gets compiled into a binary code that then gets interpreted and executed on a virtual machine, WebAssembly, or Wasm, allows developers to take the hard core languages (which means virtually any language), “compile” it to a binary representation that a Wasm virtual machine can execute efficiently. And this Wasm virtual machine just happen to be available on all web browsers.


WebAssembly allows vendors to do some really cool things – things that just weren’t possible to do with JavaScript. JavaScript is kinda slow compared to using C/C++ and a lot of hard core stuff that’s already written in C/C++ can now be ported/migrated/compiled using WebAssembly and used inside a browser.

Construct 3 decided to use Opus in browsers. Even when it isn’t available – by implementing Opus with Wasm
Zoom uses WebAssembly in order NOT to use WebRTC (probably because it doesn’t want to transcode at the edge of its network)
Unity, the popular gaming engine has adopted Wasm for its Unity WebGL target


Below are some more use case

Multiparty voice and video communications for online gaming – mainly more control on how streams are created, consumed and controlled
Improved support in mobile networks – the ability to manage and switch across network connections
Better support for media servers
New file sharing capabilities
Internet of Things – giving some love, care and attention to the data channel
Funny hats – enabling AI (computer vision) on video streams
Machine learning – like funny hats, but a bit more generic in its nature and requirements
Virtual reality – ability to synchronize audio/video with the data channel


references:
https://bloggeek.me/webassembly-in-webrtc/

No comments:

Post a Comment