jitsi / jitsi-meet

Jitsi Meet - Secure, Simple and Scalable Video Conferences that you use as a standalone app or embed in your web application.
https://jitsi.org/meet
Apache License 2.0
22.88k stars 6.69k forks source link

Unity Plugin for Jitsi #8117

Closed nsmith1024 closed 2 years ago

nsmith1024 commented 3 years ago

Is your feature request related to a problem you are facing? Please describe the problem you are trying to solve.

There are several post around the web asking for a Jitsi plugin for Unity, but seems it has not actually materialized, NOBODY has done it.

Describe the solution you'd like Please describe the desired behavior. Be able to use Jitsi as a plugin to Unity-3d.

Unity is a free video game engine used by millions of game developers around the world.

With a Jitsi plugin for unity, a lot of gamers could collaborate while playing, especially when playing multi-player games.

This would make Jitsi an instant hit world wide.

Describe alternatives you've considered Please describe alternative solutions or features you have considered.

Alternatives would be developing all the code myself, which would take years and possibly broken fingers from all the typing and debugging required.

damencho commented 3 years ago

Not many people are familiar with Unity-3d (including myself). Give more details about it, is it already running some chromium-based browser so it can run jitsi-meet? There is already an iframAPI which you can use to load jitsi-meet.

nsmith1024 commented 3 years ago

Unity is HUGE (and free), to give you a quick overview......

Unity is 3d video game engine that millions of game developers all over the world use to develop VR/AR/3D/2D games or apps. Its also used by many companies such as defense where its used for military simulations, architecture, home design and more.

How it works is you create visual objects (2D/3D/AR/VR) then attach your C# code to those objects. The code can control that objects behavior, position in space, rotation, size, animation, detect collisions and interactions with other objects, and can send or receive messages to other objects. The visual objects can be any sort of image like a players avatar, vehicles, missiles, trees, or whatever you want. Objects can even communicate with or control objects on another remote players screen over the internet in real-time (multi-player) (sometimes with no code).

It has built in audio processing and also visual effects (shaders) API you can call or create it yourself from scratch, play/record/streaming video and communicate over the internet.

There are lots of built in API you can use to do almost anything imaginable.

The best thing of all is that you can write your code once in C#, then Unity can export it to many different platforms like PC, MAC, IOS, Android, Linux, Play Station, XBOX, SMART TV, WebGL (for browser), and many other platforms.

Unity has a store (something like the Android Play Store) where thousands of artists and developers create add-ons and plugins for Unity that other developers can use to save themselves time while creating apps. Some are free, others you have to buy. The link to that is here https://assetstore.unity.com/

If you made a Jitsi Plugin, you would put it in the Unity Asset store so all unity developers will see it instantly giving you lots of exposure. Unity also has a large forum where people discuss various topics related to Unity. Each person who puts a plugin in the Asset store will also get their own sub-forum so people can ask questions (similar to a git hub page) https://forum.unity.com/

The best way to make a Jitsi plug in is simply to build an interface around your existing Jitsi, then call it from Unity, then render the video output to a GameObject (A standard base class used by all Unity engine objects) or a canvas, also interface with the camera to transmit video, or capture the screen directly.

A company called Agora has a product similar to Jitsi, a video streaming/conferencing solution/plugin for unity. You can check out their company website https://www.agora.io and their unity plugin as well on the Unity asset store https://assetstore.unity.com/publishers/34515

I used Agoras plugin before, its very good, very professional, has a lot of features including one way broadcast, and multi-way conferencing like JitSi/Zoom, their plugin is free, but they charge you for air time when you use it in a game (so its not free)

So I would recommend you start making a plugin for Unity (for Android and IOS), I 100% guarantee it would be an instant mega hit with millions of game developers all over the world. You already have IOS and Android versions of Jitsi, all you need to do is make a Unity plugin/wrapper for it so developers can just drop it into their game.

You should NOT use the browser version of Jitsi because it wont work well with unity, the native versions will be much better.

Here is the link to Unity so you can get cracking on it https://unity.com

zoeleu commented 3 years ago

I think this isn't a priority for this project. You do realise this is a game engine, and most platforms already have browsers.

EDIT: Use servo, the mozilla browser engine. https://github.com/MozillaReality/servo-unity only for macos

EDIT: https://assetstore.unity.com/packages/tools/gui/embedded-browser-55459

stale[bot] commented 3 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

jbg commented 3 years ago

When using Unity with WebGL, you can use lib-jitsi-meet in the WebGLTemplate, and make a script inside Unity that copies video frames onto a texture in Unity. It's quite straightforward in the end. We made an example repository: https://github.com/avstack/jitsi-meet-unity-demo

At AVStack we're investigating the possibility of building a native Unity plugin for use on other platforms than WebGL, but it's a fairly large task. Both that and the above are probably off-topic for this repository, so if anyone wants to discuss, feel free to contact me (my email address is in my GitHub profile).

saghul commented 3 years ago

Thanks for sharing!

stale[bot] commented 2 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.