电话+V:159999-78052,欢迎咨询流媒体播放端到端协议怎么写的,[小程序设计与开发],[小程序投流与推广],[小程序后台搭建],[小程序整套源码打包],[为个体及小微企业助力],[电商新零售模式],[小程序运营推广及维护]
RTMP简介
RTMP(RealTimeMessagingProtocol)是一个应用层协议,专为在FlashPlayer与服务器间传输视频、音频、控制命令等设计。其显著优点在于低延迟。RTMP基于TCP,通常使用端口1935。
RTMP名词解析
有效载荷(Payload):数据包中包含的数据,如音频采样或压缩视频数据。
数据包(Packet):数据包由固定头部和有效载荷数据构成,可能需要底层协议进行额外封装。
端口(Port):传输协议用来区分主机上不同目标的抽象,TCP/IP使用正整数标识端口,OSI传输层的传输选择器(TSEL)相当于端口。
传输地址(TransportAddress):识别传输层端点的网络地址和端口组合,数据包从一个传输地址传送到另一个。
消息流(MessageStream):通信中消息流通的逻辑通道。
消息流ID(MessageStreamID):每个消息关联一个ID,用于识别流通中的消息流。
块(Chunk):消息被分割成的小部分,确保端到端交付所有消息的有序timestamp,即使有多个流。
块流(ChunkStream):允许块在特定方向的逻辑通道中流通,可以是从客户端到服务器,也可以是反方向。
块流ID(ChunkStreamID):每个块关联一个ID,用于识别流通中的块流。
合成(Multiplexing):将独立的音频/视频数据合成一个连续的音频/视频流,允许同时传输多个视频和音频。
分解(DeMultiplexing):合成的逆过程,将交错的音频和视频数据还原为原始格式。
远程过程调用(RPC):客户端或服务器调用对端子程序或程序请求的机制。
元数据(Metadata):数据的描述,如电影的标题、持续时间、创建时间等。
应用实例(ApplicationInstance):服务器上的应用实例,客户端可连接实例并发送连接请求。
动作消息格式协议(AMF):用于序列化ActionScript对象图的紧凑二进制格式,有AMFO和AMF3两个版本。
RTMP推流拉流FFMPEG推流+FFPLAY播放
RTMP播放基本流程
推流流程
播流流程
Step1:TCP三次握手-修高速公路
RTMP基于TCP,通过三次握手建立客户端与服务器端口(默认1935)的可靠连接,完成物理连接。
Step2:RTMP握手-安检
实质是验证过程,主要分为简单握手和复杂握手。
Step2:RTMP握手-简单握手
版本号、长度、数据包内容等信息交换,确保双方兼容。
Step2:RTMP握手–复杂握手
增加更严格的验证,包括公共密钥和密文。
Step3:connect(连接)
通过应用实例(如live、vod)指定连接路径。
Step4:createStream(创建流)
创建逻辑通道,用于传输音视频和元数据。
Step5:play(播放)
发送播放命令,开始传输音视频数据。
Step6:deleteStream(删除流)
删除特定流。
RTMP层次
RTMP层次在数据发送、接收和协议角度上的划分。
RTMP关键结构
消息和块
消息是RTMP中的核心概念,包括协议控制消息、数据消息和命令消息。
消息类型
消息分为协议控制消息、数据消息和命令消息。
消息ID
消息ID标识消息流的唯一性,相同流中的音频和视频块具有相同的ID。
块和块流
块为网络中实际发送的内容,块流则指特定方向的消息流通。
RTMP实质
RTMP层次在协议角度的进一步解释,包括Chunk头的长度和类型。
RTMPChunkHeader
Chunk头的长度分为12、8、4和1字节,由头前2位决定。
消息优先级
RTMP中的优先级机制,保证高优先级消息优先传输。
时间戳介绍
RTMP时间戳单位为毫秒,用于表示消息和块的时间信息。
结论
在视频时代的背景下,流媒体技术日益凸显其重要性。本文将详细介绍两种广泛使用的流媒体协议:RTMP和RTSP。流协议旨在定义多媒体文件在两个通信系统之间传输的规则,包括视频文件如何分解为小数据包以及在网络上传输的顺序。
RTMP(RealTimeMessagingProtocol)是由Macromedia(后被Adobe收购)开发的,最初用于将内容流式传输到Flash播放器。尽管随着Flash逐渐被淘汰,基于HTTP的协议成为向播放设备传输流的新标准,RTMP在流媒体协议中的地位有所下降。然而,RTMP在端到端直播和点播中依然发挥着重要作用。
RTMP具有以下优点:
RTMP的缺点包括:
RTSP(RealTimeStreamingProtocol)旨在建立和维护原始数据源(客户端)与流媒体服务器之间的连接,允许对流媒体服务器内的娱乐和通信系统进行控制,包括暂停和播放功能。RTSP由RealNetworks在1996年与Netscape和哥伦比亚大学共同开发。
RTSP的优点包括:
RTSP的缺点包括:
在选择RTMP或RTSP时,应考虑应用场景。IP摄像头通常支持RTSP,因为RTSP与IP摄像头的结合使用使得IP摄像头本身可以充当RTSP服务器,便于将摄像头连接到IP摄像头服务器并广播视频。在无人机或物联网软件中,RTSP通常内置,提供低延迟优势,这对于无人机至关重要。流媒体应用程序倾向于选择RTMP,尤其是短视频软件、视频软件等,因为RTMP为满足现代流媒体需求而设计。
综上所述,RTMP和RTSP是流媒体领域中重要的协议,每种协议都有其独特的优势和局限性。选择适合特定场景的协议至关重要。希望本文能帮助您更好地理解RTMP和RTSP,如果文章对您有所帮助,请不要忘记点赞和收藏。有任何疑问,欢迎在下方评论区与我讨论。
电话+V: 159999-78052
专注于小程序推广配套流程服务方案。为企业及个人客户提供了高性价比的运营方案,解决小微企业和个体拓展客户的问题