什么是 RTMP?RTMP 直播推流与流媒体接入的工作原理

https://www.cdnetworks.com/wos/static-resource/40368885a5ae4f408575129ae5e105a7/What-is-RTMP-Ingest-And-How-Significant-is-it-to-Live-Streaming-1536x538.jpg?t=1741327590379

目录

RTMP,即实时消息传输协议(Real-Time Messaging Protocol),是一种应用层协议,用于在相互连接的系统之间传输音频、视频和数据。

在现代直播中,RTMP 主要用于将实时信号从硬件或软件编码器发送到媒体服务器或流媒体平台。随后,媒体平台可以对信号进行转码、封装、保护和分发,并通过 HLS、DASH、HTTP-FLV 或 WebRTC 等面向观众的协议提供播放。

旧版 RTMP 规范将 RTMP 描述为一种应用层协议,可通过合适的传输协议(通常为 TCP)对多媒体流进行多路复用和分包。

RTMP 过去常与 Adobe Flash 播放联系在一起。Adobe 已于 2020 年 12 月 31 日终止对 Flash Player 的支持,现代浏览器通常也无法直接播放 RTMP 流。不过,RTMP 作为推流接入协议仍然具有重要价值,因为许多编码器、流媒体平台和媒体分发系统仍支持 RTMP,或其加密形式 RTMPS。


核心要点

  • RTMP 是一种流媒体协议。RTMP 服务器、URL 和推流密钥都是 RTMP 工作流中的组成部分。

  • RTMP 常用于直播推流接入,即由编码器将实时信号发送到媒体平台。

  • RTMP 与 HLS 经常配合使用。RTMP 负责传输输入流,HLS 则负责将处理后的视频分发给观众。

  • RTMPS 增加了 TLS 加密。在编码器和流媒体服务均支持的情况下,通常应优先使用 RTMPS。

  • 增强型 RTMP,即 E-RTMP,通过现代编解码器信令、多轨流传输、重连能力和更高精度的时间控制,进一步扩展了 RTMP 生态。


什么是 RTMP?

RTMP 是一种双向消息协议,用于在客户端与服务器之间传输带时间信息的音频、视频、数据、命令和控制信息。

RTMP 会在客户端与服务器之间维持持久连接。它可以在同一连接上对不同类型的消息进行多路复用,使音频、视频、元数据和协议控制信息能够在同一个流媒体会话中传输。

在现代直播工作流中,RTMP 客户端通常是编码器。编码器采集或接收视频源,将其压缩后发布到 RTMP 推流接入端点。

典型的现代 RTMP 工作流如下:

摄像机或视频源 → 编码器 → RTMP 或 RTMPS 推流接入 → 媒体服务器 → 转码与封装 → CDN → 观众

观众通常不会直接接收原始 RTMP 连接。媒体平台会将信号转换或封装为适合观众所用浏览器、应用、设备和网络环境的播放格式。

这一区别也解释了为什么 Flash 退出历史舞台后,RTMP 依然具有价值。如今,它主要应用于流媒体工作流中的信号回传或推流接入环节。


什么是 RTMP 流媒体传输?

RTMP 流媒体传输是指通过发布客户端与服务器之间的 RTMP 连接,传输直播或录播媒体内容。

在直播工作流中,发布客户端通常是软件或硬件编码器。它负责采集源视频、压缩音频和视频,并将编码后的信号发送到 RTMP 推流接入端点。

RTMP 可以传输:

  • 视频数据
  • 音频数据
  • 流元数据
  • 命令和状态消息
  • 时间信息
  • 应用数据

媒体服务器接收这些消息、识别对应的媒体流,并执行流媒体服务所需的处理。相关处理可能包括转码、录制、封装、监控、访问控制和分发。


RTMP 流媒体传输如何工作?

RTMP 流媒体传输首先在编码器与服务器之间建立连接,然后创建逻辑媒体流,并持续传输经过分包的音频、视频和元数据。

1. 采集并编码信号源

摄像机、屏幕采集应用、制作系统、游戏主机或其他信号源会向编码器提供原始音频和视频。

编码器对信号源进行压缩,并准备传输。常见配置包括:

  • 视频和音频编解码器
  • 分辨率
  • 帧率
  • 视频码率
  • 音频码率和采样率
  • 关键帧间隔
  • 码率控制模式

正确的设置取决于接收平台。如果编码器配置超出平台支持的规格范围,推流可能会被拒绝,也可能造成处理和播放不稳定。

2. 编码器连接到 RTMP 服务器

编码器使用流媒体平台提供的 RTMP 或 RTMPS 服务器地址。它还可能需要推流密钥或其他身份验证方式。

RTMP 连接会先由客户端与服务器完成握手。握手完成后,客户端发送 connect 命令,请求访问服务器上的某个应用。

随后,客户端创建逻辑流并发布媒体内容。RTMP 规范将 connect、createStream 和 publish 等命令定义为这一工作流的组成部分。

3. RTMP 以消息和块的形式传输媒体

RTMP 以消息形式承载音频、视频、数据、命令和控制信息。

较大的消息可在传输前拆分成更小的数据块。通过分块,不同类型的信息可以在同一连接上交错传输。例如,音频、视频和控制消息可以共享同一传输通道,无须等待某个大型消息完整传输后再继续。

每条消息都包含时间和流信息,使接收端能够正确识别、排序和处理内容。

4. 媒体平台处理并分发信号

接收到媒体流后,媒体平台可以:

  • 对推流端进行身份验证和校验
  • 将信号转码为多种分辨率和码率
  • 生成自适应码率阶梯
  • 将媒体流封装为 HLS、DASH、WebRTC 或其他分发格式
  • 录制或存档直播内容
  • 应用访问控制和内容保护措施
  • 监控推流接入质量和播放质量
  • 通过 CDN 分发媒体流

最终形成一个多阶段流媒体工作流。RTMP 负责接收输入信号,其他技术则负责后续处理和面向观众的内容分发。


什么是 RTMP 推流接入?

RTMP 推流接入,也称直播接入,是指通过 RTMP 将实时音视频信号从编码器发送到媒体服务器的过程。

推流接入是直播工作流的上行阶段。在信号被处理并分发给观众之前,它会先将直播方或内容制作方连接到流媒体基础设施。

RTMP 推流接入服务器是负责接收编码器输入流的服务器或服务端点。根据系统架构,它可以验证推流端身份、识别媒体流、监控连接,并将内容路由至源站或媒体处理系统。

典型的 RTMP 推流接入工作流包括以下步骤:

  1. 制作团队使用 RTMP 或 RTMPS 服务器地址和推流密钥配置编码器。
  2. 编码器将实时信号发布到推流接入服务器。
  3. 媒体平台接收并处理媒体流。
  4. 媒体流被封装为与观众设备兼容的格式。
  5. CDN 将处理后的内容分发给观众。

RTMP 推流接入仍受到广播应用、硬件编码器、企业活动平台和直播服务的广泛支持。


什么是 RTMPS?

RTMPS 是通过 TLS 加密连接传输的 RTMP。

当数据在编码器与推流接入服务器之间传输时,RTMPS 可以保护媒体流和连接信息。

Google 将 RTMPS 描述为通过传输层安全协议,即 TLS/SSL 连接传输的 RTMP。YouTube 支持使用 RTMPS 对推流接入过程中的直播数据进行加密。

RTMPS 无法取代其他安全控制措施,包括:

  • 账户安全
  • 推流密钥保护
  • 推流端身份验证
  • 观众授权
  • 数字版权管理
  • 播放层加密
  • 访问控制策略

当 RTMP 和 RTMPS 均受支持时,通过公共网络进行正式直播通常更适合使用 RTMPS。


RTMP 流媒体传输有哪些优势和局限?

RTMP 流媒体传输的优势

  • 兼容性广泛:RTMP 可与许多广播应用、硬件编码器、媒体服务器、制作系统和流媒体平台配合使用。因此,在连接不同供应商的技术时,它是一种实用选择。

  • 推流接入工作流成熟:许多流媒体团队已经具备 RTMP 编码器预设、身份验证系统、监控工具和发布流程。这有助于降低部署复杂度,并便于大规模运营 RTMP 工作流。

  • 持久的媒体传输连接:RTMP 会在编码器与服务器之间维持活动连接,并可在同一会话中传输视频、音频、元数据、命令和控制信息。

  • 灵活的多协议分发:平台可以通过 RTMP 接收媒体流,再将其转换为 HLS、DASH、WebRTC、HTTP-FLV 或其他播放格式。直播方可以继续使用熟悉的 RTMP 编码器,同时通过适合浏览器、移动应用、智能电视和 CDN 的格式分发内容。

  • 完善的媒体处理支持:平台收到 RTMP 流后,可以对内容进行转码、录制、封装、监控、安全保护和分发。

RTMP 流媒体传输的局限

  • 标准 RTMP 不提供加密:普通 RTMP 不会加密传输中的数据。对传输安全有要求的流媒体工作流应使用 RTMPS,前提是编码器和推流接入平台都支持该协议。

  • 浏览器播放支持有限:现代浏览器通常不支持原生 RTMP 播放。传统浏览器播放依赖 Adobe Flash Player,而 Flash Player 已于 2020 年停止支持。因此,平台通常会将 RTMP 流转换为 HLS、DASH、WebRTC、HTTP-FLV 或其他兼容浏览器的格式。

  • 网络状况不佳时可能出现延迟:RTMP 通常基于 TCP 运行。TCP 会重传丢失的数据,并按顺序处理数据包。在发生丢包或拥塞时,重传可能增加延迟。上传带宽、往返时延、编码器缓冲、网络拥塞、丢包和服务器配置都会影响实际表现。

  • 无法保证端到端延迟:RTMP 本身无法决定观众多快能够收到媒体流。总延迟还取决于编码器设置、网络距离、转码、封装、分段时长、CDN 分发、播放器缓冲和观众网络状况。

总体而言,RTMP 是直播信号回传和推流接入的可靠选择,但通常需要与现代分发协议配合,才能实现安全、兼容浏览器且低延迟的播放体验。


RTMP 与 HLS、SRT、RTSP 和 WebRTC 有何区别?

流媒体协议通常服务于工作流中的不同环节。应选择哪种协议,取决于需求涉及推流接入、信号回传、分发、会话控制,还是实时互动。

协议 主要用途 典型连接方式 主要优势 主要注意事项
RTMP 或 RTMPS 直播推流接入 编码器连接媒体服务器 广泛兼容各类发布工具 普通 RTMP 未加密
HLS 观众播放和内容分发 服务器连接播放器 基于 HTTP 的大规模分发 分段和缓冲会影响延迟
SRT 信号回传和传输 信号源连接媒体基础设施 可在不稳定网络中恢复传输 通信两端都必须支持 SRT
RTSP 会话建立和控制 客户端连接媒体服务器 控制媒体会话 通常与独立的传输机制配合使用
WebRTC 交互式实时通信 浏览器、应用或对等端通信 支持浏览器和应用中的实时互动 扩展和架构设计可能更复杂

RTMP 与 HLS 经常配合使用。RTMP 负责推流接入,HLS 负责向观众分发内容。

对于跨越不稳定网络的远距离信号回传,SRT 可能更合适。RTSP 常见于 IP 摄像机和受控媒体会话。WebRTC 则常用于浏览器和应用中的交互式体验。


何时适合使用 RTMP?

在以下情况下,RTMP 或 RTMPS 仍是实用选择:

  • 需要通过广泛支持的软件或硬件编码器发布内容
  • 接收平台提供 RTMP 推流接入端点
  • 工作流将 RTMP 推流接入与 HLS 或 DASH 分发结合使用
  • 需要兼容成熟的广播工具
  • 上行网络相对稳定
  • 用于直播网络研讨会、企业活动、娱乐节目、体育赛事、游戏或直播电商

接收平台支持时,通常应优先使用 RTMPS

通过不稳定或远距离网络传输内容时,SRT 可能更合适。

需要高度互动的体验时,WebRTC 可能更合适。

需要广泛的设备兼容性和基于 HTTP 的观众分发时,HLS 仍是常见选择。


如何提高 RTMP 流的可靠性?

RTMP 流是否可靠,取决于完整的制作环境和网络环境。

  • 选择合适的推流接入端点:

    选择从编码器到端点之间网络路由稳定的接入点,并测试实际路由质量、丢包率和上传性能。
  • 遵循平台的编码要求:

    使用平台支持的编解码器、分辨率、帧率、码率、关键帧间隔和音频设置。
  • 预留充足的上传带宽:

    可用上传带宽应高于所配置的媒体流码率。
  • 优先使用 RTMPS:

    在平台支持时使用加密端点,并核对协议类型、主机名、端口和应用路径。
  • 保护推流密钥:

    限制发布凭据的访问权限,并重新生成已经泄露的密钥。
  • 准备冗余方案:

    重要直播可能需要备用编码器、网络连接、电源、推流接入端点或辅助信号源。
  • 监控完整工作流:

    持续监控编码器、上传连接、推流接入状态、媒体处理、CDN 分发和观众播放情况。

编码器连接成功,并不代表观众端一定能够顺利观看。


CDNetworks 如何支持 RTMP 推流接入和直播

直播依赖推流接入、媒体处理和内容分发等多种技术协同工作。RTMP 能够与成熟的编码器和直播工作流集成,因此仍是广泛使用的推流接入方式。

在基于 CDN 的 RTMP 流媒体工作流中,CDNetworks 的媒体分发服务可衔接 RTMP 推流接入与分布式媒体分发。

Media-Acceleration-Live-Broadcast-Platform-Architecture.png

CDNetworks 的增强型 RTMP/FLV 支持旨在:

  • 保持与 OBS 和 VLC 等主流流媒体软件的兼容性
  • 支持更广泛的媒体格式
  • 减少额外进行协议替换或适配的需要
  • 支持低延迟流媒体体验
  • 帮助服务提供商在观众体验与流媒体成本之间取得平衡

这些能力可以简化现有 RTMP 工作流,避免组织在没有必要的情况下重新设计发布架构。

了解 CDNetworks 的媒体分发服务,或进一步了解娱乐直播解决方案


常见问题

RTMP 是什么意思?

RTMP 是 Real-Time Messaging Protocol,即实时消息传输协议。它是一种应用层协议,用于在相互连接的客户端与服务器之间传输带时间信息的音频、视频、元数据、命令和控制信息。

什么是 RTMP 流媒体传输?

RTMP 流媒体传输通过 RTMP 连接传输直播或录播媒体内容,最常见的方式是由软件或硬件编码器将媒体流发送到媒体服务器或流媒体平台。

什么是 RTMP 推流接入?

RTMP 推流接入将实时音视频信号从编码器发送到媒体服务器,再由服务器对媒体流进行处理、转码、封装和分发,供观众播放。

什么是 RTMP 服务器?

RTMP 服务器可以接收、处理、路由、发布或播放 RTMP 流。RTMP 推流接入服务器专门负责接收来自软件或硬件编码器的输入流。

RTMP URL 与推流密钥有什么区别?

RTMP URL 用于标识推流接入服务器和应用路径。推流密钥用于标识单个媒体流或授予其发布权限。编码器可能会分别要求填写这两个值,也可能将它们合并为一个发布地址。

RTMP 安全吗?

RTMPS 使用 TLS 加密保护编码器与推流接入服务器之间的 RTMP 流量。标准 RTMP 不具备这种保护,因此在通信两端均支持的情况下,通常应优先使用 RTMPS。

RTMP 使用哪个端口?

RTMP 通常使用 TCP 1935 端口。部分 RTMPS 服务使用 TCP 443 端口,但发布方应始终按照流媒体平台提供的连接信息进行配置。

现代浏览器可以播放 RTMP 吗?

现代浏览器通常无法直接播放 RTMP。流媒体平台一般会将 RTMP 输入流转换为 HLS、DASH、WebRTC、HTTP-FLV 或其他兼容浏览器和应用的格式。

RTMP 比 HLS 更好吗?

RTMP 和 HLS 承担不同的职责。RTMP 通常负责从编码器接收直播输入流,HLS 则负责将处理后的视频分发给观众。许多直播工作流会同时使用两者。

RTMP 现在仍然重要吗?

RTMP 仍然具有重要价值,因为许多编码器、媒体服务器和流媒体平台都支持通过 RTMP 进行直播推流接入。如今,它的主要用途是将信号发送到流媒体基础设施,而非直接在浏览器中播放。

探索更多

网站性能

2026年亚洲七大CDN服务商

比较 2026 年亚洲顶级 CDN 提供商,包括 Cloudflare、Akamai、CDNetworks、CloudFront、Fastly、腾讯和阿里巴巴。

了解更多 »
云安全

2025 年 WAAP 现状报告:人工智能正在改变 Web 应用和 API 安全

了解《2025 年 WAAP 现状报告》中的关键见解,看看人工智能正在如何改变 Web 应用程序和 API 安全。

了解更多 »