Real-Time Messaging Protocol(RTMP,实时消息传输协议)对实时流媒体技术产生了重大影响。虽然后面出现了许多新的协议,但 RTMP 为今天的流媒体技术奠定了基础。
RTMP 通过保持客户端与服务器之间的持续连接,确保音频和视频数据的顺利传输。这种高效的方式降低了延迟,优化了流媒体内容的质量。
让我们回顾一下 RTMP 从诞生到如今在行业中的地位。
什么是 RTMP(实时消息传输协议)
RTMP 是一种基于 TCP 的协议,设计用于在编码器和流媒体服务器之间以较低的延迟可靠地传输音频、视频和数据。
RTMP 对实时流媒体至关重要,旨在高效地在线传输实时音频、视频和数据。RTMP 最初由 Macromedia 开发,后来被 Adobe 收购,旨在支持 Flash Player 和 Flash Communication Server 之间的流媒体传输。尽管 Flash 已停产,但 RTMP 凭借其卓越的性能和可靠性仍然被广泛使用。
这种基于 TCP 的协议可保持持久连接,对低延迟通信至关重要。因此,它适用于对内容的及时交付至关重要的实时流媒体应用。它能够提供一致、可靠的数据流,这确保了它在流媒体生态系统中的地位。
RTMP 的诞生:从 Tin Can 到 Real-Time Messaging Protocol
RTMP 大约始于 2000 年,当时 Macromedia 启动了一个名为 “Tin Can”的项目,因其外形酷似儿时的铁罐电话而得名。
Flash 技术的主要开发者 Jonathan Gay 提议为实时通信创建一个新的服务器产品。在编码之前,团队设想了该技术的潜在应用。
每位工程师都就这项新技术的可能用途交流了想法,在不知不觉中为在线视频的未来奠定了基础。
团队的目标是创建一个支持用户与媒体服务器之间实时互动的协议,高效处理音频和视频数据。媒体文件在服务器架构中被组织为“应用程序”的一部分,该应用程序位于服务器根目录下,包含流媒体内容。
在客户端和服务器协商过程中,连接 URL 至关重要,以确保流式传输成功。
RTMP 规格和连接
RTMP 有多种变体,包括 RTMP Tunneled (RTMPT) 和 RTMP over TCP,每种协议都针对不同的流媒体传输条件进行了优化。该协议将流拆分为多个片段,音频默认大小为 64 字节,视频和其他数据类型默认大小为 128 字节。通过这种分片方式,可以在单个连接上有效地复用不同的数据流。
RTMP 使用多个虚拟通道来处理各种数据类型,如视频、音频和控制消息。建立连接涉及握手过程,客户端和服务器之间要交换三个数据包,以确保双方同步,从而实现稳定的流媒体传输。
Adobe Flash Player 时代开启
2002 年 3 月,Macromedia 发布了 Flash Player 6,其中包含即将推出的 Flash Communication Server MX 的功能,为未来的流媒体功能奠定了基础。
RTMP 于 2002 年 7 月正式推出,当时 Macromedia 发布了 Flash Communication Server 1.0。此版本包含 NetConnection、NetStream 和 SharedObject 等重要工具。Flash Media Server 与 Flash 客户端之间的交互对于连接和媒体流传输至关重要。
2003 年 3 月发布的 Flash Communication Server 1.5 通过 HTTP 隧道、Linux 支持和免费开发者版本扩展了该协议的功能。
2005年11月,Flash Media Server 2.0 带来了重大改进,包括 Flash Player 8 中 On2 的 VP6 编解码器,从而提供更佳的图像质量和更高效的压缩。此版本还引入了边缘源服务器,以便更轻松地实现负载平衡。RTMP 使用动作消息格式 (AMF) 对客户端-服务器通信的标头和正文进行编码。
RTMP编码器和媒体服务器
RTMP 编码器将原始视频和音频转换为针对互联网广播优化的格式。编码器可以是软件或硬件,提供不同的性能级别。它们的主要功能是压缩视频流并将其发送到 YouTube Live、Facebook Live 或 Twitch 等平台。
当 RTMP 流到达媒体服务器时,它会经过进一步处理。大多数媒体服务器支持 RTMP ingest 功能,用于接收和管理传入的流。服务器可以将 RTMP 流转码为其他格式,例如 HTTP Live Streaming (HLS)或 MPEG-DASH,从而无论网络状况如何,都能在各种设备上访问内容。
RTMP 的黄金时代(2007-2012)
从 2007 年到 2012 年,RTMP 经历了重大发展:
2007 年 2 月,Adobe 发布了 Flash Media Live Encoder (FMLE),这是一款免费工具,可简化使用 RTMP 的编码和流式传输实时视频。
Justin.tv 于 2007 年上线,后来更名为 Twitch,通过“生活直播”推广直播——在线播放日常活动。
2007 年 12 月推出了 Flash Media Server 3.0,进一步完善了该技术。
Flash Media Server 3.5 于 2009 年发布,同时发布的还有 Elemental Live,扩展了 RTMP 支持工具。
YouTube 等视频平台支持 RTMP 直播流贡献,然后再进行转码,以实现更广泛的播放兼容性。
2010 年,Adobe 发布了 Flash Media Server 4.0,增加了多播、点对点连接和 HTTP 动态流 (HDS) 等功能。
该软件于 2012 年更名为 Adobe Media Server (AMS),并发布 5.0 版本,标志着平台的重大改进。
2012 年 9 月 1 日,OBS(开放广播软件)0.32a 版本发布,通过免费的开源解决方案,让每个人都可以访问 RTMP 流媒体。
在此期间,RTMP 和 Flash Player 主导了直播,支持低延迟的快速视频传输,非常适合实时应用。
内容分发网络 (CDN) 在 RTMP 发展中的作用
CDN 对 RTMP 的普及至关重要,因为它能够降低延迟和服务器负载。Akamai 和 Limelight Networks 等提供商帮助解决了视频流的可扩展性挑战。
CDN 通过将流媒体数据分发到全球服务器来优化流媒体数据流,从而降低延迟并管理区域需求。这使得RTMP 流能够覆盖全球受众,而无需内容创作者管理复杂的服务器基础设施,从而为企业、娱乐人士和个人创作者提供便捷的直播体验。
RTMP 交付方式的转变
尽管 RTMP 具有诸多优势,但随着网络的发展,它仍面临着挑战:
RTMP 经常存在防火墙问题,导致其在某些网络环境中不可靠。
作为有状态协议,RTMP 需要专用流媒体服务器,这使得它比新的替代方案更耗费资源。
尽管有 CDN 支持,但 RTMP 的架构对于极端扩展还是带来了挑战。
移动设备日益普及,但 Flash 的支持有限,这带来了问题。
业界逐渐青睐基于 HTTP 的协议,这些协议可以使用标准的 Web 服务器。这些新技术允许本地服务器缓存流媒体内容,从而提升了可扩展性和观看体验。自适应比特率流媒体传输比 RTMP 更加高效,能够优化跨设备和网络条件的内容传输。
当 Adobe 宣布 Flash 终止服务时,这种转变变得清晰起来,该决定于 2020 年 12 月正式生效。Adobe 鼓励内容分发商将 Flash 内容迁移到新的开放格式。
安全可靠传输 (SRT) 已被采用为一种现代开源技术,可提供可靠、低延迟的流媒体传输,作为 RTMP 等旧协议的替代方案。
低延迟和互动视频体验
RTMP 的设计非常适合低延迟应用,这对于直播和互动视频至关重要。该协议的持久连接和实时数据传输最大限度地减少了源端和观看者之间的延迟,这对于需要即时反馈的应用(例如直播、在线游戏和互动网络研讨会)至关重要。
RTMP 的实时功能支持实时聊天、实时评论和互动投票等功能,从而打造引人入胜的观看环境,带来互动式视频体验。RTMP 通过快速可靠地传输视频和音频数据,支持各种现代设备和基于 HTTP 的协议,实现流畅的互动式流媒体播放。
RTMP 的第二春
RTMP 作为一种向观众传输流媒体的机制已经式微,但作为 “一英里 ”传输的主流协议,RTMP 又找到了新的用途——将流媒体从广播软件发送到 RTMP 服务器的过程。
这就是 Twitch、YouTube 和 Facebook Live 等平台仍然使用 RTMP ingest 的原因。在使用 OBS 或类似软件进行流媒体传输时,RTMP 会将内容发送到服务器,然后在服务器上进行转换,并使用 HLS 或 DASH 等现代协议传输给观众。在 RTMP 工作流程中,专用流媒体服务器对于高效媒体传输至关重要。
2019 年及以后的 RTMP
2019 年,Veriskope 与 Adobe 签订了全球许可协议,以管理 Adobe Media Server 业务的各个方面,并获得在全球范围内分发、支持和增强 Adobe Media Server 产品的权利。
如今,RTMP 在特定环境下蓬勃发展。其向开放规范的转型增强了可用性,使开发人员能够创建各种视频、音频和数据交付技术。该协议在流媒体工作流程中仍然至关重要,因其在编码器到服务器媒体传输方面的一致性而备受重视。无论是通过第三方服务还是内部的 RTMP 流管理解决方案,强大的视频基础设施对于大规模分发都至关重要。
为什么 RTMP 流媒体仍然重要
尽管出现了较新的协议,但 RTMP 仍然很重要,原因如下。作为基础流媒体协议之一,它在多媒体流媒体的发展中发挥了至关重要的作用。即使 HLS、MPEG-DASH、SRT 和 WebRTC 等协议已经出现,了解传统协议和现有协议对于开发人员来说仍然至关重要。
RTMP 提供持续低延迟,使其成为实时应用的理想选择。
几乎所有流媒体软件都支持 RTMP,使其成为流媒体摄取的通用语言。
RTMP通过TCP确保可靠的数据传输,管理分组和数据包顺序。
对于许多流媒体来说,RTMP 工作流程简单且熟悉。
RTMP 的未来
RTMP 对于直播和实时通信来说依然至关重要。其高效、可靠和低延迟的特性使其成为需要快速数据传输的应用的必备工具。虽然 HLS 和 MPEG-DASH 已经逐渐普及,但 RTMP 仍然在流媒体领域,尤其是在“第一英里”的交付中发挥着关键作用。
随着直播和互动视频需求的增长,RTMP 很可能仍将是流媒体工作流程的核心。未来的发展可能会增强 RTMP 的安全性、可扩展性以及与新兴技术的兼容性。通过不断发展和适应,RTMP 将在不断变化的流媒体技术格局中保持竞争力。
最后的想法
RTMP 从 Macromedia 项目演变为流媒体基础设施的骨干,展现了在线视频技术的发展历程。虽然观众可能不再通过 RTMP 接收内容,但它在流媒体“第一公里”中的作用依然至关重要,让内容创作者能够可靠地将流媒体发送到各个平台。
了解 RTMP 的历史有助于我们理解流媒体技术的进步以及当今流媒体体验的基础。展望未来,即使新技术不断涌现,RTMP 仍将在流媒体生态系统中继续发挥重要作用。
本文来自作者投稿,版权归原作者所有。如需转载,请注明出处:https://www.nxrte.com/jishu/yinshipin/57592.html