【问题标题】:Amazon S3/Cloudfront Video Decoding FailedAmazon S3/Cloudfront 视频解码失败
【发布时间】:2015-05-17 07:30:45
【问题描述】:

我在通过 Amazon S3 + Cloudfront 交付静态 HTML5 视频文件时遇到问题。基本上,视频播放正常,但完全忽略了视频播放器中的任何循环功能。我已将播放器元素循环属性设置为 true。并且还设置了 Javascript 作为备份。 (见下文)。这一切使用 localhost 都可以正常工作,但是当我从 AWS 服务时,我不断收到错误 net::ERR_CONTENT_DECODEDING_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);
  }

【问题讨论】:

    标签: javascript html video amazon-s3 mime-types


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 这对我有用,谢谢!我要补充一点,您必须删除 gzip 标头并停止压缩内容,OP 发生的事情是他们可能只删除了标头。
    猜你喜欢
    • 2016-02-08
    • 2012-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-19
    • 2017-12-30
    • 2017-08-16
    • 2012-09-28
    相关资源
    最近更新 更多