Linux. Сказ про образы Audio дисков


Наткнулся в сундуке на audio сокровища. Решил наконец разгрести, а поскольку все оказалось не совсем просто, законспектировал.

Intro

Большинство Audio CD дисков, которые доступны в сети или киосках Союзпечати, делаются в виде большого WAV файла, который является копией всех треков и CUE файла, в котором описыается порядок композиций, их название и прочая информация. WAV сжимается каким-нибудь lossless кодеком, а потом все закручивается архиватором а один архив. В принципе удобно и разумно (хотя, как мне думается, потрековая разбивка была бы удобнее), но иногда нужно не просто прописать CD и сделать копию Audio CD, с которго все было сграблено, а, например пережать все потреково в MP3. Рассказ о том, как это сделать одним из наиболее простых способов.

Что будем юзать?

С распаковкой архива проблем нет, ZIP/RAR отлично распаковываются соответствующими прогами.

Дополнительно ставим:

  • cuetools, набор для работы с CUE/TOC файлами, берем тут
  • shntool, нарезалка треков, понимает помимо WAV, другие lossless форматы, забираем отсюда

Установка обычная (./configure; make && make install).

Теперь lossless кодеки.
Сейчас популярны три кодека, Monkey Audio (.APE файлы), FLAC (.FLAC файлы) и WavPack (.WV файлы).

Monkey Audio
Наиболее широко использующийся. Жмет на 5-7% лучше, чем FLAC, но и ресурсов жрет изрядно, распаковка/запаковка в 6-9 раз медленнее, чем у FLAC. Лицензия мутная, официально поддерживается только win32 платформа. Некий китайский программист сделал UNIX port и даже выложил на SourceForge, но скачать оттуда ничего не получается (будем надеяться что временно). Я откопал порт через FTP search и после доработки напильником собрал бинари:

Оба файла слинкованы статически для Linux/i386.

FLAC (Free Lossless Audio Codec)
Самый разумный, на мой взгляд. Кроссплатформенный, внятная лицензия, отличная скорость работы. В среднем размер WAV уменьшается вдвое. Качаем тут. Сборка обычная, за исключением того, что может быть ругань на ассемблер. Я не стал ставить новый asm, а просто запретил asm оптимизацию (./configure --disable-asm-optimizations).

WavPack
Еще один lossless кодек, зачем его использовать - не знаю. Жмет хуже, чем Monkey Audio, работает тоже неспешно, может хранить CUE внутри архива, гнездится тут. Сборка стандартная, на всякий случай бинари:

Ну вот, архив развернут, внутри находится .CUE файл и какой-то .APE (или .FLAC). При упаковке WavPack'ом внутри может быть только один файл вроде file-bla-bla.wv.iso.wv. Нужно вначале распаковать этот файл обратно в WAV. В случае WV нужно еще и вытащить CUE.

APE

$ mac file.ape file.wav -d

FLAC

$ flac -d file.flac

После распаковки в каталоге появится файл file.wav.

WavPack

$ wvunpack -cc Queen_1973_At_The_Beeb_eac_wv_iso_cue_log_covers_tags.wv.iso.wv

 WVUNPACK  Hybrid Lossless Audio Decompressor  Linux Version 4.41.0
 Copyright (c) 1998 - 2007 Conifer Software.  All Rights Reserved.

extracted cuesheet file Queen_1973_At_The_Beeb_eac_wv_iso_cue_log_covers_tags.wv.iso.cue
restored Queen_1973_At_The_Beeb_eac_wv_iso_cue_log_covers_tags.wv.iso.wav in 175.82 secs (lossless, 41.09%)

В этом примере после распаковки в каталоге появятся WAV и CUE файлы.

Далее WAV нужно нарезать на треки, мой пример:

$ cuebreakpoints Pink_Floyd_Animals.cue | shnsplit -o wav Pink_Floyd_Animals.wav 

Splitting [Pink_Floyd_Animals.wav] (41:40.05) --> [split-track01.wav] (1:25.35) : 100% OK
Splitting [Pink_Floyd_Animals.wav] (41:40.05) --> [split-track02.wav] (17:04.10) : 100% OK
Splitting [Pink_Floyd_Animals.wav] (41:40.05) --> [split-track03.wav] (11:21.60) : 100% OK
Splitting [Pink_Floyd_Animals.wav] (41:40.05) --> [split-track04.wav] (10:23.68) : 100% OK
Splitting [Pink_Floyd_Animals.wav] (41:40.05) --> [split-track05.wav] (1:24.57) : 100% OK
Теперь хорошей идеей будет переименовать все эти split-track*.wav в соответствии с названиями треков в CUE. Забираем скрипт cue_rename.plx отсюда. Кроме собственно переименования он дополнительно перекодирует русские имена в латиницу.

Запускаем:

$ cue_rename.plx Pink_Floyd_Animals.cue

Found information for file 'Pink_Floyd_Animals.wav'
   Track 01 -> '01_Pigs_On_The_Wing__Part_One'
   Track 02 -> '02_Dogs'
   Track 03 -> '03_Pigs__Three_Different_Ones'
   Track 04 -> '04_Sheep'
   Track 05 -> '05_Pigs_On_The_Wing__Part_Two'

Renaming ...
   split-track01.wav --> 01_Pigs_On_The_Wing__Part_One.wav
   split-track02.wav --> 02_Dogs.wav
   split-track03.wav --> 03_Pigs__Three_Different_Ones.wav
   split-track04.wav --> 04_Sheep.wav
   split-track05.wav --> 05_Pigs_On_The_Wing__Part_Two.wav

*** Done! ***
В результате получаем набор WAV'ов с нормальными именами.
Перегонку в MP3/OGG оставляю в качестве домашнего задания.

Успехов!

Tags: audio convert flac wv ape mp3


Назад в оглавление



[Home] [TTL] [Unix] [Sdictionary] [ROW Programmer] [Symbian] [Misc] [News] [Search] [Contacts] [Guestbook]


Copyright (c) 1999-2017 Alexey Semenoff