`

RTMPT 协议

阅读更多

一、 概述
   RTMPT 协议是HTTP协议的扩展,Adobe的Flash Player和media server支持。RTMPT的命令基本都是用来控制网络连接的持久性的。在HTTP1.0的年代里,所有的HTTP请求都是建立一个网络连接,发出请求,得到回应,然后网络连接断开。在后来web世界变得越来越拥挤的时候,这个情况逐渐明显地成为一个性能话题,因此随着HTTP1.1标准的制订,HTTP的请求的网络连接就变成了默认情况下是持久性的长连接。
RTMPT用命令:OPEN, SEND, IDLE, CLOSE 来控制网络连接,在HTTP 1.1里这个功能是通过新增加两个额外的头项: Keep-Alive 和 Connection而实现的,它们都能以同样的方式像RTMPT一样保持网络连接的持久性。在处理RTMPT的请求时,所有的RTMPT的命令使用POST方法来处理请求和回应,此外的其他命令则可以使用GET方法。当我们回到HTTP 1.0的年代里,就会发现Adobe 的media server通过RTMPT来解决了那个时代web遇到的性能问题。这些命令只有Adobe的media server支持,其他的任何服务器都不支持这些命令。

二、 协议介绍


RTMPT协议基本上就是一个包装了RTMP的HTTP协议,它从客户端发送POST请求到服务器。由于HTTP 连接的非持久性本质,为了及时更新状态和数据,RTMPT需要客户端周期性向服务器轮询,取得服务器或者是其他客户端产生的通知事件。
在一个RTMPT的会话期间,有四种可能的请求类型从客户端发送到服务器,我们将在下面进行描述。
1. URL
URL的形式如下:
http://server/<comand>/[<client>/]<index>
<command>
   是RTMPT请求的类型(详细描述见下)
<client>
   给出执行这个请求的客户端的ID(只是在连接建立后才发送)
<index>
   是一个顺序增加的数字,好像是用来进行丢包检查的
2. 请求和回应
所有的连接请求都具有以下属性:
使用HTTP 1.1的POST;
Content type 是 application/x-fcs;
服务器和客户端的连接是长连接以减少网络负担;
HTTP的回应也有一些相同的特性:
Content type 是 application/x-fcs;
所有连接会话的回应里的第一个字节是用来控制客户端的轮询周期的,值越大轮询请求越少;
3. 轮询间隔
服务器开始返回数据时轮询周期一直是从0x01开始,大约在10个空的应答后增加一下这个值,最大的延迟时间值是0x21,它造成的结果是两个请求间大约有0.5秒的间隔。
Red5 现在是以以下的步骤增加:0x01, 0x03, 0x05, 0x09, 0x11, 0x21.
4. 初始化连接(OPEN 命令)
这是第一个发送到服务器的命令,在服务器上注册客户端,开始一个新的会话。服务器返回一个独一无二的ID(一般是一个数字),客户端在将来的请求中将使用这个ID。
注意:回复的数据中不包含轮询周期值,连接成功后会重设在URL中使用的索引值。
5. 客户端更新(SEND 命令)
在RTMP中客户端发送到服务器的数据不用修改,在附加上HTTP头后,就是一个HTTP的请求。
服务器回应HTTP的数据中第一个字节是控制轮询间隔的,如果后面还有数据,那就是RTMP的。

6. 轮询请求(IDLE 命令)
如果客户端没有数据了,它就得向服务器轮询更新,接收流数据或者像shared objects这样的事件。

7. 会话断开(CLOSE 命令)
如果客户端想中断连接,它可以发送close命令到服务器,服务器回复一个0x00.


原文url:http://www.joachim-bauch.de/tutorials/red5/SPEC-RTMPT.html/view

1
0
分享到:
评论

相关推荐

    酷播跨平台网页视频播放器v4.0

    酷播V4.0版跨平台网页视频播放器(完全免费/支持右键自定义),开放支持播放器... 特色功能说明: 1、支持流媒体RTMP协议、RTMPT协议、RTMPE协议( 全面支持SRS,red5,crtmp,FMS等流媒体的点播与直播 ),同时支持普通H

    功能超强的网络流媒体地址嗅探工具__酷抓coojah_6.8.193.0614终结版

    *修正rtmp协议解析的BUG,增加rtmpt协议支持 2009-02-22 酷抓6 6.1.0.0 Beta Build090222 *修改部分文件(比如mp4文件)抓取到但不显示的问题 +增加英文版帮助文件 +增加对mms、rtsp等协议的疑难网址拦截 2009-02-14...

    red5 1.0.8

    5. **RTMP与RTMPT支持**:RTMP是Red5的主要传输协议,1.0.8版本继续优化了RTMP协议的实现,同时支持通过HTTP隧道的RTMPT协议,增强了穿透防火墙的能力。 6. **HLS支持**:Red5 1.0.8提供对HLS协议的支持,这是苹果...

    red5的开发手册pdf

    以下是 RTMPT 协议的一些关键特性: - **URLs**:RTMPT 使用特定格式的 URL 来连接到服务器。 - **请求/响应**:客户端发送请求,服务器返回响应。 - **轮询间隔**:客户端定期向服务器发送轮询请求以维持连接。 - ...

    Red5说明文档 flex视频

    #### JRuby与RTMPT协议 除了Java,Red5还支持JRuby,即运行于Java虚拟机上的Ruby语言。文档中包含了使用JRuby编写Red5应用程序的示例,如`application.rb`和`demoservice.rb`,展示了如何将Ruby代码集成到Red5中,...

    酷播(极酷)跨平台多终端网页播放器 v4.0.zip

    1、支持流媒体RTMP协议、RTMPT协议、RTMPE协议( 全面支持SRS,red5,crtmp,FMS等流媒体的点播与直播 ),同时支持普通HTTP协议;(New) 2、支持6种广告功能:前置广告 / 视频广告 / 暂停广告 / 角标广告 / 后置广告 / ...

    bigbluebutton技术文档

    架构方面,Nginx作为反向代理服务器,处理来自客户端的请求,支持RTMPT协议,使得流媒体数据能够在防火墙后面顺利传输。Grails应用`bbb-web`处理会议创建、日程安排以及登录注销等业务逻辑。Swftools和ImageMagick/...

    Abdroid基于RTMP协议的视频上传和在线播放源码

    Android Eclipse 下工程。 特点:体积小、缓冲快。接入代码简单。可将摄像头数据实时编码上传到...也可在线播放RTMP、RTMPT协议的视频 不足:JNI代码里未提供暂停、跳转等功能。只适用于做视频直播。 arm-v7下亲测可用

    dd-wrt fantasia

    添加rtmpt协议支持(l7filter) 缩短系统启动时间 缩短停止服务进程时的等待时间 1.1 - Build 20120321 更新部分l7filter协议特征 修正“IP限速”的一处bug 修正“简易QoS”的一处bug 1.1 - Build 20120323 内核的...

    rtmp协议官方文档中文版

    7. **扩展性**:RTMP协议允许进行扩展以适应新的需求,例如RTMPT(通过HTTP隧道)、RTMPS(通过SSL/TLS加密)和RTMFP(使用UDP的Flash P2P)等变种。 《rtmp_specification_1.0_cn.pdf》则是该官方文档的中文翻译...

    RTMP协议规范中文翻译

    7. **扩展性**:RTMP协议允许通过扩展命令和自定义消息来适应新的需求,例如RTMPT(通过HTTP隧道的RTMP)、RTMPS(通过SSL加密的RTMP)等。 8. **元数据**:RTMP支持动态元数据,这意味着在流媒体传输过程中可以...

    RTMP 协议下载C++实现

    此外,还可以扩展到支持RTMPT(HTTP tunneling)、RTMPS(SSL/TLS加密)等变种。 总之,C++实现RTMP协议下载是一个涉及网络编程、协议解析和多媒体处理等多个领域的复杂任务,需要扎实的编程基础和深入的技术理解。...

    RTMP协议分析

    ### RTMP协议详解 #### 一、概述 RTMP(Real Time Messaging Protocol)协议是一种由Adobe公司开发的应用层协议,其主要目标在于高效地传输多媒体数据。随着虚拟现实(VR)、在线直播等技术领域的快速发展,RTMP...

    rtmp协议规范(中文翻译)

    - **RTMPT**:通过HTTP隧道实现RTMP,绕过防火墙限制。 - **RTMPS**:通过SSL/TLS加密的RTMP,提供安全的传输。 - **RTMPF**:支持错误反馈,提高网络传输的可靠性。 - **RTMPE**:使用Adobe的私有加密协议,...

    rtmp协议规范翻译1.0

    10. **扩展与变种**:Adobe还推出了RTMPT、RTMPS和RTMPE等变种,分别通过HTTP隧道、SSL加密和加密数据传输来增强协议的功能和安全性。 “rtmp规范翻译1.0”文档可能详细解释了这些概念,并可能包括了协议的详细流程...

    RTMP推流测试源码及文档.rar

    该协议基于TCP,是一个协议族,包括RTMP基本协议及RTMPT/RTMPS/RTMPE等多种变种。RTMP是一种设计用来进行实时数据通信的网络协议,主要用来在Flash/AIR平台和支持RTMP协议的流媒体/交互服务器之间进行音视频和数据...

    NodePlayer.js-master.zip

    该协议基于TCP,是一个协议族,包括RTMP基本协议及RTMPT/RTMPS/RTMPE等多种变种。RTMP是一种设计用来进行实时数据通信的网络协议,主要用来在Flash/AIR平台和支持RTMP协议的流媒体/交互服务器之间进行音视频和数据...

    RTMP 规范中英文对照阅读版pdf[带书签]

    7. **扩展性与兼容性**:RTMP协议的设计允许未来添加新的特性和功能,同时也考虑了与其他协议(如RTMFP和RTMPT)的兼容性。 书签功能在PDF文档中起到导航的作用,帮助读者快速定位到感兴趣的部分,提高学习效率。有...

Global site tag (gtag.js) - Google Analytics