Goals
Champion(s)
Browser vendors with Staff on site to fix on-the-fly
SFU Vendors with staff on site to fix on-the-fly
Project(s)
Specifically for this event, we created a gitHub repository with two automated kite interoperability tests. https://github.com/ManuCosmo/KITE-Hackathon
One test is a "typical" SFU test: KITE-Janus-Test is provided, which can be easily adapted to test any SFU, and should be the starting point for SFU developers wanting to automatically test against all the browser configuration CoSMo will provide for testing that week end.
https://github.com/ManuCosmo/KITE-Hackathon
One test, "KITE-Simulcast-Test", was specifically developed to test browser compliance. An app which sends simulcast to a special SFU based on meedoze, and receives back a given stream back depending on interaction with the UI is provided. It allows to test in loopback mode with a single browser (since simulcast is only sender side anyway), and all stream selection logic is made through UI button which makes it easily instrumented through KITE. The different simulcast features are not tested directly but indirectly (if I can select and receive a stream at a specific configuration it means the SFU receives them well and can differentiate them). The medooze simulcast loopback page, used by e.g. Apple for testing is hosted here: https://playground.cosmosoftware.io/index.html
There are a couple of demo pages available:
By default, no simulcast is used. To use simulcast, you need to add a query string attribute to those urls:
?simulcast=true enables simulcast via SDP munging?simulcast2=true enables rid-based simulcast (Chrome only)?vcodec=h264 tries to force H.264 instead of the default (vp8)For Firefox, always use the first one (will use rid but using the legacy API).
Lorenzo will be in the room and host a local Janus instance for testing as well: easier to tweak and update when doing interoperability testing.
Even if not attending, Inaki, tech lead of media soup, prepared some test for us.
To test Mediasoup, one can use https://v3demo.mediasoup.org
Some global variables in the browser console for debugging:
Jonathan Lennox has been working on modifying the Jitsi Videobridge to make it easy to adapt it for alternate bandwidth estimation algorithms, hoping it could be a good environment to make running-code RMCAT testing and comparisons possible. The API he's created is hopefully clean and simple, modelled on the one in the ns3-rmcat repo with some changes. The code is written in Kotlin, so Kotlin and Java should work with it immediately, and native (C or C++) should be able to work through JNI. The interface can be seen at https://github.com/jitsi/jitsi-media-transform/blob/master/src/main/kotlin/org/jitsi/nlj/rtp/bandwidthestimation/BandwidthEstimator.kt.