環(huán)境ubuntu22.10
nvm --version
0.33.11
node -v
v16.20.2
npm -v
8.19.4
node-gyp -v
v10.0.1
python3 --version
Python 3.10.7
python with pip:
sudo apt install python3-pip
gcc&g++ version 12.2.0 (Ubuntu 12.2.0-3ubuntu1)
Make 4.2.1
npm install mediasoup@3
sudo apt-get install build-essential
npm config set registry "http://registry.npm.taobao.org/" # 修改npm為國(guó)內(nèi)鏡像
npm config get registry #配置后可通過(guò)下面方式來(lái)驗(yàn)證是否成功
開(kāi)啟魔法
配置時(shí)出現(xiàn)問(wèn)題記錄在文末附錄
拉下源碼:
https://github.com/versatica/mediasoup-demo
源碼里有以下目錄其中,app網(wǎng)頁(yè)的界面終端,broadcasters是廣播,也就是他支持我們用ffmpeg推流上去給所有的成員廣播,server是流媒體服務(wù)器。
源碼包含了,https服務(wù)器用于瀏覽器獲取界面,信令服務(wù)器用于房間管理,和流媒體服務(wù)器用于數(shù)據(jù)轉(zhuǎn)發(fā)。
aiortc app broadcasters CHANGELOG.md LICENSE README.md server
cd mediasoup-demo
git checkout v3
cd server
npm install
安裝的是此目錄下,package.json中的 "dependencies": {}中的依賴項(xiàng),安裝完畢后,會(huì)放在同目錄下的node_modules中。
下面先配置下server
他有兩個(gè)配置文件,server.js和config.js,config.example.js是一個(gè)例子,worker指進(jìn)程數(shù),默認(rèn)開(kāi)啟的線程數(shù) = pc內(nèi)核數(shù) x 每個(gè)內(nèi)核線程數(shù)。
cp config.example.js config.js
webRtcTransportOptions :
{
// listenIps is not needed since webRtcServer is used.
// However passing MEDIASOUP_USE_WEBRTC_SERVER=false will change it.
listenIps :
[
{
ip : process.env.MEDIASOUP_LISTEN_IP || '127.0.0.1',#這里如果部署為服務(wù)器的話可以為0.0.0.0,表示支持接受任何網(wǎng)口的信息,筆者為本地測(cè)試。
announcedIp : process.env.MEDIASOUP_ANNOUNCED_IP
}
],
//偽代碼
npm start
其中是根據(jù)上兩個(gè)配置文件啟動(dòng)。
cd app
npm install --legacy-peer-deps #跟官網(wǎng)提示的不同,我的node@16也需要安裝對(duì)應(yīng)舊版依賴。
npm install -g gulp-cli
npm start
火狐瀏覽器無(wú)法使用,需使用chrome瀏覽器,如下:用兩個(gè)瀏覽器打開(kāi),左下角為本地視頻,上方為遠(yuǎn)端。
可以開(kāi)關(guān)音頻/視頻,查看音頻視頻編碼方式,可以看到右側(cè)還有音頻的流信息可實(shí)時(shí)查看。
附錄
問(wèn)題1:
報(bào)錯(cuò)Error: ENOENT: no such file or directory, open '/home/test/code/mediasoup-demo/server/certs/privkey.pem'
解決:手動(dòng)創(chuàng)建certs目錄
生成證書命令如下:
openssl genrsa > privkey.pem
openssl req -new -x509 -key privkey.pem > fullchain.pem
問(wèn)題2:文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-745412.html
npm ERR! code EINVALIDTAGNAME
npm ERR! Invalid tag name ">=^16.0.0" of package "react@>=^16.0.0": Tags may not have any characters that encodeURIComponent encodes.
安裝舊版對(duì)等依賴項(xiàng)文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-745412.html
npm install --legacy-peer-deps



到了這里,關(guān)于mediasoup webrtc音視頻會(huì)議搭建的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!