TL, DR:
Вместо этого используйте sox:
ffmpeg -i input.dsf -f wav -acodec pcm_s24le pipe:1 | sox -S -t wav --ignore-length - --compression 8 output.flac sinc -32k -t 16k
... избавит от всех высокочастотных искажений и значительно уменьшит размер файла (приблизив его к DSD) ):
- DSD64 (SACD): ~ 162 МБ
- FLA C (352,8 кГц - без фильтров): ~ 396 МБ
- FLA C (352,8 кГц - нижний частотный диапазон): ~ 189 МБ
Long Read
Хорошо, я обнаружил, что можно просто зацепить фильтры и использовать несколько отличающиеся частоты спада. Далее я просто преобразовал файлы DSD без какого-либо фильтра в FLA C (следовательно, в следующих командах мы имеем input.flac
вместо input.dsf
).
Используя следующую команду:
ffmpeg -i input.flac -af "lowpass=24000,lowpass=28000,lowpass=30000,lowpass=32000" output.flac
... в результате: ![enter image description here](https://i.stack.imgur.com/dXrpX.png)
Это выглядело очень хорошо.
Затем я проверил, насколько близко он все еще был к оригиналу на низких (слышимых) частотах:
sox -S -m -v 1 input.flac -v -1 output.flac -n spectrogram -x 640 -y 200 -Z -30 -o "lowpass.ffmpeg.diff.png"
... результат: ![enter image description here](https://i.stack.imgur.com/papLF.png)
Так что я никак не могу сохранить это в своей библиотеке. Когда я искал альтернативы, я наткнулся на это приятное информативное чтение:
Так Основываясь на этой новой информации, я вместо этого запустил sox:
sox -S input.flac --compression 8 output.flac sinc -32k -t 16k
..., в результате чего: ![enter image description here](https://i.stack.imgur.com/4auHs.png)
... и подтвердил через Разница в том, что слышимые частоты остаются нетронутыми: ![enter image description here](https://i.stack.imgur.com/fBUOS.png)