hlsで細切れのtsファイルを受信しているから、必然的にその都度tsファイルを複合している。
※master.m3u8 → playlist.m3u8 (複合キーとtsのリスト) → 受信したものを複合しながら再生。

複合用のキーとして受信しているファイルの内容は、再生ページを開くたびに変わっているっぽい?
なので単純にファイルの内容が複合用のキーであるなら、リアルタイムで暗号化している。
ただし、リクエストしている複合用のキーのurlも再生の度に異なっているので、もしもこれと掛け合わせて複合用のキーを生成しているのだとしたら、最終的な複合用のキーは同じ(リアルタイムの暗号化では無い)可能性がある。

んで、キャッシュについてだけど、これって暗号化された状態のままキャッシュしちゃえば良いんじゃないかな?
※個別のtsファイルで持つとファイルが多すぎるので、mkvや無圧縮のzipとかで1つのファイルにまとめると良いかも。
再生するときに個別のtsとして渡してやれば、そのまま複合されて再生されるかも?
※リアルタイムの暗号化の場合は、複合用のキーも必要。