暗号化されたビデオのストリーミング中に位置に「スキップ」したい場合、この問題が発生します
だから私が持っているのは:
http ストリーミング サーバー (ローカル、Android デバイス上で実行) ネイティブ android Media Player RC4 暗号化ユーティリティ
基本的に、暗号化されたビデオを SD カードに保存しています。http ストリーミング サーバーを使用してメディア プレーヤーにストリーミングしたいと考えています。サーバーはすでにオンザフライで暗号化を行っていますが、これは実際に機能し、OutputStream に書き込む前に RC4 暗号化ユーティリティを使用してバイトを変換します。
ファイルの暗号化は問題ありません。生成された暗号化ユーティリティのビットに対してファイル全体を実行するだけです。これは、ビデオを再生しようとするときにやり直すだけです。問題は、ビデオの位置を「シーク」したい場合です。たとえば、2 時間の映画の中間部分を表示したい場合です。私が現在行っていることは、非常にゆっくりではありますが、RC4 暗号化ユーティリティをリセットし、ビデオでジャンプした時間と同じ量をフィードすることです。
ここでの説明があまり明確に聞こえない場合はご容赦ください。ただし、実際にストリーミングで RC4 暗号化を使用していた場合は、同じ問題に遭遇するはずです。
問題は、それが可能かということです。可能であれば、スキップした不要なバイトをすべて通過せずに、RC4 ビット ジェネレーターの位置を「シーク」するにはどうすればよいでしょうか。
各ビデオのサイズは約 500 MB 程度なので、ビデオの最後近くまでシークすると、正しいデータをストリーミングできるようになるまでに約 5 億回の無駄なビット反復が必要になります。