0

マイアプリ:AWSのiOS SDKのアップロード動画やアクセス圧縮ファイル

  • 記録ビデオとは

  • は、これらのビデオを果たしている(CloudFrontの分布で)アマゾンにそれらをアップロード(AVPlayer)からCloudFront

私はAWS iOS SDKを使用しています。私はファイルを再生するときのレイテンシを減らしたいと思います(特に中程度のインターネット接続では長いです)。

が、私は2つのことを試してみました:

1)CloudFrontの圧縮を

  • 私は私のCloudFrontの配信設定にYESCompress Objects Automaticallyを設定すると、通常は自分のビデオをアップロードしても、私もわからクラウドフロント湿布ないんだけどビデオファイル(File types that CF compresses
  • ビデオをダウンロードするときに私はAccept-Encoding: gzipをどこかに設定するはずですが、私はどこに見えません...私は通常を使用しますデフォルトの設定で

2)クライアント側圧縮

  • 私はGzipSwitライブラリとビデオを自分自身を圧縮し、アマゾンにアップロードします。私は確かにいくつかのテストを実行する必要がありますが、圧縮が常に効果的であるとは限りません。ファイルのサイズが変更されないこともあります。

  • 私はCloudFrontのURLからデータをダウンロードし、解凍してローカルに保存して再生します。ここで、Accept-Encoding: gzipも設定する必要がありますか?

私は両方のソリューションにオープンしています(どちらもレイテンシを短縮するはずです)が、今はそれらを動作させることができません。

私が得ることができるすべてのアドバイスのために事前に感謝します。

答えて

0

オプション1:

のAccept-エンコーディングが着信クライアント要求から来ています。 URLを呼び出すクライアントは、そのヘッダーを送信する必要があります。

S3を使用していて、S3 CORSの設定でもう一度手順を実行する必要がある場合。

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

オプション2:

あなたはS3にそれを圧縮してホストすることができます。クライアント要求には、Accept-Encodingヘッダーは必要ありません。それはそのままファイルをダウンロードすることができるからです。

結論:あなたは最高の圧縮と圧縮可能性があるので、

オプション1が優れているが、クライアントが複数のオプションを要求することができます。例えば、

のAccept-エンコード: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

+1

問題:[CloudFrontをのみテキストベースのコンテンツを圧縮(http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/ServingCompressedFiles.html #compressed-content-cloudfront-file-types)、そしてBrotli( 'br')ではなくgzipでのみ使用できます。 Gzipはビデオファイルの圧縮アルゴリズムとしては有用ではありません。すでに冗長性がほとんどないため、結果のファイルは元のサイズに非常に近い傾向があります。ビデオファイル(またはすでに圧縮されたコンテンツ)のgzip圧縮ファイルは、元のファイルよりも大きくなることがあります。 –

+0

@ Michael-sqlbotビデオに使用する圧縮アルゴリズムはありますか? –

+0

CloudFrontでビデオを圧縮できないことを私に確認していただきありがとう@ Michael-sqlbot。 –

関連する問題