WebRTC es un marco de código abierto que permite comunicaciones en tiempo real para la web a través de su navegador web.
Por el contrario, es el protocolo básico que permite que las aplicaciones web y los sitios web capturen y transmitan vídeos y audio e intercambien datos entre navegadores web.
WebRTC fue creado por primera vez por Google para hacer posible la comunicación entre pares para navegadores web y aplicaciones móviles, lo que dio lugar a docenas de aplicaciones de comunicación de vídeo y audio que utilizamos todos los días.
Es un proyecto gratuito y de código abierto, lo que significa que no requiere ningún coste para ejecutarlo y utilizarlo.
Otra ventaja de WebRTC es que es rápido y, a diferencia de las aplicaciones basadas en UDP, no requiere ningún protocolo de enlace entre el cliente y el servidor.
Algunos pueden considerar que el estándar WebRTC no es seguro porque expone la IP pública real del usuario; por lo tanto, si utiliza WebRTC con Google Chrome o Mozilla Firefox, no es anónimo.
En este artículo, encontrará las mejores bibliotecas y marcos WebRTC gratuitos y de código abierto para crear proyectos basados en WebRTC.
1- Kurento
kurento es un servidor de medios WebRTC gratuito y de código abierto con un completo conjunto de API para crear aplicaciones de vídeo enriquecidas para web y dispositivos móviles.
Kurento está escrito en C/C++ y utiliza varias funciones de GStreamer. Se inició como un proyecto en la Universidad Rey Juan Carlos de Madrid en 2010 y luego se lanzó como un proyecto de código abierto.
Características de Kurento
- Protocolos de transmisión en red, incluidos HTTP, RTP y WebRTC.
- Las comunicaciones grupales (funcionalidad de MCU y SFU) admiten tanto la mezcla de medios como el enrutamiento/despacho de medios.
- Soporte genérico para los filtros de visión computacional y realidad aumentada.
- Almacenamiento de medios que admite operaciones de escritura para WebM y MP4 y reproducción en todos los formatos admitidos por GStreamer.
- Transcodificación automática de medios entre cualquiera de los códecs admitidos por GStreamer, incluidos VP8, H.264, H.263, AMR, OPUS, Speex, G.711, etc.
Kurento tiene la licencia de código abierto Apache 2.0.
2- Servidor de medios Ant
Servidor de medios Ant es un servidor de medios para crear herramientas de comunicación de audio y video en tiempo real con transmisión de baja latencia.
Además de ser compatible con WebRTC, Ant Media también admite muchos protocolos como CMAF, HLS, RTMP, RCSP y muchos otros.
Ant Media Server es altamente escalable, con una latencia de 0,5 y se puede instalar localmente o en la nube.
Ant Media viene con dos ediciones, una edición empresarial con licencia comercial y una edición comunitaria gratuita de código abierto.
Funciones para Ant Media Server (edición comunitaria)
- Latencia ultrabaja adaptable de uno a muchos WebRTC Live Streaming en Edición de Empresa
- Tasa de bits adaptable para transmisiones en vivo (WebRTC, MP4, HLS) en Edición de Empresa
- Soporte VP8 y H264 en WebRTC Edición de Empresa
- Soporte de canal de datos en WebRTC Edición de Empresa
- Escalado horizontal (agrupación) y vertical Edición de Empresa
- SFU en una o muchas transmisiones WebRTC en Edición de Empresa
- Publicación en vivo desde RTMP a WebRTC Edición de Empresa
- Ingesta RTMP
- Adaptador WebRTC a RTMP
- Soporte de cámara IP
- Grabación de transmisiones en vivo (MP4 y HLS)
- Retransmitir a las redes sociales simultáneamente (Facebook y YouTube en Edición de Empresa)
- Control de token único en Edición de Empresa
- Detección de objetos en Edición de Empresa
- Ant Media Server incluye SDK de Android, iOS y JavaScript. Los SDK están disponibles de forma gratuita.
3- Abierto-EasyRTC
Abierto-EasyRTC es un conjunto de herramientas WebRTC gratuito y de código abierto para crear aplicaciones web y móviles ricas en medios en tiempo real.
Open-EasyRTC ofrece documentación fácil de usar para desarrolladores, con varios ejemplos de código y demostraciones para ayudar a los desarrolladores a crear aplicaciones utilizables en poco tiempo.
Open-EasyRTC es una bifurcación de la primaria FácilRTC proyecto con sus API de servidor y cliente, y demostraciones de HTML5/JavaScript publicadas bajo la licencia BSD 2.
4- abrirVidu
abiertoVidu es una plataforma de desarrollo de código abierto (licencia Apache v2) para crear aplicaciones de videoconferencia y videollamadas.
openVidu viene con soporte completo de cifrado WebRTC y funciona a la perfección con todos los marcos de JavaScript populares como React, Angular, TypeScript, Vue.js e Ionic.
Si le gusta crear sus aplicaciones con REST-API, entonces tiene suerte, ya que openVidu lo cubrió con una REST-API amigable para los desarrolladores.
5- Galeno
Galeno es un servidor de videoconferencias gratuito y de código abierto, rico en funciones y fácil de usar. instalarimplementar y utilizar.
Estas son sus características actuales:
- redistribución de números arbitrarios de transmisiones de audio y video;
- Chat de texto;
- grabación en disco;
- estados de usuario (“levantar la mano”, etc.; aún no utilizados por el cliente predeterminado);
- elección de códecs de audio y vídeo (funcionalidad completa para VP8, VP9 y H.264, soporte preliminar para AV1);
- Transmisión simultánea;
- Codificación de vídeo escalable (SVC) para VP8 y VP9;
- Recuperación de pérdidas basada en NACK, tanto en la dirección cliente-servidor como en la dirección servidor → cliente;
- Reparación basada en PLI;
- reinicio automático de flujos fallidos (en caso de falla de ICE);
- control de congestión en la dirección servidor → cliente (tanto basado en pérdidas como utilizando indicaciones REMB);
- control de congestión en la dirección cliente → servidor (soporte REMB parcial basado en pérdidas);
- ajuste dinámico de los tamaños de búfer según el RTT de los clientes;
- contraseñas hash;
- Servidor TURN incorporado.
6-RTC salado
SaltyRTC es un protocolo de cifrado de extremo a extremo para crear aplicaciones de comunicación entre pares WebRTC u ORTC cifradas.
El proyecto ofrece una larga lista de ejemplos y demostraciones de implementación que ayudan a los desarrolladores a encaminarse por el camino correcto para crear sus herramientas WebRTC cifradas.
7- Jano
Jano es un servidor WebRTC de uso general para crear aplicaciones basadas en WebRTC, como soluciones de videollamadas, conferencias y chats de video grupales.
Janus ocupa poco espacio con baja latencia y viene con muchos ejemplos de código y demostraciones con documentación amigable para los desarrolladores que los ayuda a instalar, implementar y ejecutar aplicaciones en poco tiempo.
Jano se publica bajo la licencia pública general GNU versión 3 (GPLv3).
Servidor de m
edios de 8 iones
ION es un sistema de comunicación distribuido en tiempo real de código abierto construido en lenguaje de programación Go puro. Utiliza la biblioteca PION/Flutter-WebRTC.
El proyecto está publicado y bajo licencia MIT.
9- Sopa de medios
sopa de medios es un completo conjunto de herramientas para crear aplicaciones de videoconferencia WebRTC con sus servidores Node.js y Rust compatibles con código abierto.
Se puede utilizar para crear aplicaciones de video chat grupal o aplicaciones de conferencias de uno a varios con soporte completo de transmisión RTP.
MediaSoup viene con soporte de baja latencia y servidores Rust/Node.JS. Admite el intercambio de mensajes de datos (a través de WebRTC DataChannels, SCTP sobre UDP simple y terminación directa en Node.js/Rust). También ofrece compatibilidad integrada con Simulcast y SVC.
- ECMAScript 6/API de bajo nivel de Idiomatic Rust.
- Multi-stream: múltiples flujos de audio/vídeo a través de un único transporte ICE + DTLS.
- Listo para IPv6.
- ICE/DTLS/RTP/RTCP sobre UDP y TCP.
- Soporte de transmisión simultánea y SVC.
- Control de congestión.
- Estimación del ancho de banda del emisor y del receptor con algoritmo de distribución de capas espaciales/temporales.
- Intercambio de mensajes de datos (a través de WebRTC DataChannels, SCTP sobre UDP simple y terminación directa en Node.js/Rust).
- Extremadamente potente (subproceso/subproceso de trabajo de medios codificado en C++ sobre libuv).
Aquí hay un proyecto de muestra que utiliza sopa de medios.
10- HornoMediaEngine
HornoMediaEngine es un servidor de transmisión de código abierto con una tasa de baja latencia para crear soluciones de comunicación en tiempo real.
OvenMediaEngine admite muchos protocolos de entrada/salida de comunicación y viene con codificadores de medios, lo que lo hace ideal para crear conferencias y llamadas de video/audio empresariales.
Los protocolos admitidos incluyen WebRTC, RTMP, SRT, RTSP y TS.
OpenMediaEngine viene con un transcodificador en vivo integrado que admite VP8, H264, Opus, AAC y Pass-Through.
11- Temasys
Temasys El proyecto ofrece varias herramientas basadas en WebRTC para crear aplicaciones de videoconferencias y llamadas para empresas utilizando la biblioteca SkylinkJS.
La colección de repositorios contiene varias demostraciones y código de muestra que utiliza varias tecnologías como Swift, Objective-C, React, C++, Java y Android.
Si está planificando o creando aplicaciones basadas en WebRTC, Temasys es un proyecto que debe verificar.
12- JSComunicador
JSComunicador es una herramienta gratuita, de código abierto (GPL v2.0) basada en JavaScript y desarrollada en tecnologías web puras (HTML, CSS y JavaScript).
JSCommunicator es una herramienta WebRTC que utiliza el protocolo SIP sobre WebSockets.
El proyecto funciona a la perfección con aplicaciones web y se puede integrar con cualquier CMS como WordPress y Drupal.
Puede obtener el código fuente y ejecutarlo, o personalizarlo para uso personal y comercial.
13- Servidor y biblioteca PeerJS
PeerJS La biblioteca deforma la implementación WebRTC del navegador con una API JavaScript fácil de usar para crear aplicaciones de llamadas de audio y vídeo punto a punto en tiempo real.
Tanto el cliente como el servidor PeerJS son gratuitos y de código abierto para que cualquiera pueda descargar, instalar, ejecutar y crear aplicaciones de vídeo/audio.
PeerJS funciona bien con otros marcos de JavaScript como React, Angular, Vue, Meteor, Ionic y otros.
Para resumir
WebRTC o comunicación web en tiempo real es la piedra angular principal de lo que impulsa la mayoría de las aplicaciones de videoconferencia y videollamadas.
Aquí, enumeramos los mejores proyectos WebRTC de código abierto para que los desarrolladores creen interesantes herramientas y aplicaciones de videoconferencia. Si conoce alguna biblioteca o proyecto WebRTC de código abierto que no mencionamos aquí, háganoslo saber.
Etiquetas
Programación de desarrollo de listas de código abierto Desarrollo web basado en web Videoconferencia Video de colaboración Servidores autohospedados