4

プロジェクト用にステガノグラフィック ビデオ(データが隠されているビデオ)を作成する必要があります。これを実行するには、ビデオからすべてのフレームを抽出し、選択したフレームのピクセル カラー値の LSB のビットを置き換えてデータを非表示にし、すべてのフレームをエンコードして新しいビデオを作成します (ロスレス フォーマットに注意してください)。そうしないと、隠しデータが失われる可能性があります)。

私の研究は、xugglerを使用してビデオを操作し、' png ' 形式を使用して抽出した画像をロスレス形式 (BufferedImage オブジェクトとして処理) として保存し、' avi ' ビデオ ファイルを使用するように動機付けました。今のところ、ビデオからすべてのフレームを抽出し、隠しデータを lsb にエンコードすることができます。

しかし、 xuggler を使用して新しい avi ビデオ ファイルを作成する際に問題が発生しています。新しいビデオからフレームを抽出すると、隠しデータが失われます。これを正しく取得し、データをそのまま維持する方法がわかりません。これは、新しいビデオの作成に非可逆圧縮技術が使用されていることが原因である可能性があります。新しいビデオのサイズは問題ではありません。新しいビデオを作成するための正しい codec_id も見つかりません。私は、wiki で入手できる xuggler チュートリアルを広く使用しています。 フレームのデコードとキャプチャ http://build.xuggle.com/view/Stable/job/xuggler_jdk5_stable/ws/workingcopy/src/com/xuggle/mediatool/demos/DecodeAndCaptureFrames.java

必要に応じてコードを投稿できます...

4

1 に答える 1

2

問題は、使用しているアルゴリズムにあります。mpeg やその他の有名なビデオ圧縮技術は非可逆圧縮技術であるため、フレームをビデオ ストリームに戻すときにデータが失われます。したがって、非可逆ビデオ コーデックでは、LSB 手法をステガノグラフィに使用することはできません。代わりに、動画のモーション ベクトルを何らかの方法で変更して、ステガノグラフィ データを非表示にすることができます。この問題は、xuggler が高レベルの API であるため、p/b フレームのモーション ベクトルを検索/変更する方法が提供されない可能性があることです。xugglerが使用するffmpegには、モーションベクトルを視覚化するオプションがあるため、モーションベクトルアルゴリズムの最善の策は、オープンソースプロジェクトとしてffmpegのソースコードを変更することです。モーション ベクトルを見つけるためのより良い方法を見つけた場合は、返信してください。

ええと、もっと簡単なビデオステガノグラフィー方法があります

truecryptで Real ステガノグラフィを参照できます

しかし、本当に mpeg ビデオ圧縮を使用したい場合は、素晴らしい論文を参照できます:圧縮ビデオ ストリームのステガノグラフィですが、モーション ベクトルの抽出と操作に関する問題は依然として残っています。

于 2012-08-16T15:55:56.433 に答える