rtmp规范翻译1.0.docx

  1. 1、本文档共31页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实时消息协议流的分块版权声明:版权(c)2009 Adobe系统有限公司。全权所有。摘要:本备忘录描述实时消息协议块流。块流是一种应用层协议,主要用于通过一种合适的传输层协议(例如TCP)复用、打包多媒体数据流(音频,视频和交互数据)。目录:简介术语定义字节序、对齐和时间格式消息格式握手握手序列C0 和 S0 格式C1 和 S1 格式C2 和 S2 格式握手示意图块块格式块基本头块消息头类型 0类型 1类型 2类型 3扩展时间格式示例示例 1示例 2协议控制消息设置块的大小关于消息参考规范参考信息参考确认(致谢)简介本文档规定实时消息协议块流(RTMP 块流)。分块为更高层的多媒体流协议提供复用和分组服务。虽然RTMP块流是为协同RTMP协议工作而设计的,但是它任然可以处理任何发送消息流的协议。每个消息包含时间戳和负载类型标志。RTMP块流和RTMP共同适用于各种形式的音视频应用,从点到点和点到多的实时直播,到vod服务,到交互式视频会议。当配合像[TCP]这样的可靠传输协议使用时,RTMP块流保证跨流的所有消息按时间戳序列一个接一个地传输。RTMP块流不提供优先级或类似的控制,但是可以通过更高层的协议提供类似的服务。例如,视频直播服务可以基于每个消息的发送时间和答复时间选择丢弃视频消息,使慢的客户端能及时接受到音频消息。RTM块流包含自己的带内协议控制消息,并且提供了让更高层的协议嵌入用户控制消息的机制。术语本文档中的关键词”必须”、”一定不”、”要求”、”可以”、”不可以”、”应该”、”不应该”、”建议”、”可能”和”可选”的解释参考文档[BCP14][RFC2119]。定义负载:分组中所包含的数据。例如音频样本和压缩视频数据。负载格式和解释不在本文档的描述范围之内。分组:一个数据分组由固定的头和负载数据组成。一些底层协议可能需要定义分组的封装。端口:在一个给定计算机中区分不同目标的抽象。在TCP/IP协议中用一个小的整数来表示端口。OSI中的传输选择器等同于端口的概念。传输地址:用于表示一个传输层终端的网络地址和端口的组合。例如IP地址和TCP端口。分组从源地址传输到目标地址。消息流:允许消息流动的逻辑上的通讯通道。消息流ID:每个消息所关联的ID,用于区分其所在的消息流。块:一个消息片段。消息通常在被放到网络上传输之前被分成小的部分并且被交错存取。分块确保跨流的所有消息按时间戳顺序被不断的传输。块流:允许块按照某一方向流动的逻辑上的通讯通道。块流可以从客户端流向服务端,也可以从服务端流向客户端。块流ID:每个块所关联的用于区分其所在块流的ID。复用:把分开的音视频数据整合到一个数据流,让多个音视频流可以同步地传输的过程。解复用:复用的反向过程。交互的音视频数据被收集成原始的音频数据和视频数据。字节序、对齐和时间格式所有完整的字段都是按网络字节序被承载的,即,零字节是第一个字节,零位是一个字或字段中最显著的位。这种字节序就是所谓的”big-endian”。这种传输顺序的详细描述见[STD5]。除非另行说明,本文档中的数字都是十进制数。在没有特别说明的情况下RTMP块流中的所有数据都是按字节对齐的。例如,一个16位字段可能在奇数字节偏移的位置。在标有延拓的地方,延拓字节应赋予零值。 RTMP块流中的时间戳是用整数表示的,以毫秒为单位的相对时间,相对于一个未规定的起始时间。一般,每个块流的时间戳都从0开始,但是只要通讯的双方用统一的起始时间,可以不使用这种方法。要注意的是,这样跨多个块流(特别是不同主机之间)的同步需要用另外的机制来实现。时间戳必须是单调递增的,并且是线性增长的。这样可以使应用程序处理同步,测量带宽,注入检测和进行流控制。因为时间戳只有32位长,所以只能在50天以内循环。但是,因为流是可以不断的运行的,潜在地可以多年才结束?,所以RTMP块流应用程序必须对减法和比较使用模运算,并且能够处理这种回绕。只要通讯双方一致,任何合理的方法都可使用。例如,一个应用程序可以假设,相邻的时间戳是2^31毫秒,那么1000在4000000000之后,3000000000在4000000000之前。时间戳增量也是以毫秒为单位的无符号整数。时间戳增量可以是24位或32位长。消息格式(可以参考消息格式文档的第4节)消息格式依赖于上层协议,可以被分成多个块以支持复用。但是消息格式必须包含下面这些创建块所必须的字段。时间戳:消息时间戳,占4个字节。长度:消息负载的长度,如果消息头无法被消减的话,应该包含在长度里,这个字段在块头中占3个字节。类型ID:一些类型ID是为消息控制协议保留的。这些ID繁衍供RTMP块流协议和高层协议使用的信息。所有其他的ID都用于更高层协议。RTMP块流协议对这些ID做不透明处理。事实上,RTMP

文档评论(0)

___________ + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档