как правильно установить битрейт для aac кодирования OSX

У меня есть данные PCM за 1 секунду, которые я успешно записываю в файл AAC.

Тем не менее, я не могу контролировать битрейт выходного файла.

Вот конфигурация моего кодека 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;

Насколько я исследовал другие примеры, это правильный способ установить битрейт:

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

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

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

После этого я записываю свои данные в файл.

Поскольку размер файла равен 1 секунде, а скорость передачи данных составляет 96 кбит / с, выходной файл должен составлять около 96/8 = 12 килобайт. Но выходной файл составляет около 62 килобайт.

После этого странного поведения я открыл файл с помощью MediaInfo, и он имел 3 разных битрейта:

Номинальный битрейт — 96kb / s (это то, что я установил)

Bitrate — 48kb / с

Общий битрейт — 476Кб / с

медиа информация

Здесь размер файла соответствует общему битрейту как 476/8 = 59 килобайт (остальное — метаданные и заголовки).

Как правильно установить битрейт?

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector