Скачал сегодня великолепную коллекцию музыки, которая была тщательно подобрана. Но вот беда — поставлялась она в каком-то непонятном формате. Каждый альбом был WV файлом. Как уверял источник — это особый формат и его удобно слушать и записывать. Ну-ну...
В общем сходу ни одна установленная программа на моем Linux Mint этот формат не скушала. Насколько я знаю некоторые проигрователи такое умеют как в Windows так и в Linux, но мне необходимы были файлы в формате mp3 или m4a для магнитолы в авто. Что ж, challenge accepted :)
Задача: преобразовать wv файлы в wav, результат сконвертировать в нужный нам формат. В моем случае ожидается m4a на выходе.
Для работы нам понадобится три программы: cuetools shntool wavpack.
1
| sudo apt-get install cuetools shntool wavpack |
Т.к. у нас Линукс это значит, что практически все мы можем автоматизировать shell-скриптами :) Что ж, напишем парочку.
Создайте файл run-unpacker.sh и дайте ему права на запуск:
1
2
| touch run-unpacker.sh chmod +x run-unpacker.sh |
Откройте его своим любимым редактором и впишите следующее:
1
2
3
4
5
6
7
8
| mkdir "$1encoded" for f in $1*.wv; do filename=$( basename "$f" ) filename= "${filename%.*}" newFile= "$1encoded/$filename.wav" echo "$f -> $newFile" wvunpack "$f" -o "$newFile" -cc done |
Здесь мы запускаем wvunpack для каждого наденного wv файла с указанием откуда читать и куда писать.
Запускаем:
Запускаем:
1
| . /run-unpacker .sh path |
где path — путь к файлам wv. В папке с wv будет создана папка encoded, в которую будут аккуратно сложены wav файлы.
Следующий шаг — разбить большие wav файлы на на трэки:
1
2
| touch run-splitter.sh chmod +x run-splitter.sh |
Вписываем в созданный файл следующее:
1
2
3
4
5
6
7
8
9
10
| for cue in $1*.cue; do filename=$( basename "$cue" ) filename= "${filename%.*}" output= "$1$filename" wav= "$1$filename.wav" mkdir $output; shnsplit -f $cue -t %t $wav -d $output done |
Здесь для каждого файла cue (метаданные кажого wav файла), который был создан вовремя работы wvunpack, запускается тулза shnsplit. Она, курируясь информацией с cue файла, разбивает wav файлы на дорожки. Каждый набор дорожек мы помещаем в отдельную папку.
Запустите созданный скрипт. В логе работы shnsplit может проскакивать предупреждение: shnsplit: warning: discarding initial zero-valued split point. Не обращайте внимания — ничего серьезного.
И вот он, результат — vw файл распакован и разбит на дорожки. Следующий шаг: конвертация в нужный формат. По этому поводу в сети очень много информации. Лично я воспользовался программой soundconverter, настроил ее и натравил на нужные файлы.
Вот и все, надеюсь заметка будет кому-то полезна.