体系结构概述
bbb使用nginx(engine x)作为代理服务器将请求发送给bbb客户端,tomcat6调用api,支持当客户端连接使用RTMPT(port 80, RTMPT 协议是HTTP协议的扩展,Adobe的Flash Player和media server支持。RTMPT的命令基本都是用来控制网络连接的持久性的。)代替RTMP(port 1935,RTMP 全称Routing Table Maintenance Protocol(路由选择表维护协议) 在 AppleTalk 协议组中,路由选择表维护协议(RTMP,Routing Table Protocol)是一种传输层协议,它在 AppleTalk 路由器中建立并维护路由选择表。)时支持http通道!
1,Ngnix代理bbb-web和bbb-aps来支持RTMPT服务bbb-client!
2,Grails应用负责操作创建会议和调度,同时负责加入会议登进登出!
3,负责将pdf资料转换成flash!
4,当SWFTools无法进行转换时,负责将pdf演示文档转换成flash,当然,会生成缩略图!
5,bbb-web与bbb-apps之间的信息通道!
6,red5负责同步会议的各个参与者!
7,负责监听用户的事件,如进入或者离开会议,并且发送命令到FreeSWITCH!
8,语音会话服务!
9,一个链接asterisk的语音应用
10,桌面共享
11,视频会话
BBB RED5 APPS
red5作为主要的与客户端的交互服务!
1,BBB应用的主要入口
2,不同的BBB应用
3,负责客户端的加入,离开,应用的建立,记录以及通知
4,负责处理来自客户端的远程调用
5,使用sharedObject来同步所有的客户端
6,语言应用使用AMI来监听事件,并且发送命令道freeswitch(一个跨平台的开源电话交换平台)
7,展示应用监听来自bbb-web的文档转换更新信息!
8,视频会话应用!
9,语音会话应用!
10,桌面共享应用!
参加一个语音会议的图解流程
1,用户使用移动电话或者软件电话进行呼叫
1a,用户利用已经潜入客户端的网络电话进行呼叫
2,将呼叫者加入会话,更新事件和用户状态
3,客户端显示用户已经加入会话
4,例如调度者关闭一个用户的会话
5,使freeswitch沉默用户的信息发送已经事件
上传展示资料
1,上传pdf文档
2,请求发给bbb-web
3,使用pdf2swf来完成swf的转换
3a,如果上步失败,用imagemagick和ghostscript( ImageMagick是一套功能强大、稳定而且免费的工具集和开发包,可以用来读、写和处理超过89种基本格式的图片文件,包括流行的TIFF、JPEG、GIF、 PNG、PDF以及PhotoCD等格式!Ghostscript是一套建基于Adobe、PostScript及可移植文档格式(PDF)的页面描述语言等而编译成的免费软件)进行转换
4,发送会话更新
5,更新上传者会话
桌面共享
1,应用调用blockManaer来传递屏幕尺寸
2,blockfactory安装screen video codec v1中的说明来创建block
3,blockStreamsender向服务器发送ScreenCaptureStart
4,BlockMessageReceiver解码信息,并发送给sessionManager
5,ScreenManger创建会话的同时,创建了BlockManager,BlockManager调用BlockFactory创建Bloocks!Bolcks会 拿到来自客户端的SVC!的数据
6,会话创建了一个桌面共享流,并且告诉客户端开始桌面共享了!
7,screenVideoViewer构建食品播放流数据
8,ScreenCaptureTasker利用JAVA Robot搞屏幕快照,并且通知BlockManager进行更新
9,BlockStreamSender拿到所有的blocks从blockmanager,BLock调用ScreenVideoEncoder对当前的屏幕进行编码,如果block已经改变,利用ScreenCaptureUpdate发送svc1编码过的数据到服务器
10,BlockStreamReceiver编码ScreenCapterUpdate的信息,然后转递解码的信息到SessionManager,然后根据信息来决定会话,并且传递数据
11,Session传递数据到BlockManager来存储并且统一client的block
12,BlockManager定期的通知FrameGenerator创建SVC1使用来自它本身管理的Blocks
13,FrameGenerator传递播放SVC1流给客户端视频流播放
14,ScreenVidelViewer来播放SVC1 frame
集成好的VOIP(red5 phone)
VoIP(Voice over Internet Protocol)简而言之就是将模拟声音讯号(Voice)数字化,以数据封包(Data Packet)的形式在 IP 数据网络 (IP Network)上做实时传递。VoIP最大的优势是能广泛地采用Internet和全球IP互连的环境,提供比传统业务更多、更好的服务。VoIP可以在IP网络上便宜的传送语音、传真、视频、和数据等业务,如统一消息、虚拟电话、虚拟语音/传真邮箱、查号业务、Internet呼叫中心、Internet呼叫管理、电视会议、电子商务、传真存储转发和各种信息的存储转发等。
1,参与者点击按钮参与会议
2,sip应用调用会议标识来参加会议
3,客户端状态更新
本文有些地方可能写的有失误的地方,望海涵~,转载请表明出处http://yangactive.iteye.com/blog/1622191
分享到:
相关推荐
BigBlueButton是一个强大的开源项目,专门针对远程教育和在线协作设计。它提供了丰富的功能,使得网络教学和视频会议变得高效且互动性强。这个系统的核心目标是创造一个接近真实教室体验的虚拟环境,让教师和学生...
BigBlueButton是用于在线学习的开源Web会议系统。 我们相信,每个使用Web浏览器的学生都应能够获得高质量的在线学习经验。 我们打算使用BigBlueButton使其成为可能。 BigBlueButton支持幻灯片(PDF和LibreOffice...
【PHP实例开发源码——迅睿PHP开源视频电影CMS系统】是一个基于PHP编程语言的开源内容管理系统,专门用于构建视频和电影网站。这个系统提供了一整套功能,帮助用户高效地管理和展示多媒体内容,同时也为开发者提供了...
在Android平台上进行离线地图开发是一项重要的技术,它允许用户在无网络连接的情况下查看和使用地图数据。Bigplanet是一款开源的Android离线地图解决方案,它为开发者提供了丰富的功能和自定义选项,使得创建本地化...
【标题】"PHP实例开发源码——DSKMS在线培训开源视频管理系统.zip" 提供的是一套基于PHP语言实现的在线培训视频管理系统的源代码。这个系统可能包含了用于上传、存储、分类、播放以及管理在线视频课程的所有必要功能...
【PHP实例开发源码——8tupian图片加密平台】是一个基于PHP编程语言构建的图片加密平台项目。这个平台主要用于保护图片的安全性,通过特定的加密算法,将原始图片转化为无法直接查看的形式,只有经过解密处理才能...
【标题】"PHP实例开发源码——phpBB 3.1.9 繁体中文版.zip" 提供了一个基于PHP编程语言的开源讨论板软件——phpBB的源代码,版本为3.1.9,并且是繁体中文语言版本。phpBB是一个流行的网络论坛系统,用于创建在线社区...
【PHP实例开发源码——BidCms模仿Pinterest的开源图片分享系统】 PHP是一种广泛使用的开源脚本语言,尤其在Web开发领域中占据了重要的地位。这个实例项目“BidCms模仿Pinterest的开源图片分享系统”是基于PHP进行...
超全 Lotus Domino Xpages 开发资料——lotus开发同步关系数据库归类资料 大全通过分类提供给大家,请大家根据需要下载 全开源,并且一看就懂,不保留 https://blog.csdn.net/weijia3624/article/details/107013401
标题中的“一个开源的视频会议软件源码”指的是一个可供公众查看、修改和分发的视频会议系统的原始代码。这通常意味着它遵循某种开源许可证,允许开发者社区参与项目的改进和定制,以满足不同用户的需求。 描述中...
【标题】"PHP实例开发源码——TalkPiece php开源垂直社区 v1.0 beta.zip" 涉及到的是一个基于PHP编程语言的开源社区项目,TalkPiece,它是一个专为特定兴趣群体或领域设计的社交平台。这个版本是v1.0 beta,意味着它...
【标题】"PHP实例开发源码——TPshop开源商城源码 php版.zip" 提供的是一个基于PHP语言的电子商务平台源代码,TPshop是一个流行的开源电商系统,它为开发者提供了构建在线商店的基础框架。这个压缩包包含的是TPshop...
【标题】"PHP实例开发源码——ThinkSNS 开源社交系统正式版.zip" 提供的是一个基于PHP语言开发的开源社交系统ThinkSNS的完整源代码。这个系统旨在为开发者提供一个构建社区、社交网络平台的基础框架,帮助开发者快速...
《JSP实例开发源码——JdonFramework开源框架》 JSP(JavaServer Pages)是一种在服务器端运行的编程技术,用于生成动态网页内容。它允许开发者将HTML代码与Java代码混合编写,使得Web应用的开发更为便捷。JSP实例...
3. **MVC架构**:为了保持代码的可维护性和可扩展性,开发者可能会采用MVC(Model-View-Controller)架构,将业务逻辑、数据模型和用户界面分离。 4. **文件管理**:下载系统的核心功能是处理文件上传和下载。这...
FastDFS特别适合于那些以文件为载体的在线服务,比如图片、视频和文档等。FastDFS使用专有API进行访问,并提供了C语言和Java语言的SDK,以及PHP扩展的SDK。FastDFS的架构相对简单,且特别适合解决大容量文件存储的...
开源硬件平台的发展不仅降低了嵌入式软硬件开发的学习门槛,也加速了创意的实现过程,使得创新变得更加容易。开源硬件项目强调的是四个核心理念:任何人都可以自由使用,探知原理,自由修改,以及自由地重新分发。 ...
《开源有益性激活中国Linux——专访Red Hat公司执行副总裁Katc Johnson》这篇文章主要探讨了开源软件,特别是Linux操作系统在中国的发展,以及Red Hat公司在此过程中的角色和策略。Red Hat作为全球最大的开源系统...