Mirotalk
🚀 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 in one of following supported browser
https://mirotalk.herokuapp.com/
Features
- Is
100% FreeandOpen Source - No download, plug-in or login required, entirely browser based
- Unlimited number of conference rooms without call time limitation
- 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
- 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
- Recording your Screen, Audio and Video
- Chat with Emoji Picker & Private messages & Save the conversations
- Simple collaborative whiteboard for the teachers
- 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-peerconnection ensures lowest latency thanks towebrtc - Supports
API(Application Programming Interface)
Demo
Openhttps://mirotalk.herokuapp.com/newcallorhttps://mirotalk.up.railway.app/newcallPickyour personal Room name andJoin To RoomAllowto use the camera and microphoneSharethe Room URL andWaitsomeone to join for video conference
Room join
- You can also
joindirectly to yourroomby going to https://mirotalk.herokuapp.com/join/your-room-name-goes-hereorhttps://mirotalk.up.railway.app/join/your-room-name-goes-here
Quick start
- You will need to have Node.js installed, this project has been tested with Node version 12.X
- Clone this repo
git clone https://github.com/miroslavpejic85/mirotalk.git
cd mirotalk
Setup Turn and Ngrok
- Copy .env.template to .env
cp .env.template .env
Turn
Not mandatory but recommended.
- Create an account on http://numb.viagenie.ca
- Get your Account USERNAME and PASSWORD
- Fill in your credentials in the
.envfile - Set
TURN_ENABLED=true, if you want enable the Turn Server.
Ngrok
Not mandatory at all, but useful for tests and debug.
- Get started for free https://ngrok.com/
- Fill in your authtoken in the
.envfile - Set
NGROK_ENABLED=true, if you want to expose the server using the https tunnel, starting it from your local PC.
Install dependencies
npm install
Start the server
npm start
- Open http://localhost:3000 in browser
Docker
Install: https://docs.docker.com/compose/install/
cp .env.template .env
docker-compose up # or
docker-compose up -d # to run in background
- Open http://localhost:3000 in browser
To Update image after some mirotalk changes or updates.
docker-compose build
To Stops containers and removes containers, networks, volumes, and images created by up
docker-compose down
API
The response will give you a entrypoint / Room URL for your meeting.
curl -X POST "http://localhost:3000/api/v1/meeting" -H "authorization: YourApiKeySecret" -H "Content-Type: application/json" -d "{ \"title\": \"Mirotalk GET meeting\"}"
curl -X POST "https://mirotalk.up.railway.app/api/v1/meeting" -H "authorization: mirotalk_default_secret" -H "Content-Type: application/json" -d "{ \"title\": \"Mirotalk GET meeting\"}"
curl -X POST "https://mirotalk.herokuapp.com/api/v1/meeting" -H "authorization: mirotalk_default_secret" -H "Content-Type: application/json" -d "{ \"title\": \"Mirotalk GET meeting\"}"
If you want to use a client on another computer/network, make sure you publish your server on an HTTPS connection.
You can use a service like ngrok or deploy it on:
demo https://mirotalk.herokuapp.com/
demo https://mirotalk.up.railway.app/
Credits
Many Thanks to:
- ianramzy (html template)
- vasanthv (webrtc)
- Sajad (chat)
- i-aryan (whiteboard)
From where I took inspiration for this project. ❤️
Contributing
- Pull Requests are welcome! 🙂
- Please run prettier on all of your PRs before submitting, this can be done with
prettier --write mirotalk/ - For communication we use gitter or discord chats which can be found here:
License
Made with ❤️ by Miroslav Pejic



