Допустим, у вас имеется коллекция музыки, собранная в произвольных аудиоформатах (mp3, ogg, acc, wav) и вы решили записать музыкальный диск в стандартном формате Audio CD, чтобы иметь возможность воспроизводить диск в любом бытовом проигрывателе. Как думаете, потребуется ли для этой операции графический интерфейс? Энтузиасты с сайта Linuxconfig уверены, что не потребуется. Более того, они считают, что графический интерфейс для неудачников (GUI is for losers)! Так какое решение предлагают они?
Прежде всего, установим необходимый софт, если он еще не был установлен:
# apt-get install cdrecord ffmpeg normalize-audio libavcodec52
Теперь переместим записываемые композиции в одну директорию и назовем ее, например, burn:
ls ~/burn/ 03.Come As You Are.mp3 07 - Crystal Mountain.mp3 09-We Who Are Not as Others.mp3 Lemuria_-_05_-_Lemuria.ogg
Т.к. эти треки взяты из разных источников, то у них может различаться уровень громкости. Нужно провести т.н. процесс нормализации. Нормализация выполняется только для формата wav. Переведем все треки в этот формат. Но тут есть одно "но". Имена файлов не должны содержать пробелов, поэтому сначала заменим их на символ подчеркивания:
$ for f in *; do mv "$f" `echo $f | tr ' ' '_'`; done
Теперь сконвертируем все треки в формат wav:
$ for i in $( ls ); do ffmpeg -i $i $i.wav; done
Теперь сама нормализация:
$ normalize-audio -m *.wav
Вывод программы будет похож примерно на следующее:
Computing levels... Lemuria_-_05_-_Le 100% done, ETA 00:00:00 (batch 100% done, ETA 00:00:00) Applying adjustment of 4.15dB to 03.Come_As_You_Are.mp3.wav... 03.Come_As_You_Ar 100% done, ETA 00:00:00 (batch 22% done, ETA 00:00:00) Applying adjustment of -0.91dB to 07_-_Crystal_Mountain.mp3.wav... 07_-_Crystal_Moun 100% done, ETA 00:00:00 (batch 52% done, ETA 00:00:01) Applying adjustment of -0.82dB to 09-We_Who_Are_Not_as_Others.mp3.wav... 09-We_Who_Are_Not 100% done, ETA 00:00:00 (batch 75% done, ETA 00:00:01) Applying adjustment of -1.37dB to Lemuria_-_05_-_Lemuria.ogg.wav... Lemuria_-_05_-_Le 100% done, ETA 00:00:00 (batch 100% done, ETA 00:00:00)
Можно, конечно, производить нормализацию сразу в mp3 или ogg, для этого даже существуют соответствующие команды normalize-mp3 и normalize-ogg, но это очень плохая идея (из-за транскодирования mp3->wav->mp3, если кто не догадался — прим. перев.).
Почти все. Теперь нужно узнать каким именем кодируется записывающее устройство:
$ wodim --devices
Вывод будет примерно следующим, из которого можно понять, что привод обозначается как /dev/scd0:
wodim: Overview of accessible drives (1 found) : ------------------------------------------------------------------------- 0 dev='/dev/scd0' rwrw-- : 'TSSTcorp' 'CD/DVDW SH-S183L' -------------------------------------------------------------------------
И теперь запись:
$ cdrecord -v -nofix -eject dev='/dev/scd0' -audio -pad *.wav
Обратите внимание, что ключ -nofix оставляет сессию открытой, что делает возможным дозапись диска. Если вы пожелаете закрыть сессию, то сделать это можно командой:
$ cdrecord -v -fix -eject dev='/dev/scd0'
1 день 7 часа назад
1 день 16 часа назад
1 день 16 часа назад
1 день 17 часа назад
1 день 17 часа назад
1 день 17 часа назад
2 дня 4 часа назад
2 дня 7 часа назад
2 дня 7 часа назад
2 дня 7 часа назад