2012-04-02 8 views
0

ビデオをロードして変更する必要があります。ストリームをビットごとに読み込み、ステガノグラフィの目的のために変更するにはどうすればよいですか。ビデオファイルをビット単位で表示する例は見つかりませんでした。非常に前もってありがとう。JavaまたはC++でのビデオとオーディオストリームを使用したステガノグラフィ

+0

[Video Steganography]の複製が可能です(http://stackoverflow.com/questions/9567818/video-steganography) – dasblinkenlight

答えて

0

まず、ビデオとは何かを取得する必要があります。ディスク上のデータ(またはネットから受信したデータ)とウィンドウに表示されるフレームの最終ピクセル(1つのフレームの実際のイメージ)の間にアルゴリズムがあります(ビデオが圧縮されていないピクチャの「シーケンス」にすぎない場合) 。真ん中にいれば(デコードされたデータを読む)、データを変更することができます。しかし、元の形式に戻す必要があります。これは、圧縮されたデータではないにしても、「注入された」隠されたビットを簡単に破壊する、あなたはストリームを慎重に洗練させます。

jpegイメージにデータを隠す場合も同様の問題があります(既知の方法では、最終的なjpegファイル形式に格納されているDCTの係数が使用されます)。グーグルでは、thisのようなリンクを見つけることができます。私はこれをチェックしていませんが、そのようなアイデアは知られており、そのリソースを見つけることができます。

ビデオにデータを隠すことはあまり変わらないかもしれませんが、見ることができるように、圧縮されていないかロスレスに圧縮された画像/テキスト/サウンド/何にでも直接挿入するのではありません。

「ビット」としてビデオを見ることができるということに戻ると、ビデオファイルを読み込んだら、一度フレームごとにデコードすると(ライブラリを使用して)、バイトが取得されます。ビットの抽出と変更は、shiftやbitwise-and/or/eorのようなクールな操作の問題です。ビデオファイルをデコードすることが何を意味するのかを知るためには、プレイヤーのソースコード(例:mplayer)と使用できるコーデックを検索することができます(詳細を知りたい場合は、コーデックプレーヤーのやり方)。

関連する問題