Pages

Wednesday, 21 July 2021

Mirotalk:免费视频通话、聊天和屏幕共享程序

 mirotalk的一些功能和特征:

完全免费且开源、视频通话、在线聊天、屏幕共享、录制屏幕、文件共享、P2P连接等。。。

可以说是很全面了,部署起来也很简单。

安装并启动需要用到的软件:

sudo zypper in nodejs14 nginx python3-certbot-nginx supervisor git
sudo systemctl enable --now nginx supervisord

拉项目源码/复制一份配置文件/安装依赖:

git clone https://github.com/miroslavpejic85/mirotalk.git
cd mirotalk
cp .env.template .env
npm install

编辑配置文件:

nano .env

修改下面这些配置:

NGROK_ENABLED=false
TURN_ENABLED=false
API_KEY_SECRET=imlala

如果你的网络位于NAT后面可以打开TURN的选项,之后去这里注册一个账号:http://numb.viagenie.ca

接着修改下面的配置:

TURN_URLS=turn:numb.viagenie.ca
TURN_USERNAME=YourNumbUsername
TURN_PASSWORD=YourNumbPassword

新建supervisor配置文件:

sudo nano /etc/supervisord.d/talk.conf

写入如下配置:

[program:talk]
directory=/home/imlala/mirotalk
command=npm start
user=imlala
autostart=true
autorestart=true

更新supervisor并检查mirotalk运行状态:

sudo supervisorctl update
sudo supervisorctl status

新建nginx配置文件:

sudo nano /etc/nginx/vhosts.d/talk.conf

写入如下配置:

server {
    listen       80;
    server_name  mirotalk.233.fi;
    client_max_body_size 0;

    location / {
        proxy_pass http://127.0.0.1:3000;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_redirect off;
    }
}

检查nginx配置,确认无误后申请ssl证书:

sudo nginx -t
sudo certbot --nginx

注:mirotalk想要正常工作必须配置ssl证书。

防火墙放行80/443:

sudo yast2

按如图设置:



访问网址测试是否能够打开.

---------------------------------------------------------------------------

powered by WebRTC, Real-time video call, chat room and screen sharing entirely browser based.
https://mirotalk.up.railway.app/

MiroTalk

🚀 A free WebRTC browser-based video call, chat and screen sharing 🚀


Author License: CC-NC Donate Repo Link code style: prettier Gitter Discord

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

Foo

https://mirotalk.herokuapp.com/


mirotalk

Features

  • Is 100% Free and Open 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 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
  • 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 to WebRTC
  • Supports REST API (Application Programming Interface)

Demo

Room join

Quick start

  • 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

# mirotalk dir
cd mirotalk

# copy .env.template to .env
cp .env.template .env

# install dependencies
npm install

# start the server
npm start

Docker

Install: https://docs.docker.com/compose/install/

# 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

API

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"

API Documentation

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 deploy it on:


Deploy on Heroku

demo https://mirotalk.herokuapp.com/

heroku-qr


Deploy on Railway

demo https://mirotalk.up.railway.app/

railway-qr

from https://github.com/miroslavpejic85/mirotalk








No comments:

Post a Comment