Конвертируем FLAC в MP3 под Debian

Неоднократно от разных аудиофилов с хорошей аудиоаппаратурой слышал, что mp3 сжатие сильно ухудшает качество звука.

Однажды я решил попробовать скачать музыку в современном свободном формате со сжатием без потерь, чтобы попробовать оценить разницу между mp3 и flac на моей аппаратуре и моим слухом.

Накачал для примера несколько компакт-дисков, сжатых в этом формате. На слух разницы не услышал. Скачал ещё один компакт-диск, чтобы сравнить с альбомом в формате mp3 с битрейтом 192 килобита, который у меня уже был. Можно было поступить проще - просто пересжать один из компакт-дисков в mp3 и сравнить.

В итоге я опять не услышал никакой разницы. В мою голову закрались смутные сомнения:

  1. возможно скачанный диск был получен из треков mp3,
  2. у меня плохая аудиосистема,
  3. у меня плохая звуковая карта,
  4. у меня плохой слух.

Так или иначе, но если я не заметил разницы, смысла в хранении альбомов размером с пол-гигабайта я не увидел, а потому решил пересжать flac в mp3.

Из подручных средств под виндой у меня не оказалось перекодировщика, который бы умел декодировать flac (проигрыватель foobar2000 не в счёт). Кроме того, на домашнем компьютере почти не было места для пересжатия, потому я решил пересжать треки прямо на домашнем сервачке под Debian.

Для этого я использовал пакеты flac, lame и немножко shell-скриптинга.

Для начала установим пакет flac:

# aptitude install flac

Теперь нужно установить пакет lame. Этот пакет не включен в основную поставку Debian по лицензионным соображениям, поэтому воспользуемся сторонним сервером.

Для начала добавим новые источники в файл /etc/apt/sources.list:

# deb http://ftp.debian-unofficial.org/debian etch main contrib non-free restricted
# deb-src http://ftp.debian-unofficial.org/debian etch main contrib non-free restricted

Теперь добавим GPG-ключи:

# wget http://ftp-master.debian-unofficial.org/other/openpgp/archive-key-2006.asc -O - | apt-key add -
wget http://ftp-master.debian-unofficial.org/other/openpgp/archive-key-2007.asc -O - | apt-key add -

Теперь обновим список пакетов:

# aptitude update

И установим пакет lame:

# aptitude install lame

Для потоковой обработки всех файлов с расширением .flac в текущем каталоге я наваял следующий shell-скрипт mlame.sh:

#!/bin/sh

for flac in *.flac;
do
  mpeg=`echo $flac | cut -f1 -d.`.mp3
  flac -d -c "$flac" | lame --cbr -b 192 - "$mpeg"
done

Этот скрипт находит в текущем каталоге файлы с расширением flac. В цикле для каждого такого файла создаёт имя целевого файла mp3, затем настраивает команды flac и lame для совместной работы в конвейере.

Сжатие осуществляется в mp3-файл с постоянным битрейтом 192 килобита.

Если есть предложения по оптимизации скрипта, буду рад выслушать. К сожалению мне не удалось обойтись без cat, поскольку в именах файлов были пробелы, поэтому скрипты воспринимали имя файла как несколько не связанных между собой аргументов.

Ссылки по теме:

Установка lame на Debian

Написать автору