实时音视频通话项目从零开始

集成Mediasoup的客户端和服务端的Demo

1. 构建Mediasoup、Mediasoup-client依赖

  1. 拉取服务端Mediasoup依赖
    1
    2
    git clone https://github.com/versatica/mediasoup.git
    git clone https://github.com/versatica/mediasoup-client.git
  2. 编译构建服务端SDK
    1
    2
    cd mediasoup && npm install && cd ..
    cd mediasoup-client && npm install && cd ..

2. 集成服务端和客户端Demo

  1. 拉取Demo工程
    1
    2
    git clone https://github.com/versatica/mediasoup-demo.git
    cd mediasoup-demo
  2. 导入SDK
  • 去除工程中的Mediasoup、Mediasoup-Client依赖从Github下载的配置
    1. 删除app/package.json中的如下整行内容;
      "mediasoup-client": "github:versatica/mediasoup-client#v3",
    2. 删除server/package.json中的如下整行内容;
      "mediasoup": "github:versatica/mediasoup#v3",
  • 安装其他依赖
    1
    2
    cd app && npm install --legacy-peer-deps && cd ..
    cd server && npm install && cd ..
  • 将我们手动编译构建的SDK移入Node依赖
    1
    2
    cp -r ../mediasoup ./server/node_modules
    cp -r ../mediasoup-client ./app/node_modules
  1. 准备服务配置文件
    1
    2
    3
    cd server
    cp config.example.js config.js
    cd ..
  2. 为服务生成网站证书
    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 ..
  3. 添加环境变量
    1
    2
    export DOMAIN=192.168.0.100
    export MEDIASOUP_ANNOUNCED_IP=192.168.0.100
  4. 启动服务端,保持终端以查看日志(若要后台运行,请学习使用nohup
    1
    2
    cd server
    npm start
  5. 启动客户端,保持终端以查看日志(若要后台运行,请学习使用nohup
    1
    2
    cd app
    npm start
  6. 通过使用https://localhost:3000http://IP地址:3000来允许不检查证书访问,然后使用不同设备访问该地址,进入客户端,则不同设备之间即可进行实时音视频通话。

附录(报错提示)

  1. npm install过程报错如下:
  • 解决:手动下载worker/subprojects中的每个wrap中的列出的资源放置在worker/subprojects/packagecache目录下后重试。

3. 使用功能更齐全的Demo进行继续提升

集成Mediasoup的服务端录制Demo

1. 集成服务端和客户端Demo

  1. 拉取Demo工程
    1
    2
    git clone https://github.com/ethand91/mediasoup3-record-demo.git
    cd mediasoup3-record-demo
  2. 导入SDK
  • 去除工程中的Mediasoup、Mediasoup-Client依赖从Github下载的配置
    1. 删除app/package.json中的如下整行内容;
      "mediasoup-client": "^3.6.48"
    2. 删除server/package.json中的如下整行内容;
      "mediasoup": "^3.9.5",
  • 安装其他依赖
    1
    2
    cd app && npm install && cd ..
    cd server && npm install && cd ..
  • 将我们手动编译构建的SDK移入Node依赖
    1
    2
    cp -r ../mediasoup ./server/node_modules
    cp -r ../mediasoup-client ./app/node_modules
  1. 为服务生成网站证书
    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 ..
  2. 启动服务端,保持终端以查看日志(若要后台运行,请学习使用nohup
    1
    2
    cd server
    npm start
  3. 启动客户端,保持终端以查看日志(若要后台运行,请学习使用nohup
    1
    2
    cd app
    npm run dev

实时音视频通话项目从零开始
https://zhongshijie1995.github.io/posts/50001/
作者
钟世杰
发布于
2023年3月22日
许可协议
BY BY-SA