How can I extend Jibri message protocol?

I’m trying to pass an extra parameter to Jibri in order to get this generic rtmp patch working.

So far, I’ve built a custom version of jitsi-meet/lib-jitsi-meet that sends an additional attribute (stream_url) in the jibri iq message. On the Jibri side, I started with Thulinma’s genericRTMP branch and cleaned up some type errors that was preventing it from compiling, and I modified the jitsi-xmpp-extensions library to add streamUrl (Java) or stream_url (XML)…using the streamid attribute as a guide.

Still no luck… In my browser’s devtools, I can see jitsi-meet sending out the JibriIQ message that includes stream_url="...", and in Jibri’s log, I see the message “Received JibriIQ …”, and there’s no stream_url attribute present.

I was hoping that prosody was just routing xmpp messages between peers, but now I’m thinking that there’s another module in the pipeline that is parsing the JibriIQ message and re-serializing it, but without knowledge of the modifications I made in jitsi-xmpp-extensions. It would make sense…otherwise, why not just include the JibriIQ type in the Jibri source, rather than a separate library.

Problem is, at this point, I have no idea how to tell if there are other packages that use the library and need to be recompiled with my modified version, or if there’s a lua module that needs patching, or updated xml namespace, or what… I’m way out of my comfort zone already, just dealing with Java.

Are there any experts out there who can tell me what I’m missing?


I realize I could probably make it work by just sticking everything into the streamid field and adding a bit of parsing logic to Jibri, since a youtube stream key looks very different from an rtmp url.

But since I’ve gotten this far, I’d like to see what it takes to actually extend the extend the jibriiq message for real.
If I could get it working, it would also be nice to add a username and password, since wowza servers can be configured to require them for authorization (there’s a bug in ffmpeg that prevents username:password from being embedded in the rtmp url)

Did you modify Jicofo? That’s what builds the requests to Jibri.

Sounds like that’s what I’m looking for, thanks!