2017-05-04 67 views
4

AV Playerで通常のHLSビデオを問題なく再生できます。しかし、AES-128で暗号化されたHLSビデオを再生するにはどうすればよいですか?AVPlayerでAES-128暗号化HLSビデオを再生する方法

+1

再生キーのヘッダーにアクセスキーを追加するだけではありませんか? – SeanLintern88

+0

私はそうは思わない。しかし私は試してみましょう! –

+0

いいえ動作しません。私はヘッダーの承認として復号化キーを追加しようとしました –

答えて

6

AES-128 /類似の暗号化HLSビデオをデコードするには、ヘッダーに「認証」を追加してください。

let headers = ["Authorization": "Bearer xxxxxxxxxxxxxxxx..."] 
let avAsset = AVURLAsset(url: videoURL, options: ["AVURLAssetHTTPHeaderFieldsKey": headers]) 
let avItem = AVPlayerItem(asset: avAsset) 
let avPlayer = AVPlayer(playerItem: avItem) 
. 
. 
. 

ありがとう@ SeanLintern88ありがとうございました。

+0

ありがとうたくさん!なんらかの理由で、これは既に動作しているようですが、AVPlayerはAES-128暗号化ストリームをボックスから解読できるようにすべきです(鍵はプレイリストで指定されています)。今回の問題は、プレイリストにIV文字列の前に0xを追加するのを忘れてしまったことです。私が完全に間違っていない限り。 – Jonny

+0

ありがとうございます。 AVPlayerは暗号化されたコンテンツを実際に再生しますが、ヘッダーは必要ありません。 HTTPS上に別のセキュリティ層を追加するには、Cookieを使用する必要があります。ユーザーがm3u8ファイルを取得したときにクッキーを設定すると、AVPlayerは自動的にfile.key要求でそのクッキーを使用します。 – nhenrique

関連する問題