本次编译使用的Janus版本为0.7.4
1.需要准备的组件
yum install libconfig libmicrohttpd libconfig-devel libmicrohttpd-devel
按照官方的说明,准备以下开源库编译
-
注意Binary Package和Source Package都建议安装
-
其中如果你是CentOS7.2或以下,由于GLIb的版本依赖问题,只能用0.1.13版本。0.1.13版本比较老,而且实测发现一些BUG,因此建议使用7.3以上(最新更好)的CentOS版本。前两天刚出的Janus0.7.5,官方已经推荐使用0.1.15版本的libnice。
-
如果不使用NO-SIP,而使用SIP接入,一般推荐使用Sofia-SIP,libre比较坑。问题是官方推荐的版本在CentOS下无法正常运行,需要使用linphone的修改版。直接用我Fork的这个版本即可。
全部子模块编译完成后,编译Janus
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH
./autogen.sh
./configure --disable-plugin-textroom --disable-plugin-nosip --disable-plugin-videoroom --disable-plugin-voicemail --disable-unix-sockets --disable-websockets --disable-plugin-recordplay --prefix=/opt/janus
make
make install
make configs
2.常规配置
常见的需要修改的项目:
- janus.jcfg
log_to_file 日志路径
certificates 配置证书文件;如果不是可信证书,需要和你最终访问的WEB页面一致
nat_1_1_mapping 配置服务端外网地址
rtp_port_range 用于与webrtc客户端相连的RTP端口
- janus.plugin.sip.jcfg 或 janus.plugin.nosip.jcfg,看你用哪套
rtp_port_range 调整对内的RTP端口段(不加密)
3.其他
- 已知0.7.4存在少量内存泄露,可以通过gperftools看出。查看0.8.0源码,相关问题已修复。
- 近期尝试了用CYGWIN编译,可以编译通过。使用默认环境带的ICE库存在丢包,就是前面提到的0.1.13的BUG。升级0.1.15后,streaming模块拉流异常很奇怪,暂时没继续搞。