返回测试器
RTMP

RTMP 在线播放限制与浏览器转换方案

解释现代浏览器为什么不能直接播放 RTMP,以及 RTMP ingest 后如何转 HLS、FLV 或 WebRTC。

网页能否直连
需转换
链路位置
推流/源站协议
浏览器结论
现代浏览器不能直连播放

一句话结论

RTMP 现在主要是推流或源站接入协议,不是现代浏览器播放器地址。网页播放 RTMP 的正确做法是先由服务端接入,再输出 HLS、FLV 或 WebRTC。

它在视频链路里的位置

RTMP 曾经依赖 Flash 在网页播放。Flash 退出后,浏览器不再提供 RTMP 播放能力。

在直播系统里,它常用于 OBS 推流、平台 ingest 或旧设备回传。

在浏览器项目里怎么用

前端遇到 rtmp:// 应该把它识别为“源地址”,提示用户测试转换后的播放地址。

不要把 RTMP 页面包装成可直接播放页面,否则会误导用户。

服务端需要做什么

服务端需要 RTMP server 或媒体服务器接收推流,然后转封装成 HLS/HTTP-FLV,或接入 WebRTC 网关。

如果源编码不适合浏览器,还要转码成 H.264/AAC 等更稳的组合。

常见开发场景

  • OBS 推流、直播平台接入、旧推流设备兼容。
  • 适合做输入端,不适合作为网页播放端。

排查顺序

  • 先区分推流地址和播放地址。推流地址能连通,不代表浏览器可以播放。
  • 转成 HLS 或 FLV 后,再查 CORS、MIME type、HTTPS mixed content 和编码。

推荐转换路径

  • 兼容优先:RTMP -> HLS。
  • 低延迟预览:RTMP -> HTTP-FLV/WS-FLV。
  • 更低延迟:RTMP -> WebRTC。

最小可用实现

  • 前端:展示 RTMP 不能直连,并提供转换结果 URL 的测试入口。
  • 后端:接收 RTMP 推流,生成 HLS/FLV/WebRTC 播放地址。

开发者判断标准

RTMP 不能只按名字判断是否可播,要看它在链路中承担的是源站输入、网页播放输出、低延迟会话,还是网络辅助能力。当前浏览器结论:现代浏览器不能直连播放。落地前需要确认真实源站、是否需要服务端转换、CORS/HTTPS 策略、编码支持和延迟目标。

相关协议