2011-10-18 13 views
0

私はビデオファイルを取得し、javaを使用して "暗号化"したいと思います。今のところ、暗号化はビットを反転させるだけです。 ビデオを再生できるようにしたいので、ヘッダーはそのまま残す必要があります。ヘッダーの大きさを見つけるのが非常に難しいと思っています。 私は.aviファイルを試してみましたが、このリンクのヘッダサイズはAVI file detailsと仮定しましたが、これはうまくいかないようです。私は最終的に、最初の40kbを残して(非常に大きいようですか?)そのまま推測し、それに続くすべてのビットを反転させました。これは成功しましたが、ビデオは最終的にバギーになりますが、40kbで推測するのは実際には受け入れられません。私はここで、.aviファイルには予告編があるので、この余分な問題を避けるために、私はそれらを避けることにしました。.wmvファイルの形式。 (または任意のビデオファイルは素晴らしいでしょう)

誰でも私の.wmvファイルの形式が何であるかを教えてください。 そうでない場合は、.wmv人気のあるビデオファイルがあります!

これが不明な場合はお詫び申し上げます。

答えて

1

他の人は、ASF specificationがWMV/WMAメディアファイルのフォーマットを完全にカバーしていることに留意している人もいます。 C#がオプションの場合、AsfMojoはASFファイルパーサー、つまりAsfFileクラスのプロパティを使用して簡単に判別できるヘッダーサイズです。

using (AsfFile asfFile = new AsfFile(@"C:\samples\sample.wmv")) 
{ 
    uint headerSize = asfFile.PacketConfiguration.AsfHeaderSize; 
} 

これでは、ファイルを無効にするため、データをスクランブルすることはできません。パケットをスクランブルしたくない場合は、個別のペイロードをスクランブルして、他のすべてをそのままにします。これは通常、ライセンスが必要なコーデックを使用して(私が知っている限り)実行されます。そうしないと、ファイルは再生されません。ちょうどあなたがこのような何かを行うことができペイロードへのアクセスを得るための

using (AsfFile asfFile = new AsfFile(@"C:\samples\sample.wmv")) 
{ 
    var dataObject = asfFile.GetAsfObject<AsfDataObject>(); 
    foreach (var packet in dataObject.Packets) 
     foreach(var payload in packet.Payload) 
     { 
      //do something with the payload 
     } 
    } 
} 

あなたがC#]を使用できない場合は、少なくとも一般的にASFファイルを解析する方法についてのガイドとしてプロジェクトを使用することができます。

+0

ペイロードのビットをこの権利で見ることはできませんか?それとも間違っているのですか?代わりに、私は各パケットからすべてのペイロードを保存し、それらを再配置してランダムなパケットに戻してしまったので、私は "混乱した" asfObjectを持っていましたが、asfObjectをAsfFileに書き込む方法私はAsfFileを書く。これらの方法はありますか?不可能ですか?私はstreamwriterを使って書いてみました。出力ファイルに "AsfMojo.File.AsfFile"があります。 – James

1

気にする必要はありません。多くのビデオには「グローバル」ヘッダーがあり、個々のビデオフレームにはそれぞれヘッダーがあります。ビデオのすべてのフレームが等しいわけではありません。一部のフレームは画像全体である場合があります。いくつかのフレームは、最後のフレームなどとの違いに過ぎません。

グローバルヘッダーをスキップして残りの部分を暗号化すると、すべてのサブヘッダーが改ざんされているので、完全に破損したビデオファイルになりますビットおよび実際のビデオデータを含む。

大きな質問は、なぜそれがビデオのように見せたいのですが、ガベージが表示されるのですか?あなたがコンテンツを保護しようとしているなら、ヘッダー/コンテンツに関係なくファイル全体を暗号化する方が良いでしょう。

1

ビデオファイルのビットを反転すると、ヘッダーを避けても再生できない場合があります。通常、ファイル全体に「メタ」情報が散在しています。そして、たとえそれを避けるとしても、いくつかのビットを反転させることは、圧縮を妨害しやすく、画質に重大な混乱を引き起こす可能性があります。

+0

ファイル内のデータのみをターゲットとし、メタデータを残す方法に関する推奨事項はありますか? OpenCVやJMFはどんな使い方ですか?または、データ/メタデータがどのように見えるかを把握しようとするのが最善の策です。 – James

1

.WMVファイルのフォーマット:Advanced Systems Format (ASF) Specification

通常は、メモリ内または一時ファイルに復号化してそこから再生できる(およびAPIを持つ)場合に備えて、ファイル全体または固定ファイルサイズを最初に暗号化します。

または、新しい/カスタム/プライベートメディアタイプを添付してペイロードストリームを暗号化すると、再生時にカスタムハンドラが呼び出されてデータのデコード/復号化が行われます。

関連する問題