2011-04-26 77 views
1

我正在使用这里说的音频格式为kAudioFormatMPEG4AAC的音频录制代码。 如何将比特率更改为96K,128K或320K?如何在音频队列中设置比特率

问候, 约翰

+0

重复:http://stackoverflow.com/questions/4655277/what-is-audiostreambasicdescription-for-m4a-文件格式http://developer.apple.com/library/mac/#documentation/MusicAudio/Reference/CAFSpec/CAF_spec/CAF_spec.html#//apple_ref/doc/uid/TP40001862-CH210-TPXREF101有更多详细信息。 – 2011-04-26 19:57:04

回答

3

我不知道,如果你可以通过设置参数做到这一点直接使用AudioQueue。但是,我认为下面的方法将工作:

  • 设置你的AudioQueue记录线性PCM
  • 设置的ExtAudioFile与客户端的数据格式相匹配的AudioQueue和AAC的文件数据格式
  • 设置通过获取与ExtAudioFile(kExtAudioFileProperty_AudioConverter)相关联的AudioConverter并设置转换器的比特率(kAudioConverterEncodeBitRate)来获得期望的AAC比特率。

我还没有尝试过这在iOS上,但如果AAC编码器使用硬件编解码器,我怀疑你将能够设置比特率。 AudioFormat.h提供了一些方法来确定哪些编解码器是硬件还是软件,以及如何请求一个实现与另一个实现。

+0

sbooth,请你评论我的问题吗?我看到你有这个核心音频的经验。 http://stackoverflow.com/questions/41638475/how-to-set-bitrate-correctly-for-aac-encoding-osx – mbaros 2017-01-13 17:30:43

0

事实上,AudioQueue使用与AudioConverter相同的后端,虽然AudioQueueProperty中没有关于bitRate的密钥,但您仍可以从转换器借用它们。获取比特率是这样的:

AudioQueueGetProperty(mQueue, kAudioConverterEncodeBitRate, &bitRate, &propertySize); 

,并将其设置是这样的:

AudioQueueSetProperty(mQueue, kAudioConverterEncodeBitRate, &bitRate, propertySize); 
相关问题