Mediasoup学习笔记01-开发环境的搭建和部署

为什么学习Mediasoup轻量级,入门简单,拓展性强,支持点对点,支持服务器转发。

环境搭建

1.虚拟机的安装

若有能力请支持正版

2.切换到 root 用户

先配置root用户

  • Ctrl+Alt+T 打开控制台

  • 输入命令

    sudo passwd root
  • 按提示输入要设置的密码即可

再切换到 root 用户

  • 输入命令
    su root
  • 按提示输入刚才设置的密码

  • 若命令行最前边变为 root@xx 说明切换成功

3.开发环境搭建

    //安装
    wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh | bash
    //刷新环境
    source ~/.bashrc
    //验证
    nvm -v
    //安装node
    nvm install v10.16.3
    //更新npm
    npm -g install npm@6.13.4
    //切换阿里镜像(方便后边安装)
    npm config set registry "http://registry.npm.taobao.org/"
    //安装守护进程
    npm install forever -g
    
    //守护进程相关操作
    https://www.cnblogs.com/dingxiaoyue/p/4834514.html

    //安装
    sudo apt-get install git
    //验证
    git --version
    //更新apt
    sudo apt update
    sudo apt install software-properties-common
    //DeadsnakesPPA源添加
    sudo add-apt-repository ppa:deadsnakes/ppa
    //安装
    sudo apt install python3.8
    //验证
    python3.8 --version
  • 安装 make
    //更新列表
    apt-get update
    //安装
    apt-get install make
    //验证
    make -v
    //安装build-essential DEB包
    sudo apt install build-essential
    //验证
    gcc --version

4.mediasoup部署

配置完上边所有环境后,终于来到mediasoup的部署,不容易啊。

  • 拉取项目
    //使用git拉取项目
    git clone https://github.com/versatica/mediasoup-demo.git
    //若网速过慢,可使用国内gitee镜像
    
    //进入项目
    cd mediasoup-demo
    
    //切换到v3分支
    git checkout v3
PYTHON=python3 npm install mediasoup@3 --save
  • 服务端
    //进入server(服务端文件夹)
    cd server
    
    //安装(含编译过程 请耐心等待)
    npm install
    
    
    //若安装过程出现python命令未找到,请使用下方命令进行安装
    PYTHON=python3 npm install mediasoup@3 --save
  • 获取服务端配置文件
    //拷贝一份配置文件
    cp config.example.js config.js
    
    //打开配置文件
    sudo gedit config.js
    
  • 修改获取配置文件
在打开的config.js里的大概123行140行 分别可找到
webRtcTransportOptions: 和 plainTransportOptions: 相关配置

//我这里暂时不考虑架设服务器,仅考虑本地搭建测试 所以这里已本地测试环境配置:

        webRtcTransportOptions :
        {
            listenIps :
            [
                {
                    ip          : '192.168.0.103'(这里ip查看方法 -> ip addr ),
                    announcedIp : null
                }
            ],
        
        }

//同理 这里也需要修改

        plainTransportOptions :
        {
            listenIp :
            {
                ip          : '192.168.0.103'(这里ip查看方法 -> ip addr ),
                announcedIp : null
            },
        }
        

虚拟机环境下看不到对方的视频可以参考:
https://blog.csdn.net/jiayp004/article/details/106017712

云主机配置可参考:
https://blog.csdn.net/gjy_it/article/details/104423353?
https://www.avdancedu.com/5a9f427c/


    1.生成key
    openssl rsa -in server.key -out server.key
    
    //可以取消key的密码
    openssl rsa -in server.key -out server.key
    
    2.生成CA的crt
    openssl req -new -x509 -key server.key -out ca.crt -days 3650
    
    3.生成crs
    openssl req -new -key server.key -out server.csr
    
    4.生成crt
    openssl x509 -req -days 3650 -in server.csr -CA ca.crt -CAkey server.key -CAcreateserial -out server.crt
    
    5.合并为pem
    cat server.key server.crt > server.pem
    
    6.就就得到了server.key和server.pem
    
  • 证书的安装
    1.在server下新建certs文件夹
    
    2.将上一步生成的证书放在certs文件夹下
    
    3.大概26行可以找到证书配置地址
        tls        :
        {
            cert : process.env.HTTPS_CERT_FULLCHAIN || `${__dirname}/certs/server.pem`,
            key  : process.env.HTTPS_CERT_PRIVKEY || `${__dirname}/certs/server.key`
        }
    
    4.将server.pem和server.key改为你的相关证书

  • 客户端(app)
进入 app 文件夹

    //进入server(服务端文件夹)
    cd server
    
    //安装同理
    npm install
    

  • 启动服务端

    //进入server(服务端文件夹)
    cd server
    
    //启动
    npm start
    
    //当然 也可以用debug模式启动
    DEBUG="*mediasoup* *ERROR* *WARN*" INTERACTIVE="true"  node server.js

  • 启动客户端
    //进入app(客户端文件夹)
    cd app
    
    //启动
    npm start

  • 启动成功
启动成功后 会出现类似信息

 ---------------------------------------------------
       Local: https://localhost:3000/?info=true
    External: https://192.168.37.131:3000/?info=true
 ---------------------------------------------------
          UI: http://localhost:3001
 UI External: http://localhost:3001
 ---------------------------------------------------

进入https://localhost:3000/?info=true 即可看到画面

  • 最终效果图


    最终效果图.png

总结

如果你按照我的步骤一步一步来应该是不会有问题的。

如果出现异常 请先考虑虚拟机环境是否正确。我在调试时大部分出问题是因为缺少环境。

最后 玩的愉快

下一篇:使用WebView实现和Android端的通信

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容