2009-11-23 30 views
2

如何從PCM數據寫入mp3幀(不是帶有ID3等的完整mp3文件)?如何從PCM數據(C/C++)寫入mp3幀?

我有一些像PCM數據(例如100MB)我想從該數據創建一個MP3幀數組。如何執行此類操作? (用於瘸或其他任何開源編碼器EX)

需要什麼:

  • 開源利布斯編碼。
  • 教程和博客文章。如何做到這一點,約等
+0

LAME是LGPL。你爲什麼不想用它?或者你的程序不會是開源的? – 2009-11-23 08:32:07

+1

@Piligrim無論如何,即使在封閉源程序中他也可以使用LAME,這就是LPGL的要點。 – KeatsPeeks 2009-11-23 08:44:06

回答

1

您應該能夠使用LAME。它有一個-t command line switch關閉輸出中的INFO標題(否則存在於第0幀中)。如果仍然留下過多的簿記數據,您應該可以編寫一個單獨的工具來剝離這些數據。

+0

另外,請查看http://www.codeproject.com/KB/audio-video/mpegaudioinfo.aspx以獲取有關mpeg(標題)格式的信息。有了這些信息,應該可以處理生成的mp3文件。 – wimh 2009-11-23 22:47:27

1

您已經走上正軌:使用LAME外部可執行文件或任何其他shell調用的編碼器。

要構建MP幀,您感興趣的層次是3,從頭開始不容易。有壓縮步驟,快速傅里葉變換,然後是量化,這是複雜而冗長的解釋。開發人員從頭構建它所需的工作量非常大。 有編程的C和C++ MP編碼庫,但您會被要求收費,只能獲得非常有限的支持,或者接口選項非常有限。

去LAME,研究他們的wiki