Gst-meet & connecting native code (including Unity!) to Jitsi Meet - status update

Some people here may be familiar with our gst-meet project for integrating GStreamer with Jitsi Meet.

I want to update about some work we’ve been doing to expand the possibilities for integrating native code with Jitsi Meet rooms.

We’ve split the signalling code out of gst-meet into a new Rust crate, jitsi-meet-signalling, which is generic (just does the signalling) and can be connected to any WebRTC implementation. It comes with companion C bindings allowing it to be used from almost any programming language. We will be refactoring gst-meet soon to use this jitsi-meet-signalling crate, simplifying its code a lot.

A small piece used by jitsi-meet-signalling that might be useful in general is jitsi-jingle-sdp which implements transforms between “Jitsi-flavoured” Jingle and SDP, allowing easy integration of negotiation with existing WebRTC libraries.

We’ve also built a Unity package which uses those C bindings to do all the signalling and the existing official Unity WebRTC package to do the media. It’s alpha-quality at this point, but you can already use it to join a Jitsi Meet room from Unity, capture the webcam (or any in-game video source, including Unity cameras) and microphone (or any audio source) and send them to the room, and receive other participants video as Textures and audio as AudioSources. This is 100% native, and will work on all platforms supported by Unity except for WebGL (in contrast to the existing Unity integrations which use lib-jitsi-meet and only work on WebGL). We plan to rapidly develop this to production quality.

We’ll also be using the C bindings to produce iOS and Android native SDKs — will update about those later.

All mentioned software is open source (MIT or Apache 2.0 license at your option). We release this software to the community because it’s in our interest to grow the different ways Jitsi Meet can be used, but we can’t anticipate all the different ways you might want to use it — so if you need something, please open an issue! Pull requests also very welcome :wink:


Thanks for sharing!