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

1. 安装janus

apt install janus

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

2. 安装nginx

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

前端必须是https

3. janus的源码

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

4. 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

注意证书警告,选择继续

相关推荐

  1. linux 一台自己DNS服务器

    2024-05-25 23:24:22       35 阅读
  2. 论如何属于自己服务器

    2024-05-25 23:24:22       26 阅读
  3. Git篇如何在自己服务器自己git私有仓库

    2024-05-25 23:24:22       70 阅读
  4. Centos7.4 视频服务器

    2024-05-25 23:24:22       32 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-05-25 23:24:22       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-05-25 23:24:22       101 阅读
  3. 在Django里面运行非项目文件

    2024-05-25 23:24:22       82 阅读
  4. Python语言-面向对象

    2024-05-25 23:24:22       91 阅读

热门阅读

  1. 栈——顺序存储

    2024-05-25 23:24:22       38 阅读
  2. mysql内存结构

    2024-05-25 23:24:22       36 阅读
  3. 【Muduo】网络库框架模型和各模块简介

    2024-05-25 23:24:22       30 阅读
  4. C# 中的 Dictionary<TKey, TValue> 类

    2024-05-25 23:24:22       32 阅读
  5. docker system prune命令详解

    2024-05-25 23:24:22       32 阅读
  6. MySql开源闪回工具MyFlash

    2024-05-25 23:24:22       30 阅读