如何搭建Janus WebRTC服務(wù)器

webrtc服務(wù)器有很多,licode/janus/kurento/mediasoup/jitsi,之前搭建licode分別在PC和手機(jī)上也看到效果,今天也嘗試搭建janus看看效果。

搭建janus也可以參考官網(wǎng):https://janus.conf.meetecho.com/docs/README.html

本文搭建環(huán)境是Ubuntu16.04 Server版的VMware虛擬機(jī) http://releases.ubuntu.com/16.04/

第一步:安裝janus依賴庫(kù)和工具,并設(shè)置環(huán)境變量

apt install git aptitude

aptitude install libmicrohttpd-dev libjansson-dev libssl-dev libcurl4-openssl-dev

aptitude install libsofia-sip-ua-dev libglib2.0-dev libopus-dev libogg-dev libsrtp-dev

aptitude install liblua5.3-dev pkg-config gengetopt libtool automake

export PKG_CONFIG_PATH=/usr/lib/pkgconfig

第二步:安裝依賴庫(kù)libnice庫(kù)

git clone https://gitlab.freedesktop.org/libnice/libnice

cd libnice

./autogen.sh

./configure --prefix=/usr

make

make install

注:如果遇到gtkdocize:?not?found 問題

執(zhí)行sudo apt-get install gtk-doc-tools即可。

第三步:安裝依賴庫(kù)libsrtp庫(kù)。

wget https://github.com/cisco/libsrtp/archive/v2.0.0.tar.gz

tar xfv v2.0.0.tar.gz

cd libsrtp-2.0.0

./configure --prefix=/usr --enable-openssl

make shared_library

sudo make install

第四步:安裝websocket

janus 支持 WebSocket 是可選項(xiàng),可能不安裝

gitclonehttps://github.com/warmcat/libwebsockets.git

cd libwebsockets

mkdir build

cd build

cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr -DCMAKE_C_FLAGS="-fpic"..

make && sudo make install

第六步 STUN\TURN服務(wù)器

wget http://coturn.net/turnserver/v4.5.0.7/turnserver-4.5.0.7.tar.gztar xvfz turnserver-4.5.0.7.tar.gz

cd /turnserver-4.5.0.7./configure

make install

vim /usr/local/etc/turnserver.conf

relay-device=bond0

listening-ip=192.168.10.17? #內(nèi)網(wǎng)IP

listening-port=3478

tls-listening-port=5349

relay-ip=192.168.10.17

external-ip=124.160.xxx.xxx? #外網(wǎng)IP

relay-threads=50

lt-cred-mech

cert=/cert/cert.pem

pkey=/cert/key.pem

user=xie:123456

min-port=3480

max-port=3500

realm=webrtc.xxx.com

a.啟動(dòng)STUN\TURN服務(wù)器

/usr/local/bin/turnserver -c /usr/local/etc/turnserver.conf -o

非常重要,telnet 內(nèi)網(wǎng)/外網(wǎng)/域名 IP 3478 端口 都要通才行

iCE測(cè)試地址:https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/

第六步:安裝主程序janus-gateway,參數(shù) --enable-websockets 打開 WebSocket 開關(guān)

git clone https://github.com/meetecho/janus-gateway.git

cd janus-gateway

sh autogen.sh

./configure --prefix=/usr/local/janus?--enable-websockets

make

make install

make configs

注:編譯期間如果遇到No package 'libconfig' found,可以使用apt-get install libconfig-dev 或sudo apt-get install libconfig8-dev。

第七步:?jiǎn)?dòng)janus

注:?jiǎn)?dòng)時(shí)最好有root權(quán)限?。?!

/usr/local/janus/bin/janus?

啟動(dòng)成功會(huì)看到以下打印信息:

Janus commit: 6b916658a88e29a0991007f6f79b6961ee02c784

Compiled on: ?Fri Nov 16 23:28:12 PST 2018

---------------------------------------------------

? Starting Meetecho Janus (WebRTC Server) v0.5.0

---------------------------------------------------

第八步:?jiǎn)?dòng)http/https服務(wù)

搭建nginx服務(wù)

-------------------

1. 安裝nginx

sudo apt install nginx

2.?創(chuàng)建配置文件

cd?/etc/nginx/conf.d

vi? a.conf

因?yàn)閚ginx默認(rèn)包含conf.d目錄,目錄下.conf文件包含的服務(wù)都會(huì)被啟動(dòng)

3. 如要增加http服務(wù),則在aaa.conf加入以下內(nèi)容

server {

?? ?listen 80;

? ? server_name 192.168.2.14;

? ? charset utf-8;

?? ?location / {

?? ? ? ?root /usr/local/www/files;? ?#網(wǎng)頁所在目錄

?? ? ? ?index index.html;? ? ? ? ? #網(wǎng)頁文件名

?? ?}

}

4.如需要增加https服務(wù),則先準(zhǔn)備一對(duì)秘鑰(公鑰mycert.pem+私鑰mycert.key)

然后在在aaa.conf加入以下內(nèi)容

server {

? ?listen 443;

? ?server_name 192.168.2.14;

? ?charset utf-8;

? ?ssl on;

? ?ssl_certificate? ? ? /path/to/certs/mycert.pem;?? #公鑰完整路徑

? ?ssl_certificate_key? /path/to/certs/mycert.key;? ??#私鑰完整路徑

? ?location / {

?? ? ? ?root /path/to/www/files;? ?#網(wǎng)頁所在目錄

?? ? ? ?index index.html;? ? ? ? ? #網(wǎng)頁文件名

?? ?}

}

5. service nginx start

啟動(dòng)nginx。可以查看狀態(tài)是否成功:service nginx status

-------------------

最后啟動(dòng)nginx: service nginx start

注:如果有打洞服務(wù)器,也要啟動(dòng),如:./janus –stun-server=210.22.76.173:3478

第九步:測(cè)試效果

打開瀏覽器,輸入https://服務(wù)器ip,打開了頁面后,

依次選擇 demos->Video Room->Start; 輸入任意用戶名,進(jìn)入房間;

然后在打開另一個(gè)瀏覽器窗口,依次操作,即可看到效果。

在PC和手機(jī)都可以看到。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容