我正在編寫一個應用程序,我在錄製電影(.m4v)時試圖改變音頻的音高。或者之後修改電影的音頻音調。我希望最終結果是具有原始長度(即與原始相同的視覺)但具有修改的聲音音高的電影(.m4v),例如,一個「花栗鼠聲音」。如果可能的話,實時轉換是首選。修改錄製剪輯的音頻音高(m4v)
我已經閱讀了很多有關在iOS中更改音頻音調的內容,但大多數示例都關注播放,即以不同的音調播放聲音。
在我的應用程序中,我正在錄製電影(.m4v/AVFileTypeQuickTimeMovie)並使用標準AVAssetWriter進行保存。當保存的電影,我有機會獲得以下元素,其中,我試圖操縱音頻(例如修改間距):
- 音頻緩衝(CMSampleBufferRef)
- 音頻輸入作家(AVAssetWriterAudioInput)
- 音頻輸入作家選項(例如AVNumberOfChannelsKey,AVSampleRateKey,AVChannelLayoutKey)
- 資產作家(AVAssetWriter)
我試圖掛鉤到上述目的來修改AUD io球場,但沒有成功。
我也有試過狄拉克如下所述:Real Time Pitch Change In iPhone Using Dirac
正如這裏所描述的OpenAL與AL_PITCH:Piping output from OpenAL into a buffer
而從un4seen的「BASS」庫:Change Pitch/Tempo In Realtime
我還沒有發現與成功任何上述庫,很可能是因爲我真的不知道如何使用它們,以及將它們掛接到音頻保存代碼的位置。
似乎有很多圖書館有類似的效果,但側重於播放或自定義記錄代碼。我想操作已經獲得的音頻流(AVAssetWriterAudioInput)或修改已保存的影片剪輯(.m4v)。我希望視頻在視覺上不變,即以相同的速度播放。但我希望音頻更快(像花栗鼠)或更慢(像一個......怪物?)
你有什麼建議,我可以實時(錄製電影時)或之後修改音調通過轉換整個電影(.m4v文件)?我應該進一步觀察Dirac,OpenAL,SoundTouch,BASS或其他庫嗎?
我想能夠與修改後的音頻共享電影給他人,這就是原因我不能只靠修改音調來播放只有