π A free WebRTC browser-based video call, chat and screen sharing
π
Powered by WebRTC
using google Stun and numb Turn. MiroTalk
provides video quality and latency not available with traditional technology.
Open the app with the following supported browsers & many more...
- Is
100% Free
andOpen Source
- No download, plug-in or login required, entirely browser based
- Unlimited number of conference rooms without call time limitation
- Possibility to Lock/Unlock the Room for the meeting
- Desktop and Mobile compatible
- Optimized Room URL Sharing (share it to your participants, wait them to join)
- Webcam Streaming (Front - Rear for mobile)
- Audio Streaming crystal clear
- Screen Sharing to present documents, slides, and more...
- File Sharing, share any files to your participants in the room
- Select Audio Input - Output && Video source
- Ability to set video quality up to 4K and adapt the FPS
- Recording your Screen, Audio and Video
- Chat with Emoji Picker & Private messages & Save the conversations
- Simple collaborative whiteboard for the teachers
- Share any YouTube video in real time
- Start a tetris game in waiting your participants :)
- Full Screen Mode on mouse click on the Video element
- Possibility to Change UI Themes
- Right-click on the Video elements for more options
- Direct
peer-to-peer
connection ensures the lowest latency thanks toWebRTC
- Supports REST API (Application Programming Interface)
Open
https://mirotalk.up.railway.app/newcallor
https://mirotalk.herokuapp.com/newcallPick
your personal Room name andJoin To Room
Allow
to use the camera and microphoneShare
the Room URL andWait
someone to join for video conference
- You can also
join
directly to yourroom
by going to https://mirotalk.up.railway.app/join/your-room-name-goes-hereor
https://mirotalk.herokuapp.com/join/your-room-name-goes-here
- You will need to have
Node.js
installed, this project has been tested with Node version 12.X and 14.X
# clone this repo
$ git clone https://github.com/miroslavpejic85/mirotalk.git
# go to mirotalk dir
$ cd mirotalk
# copy .env.template to .env
$ cp .env.template .env
# install dependencies
$ npm install
# start the server
$ npm start
- Open http://localhost:3000 in browser
# copy .env.template to .env
$ cp .env.template .env
# build or rebuild services
$ docker-compose build
# create and start containers
$ docker-compose up # -d
# stop and remove resources
$ docker-compose down
- Open http://localhost:3000 in browser
# The response will give you a entrypoint / Room URL for your meeting, where authorization: API_KEY_SECRET.
$ curl -X POST "http://localhost:3000/api/v1/meeting" -H "authorization: mirotalk_default_secret" -H "Content-Type: application/json"
$ curl -X POST "https://mirotalk.up.railway.app/api/v1/meeting" -H "authorization: mirotalk_default_secret" -H "Content-Type: application/json"
$ curl -X POST "https://mirotalk.herokuapp.com/api/v1/meeting" -H "authorization: mirotalk_default_secret" -H "Content-Type: application/json"
The API documentation uses swagger at http://localhost:3000/api/v1/docs. Or check it out on railway & heroku.
If you want MiroTalk
to be reachable
from the outside
of your local network, you can use a service like ngrok (by editing the Ngrok
part on .env
file) or expose it directly on https or deploy it on:
demo
https://mirotalk.herokuapp.com/
demo
https://mirotalk.up.railway.app/
Many Thanks to:
- ianramzy (html template)
- vasanthv (webrtc)
- Sajad (chat)
- i-aryan (whiteboard)
- fmeringdal (rest api)
From where I took inspiration for this project. β€οΈ
-
Pull Requests are very welcome! π
-
Just run prettier on all of your PRs before submitting, this can be done with the following comand:
npm run lint
-
For communication we use gitter or discord chats which can be found here:
Made with β€οΈ by Miroslav Pejic