流媒体服务器架构知识
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
RTMP (Real-Time Messaging Protocol )
• RTMP协议(Real Time Messaging Protocol)是被Flash用于对象,视频,音频的 传输.该协议建立在TCP协议或者轮询 HTTP协议之上. • RTMP协议就像一个用来装数据包的容器, 这些数据可以是AMF格式的数据,也可以是 FLV中的视/音频数据. • 一个单一的连接可以通过不同的通道传输 多路网络流.这些通道中的包都是按照固定 大小的包传输的.
Red5 架构特征
• • • • Streaming Audio/Video(Flv and Mp3) Recording Client Streams(Flv only) Shared Objects Live Stream Publishing(live h264 supported) • Remoting(AMF0/AMF3) • Edge Origin Solution on Terracotta
H.264/MPEG-4 AVC
• 是由ITU-T视频编码专家组(VCEG)和 ISO/IEC动态图像专家组(MPEG)联合 组成的联合视频组(JVT,Joint Video Team)提出的高度压缩数字视频编解码器 标准。
• 应用:光盘存储 、数字电视 、卫星数字电 视 、网络电视 IPTV、VOD
RTMP
• RTMP协议是一个基于TCP的高层协议族 • 在RTMP协议中信令和媒体数据都称之为 Message,在网络中传输这些Message • 每一个Message + head都是由一个和多个 chunk组成的 ,因为TCP的包长度是有限制 的(一般来说不超过1500个字节),而 RTMP的Message长度是有可能很大的, 所以要对Message进行分片处理
Apache集群技术
JK负载均衡器
• 它应该实现了负载均衡算法,通过将请求 分发到不同的服务器来达到高可用性和高 效的处理能力 • 它会监控集群中节点的健康状况,来防止 将请求转发到一个失败的节点。 • 它会使用“会话粘滞”技术以确保来自同 一个用户的请求会被转发到同一个服务器。
主流流媒体服务器
video tag 数据区
Shared Objects
• SharedObject(共享对象)可以看作是小 型的数据库,它用来存储任何Flash支持的 数据类型,比如数字、字符串、数组和对 象等等 • SharedObject按存放位置可分为本地型 (存在客户端)和远程型(存在服务器 端)。本地型共享对象的扩展名为.sol。
FLV(Flash Video)
• FLV是一个二进制文件,由文件头(FLV header)和很多tag组成。tag又可以分成 三类:audio,video,script,分别代表音频 流,视频流,脚本流(关键字或者文件信 息之类)。
FLV Header • 包括文件类型之wenku.baidu.com的全局信息
FLV body 由很多tag组成
• • • • Flash Media Streaming Server 4.5 Flash Media Interactive Server 4.5 Flash Media Enterprise Server 4.5 Adobe Flash Media Server 4 on Amazon Web Services
Remote Shared Objects
• SharedObjects (SOs) 主要用于多客户端 的实时数据同步和方法统一调用。 SharedObject 是一个远程的对象能够被 多个在同一个域(scope)里面的客户端 共享。 • SharedObject可以跟踪和广播消息,连接 到SharedObject中的其中任何一个客户端 改变了SharedObject中的数据, SharedObject就会将最新的数据广播到连 接到它的所有客户端
AMF
• AMF是Adobe独家开发出 来的通信协议,它采用二进 制压缩,序列化、反序列化、 传输数据,从而为Flash 播 放器与Flash Remoting网 关通信提供了一种轻量级的、 高效能的通信方式。
AMF
• AMF最大的特色在于可直接将Flash内置对 象,例如Object, Array, Date, XML,传 回服务器端,并且在服务器端自动进行解 析成适当的对象 • 由于AMF采用二进制编码,这种方式可以 高度压缩数据,因此非常适合用来传递大 量的资料。数据量越大,Flash Remoting 的传输效能就越高,远远超过Web Service
Adobe Flash Media Server
Red5 Media Server
• Red5 includes support for the latest multiuser API’s including NetConnection, NetStream and SharedObject’s while providing a powerful RTMP / Servlet implementation. In addition to support for the RTMP protocol, the application server has an embedded Tomcat Servlet container for JEE Web Applications. Application development draws additional benefits from the Spring Framework and Scope based event driven services.
RTMP有三种变种
• 1)工作在TCP之上的明文协议,使用 端口1935; • 2)RTMPT封装在HTTP请求之中,可 穿越防火墙; • 3)RTMPS类似RTMPT,但使用的是 HTTPS连接
RTMP通信方式
RTMFP
• RTMFP is a protocol that provides a way to establish client-to-client communications over UDP. • Once the connection is made, each Flash client is assigned a unique ID and can publish "direct" UDP streams containing audio, video, and data that are associated with its ID. Any clients connected to Stratus or to the same application instance in FMS that know the stream name and client ID of a publishing client can arrange to receive the other client's UDP stream directly.
RTMFP 通信方式
RTMFP vs. RTMP
• RTMP is a TCP-based protocol designed to facilitate client-to-serverto-client communications. Since RTMP works over TCP, a persistent and bidirectional connection is established between each Flash client and the server. Audio, video, and data flows within unidirectional streams from clients to the server and back out to the other clients over RTMP connections.
Local Shared Object
• Flash的Cookie,可以用来记录客户的浏 览次数、自动登录信息、游戏存盘信息等 等。 • 他是Flash存储数据在客户端的唯一方法。 • 默认大小为10K
Shared Objects
VP6 and H.264 codecs
TrueMotion VP6 是由On2 Technologies所推出 的视频压缩编解码器(video codec) On2 Technologies,是美国一家视讯压缩科技公 司,前身是The Duck Corporation[1],以开发 TrueMotion S、TrueMotion 2、VP3、VP4、 VP5、TrueMotion VP6, TrueMotion VP7 以及 VP8等产品闻名。2009年8月,Google以1亿 650万美元收购On2 2004年, On2的VP6 被 Macromedia Flash 8 video codec 所采用
流媒体服务器架构知识
视频流知识
• 流文件(Flv)
• Shared Objects
• VP6 and H.264 codecs • RTMFP vs. RTMP http://broadcast.oreilly.com/2009/04/adobes -real-time-media-flow-pr.html • Secure Communications SSL certificate ,SSL and Tomcat http://tomcat.apache.org/tomcat-6.0doc/ssl-howto.html • 集群和负载均衡
什么是 scope?
你可以把scope 当作一个聊天室,这个聊天 室是通过URI 链接到服务器
例如:rtmp://localhost/red5test/lobby "red5test" 是application 域(scope) "lobby" 是聊天室作用域,也即 "red5test" 子域
Remote Shared Objects
• Adobe Flash Media Server 目前最新版本4.5 • Red 5 最新版本1.0 RC1 注:RC1, Release Candidate 的缩写,意 思是发布倒计时,该版本已经完成全部功 能并清除大部分的BUG。到了这个阶段只 会除BUG,不会对软件做任何大的更改。
Adobe Flash Media Server family
Red5 Media Server
• http://www.red5.org/ • Terracotta Terracotta是一款由美国Terracotta公司 开发的著名开源Java集群平台。它在JVM 与Java应用之间实现了一个专门处理集群 功能的抽象层,以其特有的增量检测、智 能定向传送、分布式协作、服务器镜像、 分片等技术,允许用户在不改变现有系统 代码的情况下实现单机Java应用向集群话 应用的无缝迁移。
网站推荐
• http://grepcode.com/ 源代码 • http://www.infoq.com/cn/ 软件论坛 • http://code.taobao.org/ 淘宝开源 • http://www.taobaodba.com/ 淘宝DBA • http://rdc.taobao.com/team/jm/ 中间件 • http://www.alidba.net/ 阿里DBA • http://rdc.taobao.com/blog/cs/ 核心系统
AMF0和AMF3
• AMF从Flash MX时代的AMF0发展到现在 的AMF3。AMF3用作Flash Playe 9的 ActionScript 3.0的默认序列化格式
负载均衡 (Load Balancing)
• 负载均衡(又称为负载分担),英文名称 为Load Balance,其意思就是将负载(工 作任务)进行平衡、分摊到多个操作单元 上进行执行,例如Web服务器、FTP服务 器、企业关键应用服务器和其它关键任务 服务器等,从而共同完成工作任务。