Как кодировать 32-битный ALAC из RAW с помощью FFmpeg

Попытка сжать 32-битный сигнал с плавающей запятой (необработанный двоичный код). FLAC отсутствует, потому что он идет только до 24 бит на семпл. ALAC может обрабатывать 32 бита на выборку.

Я могу кодировать напрямую из RAW в ALAC с помощью следующей команды:

ffmpeg -f f32le -ar 4000 -ac 1 -i ts1.raw -acodec alac ts1.m4a

Обратите внимание, что это работает с любым файлом данных.

Я попытался установить 32-битный размер выборки с -sample_fmt s32p но он всегда печатает сообщение:

[alac @ 0x55dbbcc98a00] encoding as 24 bits-per-sample 

Декодирование выполняется:

ffmpeg -i ts1.m4a -f f32le -ar 4000 -ac 1 tsa.raw

Я проверяю, загрузив начало и конец необработанных файлов (ts1.raw против tsa.raw) с Numpy (Python) и обратите внимание, что потеря точности отсутствует. Результат ближе к 16-битному, но более точный (24-битный имеет смысл). Так что в основном я получаю файл, содержащий 24-битные числа с плавающей точкой, преобразованные в 32-битные (сжатие с потерями)!

Как я могу кодировать файл со сжатием без потерь (для данных формы сигнала) размером 32 бита на образец?

1 ответ

согласно https://support.apple.com/en-ca/HT212183 сказано, что the entire Apple Music catalog is now also encoded using ALAC in resolutions ranging from 16-bit/44.1 kHz (CD Quality) up to 24-bit/192 kHzБоюсь, вы не сможете получить 32-битный аудиофайл.

Другие вопросы по тегам