2015-02-07 144 views
-1

使用SMIL文件在videojs播放器中使用自适应流式传输需要什么。我在我的wowza应用程序中创建了SMIL文件,并创建了4个独立的流并使其可用。不过,我无法让我的网页使用videojs正确播放SMIL文件。提示该编码或去哪里找到正确的文档将不胜感激。SMIL自适应流式传输Videojs

回答

0

SMIL播放器的实现并不多。我确定我已经看到了wowza网址,它表明它会将SMIL输出为其他格式,比如whatever.smil/manifest.m3u8。这是HLS,它可以在本地移动和Safari上播放,并在其他地方使用videojs-contrib-hls

0

我知道这个问题很旧,但最近我一直在努力,所以我想分享我的经验,以防万一有人感兴趣。我的场景非常相似:想要从Wowza向使用videojs的客户端提供自适应比特率流。

有一个master link解释了如何设置和运行Wowza Transcoder进行直播,以及如何使用SMIL文件设置自适应比特率流。在视频之后,您可以实现使用ABS的流,但将SMIL文件附加到流名称,所以如果您有来自另一个媒体服务器源的Wowza的流并且需要在被送达给客户之前被转码。在文章中提到了一些关键的东西(比如Stream Name Groups),但不管怎样,事情似乎并不清楚,至少对我而言。因此,这里是一些澄清什么,我从我读了所有文章的理解和我做了什么来实现ABS:

  • 可以实现Wowza ABS或者与SMIL文件或流名称组(NGRP)。 NGRP反射到Transcoder模板中定义的可以使用多比特率流(动态)播放的流块(这是我使用的)。 SMIL文件用于为多比特率VOD流创建“静态”流列表。如果您使用的是Wowza Origin-Edge Delivery,则需要.smil文件,因为NGRP不会被转发到边缘。 (所有这些信息的来源:here)。
  • 如果您需要SMIL文件,您可能需要为每个流生成一个新文件,并且可能希望以自动方式执行该操作,所以最好的方法是通过HTTP请求(在上面的链接中解释如何实现这一点)。
  • 在你可以用NGRP生活情况下,事情有点容易:

    1. 您需要启用Wowza转码器(这是很容易和步骤都在视频我上面提到)。
    2. 您应该创建您自己的代码转换器模板,其中包含您想要提供的不同流预设,作为一个例子,您可以查看已存在的默认代码。您添加的预设数量越多,Wowza在流式传输时就需要做的工作越多,因为它需要为您定义的每个预设生成一个新流。
    3. 现在是当我们生成NGRPs。在您的Transcoder模板中,您可以根据需要生成尽可能多的NGRP(要澄清:这些就像是一组流,您可以在您的客户端视频播放器中设置)每个NGRP包含视频将能够在进行自适应比特率流传输时使用)。举例来说,这些都是默认NGRPs:

enter image description here

如果你玩在客户端视频播放器NGRP“_mobile”,在玩家的ABS算法将能够使自己适应于基于客户端功能播放240p或160p流。

所以想象你有这两个NGRP。 为了在videoJS发挥他们,你需要将源设置为

http://[wowza-ip-address]:1935/<name-of-your-application>/ngrp:myStream_all/playlist.m3u8 

http://[wowza-ip-address]:1935/<name-of-your-application>/ngrp:myStream_mobile/playlist.m3u8 

...根据你要多少选择提供给客户端播放器用于ABS。 (例如:如果你的目标是旧的移动设备,你可能只是想提供几个低比特率的流)。 (如果您提供HLS流,则会出现这种情况。如果其他格式,扩展名会发生变化,例如,如果您要传送DASH流,您将拥有“/manifest.mpd”而不是“”播放列表。 m3u8“)。

就是这样,在video.js文档中还有一个非常有用的链接,说明它如何进行比特率切换:here

我希望它可以帮助别人!至少澄清事情! :)