對於EasyRTC視頻會議系統的開發,我們研發小伙伴這段時間真的很辛苦,好在最終的結果不錯,碰到的問題都一一解決了,並且通過對不同RTC服務的調研,也在不斷優化我們的EasyRTC。

比如在 EasyRTC-SFU 的開發過程中,我們調研了各種常見的 WebRTC 服務器,對各種 WebRTC 服務器的優劣進行了對比。其中對最近比較流行的 mediasoup WebRTC 服務器也進行了調研。在調研過程中,發現很少有人完整在 Windows 上運行成功 mediasoup-demo 程序,甚至部分程序員認為在 Windows 中不能夠成功運行 mediasoup-demo,因此將在 Windows 運行成功 mediasoup-demo 的經驗分享給大家。
Windows10 操作系統
node v10.19.0(官網要求 >= v8.6.0)
npm-v6.13.4
git-v2.1.10
python-v2.7.17(不可以是 python3)
visual studio v2017及以上(官網要求 2015 以上,筆者最開始嘗試 VS2015 ,遇見 constexpr 關鍵字不支持,此關鍵字在 VS2015 中開始支持,但是如果版本較低,則不會支持此關鍵字,因此請至少應使用 VS2017),我使用了 VS2019。
設置 npm 下載鏡像站點為淘寶鏡像
npm config set registry https://registry.npm.taobao.org
注意:請不要使用 cnpm
將 VS2017 的 MSBuild.exe 加入到 Path 中。
我的路徑為D:\Develop\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin
新建環境變量 GYP_MSVS_VERSION ,值為 2019。如果你使用的是 VS2017 就寫 2017。對應的 MSBuild.exe 需要使用 VS2017 的路徑。否則也會出錯。
github 比較難以訪問,可以使用 gitee 中已經同步過的項目,項目地址為: https://gitee.com/xunxinyuan/mediasoup-demo.git
$ git clone https://github.com/versatica/mediasoup-demo.git
$ cd mediasoup-demo
$ git checkout v3
目前此項目應該不再更新,因此不需要切換到 v3,默認就是 v3 版本。
進入 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
- 在 server 文件夾下新增 certs 文件夾,將自己的公鑰證書和私鑰證書放進去。修改 config.js 的配置。cert 為公有證書,key 為私有證書。
可以參考這個鏈接生成證書。也可以使用 openssl 生成。
https://blog.csdn.net/xiejiashu/article/details/86714141
3. 修改所有的 ip 和 announcedIp 為本機 IP。如果內網公網不一致,則 announcedIP 設置為公網 IP。
進入 mediasoup-demo/app 文件夾,運行以下命令
修改 .eslintrc.js 文件,原先為 unix,修改為 windows
運行以下命令:
npm install -g gulp-cli npm install
進入 server 文件夾,運行命令行設置臨時環境變量
set DEBUG=${DEBUG:='*mediasoup* *INFO* *WARN* *ERROR*'} INTERACTIVE=${INTERACTIVE:='true'}
運行服務端:node server.js
也可以不設置環境變量,直接運行 node server.js
進入 app 文件夾,運行命令行窗口
gulp live
會自動打開瀏覽器,或者瀏覽器中輸入 https://locahost:3000/ 也可以。
關於EasyRTC
EasyRTC-SFU版本的開發過程,在后期我們也會和大家分享MCU版本的開發過程,大家可以關注我們。當然了,已經在使用EasyRTC的用戶,如果遇到了什么問題,也歡迎和我們溝通解決。

EasyRTC不僅能夠支持企業的遠程視頻會議,也成功運用在了海關稽查、戶外勘測、工程外業作業等場景當中,還有更多的使用場景等待我們的發掘,同時我們也會不斷優化,以獲得更好的用戶體驗。如若想了解更多視頻解決方案,歡迎訪問TSINGSEE青犀視頻。
