如何测试ABR流媒体?

时间:2018-02-01 12:42:35

标签: video live-streaming mpeg-dash

我在本地网络上测试ABR,我可以请求一些帮助来确认这个MPD是否适用于在实时流媒体中工作的两个自适应集? 目前我无法模拟较低的带宽:我尝试使用chrome / console / performance但没有结果,这是我从chrome控制台读取的内容:

ownerId_Query.removeEventListener(carChangesListener);

1/1让我认为这不能正常工作。

这是生成的MPD文件:

[3945283] AbrController (video) stay on 1/1 (buffer: 24.141)

通过以下MP4Box命令:

<?xml version="1.0"?>
<!-- MPD file Generated with GPAC version 0.7.2-DEV-rev370-gf3b5c45-master  at 2018-01-31T19:27:36.330Z-->
<MPD xmlns="urn:mpeg:dash:schema:mpd:2011" minBufferTime="PT4.000S" type="dynamic" publishTime="2018-01-31T19:27:36Z" availabilityStartTime="2018-01-31T18:58:43.505Z" timeShiftBufferDepth="PT0H0M24.000S" minimumUpdatePeriod="PT0H4M0.000S" maxSegmentDuration="PT0H0M12.000S" profiles="urn:mpeg:dash:profile:isoff-live:2011,http://dashif.org/guidelines/dash264">
 <ProgramInformation moreInformationURL="http://gpac.io">
  <Title>manifest.mpd generated by GPAC</Title>
 </ProgramInformation>

 <Period id="DID1" start="PT0H0M0.000S">
  <AdaptationSet segmentAlignment="true" bitstreamSwitching="true" maxWidth="1920" maxHeight="1080" maxFrameRate="24" par="16:9" lang="und">
   <SegmentTemplate initialization="manifest_set1_init.mp4"/>
   <Representation id="1" mimeType="video/mp4" codecs="avc3.4D4028" width="1920" height="1080" frameRate="24" sar="1:1" startWithSAP="1" bandwidth="7758">
    <SegmentTemplate media="format-1080_dash_track1_$Number$.m4s" timescale="12288" startNumber="1" duration="98304"/>
   </Representation>
   <Representation id="2" mimeType="video/mp4" codecs="avc3.4D401E" width="640" height="360" frameRate="24" sar="1:1" startWithSAP="1" bandwidth="1314">
    <SegmentTemplate media="format-360_dash_track1_$Number$.m4s" timescale="12288" startNumber="1" duration="98304"/>
   </Representation>
  </AdaptationSet>
  <AdaptationSet segmentAlignment="true" bitstreamSwitching="true" lang="eng">
   <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
   <SegmentTemplate initialization="manifest_set2_init.mp4"/>
   <Representation id="3" mimeType="audio/mp4" codecs="mp4a.40.2" audioSamplingRate="48000" startWithSAP="1" bandwidth="261">
    <SegmentTemplate media="format-1080_dash_track2_$Number$.m4s" timescale="48000" startNumber="1" duration="384000"/>
   </Representation>
   <Representation id="4" mimeType="audio/mp4" codecs="mp4a.40.2" audioSamplingRate="48000" startWithSAP="1" bandwidth="135">
    <SegmentTemplate media="format-360_dash_track2_$Number$.m4s" timescale="48000" startNumber="1" duration="384000"/>
   </Representation>
  </AdaptationSet>
 </Period>
</MPD>

我可以问一下,如果没有足够的带宽,哪种方法可以测试浏览器是否改变了表示形式?

非常感谢!

2 个答案:

答案 0 :(得分:0)

对于测试,您可以:

  • 使用测试播放器并手动选择要与播放器控件一起使用的比特率。
  • 使用测试播放器和网络测试器将流量注入本地网络或网络适配器以模拟繁忙的网络,并检查测试播放器的日志以查看其更改流。
  • 修改开源测试播放器,例如Dash.js的ExoPlayer,以添加您自己的控件或测试。

例如,DASH行业论坛参考播放器将允许您使用屏幕上的视频控件手动切换比特率:

enter image description here

在撰写本文时,播放器就在这里值得搜索以查看您是否拥有最新版本:http://reference.dashif.org/dash.js/v2.5.0/samples/dash-if-reference-player/index.html

还有许多在线DASH清单验证器 - 我不能评论一个在另一个之上的优点,但是这个确实提供了结果并突出显示了清单中的一些错误:

值得注意的是,上述验证器似乎比某些实现更严格 - 我已经看到了在实时站点中播放媒体但没有通过此验证的清单示例。但是,它应该可以帮助您确定问题 - 您将看到上面的清单提供了一个注释:

  

如果存在多个媒体段,则应存在持续时间属性或SegmentTimeline元素

答案 1 :(得分:0)

您可以使用开发者工具中的Chrome网络选项来限制网络带宽。 如果你点击网络标签,看看最右边,会有一个组合框,其中&#34;在线&#34;应该被选中。打开它并选择一个网络限制选项。您甚至可以添加自己的,但通常预设选项就足够了。 我希望有所帮助,

干杯。