找了全网没看到有关18.04安装Janus的文档,特此记录,当然最好的文档是官方的编译文档,目录在Janus的Git官网的README.md文件。下文主要记录一下准备环境过程中的坑,有些坑已经避免,所以直接贴出了采坑后的解决方案了。
准备环境
-
安装基础必备软件包
sudo aptitude install libmicrohttpd-dev libjansson-dev libnice-dev libssl-dev libsrtp-dev libsofia-sip-ua-dev libglib2.0-dev libopus-dev libogg-dev libcurl4-openssl-dev pkg-config gengetopt libtool automake gtk-doc-tools autoconfig autogen gcc g++ libconfig++-dev doxygen graphviz
-
安装libnice
git clone https://gitlab.freedesktop.org/libnice/libnice cd libnice ./autogen.sh ./configure --prefix=/usr make && sudo make install
-
安装websocket
git clone https://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
-
安装Node
不要使用Ubuntu自带软件管理下载安装Node,后续会出错,去Node官网 下载
1. tar -xJf node-v11.10.1-linux-x64.tar.xz -C /opt //解压到opt目录下 2. sudo ln -s /opt/node-v11.10.1-linux-x64/bin/node /usr/local/bin/node //建立链接到 /usr/local/bin/ 目录 3. sudo ln -s /opt/node-v11.10.1-linux-x64/bin/npm /usr/local/bin/npm //npm建立执行链接 4. npm -v 5. node -v //可以查看具体信息
-
安装http-server
sudo npm -g install http-server #这是一种最便捷的安装方式
-
安装libsrtp
wget https://github.com/cisco/libsrtp/archive/v2.1.0.tar.gz tar xfv v2.1.0.tar.gz cd libsrtp-2.1.0 ./configure --prefix=/usr --enable-openssl make shared_library && sudo make install
编译安装
-
编译Janus
git clone https://github.com/meetecho/janus-gateway.git sh autogen.sh ./configure --prefix=/opt/janus --enable-websockets --enable-docs make sudo make install
部署测试
-
部署Janus
- 进入/opt/janus/etc/janus/ 把jcfg文件都复制一份去掉sample后缀
-
启动http
进入janus源码目录的html目录,执行
/opt/node-v11.10.1-linux-x64/bin/http-server 输入如下: Starting up http-server, serving ./ Available on: http://127.0.0.1:8080 http://172.16.34.129:8080 Hit CTRL-C to stop the server
-
启动Janus
/opt/janus/bin/janus --debug-level=7 --log-file=$HOME/janus-log
-
测试
- 打开浏览器输入http://172.16.34.129:8080/ 实际输入自己的ip地址,也可以使用127.0.0.1
- 在Demos里面选择Echo Test,如果搭建成功是可以看到自己音视频输出的
问题汇总
-
问题一
提示“npm : Depends: node-gyp (>= 0.10.9) but it is not going to be installed”
解决办法
出现这种一定是使用了系统的Node,按照上述步骤到Node官网下载正确的版本配置安装即可,安装之前记得卸载系统自带的
sudo apt remove npm //卸载npm sudo apt remove node //卸载node cd /usr/local/bin //进入该目录中,若有node或者npm文件,将他删除删除
-
问题二
编译libsrtp时候出现“crypto/include/aes_gcm_ossl.h:58:20: error: field ‘ctx’ has incomplete type”
解决办法
下载2.1版本即可解决,上述步骤是下载正确的版本。
-
问题三
编译Janus时候如果开启了选项 --enable-docs,提示“error: Doxygen 1.8.13 too new”,目前解决办法是去掉这个选项。