Как сортировать аудиофайлы в соответствии с их частотой отсечки (реальный бит) в кГц?

У меня есть музыкальная коллекция, и я хочу сортировать / фильтровать их легко в соответствии с их частотой отсечки (реальный битрейт, обычно в кГц. Я использовал Spek для показа мне эту информацию, но Spek не предоставляет никаких возможность использовать его в терминале или для нескольких операций с файлами. Я уже нашел несколько способов, но все они просто перечисляют скорость передачи битов, в которой аудиофайл сохраняется в kbps, а не фактическая частота отсечки в кГц, что я Мне нужно найти простое решение для фильтрации всей коллекции, например, bash, python, существующего простого инструмента и т. д. Знаете ли вы какое-либо решение?

Уточнение: я не ищу битрейт или выборку Я ищу прерывание частоты!

1
задан 1 November 2015 в 05:04

1 ответ

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

find . -type f -name "*.wav"  -printf "***%p\n"  -exec file {} \; | awk '/\*\*\*/{printf $0"|"};{gsub(/\,/,"");for(i=1;i<=NF;i++) if($i~/Hz/) printf " "$(i-1)"|"$i"\n" }' | sort --field-separator="|" --numeric -k 2

В основном мы используем команду find для поиска файлов с расширением «.wav» , внутри /my/audio/folder. Мы печатаем путь к каждому файлу, заполняя его тремя знаками подстановочных знаков и выполняем команду file для каждого из них. Выход stdout проходит через трубу к длинному коду awk, который считывает каждую строку; если строка имеет три звездочки - это имя файла, напечатайте его; если в строке, помещенной в строку, содержится Hz, мы печатаем число перед этим полем и само поле. Все напечатано таким образом, чтобы иметь выход в формате ***/path/to/file | number | (k)Hz. Наконец, вывод обрабатывается командой sort, которая сортируется численно на основе столбца 2 (число).

Большим ограничением является то, что он работает нормально с файлами того же типа, но если вы смешаете mp3 и wav, то вы заметите, что mp3-файлы отображают свою частоту как 44,1 кГц, и это разбивает сортировку.

Пример вывода, который у меня есть, например:

***./test.wav| 8000|Hz
***./odeath.wav| 44100|Hz
***./Front_Center.wav| 48000|Hz
1
ответ дан 23 May 2018 в 16:11
  • 1
    Очень хорошо! Работала как очарование моей системы! +1 – Terrance 4 November 2015 в 03:56
  • 2
    Nifty, но я не думаю, что это то, что хочет OP. Он сортирует файлы по частоте дискретизации. OP после того, как частота срезает компрессию mp3. Как это . Частота дискретизации файла составляет 48 кГц = 24 кГц / стереоканала, но вы явно видите резкое обрезание около 16,5 кГц. Здесь - хорошая обзорная статья. – Nephente 4 November 2015 в 13:19

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

Похожие вопросы: