为什么 smil 文件在 wowza 和 jwplayer 中都不能与 RTMP 一起使用?

Why smil file is not working with RTMP both in wowza and jwplayer?

我正在使用 wowza 流媒体引擎和 jw 播放器来显示流并且工作正常。但我想控制视频的比特率,以便用户可以在没有太多缓冲的情况下观看视频。所以我在 Whosebug 中搜索并找到以下 link.

Bitrate JWplayer

然后我根据上述 link 创建了我的 myVideo.smil 文件。然后我去wowza测试。它在 MPEG DASH 中工作 http://192.168.0.106:1935/vod/smil:myVideo.smil/manifest.mpd 还有 ADOBE HDS http://192.168.0.106:1935/vod/smil:myVideo.smil/manifest.f4m

但我不知道为什么它不能使用 RTMP

我把测试播放器 server=rtmp://192.168.0.106:1935/vod and stream=smil:myVideo.smil 按开始按钮后,我发现已连接当前比特率 0kbps,只有黑屏。

我也在 jwplayer 中试过 link rtmp://192.168.0.106:1935/vod/smil:myVideo.smil 它正在加载但没有显示任何内容。 我再次尝试了 link

的方法
jwplayer("myElement").setup({
    file: "/assets/myVideo.smil",
    image: "/assets/myVideo.jpg",
    height: 360,
    width: 640
});

它显​​示“加载错误 stream:Manifest 未找到或无效” 我不知道我错过了什么,也不知道为什么不只使用 RTMP。请帮助我。

这是我的示例myVideo.smil文件代码

<smil>
  <head>
    <meta base="rtmp://192.168.0.106:1935/vod/" />
  </head>
  <body>
    <switch>H
      <video src="sample.mp4" height="720" system-bitrate="200000" width="1280" />
      <video src="sample.mp4" height="360" system-bitrate="80000" width="640" />
      <video src="sample.mp4" height="180" system-bitrate="30000" width="320" />
    </switch>
  </body>
</smil>

问题在于 RTMP 本身完全忽略了多种比特率。

您在 JWPlayer 中执行此操作的方式是使用 HTTP link 到:

http://192.168.0.106:1935/vod/smil:MyVideo.smil/jwplayer.smil

这将指示 JWPlayer 使用从 URL 接收到的多比特率 smil,连接到给定的 RTMP 端点,播放列出的第一个流,并根据需要将流切换到不同的比特率。

基本上构造 URL 的方法是采用 HLS/DASH/HDS url 并将最后一个元素(比如 HLS 的 playlist.m3u8)替换为 jwplayer.smil .

但请注意,这仅适用于 SMIL。如果您尝试为 sample.mp4(在本例中为 http://192.168.0.106:1935/vod/mp4:sample.mp4/jwplayer.smil)访问类似的 url,那么它不会工作,您很可能会遇到播放错误。