Code Monkey home page Code Monkey logo

omkar13 / video-conferencing-web-application Goto Github PK

View Code? Open in Web Editor NEW
64.0 4.0 21.0 76.44 MB

Developed a multi-party video conferencing and web chat application using WebRTC, Javascript and Web-sockets with features such as canvas sharing, presentation sharing and video sharing.

License: Apache License 2.0

Shell 1.42% Java 7.29% HTML 51.47% JavaScript 27.29% CSS 12.53%
webrtc kurento-client javascript fabricjs websocket html css java spring

video-conferencing-web-application's Introduction

Video-conferencing-web-application

  • Developed a WebRTC enabled multi-party video conferencing and web chat application
  • Enhanced app by adding collaborative drawing canvas, presentation sharing and video sharing.
  • Optimized application for low-bandwidth scenarios by providing an optional audio stream only toggle.

Please refer to the project report pdf file for detailed summary.

Features:

  • User Registry – Maintains a list of registered users in our database and allows only those users to use our application.
  • Dynamic Rooms – The rooms are created dynamically giving users the freedom to name the rooms according to their choice.
  • Video conferencing - Supports live video conferencing for multiple rooms at the same time Canvas sahring - Real-time whiteboard sharing with one controller (who can be changed)
  • Public Chat – It is a common per-room chat where the user can type a message which will be sent to all the members of the room.
  • Private Chat – It is a chat between any two users of the room which is exclusive to them.
  • Presentation sharing - Real-time presentation sharing functionality Video streaming and sharing - Real-time video streaming and sharing

User types:

  • General user - The participant in the meeting. Can view videos of other users, view canvas, view presentations and participate in chats. Can be converted into a controller by the administrator.
  • Administrator – The creator of the room is known as the administrator. Holds various powers like granting control to other users, muting other users and ending the meeting.
  • Controller – The user who has the rights to present a presentation, stream a local video or draw on the canvas is known as the controller.

Modes:

  • Videos Mode – Displays the video stream from the cameras of all the other meeting participants.
  • Canvas Mode – Allows the current controller to add, manipulate and delete objects on the canvas which will be visible to all the other users. Page 4NG-I2I, Real Time Communication with WebRTC
  • Presentation Mode - Allows the current controller to present a presentation which will be visible to all the other users.
  • Video Stream Mode – Allows the current controller to stream a locally stored video file to al the other users in addition to his camera stream.

Specifications:

  • Application development framework: Spring (Java)
  • Front end code: Javascript, AJAX, WebRTC, websockets, Apache POI, Kurento client APIs, Material design, Fabric.js

Running:

  • Backend code entry point: GroupCallApp.java
  • Client code entry point: index.html

References:

Contributions: This work was done during my summer internship at the Indian Institute of Technology Bombay in 2016. Development contributors: Omkar Damle (Currently at the New York University), Yash Trivedi (Currently at the University of Wisconsin Madison), Rishabh Verma (Currently at Oracle) Principal Investigator: Prof. D.B. Phatak Project In-charge: Mr. Rahul Deshmukh Project Mentor: Mr. Harish Satpute

video-conferencing-web-application's People

Contributors

omkar13 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

video-conferencing-web-application's Issues

Some queries on your application

Dear Omkar,

I have a couple of queries on the you application, they are as below

  1. Can you provide install and use instructions? Like which OS, prerequisites etc?
  2. Can your application work without internet after installation?
  3. Are there any android client which you have tested ans works with the application developed?

Regards,
Jagannath S

Facing Kurento Exception Issue after compilation

I am using this project as a POC but facing some issue with this project. getting KurentoClient Exception :

========================================
2020-05-11 15:32:22.937 WARN 5796 --- [rbeatExec-e1-t0] o.kurento.jsonrpc.client.JsonRpcClient : [KurentoClient] Error sending heartbeat to server. Exception: [KurentoClient] Exception connecting to WebSocket server ws://127.0.0.1:8888/kurento

2020-05-11 15:32:22.938 WARN 5796 --- [rbeatExec-e1-t0] o.kurento.jsonrpc.client.JsonRpcClient : [KurentoClient] Stopping heartbeat and closing client: failure during heartbeat mechanism
2020-05-11 15:32:22.950 INFO 5796 --- [ntLoopGroup-3-1] o.k.j.c.JsonRpcClientNettyWebSocket : [KurentoClient] Inititating new Netty channel. Will create new handler too!
2020-05-11 15:32:24.955 WARN 5796 --- [ main] o.k.j.c.JsonRpcClientNettyWebSocket : [KurentoClient] Trying to close a JsonRpcClientNettyWebSocket with channel == null
2020-05-11 15:32:24.960 WARN 5796 --- [ main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'webSocketHandlerMapping' defined in org.springframework.web.socket.config.annotation.DelegatingWebSocketConfiguration: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.web.servlet.HandlerMapping]: Factory method 'webSocketHandlerMapping' threw exception; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'groupCallHandler': Unsatisfied dependency expressed through field 'roomManager'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'roomManager': Unsatisfied dependency expressed through field 'kurento'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'kurentoClient' defined in com.example.spring.ws.api.SpringBootVideoConferencingApplication: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.kurento.client.KurentoClient]: Factory method 'kurentoClient' threw exception; nested exception is org.kurento.commons.exception.KurentoException: Exception connecting to KMS
2020-05-11 15:32:24.964 INFO 5796 --- [ main] o.apache.catalina.core.StandardService : Stopping service [Tomcat]
2

showing the error in POM.xml file

when I was Installing this project showing error in pom. xml file

Project build error: Non-resolvable parent POM for org.kurento.tutorial:kurento-group-call:6.5.0: Failure to find org.kurento.tutorial:kurento-tutorial:pom:6.5.0 in https://repo.maven.apache.org/maven2 was cached in the local repository, resolution will not be reattempted until the update interval of central has elapsed or updates are forced and 'parent.relativePath' points at wrong local POM.ny

I was tring so many thing i AM NOT reaching the result.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.