Pull to refresh

Создание качественных рипов Audio-CD

Reading time 4 min
Views 19K
Как известно, если немного поискать, то в Linux можно найти софт для решения практически любых задач. Странно, но в интернете не очень много информации по созданию качественных рипов аудиодисков в Linux. Постараюсь немного исправить эту ситуацию.

Начнём с того, что EAC — не панацея. Его можно запустить под Wine, но смысла в этом не сильно много. В Linux есть отличное родное средство для снятия рипов — cdparanoia. Многочисленные тесты многочисленных аудиофилов так и не смогли ответить на вопрос, что более качественно снимает рипы: EAC или cdparanoia. Поэтому совершенно спокойно можно считать, что cdparanoia и EAC обеспечивают абсолютно одинаковое качество и поэтому под Linux использовать родную утилиту, т.е. паранойю.

Кроме того, стоит также заметить, что практически все программы снятия рипов в Linux на самом деле являются просто обёрткой над cdparanoia. Поэтому я лично предпочитаю использовать эту утилиту напрямую, благо консоль у меня не вызывает негативных эмоций.

Использование cdparanoia


Для начала обязательно убедитесь, что у вас в системе стоит самая последняя версия cdparanoia. Если что, скачать её бинарник можно с официального сайта http://xiph.org/paranoia/. Да, паранойя давно не обновлялась. С другой стороны я ни разу и не видел упоминания каких-либо проблем в работе последней стабильной версии.

Теперь вам необходимо узнать смещение чтения для вашего привода (оффсет), без правильного его указания говорить о каком-то качестве рипа просто бессмысленно. Для этого во-первых нужно определить модель дисковода. Сделать это можно командой

lshw -c disk

Теперь идём на accuraterip.com и смотрим смещение. В моём случае оно равно +6.

Ну и наконец снимаем рип командой (не забудьте изменить оффсет!)

cdparanoia -vzl -O +6 [::]- CDImage.wav

Возможны и другие опции, за подробностями обращайтесь в man, который есть и на официальном сайте.

Если всё прошло без ошибок — хорошо. Если же нет, то проверить точность рипа можно только сняв его несколько раз и сравнив полученные файлы. Сравнивать можно вычисляя контрольную сумму, например, командой

md5sum -b *.wav

Если суммы не совпадают — значит файлы различаются, в этом случае обычно проще всего выбрать тот файл, который совпадает максимальное количество раз.

Итак, будем считать, что точный рип аудиоданных получен.

Получение разметки диска и CDTEXT


Теперь надо снять всю информацию о разметке дорожек и о композициях и авторе. Сохранять её будем в стандартный cue файл. Вам потребуется два пакета — cuetools и cdrdao. Теперь сначала снимите все метаданные с диска командой

cdrdao read-toc disk.toc

А потом сконвертируйте полученный файл в cue командой

cueconvert -i toc disk.toc disk.cue

Всё что осталось — это вручную исправить cue, приведя его к желаемому виду.

Разрезание образа на треки и кодирование


Почему-то есть совершенно дурацкая тенденция хранить аудиодиски в виде единого образа с приложенным cue. Откуда она пошла — мне неизвестно, но против неё есть два весомейших аргумента:

  1. cue — это файл физической разметки и метаданных. Он просто элементарно не предназначен для сохранения сколько-нибудь полной информации о диске и композициях. Глупейшие попытки расширить его синтаксис за счёт специальных комментариев вылились в то, что cue перестали правильно понимать многие плееры.
  2. Единый образ жутко неудобен, когда надо послушать или скопировать только одну композицию.


Так что давайте разберёмся, как разрезать диск и потом закодировать дорожки в нужный формат. Вам потребуется ещё один пакет — shntool.

Теперь просто выполните

cuebreakpoints disk.cue | shnsplit -o wav CDImage.wav

Получится куча файликов split-track**.wav. Теперь их нужно закодировать в нужный формат. Собственно вся эта морока с качественными рипами намекает на то, что формат этот должен быть lossless, хотя я кодирую и в OGG Vorbis для прослушивания на плеере. lossless — это однозначно flac, lossy — Vorbis, на всякий случай скажу и про mp3.

Итак, вам потребуется один или несколько из этих пакетов: flac, oggenc, lame.

Теперь для кодирования во flac можно использовать команду

flac -8 split-track*.wav

Для OGG Vorbis

oggenc -q 7 split-track*.wav

Для mp3

lame -h -b 320 split-track*.wav

Конечно, можно выставить и другие опции, эти просто самые оптимальные.

Прописывание тегов


Осталось только прописать теги в файлы и нужным образом их переименовать. Автоматически добавить информацию из cue в теги можно командой

cuetag disk.cue split-track*.flac

Вместо flac конечно нужно подставить нужное расширение. Ну а переименовать файлы и заполнить оставшиеся теги можно с помощью очень удобной утилиты EasyTag.

Все приведённые выше команды можно объединить в один скрипт:

#!/bin/sh

cdparanoia -vzl -O +6 [::]- CDImage.wav
cdrdao read-toc disk.toc
cueconvert -i toc disk.toc disk.cue
cuebreakpoints disk.cue | shnsplit -o wav CDImage.wav
flac -8 split-track*.wav
cuetag disk.cue split-track*.flac

Ну или как-то так. Не забудьте выставить правильные опции в командах!

Вот и всё. Если сделать чуть более продвинутый скрипт, то можно легко осуществлять любую обработку аудиоданных с диска. Однако тут уже всё зависит от ваших задач.

UPD: Чтобы не пугались. Всё вышеописанное совершенно необязательно выполнять, существует прекрасная GUI программа Rubi Ripper, которая к тому же сама перечитывает несколько раз дорожки и корректирует по необходимости расхождения чтения, что важно при считывании повреждённого диска. Цель этого поста — рассказать как всё можно сделать по шагам с любыми настройками и манипуляциями на любом шаге.



Эта статья написана по мотивам http://help.ubuntu.ru/wiki/рип_аудио_дисков, предлагаю всем заинтересованным присоединяться к развитию ресурса русскоязычной документации по Ubuntu, дабы иметь в одном месте как можно больше полезной информации.
Tags:
Hubs:
+48
Comments 120
Comments Comments 120

Articles