You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

OvenMediaEngine无法向外部客户端RTMP转推,寻求技术支持

问题分析与解决方案

核心问题

你遇到的是RTMP拉流服务未启用的问题,同时配置混淆了「RTMP拉流发布器」和「RTMP主动推流」的配置项,导致日志出现"unknown key publishers...push"错误。

  • 当前状态:外部RTMP推流到OME正常,WebRTC播放正常,但VLC等客户端无法通过rtmp://ome.ip.address:1935/live/streamName拉流
  • 错误根源:配置里仅启用了RTMPPush(用于OME主动推流到外部服务器),但未启用RTMP Publisher(用于提供RTMP拉流服务给外部客户端)

修正后的配置片段

修改<Publishers>区块,添加RTMP配置项(不需要主动推流可移除RTMPPush,按需保留即可):

<Applications>
<Application>
<Name>live</Name>
<Type>live</Type>

<Publishers>
<AppWorkerCount>2</AppWorkerCount>
<StreamWorkerCount>4</StreamWorkerCount>
<WebRTC>
...
</WebRTC>
<!-- 启用RTMP拉流服务,监听1935端口 -->
<RTMP>
  <Port>1935</Port>
</RTMP>
<!-- 如需OME主动推流到其他服务器,保留并配置RTMPPush -->
<!-- <RTMPPush>
  <PushItems>
    <PushItem>
      <Name>push-to-target</Name>
      <Url>rtmp://target-server/live/streamName</Url>
    </PushItem>
  </PushItems>
</RTMPPush> -->
</Publishers>

<OutputProfiles>
...
</OutputProfiles>

<Providers>
<SRT />
<WebRTC>
..
</WebRTC>
<RTMP>
<BlockDuplicateStreamName>true</BlockDuplicateStreamName>
</RTMP>
<MPEGTS>
...
</MPEGTS>
</Providers>
...
</Application>
...
</Applications>

关键说明

  1. RTMP Publisher 与 RTMPPush 的区别:
    • <RTMP>在<Publishers>下:负责监听1935端口,处理外部客户端的RTMP拉流请求(比如VLC)
    • <RTMPPush>在<Publishers>下:负责让OME主动将流推送到指定外部服务器,并非用于客户端拉流
  2. 日志错误"unknown key publishers...push":多因RTMPPush配置格式错误(如缺少子项)或配置位置不当导致,无需主动推流时直接移除RTMPPush即可消除该错误
  3. 验证:修改配置后重启OME,用VLC测试rtmp://ome.ip.address:1935/live/streamName,即可正常拉流

内容的提问来源于stack exchange,提问作者Dmytro Kravchenko

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 07:22:41