2015-02-06 53 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