1.前言
大家都知道很多视频应用的app中都是使用RTMP格式的协议,这个是国际上共同使用的协议,我自己虽然做过了直播类型的app,但是从没时间深入的了解这个协议的基础,从这一篇开始让我们逐步揭开RTMP协议的神秘面纱,从应用层逐步进入原理层和底层。
2.定义
以下内容部分来自百度百科
RTMP是Real Time Messaging Protocol(实时消息传输协议)的首字母缩写。该协议基于TCP,是一个协议族,包括RTMP基本协议及RTMPT/RTMPS/RTMPE等多种变种。RTMP是一种设计用来进行实时数据通信的网络协议,主要用来在Flash/AIR平台和支持RTMP协议的流媒体/交互服务器之间进行音视频和数据通信。支持该协议的软件包括Adobe Media Server/Ultrant Media Server/red5等。
RTMP又是Routing Table Maintenance Protocol(路由选择表维护协议)的缩写。 在 AppleTalk 协议组中,路由选择表维护协议(RTMP,Routing Table Protocol)是一种传输层协议,它在 AppleTalk 路由器中建立并维护路由选择表。RTMP 基于路由选择信息协议(RIP)。正如 RIP 一样,RTMP 使用跳数作为路由计量标准。一个数据包从源 网络发送到目标网络,必须通过的路由器或其它中间介质节点数目的计算结果即为跳数。
下面我们看一下两张原理图理解一下。
3.协议概述
RTMP(Real Time Messaging Protocol)实时消息传送协议是Adobe Systems公司为Flash播放器和服务器之间音频、视频和数据传输 开发的开放协议。 它有多种变种:
-
RTMP工作在TCP之上,默认使用端口1935;
-
RTMPE在RTMP的基础上增加了加密功能;
-
RTMPS类似RTMPT,增加了TLS/SSL的安全功能。
4.协议详细介绍
RTMP协议(Real Time Messaging Protocol)是被Flash用于对象,视频,音频的传输。这个协议建立在TCP协议或者轮询HTTP协议之上。
RTMP协议就像一