搜索
查看
编辑修改
首页
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
48天笔试训练错题——day08
2
idea文件名或扩展名太长_idea 文名扩展名大长,
3
蓝桥杯第六届省赛javaB试题及解析(不断更新)_蓝桥杯算法赛第六周题解析
4
程序员怎样才能写出一篇好的博客或者技术文章?_如何写前端文章(1)_前端程序员博客一般写什么
5
赶紧收藏!2024 年最常见 20道 MySQL面试题(一)_mysql面试题2024
6
【备案】备案是在域名还是云服务器?如何备案?_域名备案还是服务器备案
7
NodeManager启动错误_error nodemanager.nodemanager: error starting node
8
python的特点和优点-Python的优点和缺点有哪些?Python语言的特点
9
C200/A2/1/1/1/00 I/O 数量充足_c200 a2
10
蓝桥杯python每日一题——回文数_for i in range(1000, 10000): if str(i) == str(i)[:
当前位置:
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
7000 的
HDMI
显示
实验_
zynq
7000
hdmi
显示
2021...
用了很多年的
zynq
7000,一直就没做
hdmi
显示
实验。前几天终于做了这个实验,也就做一个总结。我的实验是在微相的...
赞
踩
article
【踩坑笔记】
linux
搭建
kafka
集群
,
详细到
复制
命令就能成功(1)_
kafka
主从
复制
搭建
...
自我介绍一下
,
小编13年上海交大毕业
,
曾经在小公司待过
,
也去过华为、OPPO等大厂
,
18年进入阿里一直到现在。深知大多数...
赞
踩
article
大
数据
技术中
的
伦理
问题
...
前言:从2012年开始,
大
数据
(big data)一词越来越多地被提及,人们用它来描述和定义信息爆炸时代产生
的
海量
数据
,...
赞
踩
article
vue3
+
vite
_
vite
-
plugin
-
imagemin
...
默认情况下,浏览器重复请求相同名称的静态资源时,会直接使用缓存的资源。利用这个机制我们可以将不会经常更新的代码单独打包成...
赞
踩
article
如何解决报错:“
ModuleNotFoundError
: No
module
named
‘appi...
from
appium
.
webdriver
.
common
.
appium
by import AppiumBy导入Appiu...
赞
踩
article
python
线程
tk
inter
gui界面 | lambada
函数
在
tk
inter
中的应用_
tk
界...
前面的文章已经介绍过两种小技巧,让我们回顾一下,就是:1、在window.mainloop()前一定要加window.a...
赞
踩
article
java
.
io
.
filenotfoundexcept
io
n
:_
Java
IO FileNotFoun...
一般来说是因为父路径缺乏,或者文件没创建。举一个例子Android中1,父路径缺乏String path=Environ...
赞
踩
article
MyBatisPlus
----
MyBatisX
插件
_
mybatis
跳转
插件
...
MyBatis-Plus 为我们提供了强大的 mapper 和 service 模板,能够大大的提升开发效率但是在真正的...
赞
踩
article
实战
SRC
漏洞
挖掘
全过程,流程详细【
网络安全
】_
src
实战
...
记录一次完整的某
SRC
漏洞
挖掘
实战
,为期一个多星期。文章有点长,请耐心看完,记录了完整的
SRC
漏洞
挖掘
实战
一句话,柿子要...
赞
踩
article
Yarn
资源
调度
器_
yarn
cap...
Yarn
资源
调度
器Hadoop的作业
调度
器主要有三种:FIFO,Capcity Schedule和Fair Schedu...
赞
踩
article
adb
shell
settings...
adb
shell
settings put system screen_off_timeout 60000C:\>ad...
赞
踩
article
Oracle
索引
详解_
oracle
加
索引
...
索引
是建立在表的一列或多个列上的辅助对象,目的是加快访问表中的数据;
Oracle
存储
索引
的也是如此,只不过是;
索引
由根节...
赞
踩
article
vue
中
使用
json
-
editor
个人总结_
vue
-
json
-
editor
...
jdorn/
json
-edior在线体验
json
编辑器有很多种,这边为了呈现给用户看,所以无法
使用
原始的
json
编辑器,...
赞
踩
article
0—基于
FPGA
(
ZYNQ
-Z2)
的
多功能
小车
_
zynq
小车
...
在电子技术与创新
的
课设中我们组选择了这个题目。我们在设计
的
时候遇到了非常多
的
问题,但是网上
的
对应资料又非常少,因此在完成...
赞
踩
article
2024
最新
最全软件
测试
技术
(六)
性能
测试
_
软件
测试
最新
技术
...
2023
最新
自动化
测试
自学教程新手小白26天入门最详细教程,目前已有300多人通过学习这套教程入职大厂!!
_
哔哩哔哩
_
b...
赞
踩
article
C
语言
实现
单链
表
(可直接使用+详细注释)_
c
语言
单链
表
程序代码
...
大学生-程序元,开始记录生活南枫在这里和大家一同进步,一同交流学习注:代码实现用Visual Studio 2019#d...
赞
踩
article
Android
开发
--
使用
adb
访问操作
sqlite
数据库
_
adb
sqlite
...
adb
命令访问Sqlite
数据库
。
adb
sqlite
...
赞
踩
article
Redis
在
SpringBoot
中的简单
应用
_
redis
在
springboot
中的
应用
...
本文作为作者学习的日志,仅供学习使用_
redis
在
springboot
中的
应用
redis
在
springboot
中的
应用
...
赞
踩
article
Apache
Doris
系
列
: 基础篇-单独
更新
一
列
_
doris
部分
列
更新
...
本文举例说明
Apache
Doris
如何实现单独
更新
一
列
,数据表使用 Aggregate 聚合模型。需要
更新
的字段使用关...
赞
踩
article
使用
adb
查看
Settings
Provider
的值_
settings
.
global
...
使用
adb
查看
Settings
Provider
的值 在Android的ROM开发中,经常会遇到一...
赞
踩
相关标签
zynq
hdmi
笔记
linux
kafka
大数据
海量数据
伦理问题
vue
python
开发语言
appium
java.io.filenotfoundexception:
mybatis
数据库
java
web安全
安全
hadoop
adb
Android
数据仓库
oracle
json-editor
fpga开发