Amazon S3/Cloudfront 视频解码失败

Jam*_*s P 1 html javascript video amazon-s3 mime-types

我在通过 Amazon S3 + Cloudfront 传送静态 HTML5 视频文件时遇到问题。基本上,视频播放正常,但完全忽略视频播放器中的任何循环功能。我已将播放器元素循环属性设置为 true。并且我也在 Javascript 中设置作为备份。(见下文)。这一切使用本地主机都可以正常工作,但是当我从 AWS 提供服务时,我不断收到错误net::ERR_CONTENT_DECODING_FAILED

我同时使用 .webm 和 .mp4,并且文件在 AWS 中具有适当的标头。分别是 Content-Type video/webmContent-Type video/mp4

我注意到在 S3 上默认为所有视频设置了一次 gzip。删除 gzip 标头后,视频甚至不再播放。所以我被困在没有视频或解码错误的无响应视频中。

有任何想法吗?

if (typeof player.loop === 'boolean'){
    player.loop = true;
  }

  else{
    player.addEventListener('ended', function(){
      this.currentTime = 0;
      this.play();
    }, false);
  }
Run Code Online (Sandbox Code Playgroud)

hen*_*ebf 6

我遇到了完全相同的问题,解决方案非常简单。就我而言,我只是删除了将视频资产部署到 S3/Cloudfront的gzip任务,它解决了问题。

实际上,问题与资源标头Accept-Encoding和响应标头有关Content-Encoding,您可以在下面的文档中找到更多详细信息:

http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/ServingCompressedFiles.html#CompressedS3

我建议在单独的选项卡中打开视频,并检查上面提到的标题,很容易看出哪里出了问题。