4

I need to create steganographic videos (videos with data hidden in them) for my project. I need to carry this out by extracting all the frames from a video and then hiding data in the selected frames by replacing bits in the LSB of the pixel color value and then encoding all the frames to create a new video(note here that lossless formats are required otherwise I might end up losing hidden data).

My research motivated me to use xuggler for manipulating videos, 'png' format to save the extracted images as it is a lossless format(handling them as BufferedImage objects), and using 'avi' video files. As of now I am able to extract all frames from a video and encode my hidden data in the lsb's.

But I am having problems in creating the new avi video file using xuggler. When I extract the frames from the new video they lose the hidden data. I don't understand how to get this right and keep the data intact. This could be due to some lossy compression technique being used to create the new video.The size of the new video does not matter to me. I also can't find the correct codec_id to create the new video. I am extensively using xuggler tutorial available on wiki. decode and capture frames http://build.xuggle.com/view/Stable/job/xuggler_jdk5_stable/ws/workingcopy/src/com/xuggle/mediatool/demos/DecodeAndCaptureFrames.java

I can post my code as required...

4

1 回答 1

2

问题在于您使用的算法,因为 mpeg 或其他著名的视频压缩技术是有损压缩技术,当您将帧转换回视频流时,您将丢失数据。因此,在有损视频编解码器中,您不能将 LSB 技术用于隐写术。相反,您可以做的是以某种方式更改视频的运动矢量以隐藏隐写数据。问题在于,作为更高级别的 api 的 xuggler 可能无法为您提供查找/更改 p/b 帧的运动矢量的方法。xuggler 使用的 ffmpeg 确实有一个选项可以让您可视化运动矢量,因此对于运动矢量算法,您最好的选择是将 ffmpeg 的源代码更改为开源项目。如果您找到找到运动矢量的更好方法,请回复。

嗯,有一个更简单的视频隐写方法

可以参考Real steganography with truecrypt

但是,如果您真的想使用 mpeg 视频压缩,您可以参考精彩的论文:压缩视频流中的隐写术,但问题仍然存在于提取和操作运动矢量

于 2012-08-16T15:55:56.433 回答