RTMP是一种常用的推流协议。一般用于推拉FLV的音视频数据。
模型
刚接触到RTMP的时候,我们一般只了解到怎么推流,或者怎么点播,甚至有时候会迷惑,到底RTMP是用来作什么的?
其实,当我们谈及RTMP的时候,有这么几种概念:
- 一种“容器”,里面封装了音视频数据,只不它是实时的流数据
- 一个点播服务,可以有多个客户端同时观看一个RTMP地址的媒体
- 一种推流方式,把本地的资源“广播”给客户端
当然,这些其实都是RTMP的东西,请看网络模型:
![2555075e3c154103102cfe385b9c59b5.png](https://i-blog.csdnimg.cn/blog_migrate/505f083047f84a9a51bcfd7de22cfb3a.png)
对于传输通路来说,这是一种“容器”;对于播放器而言,这是一个点播服务;对于媒体源而言,这是一种推流方式。
原理
RTMP基于TCP,默认使用端口1935,是一个应用层的协议。
协议具体内容,建议在网上找资料看,这里列个概要:
- 连接需要3次握手
- 基于消息通讯,但是消息可以被分块传输
- 消息类型按用途可以简单划分为:协议控制消息、命令消息、数据消息
- 命令对象有NetConnection和NetStream,通过NetConnection可以创建一个或多个的Net