видео-стеганография в java

Мне нужно создать стеганографические видео (видео со скрытыми в них данными) для моего проекта. Мне нужно выполнить это, извлекая все кадры из видео, а затем скрывая данные в выбранных кадрах, заменяя биты в LSB значения цвета пикселя, а затем кодируя все кадры для создания нового видео (обратите внимание, что форматы без потерь необходимы, иначе я могу потерять скрытые данные).

Мое исследование побудило меня использовать xuggler для обработки видео, формат 'png' для сохранения извлеченных изображений, поскольку это формат без потерь (обработка их как объектов BufferedImage) и использование Видеофайлы avi. На данный момент я могу извлечь все кадры из видео и закодировать свои скрытые данные в lsb.

Но у меня возникли проблемы при создании нового видеофайла avi с помощью xuggler. Когда я извлекаю кадры из нового видео, они теряют скрытые данные. Я не понимаю, как сделать это правильно и сохранить данные нетронутыми. Это может быть связано с тем, что для создания нового видео использовался какой-то метод сжатия с потерями. Размер нового видео для меня не имеет значения. Я также не могу найти правильный codec_id для создания нового видео. Я широко использую учебник xuggler, доступный на вики. декодировать и захватывать кадры http://build.xuggle.com/view/Stable/job/xuggler_jdk5_stable/ws/workingcopy/src/com/xuggle/mediatool/demos/DecodeAndCaptureFrames.java

Я могу опубликовать свой код по мере необходимости...


person prakhar saxena    schedule 03.07.2012    source источник
comment
Я также могу использовать другие библиотеки Java. Если кто-то знает другие хорошие библиотеки для работы с видео и может помочь мне или предоставить ссылку на учебные пособия, то добро пожаловать...   -  person prakhar saxena    schedule 03.07.2012


Ответы (1)


Проблема заключается в алгоритме, который вы используете, так как mpeg или другие известные методы сжатия видео являются методами сжатия с потерями, вы будете терять данные, когда будете конвертировать кадры обратно в видеопоток. Таким образом, в видеокодеках с потерями вы не можете использовать методы LSB для стеганографии. Вместо этого вы можете каким-то образом изменить векторы движения видео, чтобы скрыть стеганографические данные. Проблема в том, что xuggler, являющийся API более высокого уровня, может не дать вам возможности найти/изменить векторы движения кадра p/b. В ffmpeg, который использует xuggler, есть возможность визуализировать векторы движения, поэтому лучшим выбором для алгоритма векторов движения является изменение исходного кода ffmpeg как проекта с открытым исходным кодом. Ответьте, если найдете лучший способ найти векторы движения.

Ну, есть более простой метод стеганографии видео

Вы можете обратиться к Настоящая стеганография с truecrypt

Но если вы действительно хотите использовать сжатие видео в формате mpeg, вы можете обратиться к замечательной статье: Стеганография в сжатом видеопотоке, но проблема остается извлечение векторов движения и управление ими

person Tapan Thaker    schedule 16.08.2012
comment
привет, тапан ... Я также столкнулся с небольшой проблемой. Вместо метода младшего бита я использую добавление разделителей 4 Хэш, а после этого мои текстовые данные. Затем я создаю новое видео. из этого видео я создал набор кадров. наконец, поиск 4 Хэш-разделитель. Но я не могу понять, что не так в концепции моего проекта. - person Sumit; 21.08.2012
comment
Здравствуйте, sumit, извините, но я не знаю о вашем алгоритме стеганографии, можете ли вы опубликовать ссылку или что-то на документ или ссылку, на которую вы ссылаетесь? - person Tapan Thaker; 23.08.2012
comment
привет тапан, это был отличный ответ с твоей стороны. Я, безусловно, рассмотрю возможность использования ffmpeg и дам вам знать, если это удастся... - person prakhar saxena; 01.09.2012