トップ回答者
DirectShow暗号化したままメディア再生(AVI)したい

質問
すべての返信
-
「暗号化したまま再生」を実現するために求められることは、「簡単な再生」というレベルでは実現が困難だと思います。
とりあえず、考えたこととして記載しています。具体的な手法まではご勘弁下さい。
リアルタイムに復号して再生するためには、復号処理が十分高速であるという条件が必要ですし、ファイルに落とさないとなると仮想的なストレージか、DirectShowのフィルタを作ることになるのではないでしょうか。
また、単純にDirectShowのフィルタとしてしまうと、自分のプレイヤー以外でも復号できる状態になりますので、どうやって自分のプレイヤーだけで復号できるようにするか等、検討する必要が出てきます。
解決した場合は、参考になった返信に「回答としてマーク」のボタンを利用して、回答に設定しましょう(複数に設定できます)。 -
Source Filterを書くことになるのかな?
申し訳ありませんが、自信がありません。
Windows SDKに含まれるDirectShowのフィルタサンプルを読んでみて下さい。
http://msdn.microsoft.com/en-us/library/dd317573(VS.85).aspx
ところで、ファイルから読み出して、復号した時の動画のフォーマットは何になるんでしょうか?
Source Filterを書くとして、自分で展開可能ですか?
解決した場合は、参考になった返信に「回答としてマーク」のボタンを利用して、回答に設定しましょう(複数に設定できます)。 -
現状はどうなっているのでしょう。以下は想像ですが、
AVI ファイル全体を DESCryptoServiceProvider と CryptoStream を使って暗号化し、
再生時に全体を復号して一時的なファイルに保存し、それを再生しているのでしょうか。
その場合、仮にソース フィルタを自作するにしても、
CryptoStream はシークできませんので問題がありそうです。
そもそも VB でフィルタを作る事が可能かどうか、私には分かりません。
でもレジストリに登録されているような既存のフィルタでは、
ご所望の動作は無理だと思います。やはり自作しなければならないと思います。
virtual void -
>現状はどうなっているのでしょう。以下は想像ですが、
>AVI ファイル全体を DESCryptoServiceProvider と CryptoStream を使って暗号化し、
>再生時に全体を復号して一時的なファイルに保存し、それを再生しているのでしょうか。
おっしゃるとおりです。
>でもレジストリに登録されているような既存のフィルタでは、
>ご所望の動作は無理だと思います。やはり自作しなければならないと思います。
そうなのですね。
もっとフィルタのことについて勉強をして実装してみます。
Azuleanさま Abstraktさま、ためになりました。ありがとうございました。