一、janus介绍
Janus 官网:https://janus.conf.meetecho.com/index.html
参考文档:https://github.com/meetecho/janus-gateway
Janus是一个开源的WebRTC网关,可用于构建实时通信应用程序。它提供了音频、视频和数据传输的功能,可以与WebRTC兼容的浏览器、移动应用程序和服务器进行通信。
他是一个轻量级的网关,具有灵活的架构和模块化的设计。它采用插件方式实现不同的功能,如媒体流处理、会话管理、NAT穿透等。这使得开发者可以根据自己的需求选择和定制所需的功能模块。
Janus支持多种协议,包括WebSocket、HTTP和RESTful API,可以与各种平台和应用程序集成。它还提供了强大的API,使开发者可以方便地进行开发和扩展。
Janus具有高度可扩展性和灵活性,可以支持大规模应用程序和高并发场景。它还提供了监控和调试工具,方便开发者进行故障排除和性能优化。
总而言之,Janus是一个功能强大、灵活可扩展的WebRTC网关,适用于构建实时通信应用程序。它是开源的,可以根据需要进行定制和扩展,非常适合开发者使用。
二、janus安装
centos下安装janus
Janus是一个提供实时音视频流处理的开源服务器,可以在CentOS或Ubuntu等多种操作系统上搭建。由于Janus是基于C/C++编写的,通常需要较多的依赖库,因此在安装时可能会遇到一些困难。
在CentOS上搭建Janus,可以参考以下步骤:
1.安装依赖库:
sudo yum update
sudo yum install cmake gcc-c++ git python make
sudo yum install openssl-devel libwebsockets-devel libsrtp-devel libssl-devel
sudo yum install uuid-devel
sudo yum install libmicrohttpd-devel
sudo yum install jansson-devel
sudo yum install libuuid-devel
sudo yum install libnice-devel
sudo yum install glib2-devel
sudo yum install usrsctp-devel
sudo yum install libwebsockets-devel
sudo yum install libmicrohttpd-devel
sudo yum install libavcodec-devel libavformat-devel libswscale-devel
- 获取Janus源码:
git clone https://github.com/meetecho/janus-gateway.git
cd janus-gateway
- 编译安装:
sh autogen.sh
./configure --prefix=/opt/janus
make
sudo make install
- 配置并启动Janus:
cd /opt/janus
./configure
./ctlscript.sh start
Ubuntu上搭建Janus
1.环境准备
1.编译运行 Janus Server 需要依赖较多的一些第三方库,而这些依赖库在 Ubuntu 下主要通过 aptitude 进行安装,首先通过安装 aptitude:
sudo apt-get install aptitude
sudo apt-get update
sudo apt-get update && sudo apt-get upgrade
2.安装相关依赖
sudo apt install build-essential
sudo aptitude install libmicrohttpd-dev libjansson-dev libnice-dev libsofia-sip-ua-dev \
libopus-dev libogg-dev libcurl4-openssl-dev pkg-config gengetopt \
libtool automake
sudo apt install cmake
sudo aptitude install libconfig-dev
sudo aptitude install libssl-dev
sudo aptitude install doxygen graphviz
# ffmpeg库 支持--enable-post-processing
sudo aptitude install libavcodec-dev libavformat-dev libswscale-dev libavutil-dev
3.编译glib
不要执行sudo aptitude install libglib2.3.4-dev 命令,该命令无法正常下载glib
git clone https://github.com/GNOME/glib.git
git checkout glib-2-64
mkdir build
meson build
ninja -C build
sudo ninja -C build install
4.安装websocket
编译 janus 时,默认不支持 WebSocket 的链接请求,必须要在编译 janus 时支持 WebSocket。
git clone https://gitee.com/embedded-lib/libwebsockets.git
或 git clone https://github.com/warmcat/libwebsockets.git
cd libwebsockets
git branch -a 查看选择最新的稳定版本,
git checkout v4.3.0 切换到较新稳定版本
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr -DCMAKE_C_FLAGS="-fpic" ..
make && sudo make install
5.安装libsrtp
git clone https://gitee.com/MediaNext/libsrtp.git
cd libsrtp
git checkout v2.3.0
./configure --prefix=/usr --enable-openssl
make shared_library && sudo make install
- 安装libmicrohttpd
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
2.下载及编译janus
git clone https://gitee.com/easyhao/janus-gateway.git
或git clone https://github.com/meetecho/janus-gateway.git
git tag 查看当前的 tag,选择最新稳定的版本v0.10.4
git checkout v0.10.4
sh autogen.sh
./configure --prefix=/opt/janus --enable-websockets --enable-post-processing --enable-docs --enable-rest
make
sudo make install