首页 > 解决方案 > AVAudioFile (Mac/iOS) : 将音频编码为恒定比特率 AAC

问题描述

我想使用 AVAudioFile 将音频缓冲区编码为 M4A/AAC 文件。它的工作原理是输出文件始终是具有可变比特率的 AAC,即使我使用特定的恒定比特率标志配置 AVAudioFile 也是如此。

这是 AVAudioFile 初始化的代码:

NSDictionary* outputSettings = @{
        AVFormatIDKey: [NSNumber numberWithUnsignedInt:kAudioFormatMPEG4AAC],
        AVNumberOfChannelsKey: [NSNumber numberWithInt:2],
        AVEncoderBitRateKey: [NSNumber numberWithInt:128000],
        AVEncoderBitRateStrategyKey: AVAudioBitRateStrategy_Constant /* should output constant bitrate AAC, but doesn't */
    };

AVAudioFile *outputFile = [[AVAudioFile alloc] initForWriting:outputURL
                                                     settings:outputSettings
                                                 commonFormat:AVAudioPCMFormatFloat32
                                                  interleaved:NO
                                                        error:&error];

AVAudioFile 是否支持恒定比特率 AAC?文档对此并不清楚。

标签: iosmacosavfoundationavaudiofile

解决方案


推荐阅读