RTMP流媒体3-直播拉流
发布网友
发布时间:2024-09-27 04:19
我来回答
共1个回答
热心网友
时间:2024-10-05 13:45
RTMP简介
RTMP(Real Time Messaging Protocol)是一个应用层协议,专为在Flash Player与服务器间传输视频、音频、控制命令等设计。其显著优点在于低延迟。RTMP基于TCP,通常使用端口1935。
RTMP名词解析
有效载荷(Payload):数据包中包含的数据,如音频采样或压缩视频数据。
数据包(Packet):数据包由固定头部和有效载荷数据构成,可能需要底层协议进行额外封装。
端口(Port):传输协议用来区分主机上不同目标的抽象,TCP/IP使用正整数标识端口,OSI传输层的传输选择器(TSEL)相当于端口。
传输地址(Transport Address):识别传输层端点的网络地址和端口组合,数据包从一个传输地址传送到另一个。
消息流(Message Stream):通信中消息流通的逻辑通道。
消息流ID(Message Stream ID):每个消息关联一个ID,用于识别流通中的消息流。
块(Chunk):消息被分割成的小部分,确保端到端交付所有消息的有序timestamp,即使有多个流。
块流(Chunk Stream):允许块在特定方向的逻辑通道中流通,可以是从客户端到服务器,也可以是反方向。
块流ID(Chunk Stream ID):每个块关联一个ID,用于识别流通中的块流。
合成(Multiplexing):将独立的音频/视频数据合成一个连续的音频/视频流,允许同时传输多个视频和音频。
分解(DeMultiplexing):合成的逆过程,将交错的音频和视频数据还原为原始格式。
远程过程调用(RPC):客户端或服务器调用对端子程序或程序请求的机制。
元数据(Metadata):数据的描述,如电影的标题、持续时间、创建时间等。
应用实例(Application Instance):服务器上的应用实例,客户端可连接实例并发送连接请求。
动作消息格式协议(AMF):用于序列化ActionScript对象图的紧凑二进制格式,有AMFO和AMF3两个版本。
RTMP推流拉流FFMPEG推流+FFPLAY播放
RTMP播放基本流程
推流流程
播流流程
Step 1: TCP三次握手 - 修高速公路
RTMP基于TCP,通过三次握手建立客户端与服务器端口(默认1935)的可靠连接,完成物理连接。
Step 2: RTMP握手 - 安检
实质是验证过程,主要分为简单握手和复杂握手。
Step 2: RTMP握手 - 简单握手
版本号、长度、数据包内容等信息交换,确保双方兼容。
Step 2: RTMP握手 – 复杂握手
增加更严格的验证,包括公共密钥和密文。
Step 3: connect(连接)
通过应用实例(如live、vod)指定连接路径。
Step 4: createStream(创建流)
创建逻辑通道,用于传输音视频和元数据。
Step 5: play(播放)
发送播放命令,开始传输音视频数据。
Step 6: deleteStream(删除流)
删除特定流。
RTMP层次
RTMP层次在数据发送、接收和协议角度上的划分。
RTMP关键结构
消息和块
消息是RTMP中的核心概念,包括协议控制消息、数据消息和命令消息。
消息类型
消息分为协议控制消息、数据消息和命令消息。
消息ID
消息ID标识消息流的唯一性,相同流中的音频和视频块具有相同的ID。
块和块流
块为网络中实际发送的内容,块流则指特定方向的消息流通。
RTMP实质
RTMP层次在协议角度的进一步解释,包括Chunk头的长度和类型。
RTMP Chunk Header
Chunk头的长度分为12、8、4和1字节,由头前2位决定。
消息优先级
RTMP中的优先级机制,保证高优先级消息优先传输。
时间戳介绍
RTMP时间戳单位为毫秒,用于表示消息和块的时间信息。
结论
综上所述,RTMP通过一系列机制实现高效、低延迟的音视频传输,其层次结构、关键概念和优先级管理共同确保了实时应用的流畅体验。
热心网友
时间:2024-10-05 13:50
RTMP简介
RTMP(Real Time Messaging Protocol)是一个应用层协议,专为在Flash Player与服务器间传输视频、音频、控制命令等设计。其显著优点在于低延迟。RTMP基于TCP,通常使用端口1935。
RTMP名词解析
有效载荷(Payload):数据包中包含的数据,如音频采样或压缩视频数据。
数据包(Packet):数据包由固定头部和有效载荷数据构成,可能需要底层协议进行额外封装。
端口(Port):传输协议用来区分主机上不同目标的抽象,TCP/IP使用正整数标识端口,OSI传输层的传输选择器(TSEL)相当于端口。
传输地址(Transport Address):识别传输层端点的网络地址和端口组合,数据包从一个传输地址传送到另一个。
消息流(Message Stream):通信中消息流通的逻辑通道。
消息流ID(Message Stream ID):每个消息关联一个ID,用于识别流通中的消息流。
块(Chunk):消息被分割成的小部分,确保端到端交付所有消息的有序timestamp,即使有多个流。
块流(Chunk Stream):允许块在特定方向的逻辑通道中流通,可以是从客户端到服务器,也可以是反方向。
块流ID(Chunk Stream ID):每个块关联一个ID,用于识别流通中的块流。
合成(Multiplexing):将独立的音频/视频数据合成一个连续的音频/视频流,允许同时传输多个视频和音频。
分解(DeMultiplexing):合成的逆过程,将交错的音频和视频数据还原为原始格式。
远程过程调用(RPC):客户端或服务器调用对端子程序或程序请求的机制。
元数据(Metadata):数据的描述,如电影的标题、持续时间、创建时间等。
应用实例(Application Instance):服务器上的应用实例,客户端可连接实例并发送连接请求。
动作消息格式协议(AMF):用于序列化ActionScript对象图的紧凑二进制格式,有AMFO和AMF3两个版本。
RTMP推流拉流FFMPEG推流+FFPLAY播放
RTMP播放基本流程
推流流程
播流流程
Step 1: TCP三次握手 - 修高速公路
RTMP基于TCP,通过三次握手建立客户端与服务器端口(默认1935)的可靠连接,完成物理连接。
Step 2: RTMP握手 - 安检
实质是验证过程,主要分为简单握手和复杂握手。
Step 2: RTMP握手 - 简单握手
版本号、长度、数据包内容等信息交换,确保双方兼容。
Step 2: RTMP握手 – 复杂握手
增加更严格的验证,包括公共密钥和密文。
Step 3: connect(连接)
通过应用实例(如live、vod)指定连接路径。
Step 4: createStream(创建流)
创建逻辑通道,用于传输音视频和元数据。
Step 5: play(播放)
发送播放命令,开始传输音视频数据。
Step 6: deleteStream(删除流)
删除特定流。
RTMP层次
RTMP层次在数据发送、接收和协议角度上的划分。
RTMP关键结构
消息和块
消息是RTMP中的核心概念,包括协议控制消息、数据消息和命令消息。
消息类型
消息分为协议控制消息、数据消息和命令消息。
消息ID
消息ID标识消息流的唯一性,相同流中的音频和视频块具有相同的ID。
块和块流
块为网络中实际发送的内容,块流则指特定方向的消息流通。
RTMP实质
RTMP层次在协议角度的进一步解释,包括Chunk头的长度和类型。
RTMP Chunk Header
Chunk头的长度分为12、8、4和1字节,由头前2位决定。
消息优先级
RTMP中的优先级机制,保证高优先级消息优先传输。
时间戳介绍
RTMP时间戳单位为毫秒,用于表示消息和块的时间信息。
结论
综上所述,RTMP通过一系列机制实现高效、低延迟的音视频传输,其层次结构、关键概念和优先级管理共同确保了实时应用的流畅体验。