Web视频会议:搭建CS for WebRTC

1. 下载Centos 7, WebRTC 需要Centos7版本

本文福利, 免费领取C++音视频学习资料包+学习路线大纲、技术视频/代码,内容包括(音视频开发,面试题,FFmpeg ,webRTC ,rtmp ,hls ,rtsp ,ffplay ,编解码,推拉流,srs)↓↓↓↓↓↓见下面↓↓文章底部点击免费领取↓↓

可使用以下镜像:

http://isoredirect.centos.org/centos/7/isos/x86_64/CentOS-7-x86_64-Minimal-1804.iso

Notes: Minimal package安装完系统后,需要手动启动网络。

a. 使用系统的默认网络配置 NAT, 默认虚拟网卡。

b. 修改网络配置重新启动网络服务: 执行一下命令

cd /etc/sysconfig/network-scripts/

ls

vi ivcfg-enp0s3

service network restart ( 重启网络服)

ping www.baidu.com 测试一下,一切正常说明网络配好了。

yum install wget (mini包里没有安装wget,需要手动安装)


2. 下载Intel CS for webrtc 软件包

需要先注册以下Inter的账户。登陆,https://registrationcenter.intel.com/en/forms/?productid=2607

完成注册,并同意CS for WebRTC的使用协议。

获取下载地址开始下载。

wget http://registrationcenter-download.intel.com/akdlm/irc_nas/13165/Intel_CS_WebRTC.v4.0.1.zip

解压缩: unzip Intel_CS_WebRTC.v4.0.1.zip (mini 版centos,unzip需要使用yum安装)


软件列表: *_Sdk_Andorid/iOs/JavaScript/Windows.zip 客户端lib包

*_conferenece_Server_MCU.*.tgz MCU 会议视频服务器安装包

*_Conference_Server_Peer.*.tgz Peer-to-Peer 视频通讯服务器。

*_Media_Analytics_Server*.tgz 媒体分析服务器

3. 下载并安装MCU服务

Intel CS WebRTC依赖于一些第三方的软件,如Nodejs,ffmpeg等。Nodejs需要单独安装。



3.1 下载并安装NodeJS

下 载: wget https://nodejs.org/dist/v6.9.5/node-v8.11.3-linux-x64.tar.gz (登陆node.org查看稳定版本)

解压缩: tar -xvf node-v8.11.3-linux-x64.tar.xz

创建连接:

ln -s /opt/node-v8.11.3-linux-x64/bin/node /usr/local/bin/node

ln -s /opt/node-v8.11.3-linux-x64/bin/npm /usr/local/bin/npm

3. 2 解压缩MCU 服务器

tar xvf CS_WebRTC_Conference_Server_MCU.v4.0.1.tgz

3.2 安装其它依赖

进入Relase-v4.0.1\bin 目录,执行如下命令: ./init-all.sh --deps

由于本机务独立显卡, 默认会自动安装 Cisco OpenH264* Library



Notes: 如果支持GPU,初始化时使用硬件加速 : ./init-all.sh --hardware

3.3 获取Console的初始登录信息

bin/init-all.sh –software

这个命令执行完成后,会生成两组superServiceId和sampleServiceKey,这两个值在登录控制台时会用到。


4. WebRTC 服务器启动

4.1 启动

bin/start-all.sh (需要修改pacage json配置文件的node版本, 默认是9.6.5)

Notes: 1. mongodb 版本稍微有点低, 如发生启动不起来,建议重新yum安装,并设置为服务。

2. MQ 为设置为服务,如关停了虚拟机,下次进入后需要重新启动,执行 ./inti-rabbitmq.sh

4.2 服务器配置

a. 关闭防火墙

sudo systemctl stop firewalld.service

b. 配置UDP启动端口

如果是虚机,在虚机网络管理中打开UDP的可访问端口,推荐范围2000-9000,同时需要在配置文件中进行配置。

vi webrtc_agent/agent.toml

修改:

# The webrtc port range

maxport = 0 #default: 0

minport = 0 #default: 0

为:

# The webrtc port range

maxport = 9000 #default: 0

minport = 2000 #default: 0

C. 本文用的Oracle Vbox启动虚拟机, 默认使用 NAT网络,需要做端口映射。

D. 由于Sample 应用默认安装在同一虚拟机里, 而Sample页面会调用nuve服务,NAT网络访问下视频Stream的连接IP会有问题,inter没有开发所有源码,看压缩的JS太痛苦。 所以NAT设置时,默认虚拟机和主机对应的网络IP和虚拟机内统一。

5. 启动测试

a。 登陆管理端

http://10.0.2.15:3300/console/

需要数据id和key(在执行 initial脚本的时候会产生 )。

b. 访问Sample程序。

https://10.0.2.15:3004/

成功后,会看到两个窗口,上面是本地的采集窗口,下面是视频通讯的多窗口

本文福利, 免费领取C++音视频学习资料包+学习路线大纲、技术视频/代码,内容包括(音视频开发,面试题,FFmpeg ,webRTC ,rtmp ,hls ,rtsp ,ffplay ,编解码,推拉流,srs)↓↓↓↓↓↓见下面↓↓文章底部点击免费领取↓↓

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/140072.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

垂直领域对话系统架构

垂直领域对话系统是指针对特定领域或行业的需求而构建的对话系统。这种系统通常需要具备高度的专业知识和对特定领域的知识库进行深入的学习和训练,以便能够提供准确、高效、实用的服务。 垂直领域对话系统的构建通常包括以下步骤: 确定目标领域或行业…

详解JDBC

JDBC简介 概念: jdbc就是使用java语言操作关系型数据库的一套API 全称 : (Java DataBase Connectivity) Java数据库连接 本质: 官方(sun公司)定义的一套操作所有关系型数据库的规则,即接口; 各个数据库厂商实现这套接口,提供数据库驱动j…

如何快速入门笔记软件『Obsidian』

前言 Obsidian 是基于 Markdown 语法的笔记软件,界面简洁,使用简单,功能实用,支持跨平台数据同步,实现基于双向链接的知识图谱,同时提供各种各样的扩展主题和插件 本文将会详细讲解笔记软件 Obsidian 的安…

threejs (三) 几何体

定义:用来表示物体的形状,可以定义物体的大小,可以被缩放、旋转和平移 内置几何体: 二维几何体:PlaneGeometry矩形平面、CircleGeometry圆形平面、RingGeometry环形平面、ShapeGeometry二维图形三维几何体&#xff1a…

阿里云通用算力型u1服务器和e实例有什么区别?选择攻略

阿里云服务器ECS经济型e实例和通用算力型u1实例有什么区别?如何选择?ECS经济型e实例是共享型云服务器,通用算力型u实例是企业级独享型云服务器,e实例性价比高,现在2核2G3M带宽一年99元,云服务器u1价格相对要…

腾讯云新用户优惠服务器汇总,腾讯云新用户值得买的云服务器推荐

在双11期间,市面上出现了各种云服务器活动机型,价格低廉,适合刚需或囤货用户。这些云服务器不仅拥有高性能和稳定性,还具备弹性扩展能力,能够满足各类用户的需求。 腾讯云作为国内领先的云计算服务提供商,…

Sonatype Nexus部署docker安装nexus3

Nexus是一个强大的Maven仓库管理器,它极大地简化了自己内部仓库的维护和外部仓库的访问。 1、查看可用的 Nexus3版本 可以通过 Sort by 查看其他版本的 nexus3,默认是最新版本 sonatype/nexus3:latest。 https://hub.docker.com/r/sonatype/nexus3/tags…

社交媒体可持续性挑战:TikTok的危机与应对

随着社交媒体的全球普及,TikTok已成为一个备受欢迎的短视频平台,吸引了数以亿计的用户。然而,在其增长和成功背后,也伴随着一系列可持续性挑战。本文将深入探讨TikTok面临的可持续性问题,以及它如何应对这些挑战&#…

Linux编译器---gcc/g++的使用

一、背景知识 在Linux系统中,GCC是一个非常重要的工具,因为它使得开发者可以使用C和C等语言编写高性能的程序。它主要包括四个方面: 预处理(进行宏替换) 编译(生成汇编) 汇编(生成机器可识别代码&#xff0…

springboot vue mysql的在线竞拍拍卖系统

基于SpringBoot的在线拍卖系统,springboot vue mysql (毕业论文10168字以上,共34页,程序代码,MySQL数据库) 【运行环境】 IDEA, JDK1.8, Mysql, Node, Vue 【技术栈】 Java, SpringBoot, Jquery, Layui, MYSQL, HTML, CSS, JAVASCRIPT, Ajax 7707 java毕业设计 springboot v…

JTS: 19 IndexedPointInAreaLocator 判断是否在点在面的内部

文章目录 版本代码 版本 org.locationtech.jts:jts-core:1.19.0 链接: github 代码 package pers.stu.algorithm;import org.locationtech.jts.algorithm.locate.IndexedPointInAreaLocator; import org.locationtech.jts.geom.Coordinate; import org.locationtech.jts.geom…

web 自动化测试,这8 个核心知识点,你一定得掌握

使用 cypress 进行端对端测试,和其他的一些框架有一个显著不同的地方,它使用 JavaScript 作为编程语言。 传统主流的 selenium 框架是支持多语言的,大多数 QA 会的 python 和 Java 语言都可以编写 selenium 代码,遇到需要编写 js…

一文详解进销存管理系统!

一、什么是进销存管理系统? 进销存软件是一种针对制造业企业设计的管理软件系统,旨在协调和优化企业的生产、采购、销售以及库存管理等方面的活动。该系统的主要目标是提高企业的生产效率、降低库存成本、优化供应链,并增强企业的整体运营效…

【中间件篇-Redis缓存数据库08】Redis设计、实现、redisobject对象设计、多线程、缓存淘汰算法

Redis的设计、实现 数据结构和内部编码 type命令实际返回的就是当前键的数据结构类型,它们分别是:string(字符串)hash(哈希)、list(列表)、set(集合)、zset (有序集合),但这些只是Redis对外的数据结构。 实际上每种数据结构都有自己底层的…

<MySQL> MySQL中查询(retrieve)数据的基础操作

目录 一、查询(retrieve) 1.1 查询数据的方式概述 二、全列查询 2.1 语法 2.2 操作演示 2.3 全列查询需要慎重使用 三、指定列查询 3.1 语法 3.2 操作演示 四、表达式查询 4.1 语法 4.2 操作演示 4.3 null 参与表达式计算 4.3 表达式查询存…

【Proteus仿真】【Arduino单片机】简易计算器设计

文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用Proteus8仿真Arduino单片机控制器,使用PCF8574、LCD1602液晶、4*4矩阵键盘等。 主要功能: 系统运行后,操作矩阵按键可实现简单四则运算。 二、软件设计 /* …

JDK并发修改异常的一个“BUG“

很多电商公司早期的架构都是基于PHP,所以我身边会有很多很厉害的PHP老哥,但现在都在写Java。昨天看到他在看Java的并发修改异常,正打算秀一波操作,却被他的一个问题难住了: public class ForeachTest {public static …

高防IP可以抵御哪些恶意攻击

高防IP协议可以隐藏用户的站点,使得攻击者无法发现恶意攻击的目标网络资源,从而提高了源站的安全性。能够有效抵御常见的恶意攻击类型ICMPFlood、UDPFlood、 TCPFlood、SYNFlood、ACKFlood等,帮助游戏、金 融、电子商务、互联网、政企等行业抵…

centos7 在线安装python3

在线安装命令 yum install -y python3 输入命令之后等待安装完成 查看版本 查看版本3 输入命令 python3 看到版本号为3.6.8 查看版本2 输入命令 python2 看到版本号为2.7.5

Java基础——方法参数值的传递机制

方法必须由其所在类或对象调用才有意义。 形参:方法声明时的参数。实参:方法调用时实际传给形参的参数值。 Java中方法的参数传递方式只有一种:值传递(即将实际参数值得副本传入方法内) 形参是基本数据类型&#xf…