close menu

RTMP 完全指南:它是什么,何时使用?

Complete Guide To RTMP

实时信息传输协议(RTMP)是一种广泛使用的流媒体格式。它已存在多年,并逐渐成为广播公司、网络运营商和许多其他行业的基本工具。然而,人们对 RTMP 的一些误解使其不那么受欢迎。

但 RTMP 究竟是什么?它是如何工作的?您是否应该在下一次直播中使用它?

了解更多信息,请点击此处。

什么是 RTMP?

RTMP 是一种基于传输控制协议 (TCP) 技术的网络协议或系统,用于在互联网上串流媒体内容。

TCP 是互联网协议套件的组成部分之一。另一个重要组成部分是互联网协议,也称为 IP。

RTMP 是一种网络协议或系统,用于在互联网上串流媒体内容。

TCP 和 IP 共同充当应用层和网络层之间的通信桥梁。可以这样理解:应用层包括你通常会与之交互的内容,如 Mozilla Firefox 浏览器或任何其他用户应用程序。

Firefox 浏览器要加载网页,必须向网站服务器发送请求。收到请求后,服务器会发送所请求的资源(即视频流、YouTube 上预先录制的视频或网页的 Html 代码)。

为了保持有效通信(即避免通信中断或延迟),必须将信息分解成更小的片段,即数据包。这项工作在发送方完成,一旦收到信息,就会为用户重新组装。

TCP 是将信息分解成数据包或更小的片段,以便有效和高效地进行传输的组件。

IP 层充当转发代理,确定在互联网上传输数据包的最佳路径。

许多流行的媒体播放器都使用 RTMP 协议,包括 Adobe Flash Player、VLC Media Player、QuickTime Player 和 Windows Media Player。一些网络浏览器(包括 Google Chrome 浏览器和 Mozilla Firefox)也支持 RTMP。

对于大多数用户来说,流媒体解决方案的首要问题是如何传输内容。如果流媒体分辨率质量低,大多数消费者就会望而却步。同样,如果流媒体解决方案的延迟过高、缓冲或加载时间过长,也会影响播放内容。

这正是 RTMP 的优势所在。RTMP 自开发以来,只要网络连接足够强大和快速,就能保证低延迟、最小缓冲和最佳流媒体分辨率。

RTMP 的另一个优点是能够同时支持大量流媒体,而不会出现重大问题。

然而,尽管 RTMP 已存在多年,但最近却受到了更严格的审查,因为该系统对用户来说不安全。

安全漏洞是如何产生的?

首先,RTMP 协议没有内置任何加密功能。因此,在使用 RTMP 时,任何通信或数据包传输都有可能被未经授权的团体或中间人类型的攻击窃听。

导致 RTMP 存在安全漏洞的另一个因素是,其源代码长期以来都是专有的。专有软件(即所有权和控制权仅限于开发或购买它的实体的软件)通常会定期收到安全补丁,但这还不够。

新的漏洞经常出现,而围绕开源软件建立的社区可以保证相对更频繁、更好的安全补丁。这正是 RTMP 在加强安全态势方面所错失的。

尝试 Wave.video 实时流媒体

功能强大、易于使用的多流媒体平台,适用于任何级别的流媒体用户立即尝试

RTMP 变化

RTMP 的变体包括以下几种:

  • 实时信息传输协议服务器 (RTMPS)-- 与 RTMP 很相似,只是它具有加密功能,即启用了安全套接层(SSL)和传输层安全(TLS),并支持所有启用了 Flash 播放器的播放器。它主要用于防止数据在传输过程中被篡改或未经授权访问的情况。
  • 加密实时消息传递协议 (RTMPE)--这是一个非常通用的流协议,利用传输控制协议(TCP)和用户数据报协议(UDP)来传输数据。RTMPE 还使用 Adobe 的专有加密技术对所有数据传输进行加密,以避免未经授权的访问和篡改。
  • 实时信息传输协议隧道 (RTMPT)--RTMPT 采用一种隧道机制来绕过 通常会阻止所有 RTMP 流量的 防火墙 。在实践中,RTMPT 要求客户端向服务器发送修改后的 HTTP 请求,而服务器则以几乎相似的 HTTP 传输作为回应。客户端和服务器使用一个会话 ID;一旦建立连接,双方就可以开始数据传输。
  • 实时媒体流协议 (RTMFP)--RTMFP 是 RTMP 的升级版,它采用不同的 UDP 编码格式来实现高性能媒体流。

RTMP 流媒体的历史

实时信息传输协议(RTMP)最初是 Macromedia 开发的一种专有协议,用于在 Flash 播放器和服务器之间通过互联网传输音频、视频和数据流。

目前,Facebook、Twitch 和 Twitter 等许多流行的在线服务都使用 RTMP 进行视频直播。

RTMP 的首次公开发布是在 2002 年。2009 年,Adobe 发布了 RTMP 的开放规范版本 OpenRTMP。RTMP 与 OpenRTMP 的主要区别在于,OpenRTMP 可以使用任何媒体服务器,而不仅仅是 Flash 媒体服务器(FMS)。

开放式 RTMP 规范在开发人员如何确保安全或配置点对点功能方面也更具灵活性。这样做的目的是通过开发人员之间的竞争和开放访问来鼓励创新和合作,从而开发出理想的 RTMP 解决方案。

主要原则

RTMP 使用一种称为 "流 "的技术来传输内容。这意味着数据是以称为 "块 "的小块形式传输的。"块 "在另一端被重新组合,因此用户可以观看或收听内容,而无需等待完全下载。

RTMP 的运行分为两个部分:第一英里和最后一英里配送。

前端传输一般是指使用 RTMP 将媒体从编码器传输到服务器。最后一英里传输是指将媒体从服务器传输到用户设备。第二部分使用 Flash 播放器或同样功能的工具。有报道称,Adobe 将放弃对 Flash 的所有支持;因此,这意味着最后一英里传输的终结。

为此,业界采用了超文本传输协议(HTTP)这一更高效的流媒体解决方案。

RTMP 的变体(如 RTMPT)目前采用 HTTP 来封装和传输媒体。

RTMP 如何摄取

这可能是 RTMP 的一大优势,使其得以长期存在。随着世界 从电脑媒体转向移动媒体,RTMP 面临着挑战。

首先,RTMP 依靠 Adobe Flash 播放器提供无缝流媒体体验,但存在一个小问题。移动设备不支持 Adobe Flash 播放器;对于希望在移动设备上获得相同流媒体服务的用户来说,RTMP 基本上毫无用处。

作为回应,苹果公司开发了 HLS 协议,以支持移动设备上的流媒体功能。

因此,RTMP 被淘汰也在情理之中。幸运的是,RTMP 通过 RTMP 摄录得以延续,成为将媒体从编码器传输到服务器的理想协议。

RTMP 摄取优先考虑低成本编码器的功能,通常为用户提供低延迟流媒体。

它包括三个主要部分:

1. 握手

客户端要连接 RTMP 服务器时,首先需要建立握手关系。这一过程开始时,客户端会向服务器发送 "连接 "请求,其中包括客户端的信息和试图建立的连接类型。

服务器随后会回复一条 "已连接 "信息,其中包括服务器的信息和已建立的连接类型。

最后,客户端和服务器交换信息,以确认双方仍在连接,并协商连接所需的参数。

2. 连接

RTMP 摄录连接的主要目的是提供一种将媒体内容从源码流式传输到目的地的方法。

媒体源可以是实时摄像机画面、预先录制的视频、音频或其他媒体。目的地通常是流媒体服务器,将内容分发给观众。

RTMP 摄取连接由三个部分组成:

  • 编码器将视频和音频信号转换成可在互联网上传输的数字格式。
  • 传输:这是编码信号从编码器发送到服务器的媒介;通常通过 UDP 或 TCP 传输。
  • 服务器接收编码信号,并将其提供给观众(通常是将其打包成 Flash 等格式)。

3. 流媒体

当用户向媒体服务器发送流媒体内容时,服务器必须先对输入的视频和音频内容进行编码,然后再发送给所有连接的客户端。

将视频和音频编码并重新格式化为标准文件格式的过程称为转码。它包括将输入信号转换成可在各种设备上播放的形式。

关于流媒体,有两种类型:直播和点播。实时流媒体是指实时广播,而点播流媒体是指用户可以方便地观看内容。

实时流媒体要求客户端和服务器之间保持持续连接,而点播流媒体则不需要。

RTMP 使用 TCP 来维持客户端和服务器之间的持久连接,从而实现低延迟流。不过,RTMP 并不适合按需流。

用于摄取的 RTMP 替代方案

SRT 和 WebRTC 是可以与 RTMP 相媲美甚至超越 RTMP 功能的主要竞争者。下面简要介绍这两种替代方案:

安全可靠传输(SRT)

SRT 弥补了 RTMP 的不足,例如即使用户连接到相对不可靠的网络,也能保持低延迟流媒体。这使它成为直播和点播流媒体的绝佳选择。

由于它是开源的,其功能的限制是无限的,而且不用担心开发支持会被取消。

网络实时通信(WebRTC)

WebRTC 以其基于浏览器的发布功能取胜。WebRTC HTTP 摄取协议(WHIP)也正在制定中,这对用户来说意味着他们只需使用网络浏览器就能进行流媒体发布,而无需像 RTMP 那样使用编码器。

RTMP 出口替代方案

HTTP Live Streaming (HLS)、MPEG-DASH 和 WebRTC 是 RTMP 出口替代方案的首选。

下面是替代方案的简要预览:

HLS 和 MPEG-DASH

这两者几乎相同,只是 HLS 是专有的,而 MPEG-DASH 是开源的。

这两款产品的最大优点是,它们能提供低延迟、最佳媒体质量,甚至能在网络连接不可靠的情况下工作。

WebRTC 也是 RTMP 出口解决方案的一个值得注意的替代方案。

RTMP 和 Flash 是否即将消亡?

简短的回答是:可能不会。长答案则要复杂一些。

HTML5 的普及率稳步上升,Flash 的替代产品层出不穷,这似乎让人觉得 RTMP 和 Flash 正在消亡。但事实并非如此。

近年来,Flash 的市场份额已被 HTML5 大幅挤占,其在视频领域曾经的主导地位如今正不断受到威胁。

尽管如此,它在网络上仍然占有重要地位,包括 YouTube 和 Facebook 在内的许多流行网站都在使用它。

至于 RTMP,它仍被广泛用于流式传输音频和视频内容。不过,它的前景不如 Flash 那么确定。

Adobe 已宣布将在 2020 年停止支持 RTMP,这可能标志着该协议的终结。不过,基于 RTMP 的替代方案还有很多,因此在未来几年内,它可能还会以某种形式继续使用。

那么,您应该使用 RTMP 进行流媒体传输吗?

视情况而定。看看使用 RTMP 的一些利弊。

优点

  • 非常稳定。与市场上的其他替代品相比,在使用支持 RTMP 的服务时,不太可能出现任何中断或停机。
  • 低延迟和最小缓冲。RTMP 在这方面是独一无二的,这意味着用户可以观看分辨率更高的视频,媒体加载时间也会大大缩短。
  • 兼容性。RTMPS 的稳健性和可靠性促使更多制造商设计自己的产品,以便与 RTMP 轻松集成。

缺点

  • RTMP 要求在客户端和服务器之间建立持久连接,如果网络中断,就会出现问题
  • 作为一款专有软件,强大用户几乎无法灵活使用。

常见问题

如何使用 Wave.video 通过 RTMP 进行流媒体传输?

如果您想通过 RTMP 传输视频流,Wave.video 是一个不错的选择。下面介绍 如何 使用它:

  1. 创建 Wave.video 账户,如果尚未登录,请登录。
  2. 选择要串流的视频。
  3. 导航至 Wave.video 上的 "目的地 "页面,点击 "自定义 RTMP"。RTMP Wave.video
  4. 接下来,您需要找到服务器 URL 和您要流式传输内容的流密钥。为此,请导航到您要查看的流媒体网站。
  5. 如果不知道如何操作,可以使用第三方应用程序或扩展来提取 URL 和密钥。
  6. 复制服务器 URL 和流密钥。
  7. 将服务器 URL 和流密钥粘贴到 Wave.video 中。RTMP name, key, url
  8. 创建或安排您的信息流。
  9. 打开直播间并开始串流。

就这样,简单快捷!

哪些编码器支持 RTMP?

有许多编码器硬件和软件都支持 RTMP。其中包括

  • Adobe 媒体编码器
  • OBS 工作室
  • 元素服务器
  • TriCaster
  • 有线广播
  • vMix
  • TeraDek
  • Wowza 流媒体引擎
  • 尼亚加拉视频

RTMP 与 RTSP - 孰优孰劣?

RTMP 和 RTSP 是通过互联网流式传输音频、视频和数据的协议。它们在很多方面都很相似,但也有一些关键的区别,使它们非常适合不同的情况或偏好。

下面简要介绍一下两者的主要区别:

  • RTMP 更适合实时流媒体,而 RTSP 更适合点播流媒体。
  • RTMP 的延迟较低,而 RTSP 可以提供更高质量的视频。
  • RTMP 需要 Flash 媒体服务器,而 RTSP 可与任何媒体服务器配合使用。

那么,哪种方案更好呢?这取决于您的具体需求。

如果需要低延迟且不介意使用 Flash,RTMP 是一个不错的选择。如果需要高质量视频或希望使用非 Flash 媒体服务器,RTSP 可能是理想选择。

什么是行动信息格式 (AMF)?

AMF 是一种通过互联网编码和传输数据的二进制格式,通常与 RTMP 结合使用。

AMF 允许传输与 RTMP 不兼容的数据,如 ActionScript 对象。它还能在 Flash 应用程序和服务器之间高效交换数据。

什么是 RTMP URL,如何从 Facebook 或 YouTube 获取?

RTMP URL 是用于将实时视频内容流式传输到各种平台的唯一标识符。

它通常包含 IP 地址、域名和端口号。

您必须在任一平台上创建一个直播事件,才能从 YouTube 或 Facebook 获取。完成创建后,您就可以在事件设置中找到 RTMP URL。

最终想法

RTMP 无疑已经在世界上留下了自己的印记。它是否即将退出历史舞台?作为出口解决方案,有可能,而作为摄取解决方案,则完全不会!

即使出现了其他功能相同或更强大的替代方案,RTMP 仍将在媒体传输和流媒体领域发挥重要作用。

我们将随时与您联系!

加入率先阅读我们文章的 5000 名营销人员的行列