2012-04-02 220 views
0

我需要加载视频并对其进行修改。我怎样才能一点一点地读取流,并将其改为用于隐写术。我无法找到以位为单位显示视频文件的任何示例。首先十分感谢。在java或C++中使用视频和音频流的隐写术

+0

[视频隐写术]的可能重复(http://stackoverflow.com/questions/9567818/video-steganography) – dasblinkenlight 2012-04-02 20:33:28

回答

0

首先你必须得到什么是视频。在磁盘上的数据(或从网络接收的数据)和显示在窗口中的帧的最终像素(单个帧的实际图像)之间,有算法(除非您的视频只是未压缩图片的“序列”), 。一旦你能够把自己置于中间(读取解码数据),你就可以改变数据。但是,你必须把它们放回原始格式,这通常并不总是一个带有复杂算法的压缩数据,它很容易破坏你的“注入”隐藏位,除非你非常聪明,以避免选择仔细地细化流的方式。

存在将数据隐藏到JPEG图像中的相同问题(已知方法使用DCT的系数,它们存储在最终的JPEG文件格式中)。谷歌搜索,你可以找到像this,我没有检查,但说的想法是已知的,你可以找到它的资源。将数据隐藏到视频中可能没有那么不同,但是,正如您所看到的那样,它并不像直接将其注入到未压缩或无损压缩的图像/文本/声音/任何内容中。回到能够“看”视频为“位”:一旦你加载了一个视频文件,一旦你解码它,也许一帧一帧地(使用一个库...),你可以获得字节;提取和修改位是一个很酷的操作,如移位和逐位和/或/或。要了解解码视频文件的意义,您可以搜索可以使用的播放器(例如mplayer)和编解码器的源代码(如果您想获得详细信息,但实际上您只是想使用编解码器是玩家会做的方式)。