0

我的應用程序:AWS的iOS SDK上傳視頻和訪問壓縮的文件

  • 記錄視頻並上傳他們亞馬遜(用CloudFront的分佈)

  • 播放這些視頻(在AVPlayer)通過從下載它們CloudFront

我使用AWS iOS SDK。我想在播放文件時減少延遲(特別是長時間連接中等互聯網)。

我想兩兩件事:

1)CloudFront的壓縮

  • 我設置Compress Objects AutomaticallyYES我的CloudFront的分發配置和上傳我的視頻正常,但我什至不知道雲鋒壓縮視頻文件(File types that CF compresses
  • 我應該在下載視頻時在某處設置Accept-Encoding: gzip但我不知道在哪裏......我通常使用AWSS3TransferUtility用默認配置

2)客戶端壓縮

  • 我壓縮視頻自己與GzipSwit庫,並把它上傳到亞馬遜。我應該運行一些更多的測試,但是壓縮並不總是非常有效,有時它不會改變文件的大小。

  • 我從CloudFront url下載數據,將其解壓縮,保存到本地並播放。在這裏,我是否也需要設置Accept-Encoding: gzip

我打開這兩個解決方案(因爲兩者都應該減少延遲),但現在我不能讓任何人的工作。

在此先感謝您提供的所有建議。

回答

0

選項1:

接受編碼來自傳入客戶機請求。調用URL的客戶端必須發送該標頭。

如果您正在使用S3,並且需要使用S3 CORS配置再做一步。

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

選項2:

可以壓縮和S3主持它。客戶端請求不需要Accept-Encoding標頭。因爲它可以按原樣下載文件。

結論:

選項1是更好,因爲你可能會用最好的壓縮壓縮,但客戶端可以與多個選項要求。例如,

的Accept-Encoding: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),並且只使用gzip而不是Brotli('br')。 Gzip已不是視頻文件的有用的壓縮算法,因爲他們已經傾向於有最小冗餘,因此其結果文件仍然會趨向於非常接近原來的大小。視頻文件(或任何已經壓縮的內容)的gzip壓縮文件有時可能比原始文件大。 –

+0

@ Michael-sqlbot你有什麼想法來使用什麼壓縮算法的視頻? –

+0

謝謝@ Michael-sqlbot確認我無法使用CloudFront壓縮視頻。 –