2017-01-17 3 views
0

完全に機能するMPEG-DASHエンコーダがあります。今私はそれをストリーミングコンテンツがDRM保護されるように拡張しようとしています。私はここでお聞きし:)完全なサンプルの暗号化(オーディオトラック)でMPEG-DASH CENCエンコーダはブラウザでMEDIA_ERR_DECODEの問題を生成します。

  1. 私はAES128と「MDATA」ボックス内の各サンプルを暗号化することができますことを決めたので、私は非常に簡単に理解することができないんだ二つの問題を持っています/ CTR/NoPaddingと8byteの長さのIVは後で "senc"ボックスに格納されますか?

  2. "senc"ボックスがIVのコンテナである場合、 "traf"(フラグメント)にはまだ "saiz"と "saio"ボックスが必要ですか?

  3. もし私がそこに保存する必要があるオフセット/サイズですか? "senc"ボックスか...?

ストリームがDRMなしで完全に動作していることを確認しました。「pssh」ボックスとdash.jsのClearKey DRMサポートを使用してDRMセッションが正常に作成されました。 3日間私のことを気にするのは、ブラウザがそれをうまくデコードできるように、フラグメントボックスがどのように表示されるべきかだけです。私は前の3つの質問に関連して何か間違ったことをしたと思います。

答えて

0

私は自分自身に答えることができます。誰かが同様の問題を抱えているかもしれません。

  1. はい、いいえ。 MP4Aには、mdataにシリアライズされたフレームが含まれています。各フレームはサンプルです。これは、フレームごとに、AES128/CTR/NoPadding暗号と暗号文を通す必要があり、プレーンフレームではなくmdataに格納する必要があることを意味します。各フレームにはIVが関連付けられています。

  2. はい! sencボックスはMp4エクスプローラで検出されますが、CENC準拠の暗号解読装置では使用されませんが、sencを指すsaio/saizボックスがあります。 Sencはmdatボックスに格納しないでください。 Saioは、Sencボックス自体ではなく、SencのIVの始まりを指すべきです。

  3. Saizには、ボックス全体ではなく1つのsencエントリのサイズが含まれています。 Saioは1レコードしか持っておらず、Sencボックスの最初のIVポジションを指しています。

私はストリームをテストしました.dash.jsとbitmovin playerでストリームをテストしました。両方で動作します。

関連する問題