2013-04-15 84 views
0

我想在Python中分離一個mp3文件的頻道,並將它保存在另外兩個文件中。 有沒有人知道這個庫。 在此先感謝。Python拆分MP3頻道

+1

快速谷歌搜索揭示http://pymedia.org/。我從來沒有使用它,但網站說:「它允許您解析,demutiplex,複用,解碼和編碼所有支持的格式。它可以編譯爲Windows,Linux和cygwin。「 –

+1

相關問題:http://stackoverflow.com/questions/310765/python-library-to-modify-mp3-audio-without-transcoding –

回答

1

我假設你想無損分裂渠道,無需解碼MP3和再編碼它 - 否則,你就不會在所有提到的MP3和將有很容易發現許多工具,如無畏做到這一點。

有4種通道模式的MP3幀 - 這意味着4種類型的MP3文件:簡單的立體聲,聯合立體聲,雙聲道,單聲道。聯合立體聲文件不能無損分割。單聲道文件不需要分割。其餘部分:立體聲和雙聲道,由不到0.1%的所有MP3文件組成,技術上可以分成2個文件,每個文件用於一個頻道,不會丟失。然而,互聯網上沒有任何工具可以做到這一點 - 沒有任何命令行工具或任何GUI工具,因爲很少需要該功能。

這裏也沒有任何python庫。大多數圖書館將MP3文件抽象成可在解碼後操作的通用音頻。 pymad是MP3文件中唯一一個特定的文件,它可以告訴文件是否使用4種通道模式中的任何一種,但不提供在不解碼的情況下提取通道。如果你寫一個新的工具,你將不得不處理原始MP3文件或爲它生成一個庫。

並且爲它編寫工具或庫並不容易。它是一個具有2個通道的流,而不是兩個在幀級別上交錯的流。你不能簡單地在MP3幀上工作,放下一些幀,保留其他幀,並設法以這種方式提取頻道。這是一個專業的任務,也許是最好的解碼器中的項目(如的libmad),而不是在一個文件操作的項目(如mp3info或蟒蛇eyeD3)發生。換句話說,這個特性很可能用C寫成,而不是Python。


Implementaiton注:

從而建立這樣一個工具套裝以及用於計算機科學C語言編程語言課程項目任務: 1.需要花費大量的時間做; 2.需要從C編程課程學到的每一項技能; 3.容易出錯; 4.有可能建立在其他項目的工作基礎之上,是對現有工作進行調整的教訓; 5.是一個沒有人以前做過的非常努力的工作,因此非常有收穫 6.也許可以在300個難度較高的代碼行中完成,而不是臃腫的簡單的Visual Basic代碼,因此是一個很好的謙虛和質量的好幫手; 7.最後:沒有人在急着等待工作實施。

所有條件都適合C編程課程項目。

實現注意2:

一些比特率只能在單聲道模式(80kbps)可能的,並且一些比特率只能在立體聲模式(例如320kpbs)成爲可能。幸運的是,這不會在這個任務中出現問題,因爲所有雙mp3比特率都可以映射到合適的單聲道mp3比特率 - 但反之亦然!