Videojs中的SMIL自适应流媒体

时间:2015-02-07 14:05:52

标签: video.js wowza smil adaptive-bitrate wowza-transcoder

使用SMIL文件在videojs播放器中使用自适应流媒体需要什么。我在我的wowza应用程序中创建了SMIL文件,它正在创建我的4个独立的流并使它们可用。但是,我无法获取使用videojs的网页正确播放SMIL文件。关于该编码的提示或在哪里找到正确的文档将不胜感激。

2 个答案:

答案 0 :(得分:0)

SMIL玩家的实施并不多。我确定我已经看过wowza网址,表明它会将SMIL作为其他格式输出,例如whatever.smil / manifest.m3u8。这个HLS可以在移动设备和Safari本地播放,并在其他地方使用videojs-contrib-hls播放。

答案 1 :(得分:0)

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

有一个master link解释了如何为实时流设置和运行Wowza Transcoder,以及如何使用SMIL文件设置自适应比特率流。在那里的视频之后,您可以实现拥有使用ABS的流,但是SMIL文件附加到流名称,因此如果您有来自另一个媒体服务器源的Wowza并且需要的流,则它不是解决方案在被送达客户之前进行转码。在文章中提到了一些关键的东西(比如流名称组),但不管怎样,事情看起来并不是很清楚,至少在我看来。因此,我从我阅读的所有文章以及我为实现ABS所做的工作中所理解的内容得到了一些澄清:

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

    1. 您需要启用Wowza转码器(这非常简单,步骤在我上面提到的视频中)。
    2. 您应该使用您要传递的不同流预设创建自己的转码器模板,例如,您可以检查已经存在的默认值。您添加的预设越多,Wowza在流来时需要做的工作就越多,因为它需要为您定义的每个预设生成一个新流。
    3. 现在是生成NGRP 的时候。在您的转码器模板中,您可以根据需要生成任意数量的NGRP(澄清:这些类似于流组,您可以在客户端视频播放器中设置。每个NGRP包含视频将包含的流能够在进行自适应比特率流时使用)。例如,这些是默认的NGRP:

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 ”而不是“ playlist.m3u8 ”)。

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

我希望它有助于某人!至少澄清事情! :)