下载和编译 Janus
编译运行 Janus Server 需要依赖较多的一些第三方库,而这些依赖库在 Ubuntu 下主要通过 aptitude 进行安装,首先通过安装 aptitude:
sudo apt-get install aptitude
1.1 命令安装依赖
Ubuntu 下通过 aptitude 批量安装依赖工具包,这里建议 Ubuntu 镜像源(/etc/apt/source.list)不要为了追求速度而改用了国内的某些镜像源,这可能会导致某些工具包下载失败,建议依然使用官方自带的镜像源。
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 cmake libconfig-dev doxygen graphviz
如果出现某个工具包下载失败,请修改镜像源为官方地址,并执行以下命令
sudo apt-get update && sudo apt-get upgrade 以更新镜像源,完成后重新安装。
1.2 源码安装依赖
janus 支持 WebSocket 是可选项,如果不安装,编译 janus 时,默认不支持 WebSocket 的链接请求,而 Android APP Demo 是通过 WebSocket 与 janus 进行通信的,因为我们希望 Android APP Demo 能与浏览器(HTTP)进行视频通话,所以就必须要在编译 janus 时支持 WebSocket。
依次执行以下命令,分别进行下载,编译,安装:
git clone https://github.com/warmcat/libwebsockets.git
cd libwebsockets
git branch -a 查看选择最新的稳定版本,目前的是remotes/origin/v4.1-stable
git checkout v4.1-stable 切换到最新稳定版本
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr -DCMAKE_C_FLAGS="-fpic" ..
make && sudo make install
安装成功后,在编译 janus 时,janus 默认会增加对 WebSocket 的集成,或者通过增加编译参数 --enable-websockets 打开 WebSocket 开关,或 --disable-websockets 关闭 WebSocket 开关。
1.2.2 安装 libsrtp
Janus 需要至少 version 1.5 以上的 libsrtp,如果系统中已经安装了 libsrtp,则首先卸载后,手动安装新版本,这里我们安装 libsrtp 2.2,依次执行以下命令:
wget https://github.com/cisco/libsrtp/archive/v2.2.0.tar.gz
tar xfv v2.2.0.tar.gz
cd libsrtp-2.2.0
./configure --prefix=/usr --enable-openssl
make shared_library && sudo make install
1.2.3 安装libusrsctp
libusrsctp支持--enable-data-channels
git clone https://github.com/Kurento/libusrsctp.git
cd libusrsctp
./bootstrap
./configure
make
sudo make install
1.2.4 安装libmicrohttpd
libmicrohttpd支持--enable-rest
wget https://ftp.gnu.org/gnu/libmicrohttpd/libmicrohttpd-0.9.71.tar.gz
tar zxf libmicrohttpd-0.9.71.tar.gz
cd libmicrohttpd-0.9.71/
./configure
make
sudo make install
1.3 编译 Janus
通过 Git 下载 Janus 源码,并编译安装:
git clone https://github.com/meetecho/janus-gateway.git
git tag 查看当前的 tag,选择最新稳定的版本v0.11.2
git checkout -b v0.11.2
sh autogen.sh
./configure --prefix=/opt/janus --enable-websockets --enable-post-processing --enable-docs --enable-rest --enable-data-channels
make
sudo make install
报错:error: Doxygen 1.8.13 too new
上 Doxygen 官网下载最新版本安装: Doxygen Manual: Installation
: Doxygen: Downloads (网页打不开?用下面的git clone)
git clone https://github.com/doxygen/doxygen.git
mkdir build
cd build
cmake -G "Unix Makefiles" ..
make;
make install;
Could NOT find FLEX (missing: FLEX_EXECUTABLE)
执行:sudo apt-get install flex
Could NOT find BISON (missing: BISON_EXECUTABLE)
执行: sudo apt-get install bison
libnice 1.4不兼容,下载libnice-0.1.16 编译安装。
make install的时候,将janus安装到 /opt/janus路径,插件的so库在/opt/janus/lib/janus/plugins
(如果报No package 'libavutil' found
No package 'libavcodec' found
No package 'libavformat' found ,执行apt-get install libavutil-dev libavcodec-dev libavformat-dev)
configure 执行成功后,会输出 janus 所支持的 协议及插件,如下:
ompiler: gcc
libsrtp version: 2.x
SSL/crypto library: OpenSSL
DTLS set-timeout: not available
Mutex im

本文详细介绍如何在Ubuntu环境下搭建Janus音视频服务器,包括安装依赖库、编译Janus源码、配置Nginx与coturn等步骤,并实现基于Web和Android客户端的音视频通话功能。
最低0.47元/天 解锁文章
2157

被折叠的 条评论
为什么被折叠?



