搭建自己的视频通话服务器Janus(WebRTC)

  1. 安装janus

apt install janus

高版本的Ubuntu已经可以直接安装了,不要编译那么麻烦了

  1. 安装nginx

janus 是后端,需要nginx或者其他等提供前端页面的服务器,此外因为这里并没有正式的证书,只能用自签名的证书用于https。

前端必须是https

  1. janus的源码

apt install janus的源码安装了之后,要么自己写demo,要么直接用源码里面的前端页面。html,jquery写的,花点时间应该也能修修改改。这里是直接复用源码里面的例子

  1. coturn

穿透用来着,如果是局域网部署的,没有影响,如果部署到阿里云这样的,需要这个来做NAT穿透。实际测试来看,有些网络穿透不了。

5.配置

ngnix的配置文件

user www-data;

worker_processes auto;

pid /run/nginx.pid;

include /etc/nginx/modules-enabled/*.conf;

user root;

events {

worker_connections 4096;

multi_accept on;

}

http {

server{

listen 80;

server_name web_dist;

location /{

root /opt/janus/share/janus/html;

index index.html index.htm;

}

}

server {

ssl on;

listen 443 ssl;

server_name localhost;

root /opt/janus/share/janus/html;

underscores_in_headers on;

ssl_certificate "/root/cert.pem";

ssl_certificate_key "/root/key.pem";

location / {

}

location /janus/ {

proxy_pass http://api_server/janus/;

proxy_set_header Host $host;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-Server $host;

proxy_set_header X-Forwarded-Proto https;

}

location /ws {

proxy_pass http://websocket;

proxy_http_version 1.1;

proxy_set_header Upgrade $http_upgrade;

proxy_set_header Connection $connection_upgrade;

}

}

upstream api_server{

server 0.0.0.0:8088;

}

map $http_upgrade $connection_upgrade {

default upgrade;

'' close;

}

upstream websocket {

server 0.0.0.0:8188;

}

}

注意这里的pem文件,以及代理。主要是把https的请求反射到https上。否则的话证书问题会报错。localtion的路径选择源码下载后的html目录。

到这里应该能看到janus的demo首页了。但是因为后端其实apt 安装过也在监听了。

janus的配置

填写自己的sturn地址,这里没打算跑服务器的流量,所以turn没开。默认janus安装后,https好像没打开,需要自己修改配置文件在janus.transport.http.cfg文件中(/etc/janus)

到这里重启janus (service janus restart),然后通过netstat -tuln查看8088,8089端口是否在监听状态。如果再监听,到这里基本都ready了。后面就是把前端和后端挂上即可。

前端页面修改

目前下载的代码,导航条会把start按钮给覆盖住,导致无法点击start按钮。先修改下前端页面。我这里只打算搞个videocall。所以直接改对应的页面

注意这里的navbar.html和上层目录是两个。选择合适的文件修改。

到这里start按钮出来了,但是点击默认会报错,有可能是证书ssl,等错误。因为默认的代码,https是会请求8089的https请求的。可以在videocall.js里面把server变量打出来看看。

我们到settings.js文件中,把server给修改下

注意这里没了端口,这里会用到nginx的反向代理。最后会把请求给8088。(这里为什么不直接给http发请求呢? 因为我们的页面是https,这里用http会报错,所以要用反向代理)

最后

这里选择高级,访问

随便注册个名字,然后用手机打开手机网络,这里看能不能穿透,不用和测试机一样的网络环境。

然后手机端注册一个888

然后call就可以了

成功,这样就部署了一个自己的私人视频电话服务了。

最终的测试地址

https://47.103.66.95/demos/videocall.html

注意证书警告,选择继续

相关推荐
mo477618 分钟前
Webrtc音频模块(四) 音频采集
音视频·webrtc
PyAIGCMaster20 分钟前
ubuntu装P104驱动
linux·运维·ubuntu
奈何不吃鱼20 分钟前
【Linux】ubuntu依赖安装的各种问题汇总
linux·运维·服务器
爱码小白26 分钟前
网络编程(王铭东老师)笔记
服务器·网络·笔记
zzzhpzhpzzz34 分钟前
Ubuntu如何查看硬件型号
linux·运维·ubuntu
蜜獾云36 分钟前
linux firewalld 命令详解
linux·运维·服务器·网络·windows·网络安全·firewalld
陌北v138 分钟前
Docker Compose 配置指南
运维·docker·容器·docker-compose
只会copy的搬运工1 小时前
Jenkins 持续集成部署——Jenkins实战与运维(1)
运维·ci/cd·jenkins
娶不到胡一菲的汪大东1 小时前
Ubuntu概述
linux·运维·ubuntu
阿里嘎多学长1 小时前
docker怎么部署高斯数据库
运维·数据库·docker·容器