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ī)都可以看到。