我正在编写一个应用程序,尝试在录制 (.m4v) 电影时更改音频的音调。或者事后修改电影的音调。最终结果是获得一个 (.m4v) 电影,它与原始长度相同(即视觉效果相同),但声音音调已经被修改,例如 "花栗鼠声音"。如果可能,实时转换将优先考虑。
我已经阅读了很多有关在iOS中更改音频音调的文章,但大多数示例都专注于播放,即使用不同的音调播放声音。
在我的应用程序中,我正在录制电影 (.m4v / AVFileTypeQuickTimeMovie),并使用标准的AVAssetWriter保存它。保存电影时,我可以访问以下元素,我已经尝试过操纵音频(例如修改音调):
- 音频缓冲区 (CMSampleBufferRef) - 音频输入编写器 (AVAssetWriterAudioInput) - 音频输入编写器选项 (例如AVNumberOfChannelsKey、AVSampleRateKey、AVChannelLayoutKey) - 资产编写器 (AVAssetWriter)
我尝试连接上述对象以修改音频音调,但没有成功。
我还尝试使用Dirac,如此处所述:Real Time Pitch Change In iPhone Using Dirac,和使用AL_PITCH的OpenAL,如此处所述:Piping output from OpenAL into a buffer,以及来自un4seen的 "BASS" 库: Change Pitch/Tempo In Realtime。
我没有通过上述任何库找到成功,最可能是因为我不知道如何使用它们,在哪里将它们连接到音频保存代码中。
有许多具有类似效果但专注于播放或自定义记录代码的库。我想操纵我已经获得的音频流 (AVAssetWriterAudioInput),或修改保存的电影片段 (.m4v)。我希望视频在视觉上不被修改,即以相同速度播放。但我希望声音变快 (像花栗鼠) 或变慢 (像...怪物?)。
您有什么建议,如何实时修改音调(录制电影时)或后期转换整个电影 (.m4v文件)的音调?我应该进一步了解Dirac、OpenAL、SoundTouch、BASS或其他库吗?
我希望能够与其他人分享具有修改后的音频的电影,这就是我不能仅依赖于仅用于播放的修改音调的原因。
我已经阅读了很多有关在iOS中更改音频音调的文章,但大多数示例都专注于播放,即使用不同的音调播放声音。
在我的应用程序中,我正在录制电影 (.m4v / AVFileTypeQuickTimeMovie),并使用标准的AVAssetWriter保存它。保存电影时,我可以访问以下元素,我已经尝试过操纵音频(例如修改音调):
- 音频缓冲区 (CMSampleBufferRef) - 音频输入编写器 (AVAssetWriterAudioInput) - 音频输入编写器选项 (例如AVNumberOfChannelsKey、AVSampleRateKey、AVChannelLayoutKey) - 资产编写器 (AVAssetWriter)
我尝试连接上述对象以修改音频音调,但没有成功。
我还尝试使用Dirac,如此处所述:Real Time Pitch Change In iPhone Using Dirac,和使用AL_PITCH的OpenAL,如此处所述:Piping output from OpenAL into a buffer,以及来自un4seen的 "BASS" 库: Change Pitch/Tempo In Realtime。
我没有通过上述任何库找到成功,最可能是因为我不知道如何使用它们,在哪里将它们连接到音频保存代码中。
有许多具有类似效果但专注于播放或自定义记录代码的库。我想操纵我已经获得的音频流 (AVAssetWriterAudioInput),或修改保存的电影片段 (.m4v)。我希望视频在视觉上不被修改,即以相同速度播放。但我希望声音变快 (像花栗鼠) 或变慢 (像...怪物?)。
您有什么建议,如何实时修改音调(录制电影时)或后期转换整个电影 (.m4v文件)的音调?我应该进一步了解Dirac、OpenAL、SoundTouch、BASS或其他库吗?
我希望能够与其他人分享具有修改后的音频的电影,这就是我不能仅依赖于仅用于播放的修改音调的原因。