2015-02-06 54 views
-2

我想访问mp3帧并将我的数据推送到该帧的最低有效位。我没有搜索谷歌,但无法找到线索! 先进的感谢!如何访问并将数据推送到Mp3帧的LSB?

+0

你试过了什么?什么没有用?你知道甚么也不知道你到目前为止想做什么?你卡在哪里?什么语言?只要说你想要X并且对这个问题没有理解,就会让你看起来像你希望我们为你做所有事情。 'lsb'标签指的是不同的而不是最低有效位。你应该删除它,并可能添加一个感兴趣的语言标签(如果它的目标是特定的)。 – Reti43 2015-02-06 10:22:57

+0

对不起,因为这是我第一次提出问题!我会更清楚地解释它。我的项目是关于使用C#语言的使用LSB方法的mp3文件隐写术。在这种情况下,LSB是对mp3文件的输出声音影响最小的比特(比特)。我有一个二进制数据数组,将使用LSB方法嵌入到mp3文件中。我想知道如何访问每个MP3文件的帧(载体文件),然后将我的数据(二进制数组)嵌入到每个mp3文件的帧中。 – 2015-02-06 10:30:54

+0

要阅读框架,您需要一个读取音频文件的库,或者您需要了解mp3文件结构本身,以便您可以编写自己的代码来读取标题和帧。你所说的lsb方法并不客观,虽然大多数人会认为这意味着依次将每个字节的载体文件嵌入1位。请明确说明你打算做什么以及你有什么困难。你应该[编辑](http://stackoverflow.com/posts/28363194/edit)你的问题,并在那里添加所有这些信息。不要忘记删除'lsb'标签并添加'c#'。 – Reti43 2015-02-06 11:38:59

回答

2

至少有三个关于SO的其他问题解决这个问题,效果很差。我能找到的唯一线索是MP3Stego,但我无法立即找到它支持的stego比特率。

这样做有几个选择我可以想到,但最简单的方法是压缩,校验和,加密,调制(重复执行ECC /奇偶校验),并在编码之前将隐藏数据插入原始PCM数据与MP3。你只需要确保足够的编码可以解码,这可以通过仔细选择编码器设置来实现(解码器必须遵循规范,因此解码器的选择并不重要)。

为了能够真正使用MP3来隐藏数据,您必须非常熟悉编解码器的设计,以及如何利用不同的阶段编码可用于存储隐秘位的听不清“错误”。

+0

另一种方法可能是建立一个第三层编解码器,偶尔 - 在发送器和接收器已知的输出比特流中的位置 - 根据要隐藏的数据流做出编码决定,而不是通常的心理声学模型(例如,子带被认为是被掩蔽的,因此被丢弃)。当然,几乎任何音频流的LSB几乎都会被量化,所以这绝不会奏效。 – marko 2015-02-07 00:14:00

+0

这绝对正确。有人可能会考虑将我最初想法的所有步骤放入编码器本身,并且编码器根据成功传输隐秘数据选择每帧的VBR速率......这可能会起作用,但更复杂。更进一步(直接调整编解码器的逻辑)可能会带来更大的带宽和隐藏,但在SO回答中描述会非常困难...... – ioctlLR 2015-02-07 23:02:36

+0

是的。我怀疑这种努力与开发MP3编码器非常相似。不完全微不足道。 – marko 2015-02-07 23:52:41