ffmpeg увеличение фильтра нижних частот - PullRequest
0 голосов
/ 21 марта 2020

Я конвертировал один из моих старых SACD в FLA 352 кГц C, но из-за природы DSD, много шума добавляется к более высоким частотам, которые находятся за пределами слышимого диапазона, но занимают довольно много дискового пространства .

352kHz FLAC - no lowpass filter

Поэтому я решил использовать простой фильтр lowpass , чтобы избавиться от него, например:

ffmpeg -i input.dsf -af "lowpass=26000" output.flac

Однако в результате шум все еще присутствует, но только уменьшен в объеме:

352kHz FLAC - with lowpass applied

Есть ли способ увеличить спад фильтра или другой способ получить до -140 дБ при ~ 48 кГц?

1 Ответ

1 голос
/ 24 марта 2020

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

Это выглядело очень хорошо.

Затем я проверил, насколько близко он все еще был к оригиналу на низких (слышимых) частотах:

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

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

Так Основываясь на этой новой информации, я вместо этого запустил sox:

sox -S input.flac --compression 8 output.flac sinc -32k -t 16k

..., в результате чего: enter image description here

... и подтвердил через Разница в том, что слышимые частоты остаются нетронутыми: enter image description here

...