实时音视频通话项目从零开始
集成Mediasoup的客户端和服务端的Demo
1. 构建Mediasoup、Mediasoup-client依赖
- 拉取服务端Mediasoup依赖
1
2git clone https://github.com/versatica/mediasoup.git
git clone https://github.com/versatica/mediasoup-client.git - 编译构建服务端SDK
1
2cd mediasoup && npm install && cd ..
cd mediasoup-client && npm install && cd ..
2. 集成服务端和客户端Demo
- 拉取Demo工程
1
2git clone https://github.com/versatica/mediasoup-demo.git
cd mediasoup-demo - 导入SDK
- 去除工程中的Mediasoup、Mediasoup-Client依赖从Github下载的配置
- 删除
app/package.json
中的如下整行内容;
"mediasoup-client": "github:versatica/mediasoup-client#v3",
- 删除
server/package.json
中的如下整行内容;
"mediasoup": "github:versatica/mediasoup#v3",
- 删除
- 安装其他依赖
1
2cd app && npm install --legacy-peer-deps && cd ..
cd server && npm install && cd .. - 将我们手动编译构建的SDK移入Node依赖
1
2cp -r ../mediasoup ./server/node_modules
cp -r ../mediasoup-client ./app/node_modules
- 准备服务配置文件
1
2
3cd server
cp config.example.js config.js
cd .. - 为服务生成网站证书
1
2
3
4
5
6# 进入存放证书的目录
cd serve && mkdir certs
# 生成证书(需要键入证书信息,如国家、城市、邮箱等)
openssl req -new -newkey rsa:2048 -x509 -sha256 -days 3650 -nodes -out fullchain.pem -keyout privkey.pem
# 回到Demo目录
cd .. - 添加环境变量
1
2export DOMAIN=192.168.0.100
export MEDIASOUP_ANNOUNCED_IP=192.168.0.100 - 启动服务端,保持终端以查看日志(若要后台运行,请学习使用
nohup
)1
2cd server
npm start - 启动客户端,保持终端以查看日志(若要后台运行,请学习使用
nohup
)1
2cd app
npm start - 通过使用
https://localhost:3000
或http://IP地址:3000
来允许不检查证书访问,然后使用不同设备访问该地址,进入客户端,则不同设备之间即可进行实时音视频通话。
附录(报错提示)
npm install
过程报错如下:
- 解决:手动下载
worker/subprojects
中的每个wrap中的列出的资源放置在worker/subprojects/packagecache
目录下后重试。
3. 使用功能更齐全的Demo进行继续提升
集成Mediasoup的服务端录制Demo
1. 集成服务端和客户端Demo
- 拉取Demo工程
1
2git clone https://github.com/ethand91/mediasoup3-record-demo.git
cd mediasoup3-record-demo - 导入SDK
- 去除工程中的Mediasoup、Mediasoup-Client依赖从Github下载的配置
- 删除
app/package.json
中的如下整行内容;
"mediasoup-client": "^3.6.48"
- 删除
server/package.json
中的如下整行内容;
"mediasoup": "^3.9.5",
- 删除
- 安装其他依赖
1
2cd app && npm install && cd ..
cd server && npm install && cd .. - 将我们手动编译构建的SDK移入Node依赖
1
2cp -r ../mediasoup ./server/node_modules
cp -r ../mediasoup-client ./app/node_modules
- 为服务生成网站证书
1
2
3
4
5
6# 进入存放证书的目录
cd serve/ssl
# 生成证书(需要键入证书信息,如国家、城市、邮箱等)
openssl req -new -newkey rsa:2048 -x509 -sha256 -days 3650 -nodes -out server.crt -keyout server.key
# 回到Demo目录
cd .. - 启动服务端,保持终端以查看日志(若要后台运行,请学习使用
nohup
)1
2cd server
npm start - 启动客户端,保持终端以查看日志(若要后台运行,请学习使用
nohup
)1
2cd app
npm run dev
实时音视频通话项目从零开始
https://zhongshijie1995.github.io/posts/50001/