centos webrtc服务器搭建?centos网站搭建教程

大家好,今天来为大家分享centos webrtc服务器搭建的一些知识点,和centos网站搭建教程的问题解析,大家要是都明白,那么可以忽略,如果不太清楚的话可以看看本篇文章,相信很大概率可以解决您的问题,接下来我们就一起来看看吧!

用SRS快速搭建WebRTC推流和播放

WebRTC目前已经比较成熟了,播放也比较稳定,协议也已经成为了RFC,相应的开源项目也比较多。当然我觉得WebRTC还缺一个高性能简单易用的服务器,之前也分析过现有的服务器,有各种问题,SRS很有机会解决这些问题。

目前SRS对WebRTC的支持进度如下:

相关Wiki:

在线演示,RTMP推流,HTTP-FLV和WebRTC播放:

在线演示,WebRTC推流,WebRTC播放:

自己用SRS搭建WebRTC服务器,也非常容易,下面是操作步骤。

注意:必须要将本机的IP传给Docker,否则会推流和播放失败。

可以直接传本机IP,例如: 192.168.1.3。如果觉得直接传IP比较麻烦,可以用脚本获取IP。

macOS下执行命令,直接设置IP:

macOS下执行命令,用脚本获取IP:

CentOS下执行命令,用脚本获取IP:

启动后,可以访问 ,确认是否启动成功。

Docker一定要设置对这个IP,否则会出现推流和播放失败。

演示,WebRTC推流和播放,链接:

演示,RTMP推流,WebRTC播放。首先,用FFMPEG或OBS推送RTMP流到服务器:

可播放的流地址:

云服务器搭建coturn不能正常使用的问题

云服务器上coturn搭建难题解析

在云服务器上成功搭建coturn经常遭遇障碍,首要问题通常在于未开放必要的端口。以WebRTC音视频技术的实践指南为引导,让我们一步步解决公网coturn搭建的困扰。

关键端口开放

首先,确保服务器开放以下端口:3478-打洞模式必备,允许udp和tcp通信。对于P2P连接失败的情况,40000-60000 UDP端口范围是turn模式的必需,可通过min-port和max-port参数进行设置。

此外,AppRTC应用中还会涉及443、8090、8088和8089,这些也需要纳入开放范围。

云服务器防火墙策略

云服务器防火墙分为两层:接入层的安全组和系统主机的防火墙。建议在搭建初期,关闭系统防火墙以简化过程,但对防火墙有深入理解的用户可以选择自行配置。以腾讯云为例:

Ubuntu:先查看防火墙状态(sudo ufw status),然后禁用(sudo ufw disable)。

CentOS:检查防火墙状态(systemctl status firewalld.service),临时关闭(systemctl stop firewalld.service),然后禁用(systemctl disable firewalld.service)。

使用nc命令检测端口开放,如nc-l 3478,成功连接则表明已开放。

安全组设置

针对腾讯云,登录安全组管理界面,为上述需要的端口创建规则,包括:3478(udp/tcp),443, 8088, 8089, 8090(tcp),以及UDP端口范围40000-60000。

coturn的启动与配置

启动coturn时,添加--min-port 40000--max-port 60000参数,并指定监听地址。你可以选择在后台运行(nohup turnserver...&)或前台测试。务必配置正确的用户名和密码。

测试coturn功能

测试stun服务,无需账号密码,通过stun:并在Gather candidates选项中确认。turn服务则需要输入turn:加上账号密码,选择relay模式。

完成以上步骤后,你的coturn服务应该已经正常运行并准备就绪。

后续操作

如果需要停止coturn服务,记得在Ubuntu上使用sudo前缀执行相关命令,以确保权限正确。

通过上述详细步骤,你将能够顺利解决在云服务器上搭建coturn时遇到的端口问题,为WebRTC应用提供可靠的基础支持。

centos下 Janus Server 搭建笔记

Janus是一个开源的,通过 C语言实现了对 WebRTC支持的 Gateway;Janus自身实现得很简单,提供插件机制来支持不同的业务逻辑,配合官方自带插件就可以用来实现高效的 Media Server服务。

本文主要介绍如何在 Centos 7.0下搭建起 janus服务器,实现 janus官方 Demo浏览器与 Android APP Demo(janus-gateway-android)之间的音视频通话。

目前浏览器仅支持 FireFox浏览器,因为 Chrome浏览器打开音视频采集的话需要 HTTPS加密访问!

效果图如下:

编译运行 Janus Server需要依赖较多的一些第三方库

2.1安装依赖

Ubuntu下通过 aptitude批量安装依赖工具包,这里建议 Ubuntu镜像源(/etc/apt/source.list)不要为了追求速度而改用了国内的某些镜像源,如网易 163,这可能会导致某些工具包下载失败,建议依然使用官方自带的镜像源。

yum list| grep nice

yum install gtk-doc

批量安装命令:

如果出现某个工具包下载失败,请修改镜像源为官方地址,并执行以下命令

以更新镜像源,完成后重新安装。

2、安装 WebSocket

janus支持 WebSocket是可选项,如果不安装,编译 janus时,默认不支持 WebSocket的链接请求,而 Android APP Demo是通过 WebSocket与 janus进行通信的,因为我们希望 Android APP Demo能与浏览器(HTTP)进行视频通话,所以就必须要在编译 janus时支持 WebSocket。

依次执行以下命令,分别进行下载,编译,安装:

安装成功后,在编译 janus时,janus默认会增加对 WebSocket的集成,或者通过增加编译参数--enable-websockets打开 WebSocket开关,或--disable-websockets关闭 WebSocket开关。

3、安装 Http Server

Janus源码目录下的 html下自带 Web Demo(html& JavaScript),Janus编译完成并 Start以后,需要通过 http server访问 Janus Web Demo,其中包括:

以上 janus插件均可通过相应的 http链接进行访问体验。

以下介绍一种快速,便捷,轻巧的 HTTP Server安装方式:

通过 Node.js(基于 Chrome V8引擎的 JavaScript运行环境)进行安装,首先安装 Node.js:

安装成功后,通过 npm(npm是 Node.js的包管理器,是全球最大的开源库生态系统)进行安装 httpserver:

启动方式:

进入到 html目录,执行 http-server命令即可,如:

输入 http url即可访问。

注:需首先 build& start janus Server!

4、安装 libsrtp

Janus需要至少 version 1.5以上的 libsrtp,如果系统中已经安装了 libsrtp,则首先卸载后,手动安装新版本,这里我们安装 libsrtp 2.0,依次执行以下命令:

5、编译 Janus

通过 Git下载 Janus源码,并编译安装:

configure执行成功后,会输出 janus所支持的协议及插件,如下:

6、运行 Janus

如果全部安装以上步骤进行编译的 janus,那么 janus的全局配置文件存放目录为:

或者在启动 janus时,加上相应的启动参数,参数可通过 janus--help查看;

janus默认的配置中是没有 WebSocket的配置的,直接启动 Janus会因没有 WebSocket配置文件而报错。幸运的是在配置目录中 Janus已经给我们提供了一个 WebSocket的示例配置文件: janus.transport.websockets.cfg.sample,(如果我们要通过 WebSocket连接 Janus,则需要有个 WebSocket的配置文件)这里我们可以直接拷贝这个示例文件:

通过查看此配置文件,可以得知 Janus默认的 WebSocket的端口号为 8188,记住这个端口号,在 Android APP Demo中会使用到!

启动 Janus:

根据需要可以选择是否加上后面两个启动参数。

我们使用 PC下的浏览器与 Android APP Demo进行联调。

1、启动 Web Demo

进入到 janus目录下的 html目录,启动 http-server

这样外部便可以通过 进行访问了,进入首页后,找到 videoRoom,Start

2、启动 Android APP Demo

修改源代码

janus-gateway-android支持两个 Demo测试:EchoTest和 VideoRoom,默认情况下会启用 EchoTest,这个 Demo仅仅是连接服务器后,将数据再发回本地进行本地测试,我们要改为与房间内的其它用户(浏览器)进行视频通话,则需要启用另外一个测试用例 VideoRoom,按照如下方式修改代码:

JanusActivity.java类中新增 VideoRenderer.Callbacks数组(视频房间中可能会有多人),暂定义为 2个,实际连接人数不要超过此数字:

OnCreate方法中初始化以上定义的数组:

APP Demo是通过 WebSocket连接 Janus Server,所以修改 VideoRoomTest.java中 JANUS_URL地址为我们启动的 Janus服务器 WebSocket地址,IP为 janus server地址,端口默认为 8188:

3、联调测试

Janus Server默认会开启两个视频房间:1234和 5678,分别使用 VP8和 VP9视频编码器,所以我们通过 Brower和 Android APP Demo进行联调测试时,暂不需要设置房间 ID。

效果图:

修改/opt/janus/etc/janus/janus.jcfg

nat:{

stun_server="stun.voip.eutelia.it"

stun_port= 3478

nice_debug= false

阅读剩余
THE END