【流媒體服務器Mediasoup】環境部署與demo搭建(二)

目錄

 

前言

        服務器環境

NodeJs的安裝

下載Demo源碼

配置服務端 

部署及測試

可能會遇到的問題 


前言

        上篇文章對MediaSoup進行簡單的介紹  【MediaSoup】多人音視頻架構、流媒體的比較、mediasoup介紹 ,本章節主要對MediaSoup的環境進行部署以及demo搭建。

       在下一篇文章中將對MediaSoup的源碼進行分析和調試源碼。

服務器環境

  Ubuntu14.06  或以上

  NodeJs10.0    或以上

  npm 6.13.x     

 

NodeJs的安裝

   Nodejs的安裝方式一般有 二進制庫安裝和源碼安裝。

   Linux(Ubantu,Centos) 後端環境部署,問題解決[不定期更新]  文章裏有部署node,npm的教程

下載Demo源碼

  • git  clone https://github.com/versatica/mediasoup-demo.git
  • cd  mediasoup-demo
  • git checkout v3

 下載完成後,源碼有着以下的目錄結構

 

  app                       客戶端代碼

  broadcasters        用戶推流的一個模塊,如通過FFmpeg進行一個廣播推流到Mediasoup服務器。

  server                   服務端代碼,信令服務+媒體服務

配置服務端 

  安裝server依賴

  •  cd  server
  •  npm  install  //過程還有C++的編譯,請耐心等待
  •  cp config.example.js  config.js

   安裝客戶端Web依賴

  •   cd app
  •   npm install

 修改 config.js文件

      新版本demo沒有生成了證書,需要自行生成證書並且放置相對應的目錄

      ...省略
		tls        :
		{
            //需要生成一個證書祕鑰,這個用命令自行生成,並放置相對應的目錄
			cert : process.env.HTTPS_CERT_FULLCHAIN || `${__dirname}/certs/xxx_server.crt`,
			key  : process.env.HTTPS_CERT_PRIVKEY || `${__dirname}/certs/xxx_server.key`
		}
	},
	...省略
	webRtcTransportOptions :
		{
			listenIps :
			[
				{
					ip          : process.env.MEDIASOUP_LISTEN_IP || '0.0.0.0',
					announcedIp : '192.168.11.18' //修改爲服務端的IP地址,如果是公網則爲外網    
                                                    IP
				}	
			],
    ...省略
		plainRtpTransportOptions :
		{
			listenIp :
			{
				ip          : process.env.MEDIASOUP_LISTEN_IP || '0.0.0.0',
				announcedIp : '192.168.11.18'//修改爲服務端的IP地址,如果是公網則爲外網IP
			},
			maxSctpMessageSize : 262144
		}
	}
};

配置config.js 配置server目錄下的config.js 
server/config.js使用適當的設置編輯您的(偵聽IP /端口,日誌記錄選項,有效的 TLS證書等)。
修改https 塊中的監聽地址:

修改爲自己服務器所在ip和tls證書位置(建議將證書放到server/certs 目錄下): 
listenIp :'0.0.0.0', 
tls :
{
cert : ${__dirname}/certs/webrtc.xxx.top.pem,
key : ${__dirname}/certs/webrtc.xxx.top.key
}
最後修改webRtcTransport
listenIps:修改爲自己服務器地址所在ip地址。

在在雲主機部署與VPS部署稍有差異,因爲雲主機有內網ip。所以第二部中config.js需要稍作修改。
我們修改config 文件
listenIp 需修改爲雲主機內網ip ,因爲雲主機應該是不知道自己的公網ip的。
下方webRtcTransport塊中listenIps 中內容更改爲
{ ip: ‘內網ip’ , announcedIp:‘公網ip’ }

然後正常使用node server.js 啓動即可

部署及測試

啓動服務器

  • cd server
  • DEBUG="*mediasoup* *ERROR* *WARN*" INTERACTIVE="true"  node server.js

啓動成功之後,接下來啓動客戶端

  • cd app
  • gulp dist

 

運行URL  https://192.168.11.18:3000/?info=true

注意在瀏覽器執行時會默認創建隨機的房間號

https://192.168.11.18:3000/?info=true&roomId=bfaygdnk

直接訪問地址ip即可 後面url有房間號 ,想加入同一房間填入即可。

最後打開2個瀏覽器窗口,運行結果:

由於電腦沒有攝像頭,使用e2eSoft VCam軟件模擬攝像頭

 

用手機瀏覽器訪問也是一樣的效果,能夠達到互通。

 

可能會遇到的問題 

1:如果是公網部署,主機帶寬比較低,初次打開比較慢,需耐心等待加載完成,後面緩衝後速度會變化,音視頻延遲不受影響。

2: server代碼 npm install 超時 導致install失敗

  •     cd node_modules
  •     rm -rf clang-tools-prebuilt
  •     rm -rf mediasoup
  •     npm install
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章