licode实现了webrtc的转发服务,通过socketio与客户端进行信令通信,媒体层走webrtc。
licode的安装过程如下:
系统ubuntu16.04 64bit
1, 下载licode代码
git clone
https://github.com/lynckia/licode.git
2,安装依赖库
licode/scripts/installUbuntuDeps.sh --enable-gpl //包含x264
在编译libvpx时会报错,
修改licode/build/libav/libavcodec/libvpxenc.c
将//[VP8E_UPD_ENTROPY] = "VP8E_UPD_ENTROPY",
//[VP8E_UPD_REFERENCE] = "VP8E_UPD_REFERENCE",
//[VP8E_USE_REFERENCE] = "VP8E_USE_REFERENCE",
这三行注释掉
3,安装nuve
licode/scripts/installNuve.sh
4,安装erizo
licode/
scripts/installErizo.sh
5,安装example
licode/
scripts/installBasicExample.sh
6,启动licode
licode/
scripts/initLicode.sh
licode/
scripts/initBasicExample.sh
在浏览器中访问https://serverip:3004,可以看到loopback音视频。
licode服务器处理流程分为nuve -> erizoController -> erizoAgent,他们之间的通信通过rabbitmq实现,因此很适合分布式部署。从左到右是一对多的关系。
服务启动时,
erizoController会到nuve上注册,同时根据配置文件启动指定个数的erizoAgent进程。
nuve与客户端通过websocket通信,认证用户信息并分配一个erizoController地址给客户端。
客户端与erizoController通过socketio通信,
erizoController分配一个erizoAgent进程(从pool中获取空闲或者新建)与客户端进行媒体传输
erizoAgent是一个node进程,负责一路媒体转发服务。真正的媒体处理通过c++实现,在erizo中实现,通过addon的方式与nodejs交互。