RTMP_reference.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
RTMP_reference

RTMP Real-time Messaging Protocol 介绍 RTMP定义 实时消息协议(RTMP)是Adobe公司开发的专用协议,是为了在flash播放器和服务器之间通过因特传输的音频,视频及其他数据流的协议。 RTMP Chunk Stream 2.1简介 RTMP消息块流是为多媒体流提供多路传输和数据打包而设计的应用级协议,尽管RTMP消息块流设计时是为了与RTMP协议一起工作,但是他也可以处理任何传送消息流的协议,每一个消息包含时间戳和有效负载类型标示,RTMP消息块流和RTMP一起适用于多样性音视频应用程序,包括一对一和一对多直播和视频点播服务以及交互式会议应用程序。当同像TCP这样的可靠传输协议一起应用时,RTMP消息块流提供可靠的时间戳进行端到端全信息传送。RTMP消息块流不提供任何控制的优先级别和相似功能,但是可以使用更高级协议来提供这样的优先级控制操作。 专有词汇解释: 包: 一个数据包由固定的包头和有效负载数据组成,一些底层协议或许需要包的封装来被定义。 有效负载: 包含在包中的数据,就像音频样本或者压缩的视频数据。 端口: 在TCP/IP协议中定义的用正整数表示的端口号用于在传输中提取以区分目标主机的不同应用。 地址: 网络地址和端口的组合识别一个传输层终端端口,例如一个IP地址和TCP端口,数据包从一个源传输层地址传送到目标段的传输层地址。 消息流: 一个通信的逻辑通道,允许消息流通。 消息流ID: 每一个消息拥有一个分配的ID来识别正在流动消息流。 消息块: 消息的片段,消息被分成小的部分,在他们在网络中发送之前交叉存储。消息块确保定制时间戳的端到端全消息传送,穿过多层流。 消息块流: 一个通信的逻辑通道,允许消息块在一个特定的方向上流通,消息块流可以从客户端传送到服务器,也可以相反。 消息块流ID: 每一个消息块有一个分配的ID用于识别正在流动的消息块流。 复合技术: 把分开的音视频数据组合成一条音视频流的过程,使同时传送许多音视频数据成为可能。 逆复合技术: 复合的反向过程,交叉存取组装的音频视频数据,使他们成为最初的音视频数据。 消息格式 RTMP消息包含两个部分,包头和有效负载。包头包含时间戳、消息长度、消息类型以及消息流ID。有效负载是包含在消息中的实际数据,例如:它可以是一些音频样本或者压缩的视频数据。 1 、时间戳delta(timestamp delta):消息的时间戳,占3个字节 2 、消息长度(message length):3个字节。消息的有效负载的长度,如果消息头不能被省略,他应该包含在长度中,这个字段在消息块包头中。注意这一般和消息块的有效负载长度是不一样的。消息块的有效负载长度是除了最后一个消息块外其他所有消息块都取消息块大小的最大值(通常默认为128字节)。 3 、消息类型 id(message type id):1个字节。协议控制消息的类型字段的范围是被保留的,这些传播信息的消息被RTMP消息块和高层协议处理,所有其他的类型ID可被高层协议使用,被RTMP消息块当做不透明的值 4 消息流ID(message stream id):4个字节。消息流ID可以是任意值,不同的消息复用成同一消息块流以及解复用都是基于消息流ID。 2.4握手 1 、一个RTMP通信以握手开始,RTMP中的握手不像其他的协议,他包含三个固定长度的块。而不是带有头的可变长的块。 客户(发起连接的终端)和服务器每次发送同样的三个块,被客户段发送的消息块被指定为C0,C1,C2,被服务器端发送的消息被指定为S0,S1,S2。 2 、握手的顺序 握手以客户端发送C0和C1消息块位开始,客户端必须等到S1到达在发送C2。客户端必须等到S2接收到才可以发送其他的数据;服务端必须等到C0到达才发送S0和S1,也许会等到C1之后再发送。服务端必须等到C1到达才发送S2,服务端必须等到C2到达后才发送其他数据。 C0/S0: Version: 8 bits In C0, this field identifies the RTMP version requested by the client. In S0, this field identifies the RTMP version selected by the server. The version defined by this specification is 3. C1/S1: Time: 4 bytes This field contains a timestamp, which SHOULD be used as the epoch for all future chunks sent from this endpoint

文档评论(0)

juhui05 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档