搭建webrtc服务器, licode 全过程(2019)

1. 源码下载编译与安装.

官方网站有安装方法说明:

http://lynckia.com/licode/install.html#clone

遵照以上说明:

git clone https://github.com/ging/licode.git

cd licode

下载代码安装git输入命令即可,下边安装可能遇到的问题及解决方式:

./scripts/installUbuntuDeps.sh

安装一些依赖项,等待一段时间后提示一大堆错误,自己向上看主要是一句错误引起

Fetched 325 kB in 2s (129 kB/s)

*** Error in `appstreamcli': double free or corruption (fasttop): 0x0000000002f6c840 ***

解决方法:

需要执行下列命令:

$sudo apt-get purge libappstream3

然后

$sudo apt-get update

./scripts/installErizo.sh
./scripts/installNuve.sh

安装实例:

./scripts/installBasicExample.sh

如果顺利的话,应该都能正常过去。

2. 修改配置文件及安装 stun 服务器。

./licode/scripts/initLicode.sh
./scripts/initBasicExample.sh

根据官方文档运行basicExample,发现起来后看不到视频,主要是stun等服务器信息配置不对,修改licode根目录下的配置文件licode_config.js,主要需要搭建一个本地的turn服务器.

参考(https://blog.csdn.net/lamb7758/article/details/77045735

下载编译安装coturn
git clone https://github.com/coturn/coturn
cd coturn
./configure
make
sudo make install 

现在开始修改配置文件 
首先

sudo cp /usr/local/etc/turnserver.conf.default  /usr/local/etc/turnserver.conf
注意:/usr/local/etc/turnserver.conf才是配置文件! 
/usr/local/etc/turnserver.conf.default并不是配置文件!

生成md5码:turnadmin -k –u 用户名 -r shanghai -p 密码 
一定要把md5码记录下来,下面需要用到的。

生成证书

sudo openssl req -x509 -newkey rsa:2048 -keyout /etc/turn_server_pkey.pem -out /etc/turn_server_cert.pem -days 99999 -nodes 
该过程需要你填写一些信息自己看着填吧!随便写

创建turnuserdb.conf文件 
vi /etc/turnuserdb.conf 
在其中填入之前生成的用户名和key (md5码) 
格式如下:

lamb7758:0xea0de0a413f10171506a02e9f5d07621


最后修改配置文件(如图): 
vi /usr/local/etc/turnserver.conf

listening-device=填写自己的网卡类型
relay-device=填写自己的网卡类型
listening-ip=ip地址
listening-port=3478
tls-listening-port=5349
relay-ip=ip地址
external-ip=ip地址
relay-threads=50
lt-cred-mech
static-auth-secret=用户名
user=用户名:密钥(md5码)
userdb=/etc/turnuserdb.conf
#max-bps=102400
pidfile="/var/run/turnserver.pid"
no-loopback-peers
no-multicast-peers
no-cli //这个必须设置,否则错误
cert=/etc/turn_server_cert.pem
pkey=/etc/turn_server_pkey.pem

运行:

sudo turnserver -L IP地址 -o -a -b /etc/turnuserdb.conf -f -r shanghai
按照这个一步步设置就可以啦。

3. 配置 Licode

licode_config.js:

config.erizoController.iceServers = [{'url': 'stun:23.248.163.209:3478'}];

config.erizoController.turnServer.url = 'turn:23.248.163.209:3478'; 

config.erizoController.publicIP = '23.248.163.209';

config.erizoController.hostname = '23.248.163.209';

config.erizo.stunserver = '23.248.163.209';

config.erizoController.turnServer.username = 'tst_team';

config.erizoController.turnServer.password = 'tst_team'; 

erizoController.js:

GLOBAL.config.erizoController.iceServers || [{'url': 'stun:23.248.163.209:3478'}];

GLOBAL.config.erizoController.publicIP = '23.248.163.209';

GLOBAL.config.erizoController.hostname = '23.248.163.209';

GLOBAL.config.erizoController.turnServer.url = "turn:23.248.163.209:3478?transport=udp";

GLOBAL.config.erizoController.turnServer.username = "tst_team";

GLOBAL.config.erizoController.turnServer.password = "tst_team";

4. 配置完后重启js服务

ps -ef |grep node,发现node起了好些个服务
root      3932     1  0 01:31 pts/0    00:00:02 node nuve.js   ---监听的是3000(http)端口
root      4266     1  0 01:31 pts/0    00:00:00 node erizoController.js
root      4593     1  0 01:31 pts/0    00:00:00 node erizoAgent.js
root      4599  4593  0 01:31 ?        00:00:00 node ./../erizoJS/erizoJS.js 172f7e09-5d31-d270-2fc7-0acdeaaf0b1d 10.0.2.15 10.0.2.15
 把之前运行的 kill -9 pid 结束掉。

5. 验证

浏览器访问:http://23.248.163.209:3001/ --> 允许访问摄像头和麦克风 

这里还会有一个问题,就是chrome浏览器,始终不显示视频,是因为禁止了摄像头和麦克风,按钮又都是灰色的不允许修改。

设置不了摄像头权限,如下方法解决:

找到自己安装chrome的路径,运行如下命令,弹出浏览器提示是否允许摄像头,点击允许即可解决。

C:\Users\Administrator\AppData\Local\Google\Chrome\Application\chrome.exe --enable-easy-off-store-extension-install  --unsafely-treat-insecure-origin-as-secure="http://webtest.xxx.com"
这回浏览器输入地址,就可以看到摄像头视频了。大功告成.....

猜你喜欢

转载自blog.csdn.net/dengrk/article/details/88644942