Skip to content

OverAlexander-MR/Implementing-aiortc-with-Unity

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Implementación de aiortc con Unity para transmisión de video

Descripción del server.py

El server.py es quien inicia la transmisión de video, este está programado para que la IP de quien ejecute el script, sirva de enlace con el cliente WebRTC y WebSockets. Las librerías implementadas son websockets 13.1, y aiortc.

Instalación de dependencias

Para instalar las dependencias necesarias, puede usar los siguientes comandos:

pip install websockets==13.1
pip install aiortc

Descripción de los archivos C#

Al archivo WebRTCManager.cs se le debe agragar la IP del dispositivo donde se ejecute server.py, para iniciar las negociaciaciones de los ICE Candidates y SDPs necesarias para que la trasmisión sea con exito.

Preparación del entorno en Unity:

El primer paso es agregar la librería WebSockets-Sharp. Se descarga websocket-sharp.dll a través de NuGet Gallery, descomprima el archivo .nupkg, ingrese a la carpeta lib, en ella encontrará el .dll, se adjunta junto a los archivos de Unity en Assets/Plugins. Puede encontrar la documentacion en: websocket-sharp.

WebRTC: la versión implementada para el protocolo de conexión es la 2.4.0-exp.11 · October 04, 2022. Con esta versión se logró establecer una correcta conexión para el envio de los ICE Candidates y la transmisión de las SDP. A través de Window/Package Manager, y agregando el paquete al entorno por medio de Add package from git URL... Puede encontrar la documentacion en: Unity

Dependencia adicional

Para la integración de WebRTC en Unity, se debe agregar la siguiente dependencia:

Entorno Unity

La preparación del entorno consta de la creación de un canvas UI, panel, RawImage y un objeto vacio WebSocket, dónde se asignará el script, por ejemplo:

Create UI Canvas

Adjunte el contenido de la carpera C# a su entrono y asegurece de tener WebSockets ya instalado:

Scrtips

Asigne el script WebRTCManager.cs al objeto WebSocket, asignele al script el RawImage que creó, e indique el puerto "Port" y la direccion ip en "Server Ip" (Sin espacios ni caracteres especiales) del despositivo donde desee ejecutar el script server.py, por ejemplo:

Configurar script WebRTCManager.cs

Configure el objeto RawImage, en este caso se ajusta a 640x480:

Configuara RawImage

Iniciar transmision

Para este ejemplo, se ejecutó server.py en una Raspberry Pi 4, que está conectada a la misma red wifi que el computador donde se encunetra el entorno de Unity:

Iniciando el servidor

Asegúrese de primero ejecutar server.py. El siguiente paso es inicializar el entorno Unity. Si asignó de manera correcta la dirección IP en el entorno, en la consola podrá observar la transmisión de los ICE Candidates y SDPs. Por último, se carga la textura de manera automática al RawImage:

Recibiendo video

Como puede observar, la recepción de video ha comenzado. En este caso se visualiza el teclado y las Raspberry Pi usadas en esta práctica.

About

Receive video in Unity through transmission implementing aiortc

Resources

Stars

Watchers

Forks

Packages

No packages published