搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
爱喝兽奶帝天荒
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
35岁程序员被公司辞退,生活压力太大痛哭,中年危机如何自救?_36程序员 辞退后
2
超强 vim 编辑器使用技巧_技术文档 编辑器,2024年最新3年内被辞退5次35岁程序员该何去何从_技术文件编辑器怎么用
3
Sql Server 行转列函数- Pivot 的使用教程_sql aerverpivot
4
python作品 运动模糊图像修复算法(上)_python 运动模糊算法
5
LINUX学习------Linux自动化运维——LVS
6
洛谷 B3609 [图论与代数结构 701] 强连通分量 题解 tarjan算法
7
短视频seo系统开发源码分享_seo短视频系统源码
8
使用python的flask框架做一个本地mysql服务器的webui!_flask ui
9
CSAPP 3e Attack lab_538x.cc
10
SpringBoot对接OpenAI_springboot openai
当前位置:
article
> 正文
基于WebRTC的多人视频会议_webrtc需要服务器带宽吗
作者:爱喝兽奶帝天荒 | 2024-07-28 01:55:13
赞
踩
webrtc需要服务器带宽吗
基于WebRTC的多人视频会议
25 July 2014
最近两周在调研和搭建基于WebRTC的多人视频会议系统。
目前已经搭建成功,可以在http://jitsi.shengbin.me/试用。
这个系统无需注册和登录,只要多人访问同一个URL(含有系统为每个房间分配的特定ID),就可以进行视频会议。
如果上面那个链接失效,可以尝试国外一个同样的系统:https://meet.jit.si/。
使用视频会议系统需要客户端电脑提供摄像头功能;至于带宽,当然是越大越好了。
下面总结一下该系统的组成。
1. 客户端
客户端是一个Web App的形式,包括HTML、CSS、JavaScript代码组成的网页。
HTML和CSS来构造聊天室的界面,JavaScript来实现功能。由于功能比较复杂,JS代码也较多。
通过WebRTC,客户端从用户摄像头获取图像并传给服务器,来实现视频会议。
由于WebRTC只在Chrome、Opera、Firefox上支持,而Firefox有相关的bug尚未解决,
所以客户端只能运行于Chrome或者Opera浏览器。
2. 服务器
服务器端包含多个部分。下面分别介绍。
Nginx
Nginx是一个Web服务器,与著名的Apache同类。它的用途是提供网页访问。
3. Prosody
Prosody是一个XMPP服务器。
XMPP全称是Extensible Messaging and Presence Protocol,即可扩展通信和表示协议。
它是一种即时通信协议,主要是实现文字聊天。
XMPP的前身是Jabber,一个开源的即时通信协议。Jabber被IETF标准化为XMPP。
Google Talk用的就是它。
4. Jitsi-Videobridge
Jitsi-Videobridge用于处理视频传输,也就是视频流在各参与者之间的转发。
如果没有这个组件,各参与者能文字聊天,但无法互相看见。
转发意味着服务器要从N个参与者那里接受视频流,
然后给每个参与者发送其他N-1个参与者的视频数据,
这对服务器带宽要求很高。
但由于未对视频做任何处理,CPU负载并不高。
5. Restund
这是一个STUN/TURN服务器。
STUN是一种NAT穿透技术,用于帮助处在内网的主机确定自己的公网IP和端口,
从而与别的主机建立直接连接(WebRTC中PeerConnection)。
TURN是STUN的增强版,可以在无法穿透NAT进行直连的情况下提供数据的转发。
上述整个系统都是开源的,
更多信息可参见相关的GitHub代码库(https://github.com/jitsi/jitsi-meet)和
Jitsi主页(https://jitsi.org/)。
原谅链接:
http://blog.shengbin.me/posts/multi-user-video-conference-based-on-webrtc/
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/爱喝兽奶帝天荒/article/detail/892362
推荐阅读
article
【
ZYNQ
入门】第二篇、
ZYNQ
的
中断
系统
及常用
中断
初始化
程序_
中断
初始化
步骤
...
ZYNQ
中断
配置的相关知识_
中断
初始化
步骤
中断
初始化
步骤
目录 第一部分、Zynq的
中断
...
赞
踩
article
Quartus
II
上手攻略
_
quartii
...
第一次接触EDA实验,对这方面的相关操作并不熟悉。本篇文章结合上课内容和B站
Quartus
进行整理,总结一下Quartu...
赞
踩
article
MyBatis
-
Spring
简介与
用法
...
JAVA企业级应用,多以
Spring
为基础,集成其他开源组件构建。在ORM(Object Relational Mapp...
赞
踩
article
大
数据
实时处理中的
Flink
:
广播
状态
_
flinkcdc
任务
如何
使用
广播
...
Apache
Flink
是一种强大的分布式流处理框架,它提供了
广播
状态
(Broadcast State)的功能,可以在流...
赞
踩
article
教你几招:
IIS
服务器
中
如何
防止
被攻击_
iis
网站
安全
防止
网站
被黑客控制...
IIS
服务器
已经被很多人使用着,但是,我们在这里为大家讲解一些多年
中
总结的一些小经验来帮助大家更好的使用
IIS
服务器
。...
赞
踩
article
vue
左右
联动
_
vue
实现
左侧
目录和
右边
内容
联动
...
***_
vue
实现
左侧
目录和
右边
内容
联动
vue
实现
左侧
目录和
右边
内容
联动
...
赞
踩
article
Ubuntu20.04
编译
并
运行
imu
_
utils
,并且
标定
IMU
_
imu
utils
...
Ubuntu20.04
编译
并
运行
imu
_
utils
,并且
标定
IMU
一、
编译
并
运行
imu
_
utils
1、安装依赖项2、下载...
赞
踩
article
RabbitMQ
+
redis
+
Redisson
分布式
锁+
seata
实现订单服务...
(相关解释直接在代码注释上了)
RabbitMQ
+
redis
+
Redisson
分布式
锁+
seata
实现订单服务 ...
赞
踩
article
Modbus
转
EtherCAT
网关
将
Modbus
协议
的
数据格式
转换为
EtherCAT
协议
...
Modbus
转
EtherCAT
网关
在多种工业自动化场景中有广泛应用,如在生产线升级方面,通过钡铼的
Modbus
转Ethe...
赞
踩
article
Doris
的
执行
计划
生成
、分发与
执行
_
doris
执行
计划
...
2、如果
执行
计划
中有多个fragment,会分两步,第一步是FE调用BackendServiceClient::exec...
赞
踩
article
数学
建模
常用
模型
方法_论文
建模
常用
的五种
模型
...
常用
模型
的链接_论文
建模
常用
的五种
模型
论文
建模
常用
的五种
模型
2022年美赛题型及算法模...
赞
踩
article
刷了很多道
Leetcode
题
,可当
自己
真正做
题
的时候却又犯
难
?_
leetcode
算法
越来越
难
...
刷了大量
题
之后却还是无法独立做
题
怎么办?其中有个人的经历和解决方法,希望能够帮助你!!_
leetcode
算法
越来越
难
l...
赞
踩
article
Java
后
端
开发
进阶知识点整理_
java
后
端
学习
全家桶资料...
该文章的编写目的为为
Java
后
端
的初学者整理
后
端
技术的
学习
树,包括了常见的
后
端
相关技术,适合有一定
Java
后
端
开发
基础的...
赞
踩
article
Vue3
性能
优化
之
打包
_
vue3
打包
优化
...
针对Vite
Vue3
打包
相关的性能
优化
。_
vue3
打包
优化
vue3
打包
优化
...
赞
踩
article
Python
数据结构
之
图
与
二叉
查找
树_
python
数据结构
图
和
查找
...
目录
图
的基础知识
图
的深度优先搜索与宽度优先搜索课程安排 (LeetCode 207,210,630)最小高度的树 (Le...
赞
踩
article
Python
连接
SQLite
数据库
基础教程_import
sqlite3
conn
= sqlite...
SQLite
是一种轻量级的嵌入式
数据库
,常用于小型项目和移动应用程序。
Python
提供了内置的
sqlite3
模块,可以方...
赞
踩
article
Linux
内核
参数
调优以应对
SYN
攻击_
linux
tcp
syn
怎么预防...
今天继续给大家介绍
Linux
运维相关知识,本文主要内容是
Linux
内核
参数
调优以应对
SYN
攻击。一、
SYN
攻击简介二、相...
赞
踩
article
mybatis
与
spring
集成
_
mybatis
+
spring
...
本文档详细介绍了Java面试常见问题解答,涵盖了Spring框架、MyBatis、多线程、高并发、缓存等内容,提供学习笔...
赞
踩
article
【
数学
建模
常用
模型
】
分类
专题_
数学
建模
分类
模型
应用
...
这次介绍一下数模国赛常用的
分类
方法,以下这方法也是现在
应用
比较广泛的
分类
方法:K-近邻算法(k-Nearest Neig...
赞
踩
article
python
怎样
使用
_
python
–
tkinter
:如何
使用
after
方法...
你需要给出一个在时间延迟之后被调用的函数作为第
after
的第二个参数:
after
(delay
_
ms, callback=...
赞
踩
相关标签
fpga开发
zynq
verilog
大数据
flink
服务器
iis
internet
service
asp
脚本
vue.js
javascript
前端
c++
开发语言
分布式
rabbitmq
redis
网络
网络协议
物联网
doris
数学建模