admin管理员组文章数量:1586848
前言
mediasoup官网以及网络上博客大部分都是在linux下安装部署,但是我更多的是在windows下做c++开发,使用工具更多的是vs,所以想在windows下安装mediasoup-demo,并且用vs调试mediasoup-worker的c++代码
参考以下大神文章,还是遇到一些问题,不过都解决了,所以自己再记录一下安装运行过程
视频会议软件EasyRTC-SFU之mediasoup-demo在 Windows上的编译安装_sfu midemoup-CSDN博客
win7下启动mediasoup官网demo的条件(其实是坑)_windows mediasoup-CSDN博客
mediasoup-demo地址:GitHub - versatica/mediasoup-demo: mediasoup official demo application
一、环境准备
windows10
node v14.16.0 (官网要求 >= v8.6.0)(我下载的最新版本)
npm-v6.14.11 (安装node 14.16.0的时候,里面已经附带安装了npm,不用单独安装)
python-v2.7.17 (不可以是 python3,安装参考博客安装的,到底可不可以python3,不确定)--安装完python,记得把安装路径加入到环境变量path中
此处我遇到一个问题,我电脑上本来有安装webrtc depot_tools,其中有python,cmd命令行中python -V查看版本也是2.7的,但是后面下载mediasoup-demo代码时报错,找不到python,此处可以卸载掉重新安装一下python,也可以where python查看 一下机器中在哪个目录还安装了python
git-v2.30.0
visual studio v2019
配置环境变量:
1.vs2019的MSBuild.exe的路径加到path中,我的路径:C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin
2.新建环境变量 GYP_MSVS_VERSION ,值为 2019
设置 npm 下载镜像站点为淘宝镜像,(不知道这个是不是永久设置,如果不是永久设置的话,中间如果关闭cmd窗口,或者新打开一个cmd窗口,都重新设置一遍)
npm config set registry https://registry.npm.taobao
二、走的弯路
- mediasoup如果要运行,我们应该下载安装mediasoup-demo,而不是mediasoup(只能学习源代码),本人就是搞混了,先直接按照官方下载了mediasoup,并且编译通过,也能生成mediasoup-worker的vs工程sln,但是找不到运行方式
以下mediasoup下载编译完全可以不做,我只是记录一下我的下载过程。
准备好环境,直接按照官方命令,在cmd命令行中执行,npm install mediasoup@3 --save,整个过程不用做任何操作,包括代码下载,worker sln工程生成,编译生成.\node_modules\mediasoup\worker\out\Release\mediasoup-worker.exe
ps:下载代码的过程我开了vpn,下载也挺快,不确定不开vpn,会不会有问题
三、下载mediasoup-demo源码
- Clone the project:
$ git clone https://github/versatica/mediasoup-demo.git $ cd mediasoup-demo $ git checkout v3
四、编译安装依赖
完全按照参考博客做的,github上mediasoup-demo官方也是这个步骤,cd server, npm install
$ cd server
打开 package.json 文件。修改第 22 行,为 “mediasoup”: “^3.6.16”,
如果不修改此行,则会从 github 中下载 mediasoup-v3 版本的依赖,否则会超级慢。修改后会直接从 npm 的镜像源中下载,加快速度。
$ npm install
在运行过程中会出现下图中的错误,不用理会,mediasoup的依赖 clang-tools-tutorial ,主要是在 Linux 和 MacOS 中使用,Windows 中不涉及。(此处我没有遇到错误)
五、修改服务端配置
- 复制 config.example.js,修改为 config.js
- 修改所有的 ip 和 announcedIp 为本机 IP。如果内网公网不一致,则 announcedIP 设置为公网 IP(3个地方要修改)
- 在 server 文件夹下新增 certs 文件夹,将自己的公钥证书和私钥证书放进去。修改 config.js 的配置。cert 为公有证书,key 为私有证书。
证书这个步骤,不会弄,我只在局域网内运行,拷贝了其他地方的两个文件leaf.key,leaf.pem,应该是未生效的,最后chrome浏览器进入房间,还是提示不安全的https访问,不用管,高级里面选择继续访问就可以了,如果你的坏境最后要部署在公网,你可以继续学习一下怎么生成证书。1.如果用公有云服务,会提供 2.或者找做web的同事帮忙吧
六、编译安装客户端
-
$ cd app
- 修改 .eslintrc.js 文件,原先为 unix,修改为 windows
-
$ npm install
-
$ npm install -g gulp-cli
3,4步骤的顺序不记得了,官方是3,4,别人博客有的是4,3
七、编译生成woker.exe
做完前面6个步骤以后,我直接运行环境,node server.js的时候会报以下错误,原因是worker目录下没有生成mediasoup-worker.exe,不知道其他人会不会遇到这样的问题
(node:6948) UnhandledPromiseRejectionWarning:Error:spawn D:\webrtc\media-demo\server\node_modules\mediasoup\worker\out\Release\media-worker ENOENT
解决办法:
cd mediasoup-demo\server\node_modules\mediasoup
npm install
这样才会调用vs编译生成mediasoup-worker.exe,以及mediasoup-demo\server\node_modules\mediasoup\worker\mediasoup-worker.sln
八、运行
进入 server 文件夹,运行命令行设置临时环境变量
set DEBUG=${DEBUG:='*mediasoup* *INFO* *WARN* *ERROR*'} INTERACTIVE=${INTERACTIVE:='true'}
也可以不设置环境变量,直接运行 node server.js
暂时不知道上面步骤不执行会有怎样的问题
- 运行服务端 cd server , node server.js
- 运行客户端 新启动一个cmd窗口,cd app , gulp live
gulp live会默认打开浏览器,
此处注意:gulp live默认打开的网址,是我电脑上的一个虚拟网卡地址192.168.117.1,不是之前server配置文件中配置的ip,这样网页上会一直提示 websocket connection failed
如果你电脑上有多个网卡,大概率也会出现这个问题,
需要自己手动把网址ip改成你正确的ip,https://192.168.1.115:3000/?info=true&roomId=n94zfs9t ,然后就可以看到自己的画面了,用另一个笔记本访问同样的roomid,就可以正常通话了
用ios手机safari访问,也出现了https的不安全提示,继续访问以后,提示websocket connection failed,不知道什么原因
错误的ip访问地址,错误图
server正常运行图
九、vs打开worker工程调试c++代码
vs2019打开 mediasoup-demo\server\node_modules\mediasoup\worker\mediasoup-worker.sln
找到目前通话使用的mediasoup-worker.exe进程id,(我是通过cpu占用找到的,后面研究一下日志中是否也有相应记录)
debug附加到相应的mediasoup-worker进程,然后就可以直接打断点调试worker的c++代码了
总结
- 环境工具要配置好
- linux上命令和windows命令有一部分差异
- 出现错误以后,找不到答案
mediasoup在windows上调试太方便了
更多webrtc和mediasoup等相关rtc的内容,请关注百家云brtc, 可以免费试用
百家云-开发文档
本文标签: 代码DemomediasoupWorkerWindows
版权声明:本文标题:mediasoup-demo windows下的编译运行,vs调试worker c++代码 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/dianzi/1727999415a1141725.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论