janus部署

官方demo:Janus WebRTC Server (multistream): About Janus

环境:1、启用Windows10的子系统Linux,已安装Ubuntu18.04,参考wsl 和 wsl2

2、使用虚拟机VMware,创建一个Ubuntu18.04的操作系统,参考链接

本文基于环境1完成部署,命令行工具用的安装的Ubuntu

注:① 如果启用系统管理员root账号登录,所有命令可以去掉sudo

② 巨坑:复制命令行的时候,注意空格,若报错找不到指令command not found,可能就是命令的空格含了一个不可见的特殊字符(如全角空格或制表符),导致无法识别

目录

一、准备工具

二、建janus目录并进入

三、安装Janus的依赖库

四、安装libwebsockets

五、安装libsrtp 

六、安装libmicrohttpd  

七、下载及编译janus

八、生成私有证书 

九、安装及配置nginx

1、安装nginx

2、配置nginx

3、启动nginx

4、查看本机IP

5、https访问

十、安装和启动turnserver穿透服务器

十一、配置/opt/janus下的文件

1、拷贝.sample文件

2、配置janus.jcfg

3、配置janus.transport.http.jcfg

4、配置janus.transport.websockets.jcfg

5、修改网页默认支持的wss协议

6、运行 Janus


一、准备工具

sudo apt-get update  # 软件包源更新
sudo apt-get install aptitude  # 较多第三方依赖库要用aptitude安装
sudo apt-get install cmake

二、建janus目录并进入

可以选择在Linux系统或者Windows系统中创建,我在Linux系统中

cd /home  # 进入home目录
mkdir janus  # 创建janus文件夹,接下来的安装操作都在此中完成
cd janus  # 进入janus

三、安装Janus的依赖库

install后面都是包的名称,可以一次性装,也可以分多次装

sudo aptitude install libmicrohttpd-dev libjansson-dev libnice-dev  libsofia-sip-ua-dev libopus-dev libogg-dev libcurl4-openssl-dev libssl-dev libconfig-dev pkg-config gengetopt libtool automake

注:① liblua5.3-dev、libglib2.0-dev 都没装,试过一次会报版本错误,后面需要的时候再装吧

② libcurl4-openssl-dev libssl-dev 要装,确保cmake命令能成功。libconfig-dev 要装,gateway需要

③ 如果命令行无法粘贴,就点击右键。

④ 回车安装,在‘是否继续[Y/n/q?]’后,输入 y,回车继续安装

⑤ 命令提示:

安装:aptitude install 包名称

卸载:aptitude remove 包名称

清除配置文件和依赖:aptitude purge 包名称

清除不再需要的依赖:apt-get autoremove

四、安装libwebsockets

在/janus目录下

1、下载:git clone https://github.com/warmcat/libwebsockets.git
或 git clone https://gitee.com/embedded-lib/libwebsockets.git
2、进入目录:cd libwebsockets
3、git tag  # 查看选择最新的稳定版本, 
4、git checkout v4.3.0  # 切换到较新稳定版本
5、创建build文件夹:mkdir build
6、进入build:cd build
7、配置:-DCMAKE_INSTALL_PREFIX:PATH=/usr -DCMAKE_C_FLAGS="-fpic" ..
8、安装:make && sudo make install

五、安装libsrtp 

在/janus目录下

git clone https://gitee.com/MediaNext/libsrtp.git
cd libsrtp
git tag   # 查看版本列表
git checkout v2.3.0
./configure --prefix=/usr --enable-openssl
make shared_library && sudo make install

六、安装libmicrohttpd  

在/janus目录下

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

七、下载及编译janus

在/janus目录下操作,数据传输对版本有要求,经测试0.10.4无法实现

git clone https://github.com/meetecho/janus-gateway.git
# 或 git clone https://gitee.com/easyhao/janus-gateway.git  #gitee的版本有限
cd janus-gateway
git tag | less # 查看版本(空格键翻页,按 b 键回退,按 q 键退出查看)
git checkout v1.2.3
sh autogen.sh
./configure --prefix=/opt/janus --enable-websockets # 没有安装doxygen,执行这条
# ./configure --prefix=/opt/janus --enable-websockets --enable-post-processing --enable-docs --enable-rest 
make && sudo make install

janus会安装到: /opt/janus

janus的demo路径:/opt/janus/share/janus/demos

八、生成私有证书 

找一个目录建cert文件夹(我在janus目录下创建),进入文件夹,通过命令生成私钥和签名。

别人都在根目录下的home里创建的,我也不懂啊,看个人吧 mkdir -p ~/cert

mkdir cert
cd cert
openssl genrsa -out key.pem 2048  # 私钥
openssl req -new -x509 -key key.pem -out cert.pem -days 1095  # 证书

证书路径:/home/janus/cert/

九、安装及配置nginx

在/janus目录下

1、安装nginx

nginx代理用来提供web访问

wget http://nginx.org/download/nginx-1.15.8.tar.gz  # 下载压缩包
tar xvzf nginx-1.15.8.tar.gz  # 解压
cd nginx-1.15.8/  # 进入
./configure --with-http_ssl_module  # 配置支持https
make && sudo make install  # 编译和安装    
2、配置nginx

进入nginx配置文件并修改:sudo vim /usr/local/nginx/conf/nginx.conf

把最底下的https的server放开(#去掉),修改①证书cert路径 ②janus的demos路径,保存退出

3、启动nginx
/usr/local/nginx/sbin/nginx  # 启动
# 以下命令按需操作
ps -ef | grep nginx  # 检查
/usr/local/nginx/sbin/nginx -s reload  # 重新加载
/usr/local/nginx/sbin/nginx -s stop   # 停止
/usr/local/nginx/sbin/nginx -t  # 检查配置文件语法

4、查看本机IP

hostname -I

5、https访问

https://ip  (此时只能访问,不能通讯)

十、安装和启动turnserver穿透服务器

在/janus目录下

## 先检查/安装库
sudo apt-get install libssl-dev
sudo apt-get install libevent-dev

## 安装turnserver
wget http://coturn.net/turnserver/v4.5.0.7/turnserver-4.5.0.7.tar.gz
tar xfz turnserver-4.5.0.7.tar.gz
cd turnserver-4.5.0.7
./configure 
make && sudo make install
## 启动  xxx:123456是当前系统的登录账号
sudo nohup turnserver -L 0.0.0.0 --min-port 50000 --max-port 60000  -a -u xxx:123456 -v -f -r nort.gov &

十一、配置/opt/janus下的文件

1、拷贝.sample文件

进入/opt/janus/etc/janus,拷贝.jcfg.sample文件为.jcfg文件,方便修改.jcfg文件,

cd /opt/janus/etc/janus
# 拷贝文件
sudo cp janus.jcfg.sample janus.jcfg
sudo cp janus.transport.http.jcfg.sample janus.transport.http.jcfg
sudo cp janus.transport.websockets.jcfg.sample janus.transport.websockets.jcfg
sudo cp janus.plugin.videoroom.jcfg.sample janus.plugin.videoroom.jcfg
sudo cp janus.transport.pfunix.jcfg.sample janus.transport.pfunix.jcfg
sudo cp janus.plugin.streaming.jcfg.sample janus.plugin.streaming.jcfg
sudo cp janus.plugin.recordplay.jcfg.sample janus.plugin.recordplay.jcfg
sudo cp janus.plugin.voicemail.jcfg.sample janus.plugin.voicemail.jcfg
sudo cp janus.plugin.sip.jcfg.sample janus.plugin.sip.jcfg
sudo cp janus.plugin.nosip.jcfg.sample janus.plugin.nosip.jcfg
sudo cp janus.plugin.textroom.jcfg.sample  janus.plugin.textroom.jcfg
sudo cp janus.plugin.echotest.jcfg.sample janus.plugin.echotest.jcfg
sudo cp janus.plugin.audiobridge.jcfg.sample janus.plugin.audiobridge.jcfg
2、配置janus.jcfg

进入:sudo vim janus.jcfg

3、配置janus.transport.http.jcfg

进入:sudo vim janus.transport.http.jcfg

4、配置janus.transport.websockets.jcfg

进入:sudo vim janus.transport.websockets.jcfg

5、修改网页默认支持的wss协议

以videoroom为例

进入:sudo vim /opt/janus/share/janus/demos/videoroomtest.js

我是直接给server赋值了,也可以通过写逻辑赋值,8989是上一步中wss的端口号

6、运行 Janus

启动:/opt/janus/bin/janus --debug-level=5

如果用的云服务器,还需开发端口
tcp:8088,8089,8188,8989,3478,80,443
udp:3478,50000-60000

7、启动janus步骤总结
# 启动nginx
/usr/local/nginx/sbin/nginx
# 启动turnserver
sudo nohup turnserver -L 0.0.0.0 --min-port 50000 --max-port 60000  -a -u xxx:123456 -v -f -r nort.gov &
# 启动janus
/opt/janus/bin/janus --debug-level=5

十二、Windows添加代理

这一步操作根据具体需求,如果是用的云服务器、VMware就不需要。我这里用的wsl就需要。因为wsl只有本机Windows能访问到,其他设备访问不了。

1、在本机windows上下载nginx,我下是24版,配置nginx.conf。

2、nginx配置https需要的证书,我直接复制的wsl的证书文件夹cert 到nginx的

3、启动nginx,此时就能通过Windows的ip访问到wsl了。

## 在D:\soft\nginx-1.24.0里cmd  启动:start nginx,重新加载配置:nginx.exe -s reload
    # janus测试  
    server {  
        listen 443 ssl;  
        server_name xxxxxxx;  # 本机IP 192
     
        ssl_certificate      D:/soft/nginx-1.24.0/conf/cert/cert.pem;  
        ssl_certificate_key  D:/soft/nginx-1.24.0/conf/cert/key.pem;  
     
        location / {  
            proxy_pass https://172.21.232.217/;  # 这是WSL中Nginx服务器的地址  
            proxy_set_header Host $host;  
            proxy_set_header X-Real-IP $remote_addr;  
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  
            proxy_set_header X-Forwarded-Proto $scheme;  
        }  
    }
    # wss
    server {
        listen 8989 ssl;  
        server_name xxxxxxxx;  # 本机IP 192
     
        ssl_certificate D:/soft/nginx-1.24.0/conf/cert/cert.pem;    
        ssl_certificate_key D:/soft/nginx-1.24.0/conf/cert/key.pem;  
     
        location / {  
            proxy_pass https://172.21.232.217:8989;  
            proxy_http_version 1.1;  
            proxy_set_header Upgrade $http_upgrade;  
            proxy_set_header Connection "upgrade";  
            proxy_set_header Host $host;  
        } 
    }

注:我的配置不晓得哪里不对,还是缺少了什么操作,其他设备进入videoroom后一直的publishing状态,我只是个前端啊,我太难了。

有解决方案的小伙伴给我留个言呀,谢谢~~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值