2011-04-26 52 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); 
相關問題