Apple の HTTP ライブ ストリーミングに openssl 暗号化を使用する

StackOverflow https://stackoverflow.com/questions/3010638

  •  26-09-2019
  •  | 
  •  

質問

openssl を使用して暗号化ストリーミングを Apple の HTTP ライブ ストリーミングで動作させることに成功した人はいますか?もうすぐそこまで来ているようですが、ビデオが再生されません。しかし、キーを取得したときに「ビデオは再生できません」または「このビデオを再生する権限がありません」などのエラーも Safari で表示されません。間違っている)。

#bash script:
keyFile="key.txt"
openssl rand 16 > $keyFile
hexKey=$(cat key.txt | hexdump -e '"%x"')
hexIV='0'
openssl aes-128-cbc -e -in $fileName -out $encryptedFileName -p -nosalt -iv ${hexIV}  -K ${hexKey}


#my playlist file:
#EXTM3U
#EXT-X-TARGETDURATION:000020
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-KEY:METHOD=AES-128,URI="key.txt"
#EXTINF:20, no desc
test.ts.enc
#EXT-X-ENDLIST

私はこれらのドキュメントをガイドとして使用していました。

http://tools.ietf.org/html/draft-pantos-http-live-streaming

役に立ちましたか?

解決

さて、私はそれを考え出した...私のhexdumpに対してコマンドが間違っていました。それはする必要があります:

hexKey=$(cat key.txt | hexdump -e '16/1 "%02x"')

他のヒント

あなたは「チャンク」より1つのTSを持っている場合は、また、以下の点に注意してください、そして、あなたは、Appleの暗号化パイプラインのためのビット・正確な交換を探しています。デフォルトでは、アップル暗号化ツールは、Pantos仕様に応じて「暗号の強さを増大させる」チャンクのそれぞれのためのIV(初期化ベクトル)のパラメータを更新する。

のシーケンス番号のニーズがヘクスで符号化とOpenSSLに-ivパラメータとして渡されることを、このわずかな手段を実装

#!/bin/bash
keyFile="key.txt"
openssl rand 16 > $keyFile
hexKey=$(cat key.txt | hexdump -e '"%x"')
# hexIV='0'
for i in {0..number_of_TS_chunks}
do
    hexIV=`printf '%032x' $i`
    openssl aes-128-cbc -e -in $fileName -out $encryptedFileName -p -nosalt -iv ${hexIV} -K ${hexKey}
done

上記の 3 つの情報 (OP、16 進ダンプの修正、IV 情報) を組み合わせることで、実用的な解決策が得られました。 私たち. 。つまり:

openssl rand 16 > static.key

key_as_hex=$(cat static.key | hexdump -e '16/1 "%02x"')

for i in {0..9}; do
    init_vector=`printf '%032x' $i`
    openssl aes-128-cbc -e -in video_low_$(($i+1)).ts -out video_low_enc_$(($i+1)).ts -p -nosalt -iv $init_vector -K $key_as_hex
done

残念ながら、私はこれを実験するためのツールを持っていません。あなたは慎重に仕様を踏襲ように見えます。私はどうなることの一つは、ISは、ネットワークが必ずkey.txtファイルがサファリにダウンロード取得されていることを確認ください嗅ぎます。私はまた、例えば、EXT-X-KEYタグのIVの属性を使用してIVを選んで明示的にしようとするだろう

#EXT-X-KEY:METHOD=AES-128,URI="key.txt",IV=0x00000000000000000000000000000000
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top