Chromecast上的HLS播放性能和稳定性

时间:2014-04-24 12:24:46

标签: http-live-streaming chromecast

我在使用媒体播放器库时遇到HLS播放问题,至少从v0.3.0开始,一直持续到当前版本(v0.5.0)。我知道播放器库处于测试阶段,因此我想知道其他人是否看到了我所看到的内容。

基本上,问题表现在一段时间后,Chromecast设备变得反应迟钝。调试器停止显示任何输出,关闭它并再次尝试访问它会导致超时错误。有时,一段时间后,设备只会崩溃到主屏幕(没有脑风)。

在此之前我尝试查看配置文件和时间表,但我没有看到任何异常的峰值。我确实注意到日志中有一些错误(但它们可能与此无关),如下所示:

An attempt was made to use an object that is not, or is no longer, usable

唯一的"不寻常的"我正在做的事情是我在每个视频timeupdate事件上广播状态。这不会在正常播放中引起任何此类问题。

1 个答案:

答案 0 :(得分:0)

希望您已经解决了这个问题,我为遇到同样问题的人提供了一种解决方法。

我有一个接收器流式传输HLS(正确编码,使用CORS头和AES加密)。我注意到有时Chromecast会因为大段(> 25Mo)而疯狂,因此在追加后一段时会使其(几乎)随机崩溃。

相信我可能会对这个小型设备提出太多要求,有两种解决方案可以降低设备负载:

  1. 禁用AES加密(并非总是可以接受)
  2. 降低细分质量
  3. 关于解决方案2,这很有效:

    window.host = new cast.player.api.Host({'mediaElement':mediaElement, 'url':url});
    window.protocol = cast.player.api.CreateHlsStreamingProtocol( host );
    
    window.host.getQualityLevel = function(streamIndex, qualityLevel){
    
        var lowestQuality = protocol.getStreamInfo()["bitrates"].length-1;
        var plusOneQuality = (qualityLevel == lowestQuality)?qualityLevel:qualityLevel+1;
    
        console.log( "original QualityLevel : " + qualityLevel, "returned QualityLevel", plusOneQuality );
        return plusOneQuality;
    }
    

    我很想得到一些关于此的反馈。是否有人必须使用这样的技巧来阻止HLS HD流崩溃设备?