como definir a taxa de bits corretamente para aac codificação OSX

Eu tenho dados de 1 segundo do PCM que escrevo em um arquivo AAC com êxito.

No entanto, não consigo controlar a taxa de bits do arquivo de saída.

Aqui está a configuração do meu codec AAC:

AudioStreamBasicDescription clientFormat = {0};

clientFormat.mSampleRate         = 44100;
clientFormat.mFormatID           = kAudioFormatMPEG4AAC;
clientFormat.mFormatFlags        = kMPEG4Object_AAC_Main;
clientFormat.mChannelsPerFrame   = 2;
clientFormat.mBytesPerPacket     = 0;
clientFormat.mBytesPerFrame      = 0;
clientFormat.mFramesPerPacket    = 1024;
clientFormat.mBitsPerChannel     = 0;
clientFormat.mReserved           = 0;

Tanto quanto eu pesquisei outros exemplos, esta é a maneira correta de definir a taxa de bits:

AudioConverterRef acRef;
UInt32 acsize = sizeof(acRef);
UInt32 bitRateIn = 96000;

ExtAudioFileGetProperty(audiofileRef, kExtAudioFileProperty_AudioConverter,
                                                         &acsize, &acRef);

AudioConverterSetProperty(acRef, kAudioConverterEncodeBitRate,
                                              sizeof(UInt32), &bitRateIn);

Depois disso, escrevo meus dados no arquivo.

Como o arquivo tem 1 segundo e a taxa de bits é de 96kbit / s, o arquivo de saída deve estar em torno de 96/8 = 12 kilobyte. Mas o arquivo de saída tem cerca de 62 kilobytes.

Depois de obter esse comportamento estranho, abri o arquivo usando o MediaInfo e ele tinha 3 taxas de bits diferentes:

Taxa de bits nominal - 96kb / s (é isso que eu configurei)

Taxa de bits - 48kb / s

Taxa de bits geral - 476kb / s

Aqui, o tamanho do arquivo corresponde à taxa de bits geral como 476/8 = 59 kilobyte (o restante são metadados e cabeçalhos).

Como posso definir a taxa de bits corretamente?

questionAnswers(0)

yourAnswerToTheQuestion