【问题标题】:AWS iOS SDK upload videos and access compressed files from Cloud FrontAWS iOS SDK 上传视频并从 Cloud Front 访问压缩文件
【发布时间】:2017-08-13 18:18:55
【问题描述】:

我的应用:

  • 录制视频并将其上传到 Amazon(使用 CloudFront 分发版)

  • 通过从 CloudFront 下载这些视频(在 AVPlayer 中)播放这些视频

我使用 AWS iOS 开发工具包。我想减少播放文件时的延迟(尤其是在中等互联网连接的情况下长时间播放)。

我尝试了两件事:

1) CloudFront 压缩

  • 我在 CloudFront 分配配置上将 Compress Objects Automatically 设置为 YES 并正常上传我的视频,但我什至不确定 Cloud Front 是否压缩视频文件 (File types that CF compresses)
  • 我应该在下载视频时在某处设置Accept-Encoding: gzip,但我看不到在哪里...我通常使用默认配置的AWSS3TransferUtility

2) 客户端压缩

  • 我自己使用GzipSwit 库压缩视频并将其上传到亚马逊。我应该再做一些测试来确定,但压缩并不总是很有效,有时它不会改变文件的大小。

  • 我从 CloudFront url 下载数据,解压缩,保存在本地,然后播放。这里,我也需要设置Accept-Encoding: gzip吗?

我对这两种解决方案都持开放态度(因为两者都应该减少延迟)但现在我无法让它们中的任何一个工作。

提前感谢我能得到的所有建议。

【问题讨论】:

    标签: ios amazon-web-services amazon-s3 compression amazon-cloudfront


    【解决方案1】:

    选项 1:

    Accept-Encoding 来自传入的客户端请求。调用该 URL 的客户端必须发送该标头。

    如果您使用的是 S3 并且需要再执行一步,请使用 S3 CORS 配置。

    https://ithoughthecamewithyou.com/post/enable-gzip-compression-for-amazon-s3-hosted-website-in-cloudfront

    选项 2:

    您可以在 S3 中压缩和托管它。客户端请求不需要 Accept-Encoding 标头。因为它可以按原样下载文件。

    结论:

    选项 1 更好,因为您可以使用最佳压缩进行压缩,但客户端可以请求多个选项。例如,

    接受编码:br;q=1.0, gzip;q=0.8, *;q=0.1

    这个选项表示使用 br 或 gzip 压缩以及压缩因子。

    将文件保留在 S3 中,并将压缩留给 CloudFront。根据客户端参数,它可以响应编码标准。

    此外,如果引入了任何新的压缩方法,它将默认工作,并让 CF 决定如何处理。

    有关编码的更多信息,

    https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Accept-Encoding

    【讨论】:

    • 问题:CloudFront only compresses text-based content,并且只能使用 gzip,而不是 Brotli (br)。 Gzip 对视频文件来说不是一种有用的压缩算法,因为它们已经倾向于具有最小的冗余,因此生成的文件仍然倾向于非常接近原始文件的大小。视频文件(或任何已压缩的内容)的 gzip 压缩文件有时会比原始文件大。
    • @Michael-sqlbot 你知道视频使用什么压缩算法吗?
    • 感谢 @Michael-sqlbot 确认我无法使用 CloudFront 压缩视频。
    • @MarieDm 视频(和音频)不能很好地适应文本和文档所做的相同类型的可逆、无损压缩。例如,MP3 音频比 PCM 小,因为信息实际上被一种算法丢弃,该算法试图(不完美地)确定与耳朵相关的内容,所以它不是压缩(可逆),而是数据缩减。相同的一般原则适用于视频编解码器。使文件有意义地变小通常需要不同的编码参数和质量损失。找到质量/尺寸的平衡有点像寻找圣杯。
    • @Michael-sqlbot 感谢您告知云端无法进行二进制压缩。
    猜你喜欢
    • 1970-01-01
    • 2021-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-04
    • 1970-01-01
    • 2017-03-21
    • 2018-02-27
    相关资源
    最近更新 更多