Realtime server-side video filtering?

Hi, I’m trying to build a videoconferencing application, and I plan on using a slightly modified version of Jitsi Meet.

My problem is that Jitsi Meet is lacking a feature that I need, which is arbitrary server-side processing of video streams.

The plan is to use Jitsi Meet to conduct an online class. There are concerns about students recording their screens and sending recordings to other students, before the information is available to all of them, for cheating purposes.

The plan is for the video feed from the teacher to go to the server, and get split up in real time into several uniquely watermarked video streams, which are then sent to the students. That way, if a recording of the session ends up on Youtube or whatever, we’ll be able to identify the uploader and bar them from taking future classes.

How can I modify the Jitsi Meet infrastructure to allow for this? I have a program that takes a live video in, and outputs the same live video several times, but each output is watermarked differently.

I’m afraid I don’t have a great understanding of how Jitsi Videobridge works, so I’m not sure where to start with this.

Any suggestions would be appreciated.

As an SFU (selective forwarding unit), jitsi-videobridge does not decode the video streams it processes. This is a fundamental design principle and changing it is simply not practical (it will require massive amounts of work and it’s not something we can help with).

The only feasible way of doing this with Jitsi Meet that I can think of is to add watermarking on the receiving client. This is easy, but of course it’s equally easy for a savvy user to disable it.