2013-07-12 162 views
1

我正在使用windows mmSystem.h生成幾個pcm文件。那麼他們不是文件,真的是字節數組。我想要做的是合併或複用這兩個流,以便在將聲音導出到wav文件之前重疊聲音。搜索每個人都提到使用ffmpeg的stackoverflow,但沒有人有任何示例代碼,他們只是使用帶有幾個標誌的fmpeg.exe。我更喜歡一個解決方案,它指出我可以使用除windows和ffmpeg中提供的其他任何第三方庫或sdk。混音兩個pcm流的音頻

感謝所有幫助

+0

你的意思是你有兩個單聲道流,你想混合它們作爲立體聲?或者您想用新樣本覆蓋現有頻道? –

+0

我想覆蓋它們。 – user1881587

回答

4

如果你有一個字節數組,你必須首先轉換那些字節數組轉換爲正確的採樣格式,如16位整數(簡寫)。完成後,您可以選擇以下幾種方法:

  1. 數據的平均值,按樣本分類。

  2. 總結數據,逐個樣本,然後「剪切」超出範圍的任何樣本。

第一個選項是唯一正確的方法來做到這一點,而不會扭曲你的信號。

最後,您可能需要轉換回字節以保存到文件。

欲瞭解更多詳情,包括代碼,你可能想看到something more like a tutorial

+1

我想投票贊成,但我的代表不夠高,所以我希望謝謝。 – user1881587

0

假設兩個流具有相同的採樣率和比特/採樣,你可以再補充樣本:

merged[n] = streama[n] + streamb[n];