https://github.com/ntshvicky/video_calling_app
A basic app design for video calling just like google meet..not complete facility. Using Flask Socket-io and HTML/JS.
https://github.com/ntshvicky/video_calling_app
flask flask-socketio python video-call video-chat video-conferencing video-streaming
Last synced: 7 months ago
JSON representation
A basic app design for video calling just like google meet..not complete facility. Using Flask Socket-io and HTML/JS.
- Host: GitHub
- URL: https://github.com/ntshvicky/video_calling_app
- Owner: ntshvicky
- Created: 2023-10-23T19:27:27.000Z (almost 2 years ago)
- Default Branch: master
- Last Pushed: 2023-12-16T19:42:08.000Z (almost 2 years ago)
- Last Synced: 2025-01-21T20:48:57.140Z (9 months ago)
- Topics: flask, flask-socketio, python, video-call, video-chat, video-conferencing, video-streaming
- Language: HTML
- Homepage:
- Size: 55.7 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# This is an example of basic video calling app like google meet using Python, Flask, Socket IO and HTML (jinja2). and generate AI summary of transcript
## There is 2 kind of project
1. Peer-2-Peer / One-2-One person meeting.
=> run code using python3 p2p.py
The code releted files are in p2p.py backend and p2p.html frontend in template directory2. Normal multiple people meeting video call
=> run code using python3 m2m.py
The code releted files are in m2m.py backend and m2m_1.html & m2m_2.html frontend in template directory3. Approval based multiple people meeting video call
=> run code using python3 a2a.py
The code releted files are in a2a.py backend and a2a_1.html & a2a_2.html frontend in template directory4. Meeting with screenshare - x2x
=> run code using python3 x2x.py
The code releted files are in x2x.py backend and x2x_1.html & x2x_2.html frontend in template directory5. approval based multiple people meeting video with screens sharing
=> run code using python3 x3x.py
The code releted files are in x3x.py backend and x2x_1 and x2x_3.html frontend in template directory## How to setup
step 1. create python virtual environment
=> python3 -m virtualenv env (need to install virtualenv using "pip install virtualenv")
step 2. activate python virtual environment
=> source env/bin/activate in linux or mac and source env/Script/activate in windows
step 3. install required python libraries from requirements.txt
=> python3 -m pip install -r requirements.txt
step 4. run your code using python3
=> python3 m2m.pyIt will run in 5000 port as my code. better run in ngrok (https://ngrok.com/). It will work better on https.
## How to call or execute your code
1. for p2p.py - In browser directly call IP or domain for first person
example - https://ngrok-based-generated-domain.com
and for second person call #init page
example - https://ngrok-based-generated-domain.com/#init2. for m2m.py - In browser directly call IP or domain for all users
In main page first create a meeeting link and you can click and open meeeting link in another tab from "Create a New Meeting" option. Either you can enter last meeting ID in "Join a Meeting" option.It will open meeting in another tab , Enter your username for meeting and Join..
Based on each user internet speed and your system bandwidth and speed it may take some time to show videos of other users.3. a2a.py is same as m2m.py based code just it will ask creator approval to join another users in meeting.
- as a creator use same username on meeting join as you have used at meeting creation time4. x2x.py is same as x3x.py , just x3x has approval to join option.
- as a creator use same username on meeting join as you have used at meeting creation time
- in x3x sometimes there is an issue when new users are not showing to previous users at meeting, due to some conflict on room joining by new users## You can modify your code better by creating user login and while managing user unique id on username
## Issue
Due to asynchronous code execution for other participant to in socket join. there is a loop. emit will not execute. i have added more time so it should execute well, but still if you will face issue increase time. Problem is actually i faced sometimes, If new user join meeting can see existing users but existing users cant see new added users. If you will face the issue that cant see new users. Just reconnect the meeting. This issue should not happen because i have tried to solve the issue. If you can find better solution please share me. You can write asynchronous code also for better performance. I am little bad in asynchronously code bcz of corontine error message in every small code part.## push in git
find . | grep -E "(__pycache__|\.pyc|\.pyo$)" | xargs rm -rf
git add .
git commit -m "okay"
git push origin master# better working
x2x.py with x2x_1.html & x2x_2.html is working fine
Funcationality - videochat, share screen, text chat, transcript chat and lastly based on this transcript, user can generate summary also using ai model (i used Llama for example). save DEEPINFRA_API_TOKEN in .env