Конвертация *.ape в *.mp3
Скачал интересующую музыку. Но вот незадача! Она в формате *.ape.
Некоторые версии xmms вроде бы умеют с ними работать. Мне оказалось проще пойти другим путем.
Для начала нам необходимы такие пакеты:
- mac - Monkey's Audio Console Front End (http://www.monkeysaudio.com/versionhistory.html)
- lame - LAME Ain't an Mp3 Encoder (http://www.mp3dev.org)
После их установки можно приступать к конвертированию.
Если это отдельная композиция (sound.ape), то можно в консоли сделать такое:
user@user$ mac sound.ape sound.wav -d
user@user$ lame -b 256 sound.wav sound.mp3
Если это группа файлов, то можно написать скрипт следующего содержания (я его назвал так: ape_wav_mp3.sh):
#!/bin/bash
for file in *.ape
do
WAV=`basename "$file" ".ape"`".wav"
MP3=`basename "$file" ".ape"`".mp3"
#Converting to WAV
`mac "$file" "$WAV" -d`
#Converting to mp3
`lame -b 320 "$WAV" "$MP3"`
#Removing temporary .wav file
`rm "$WAV"`
done
exit 0
Копируем ape_wav_mp3.sh в директорию с файлами и выполняем его:
user@user$ ./ape_wav_mp3.sh
- Добавить комментарий
- 657 просмотров
Страница для печати

Зачем вообще это делать? Лучше найти проигрыватель ape или прослушивать с realtime-рекодингом...
Вот ещё ссылки в тему:
http://aidanjm.wordpress.com/2007/02/04/converting-monkey’s-audio-ape-files-to-flac-in-ubuntu/
http://vessem.wordpress.com/2008/03/09/hello-world/
http://mhashem.wordpress.com/2008/04/06/convert-flac-to-mp3/
Если исходная ситация - "1 ape + cue" или "1 flac + cue", то перекодировать в flac можно так:
#!/bin/bash # Разбивает ape или flac файл на отдельные песни в соответствии с cue файлом. # Песни будут записаны в формате flac. Ибо нефиг. # в flac-файлах будут заполнены теги ( из cue-файла ) # все теги будут в utf-8 # flac-файлы будут переименованны в "<номер песни> - <название песни>.flac" # Входные параметры: # - тип разбиваемого файла, ape или flac # - кодировка cue-файла. # Требования: # - в каталоге должен быть только один ape либо flac файл # - в каталоге должен быть только один cue файл # # - наличие recode, cuetool, shntools, flac и mac # - rename должен быть из состава perl ftype=$1; #"ape" "flac" "wavepack" fcoding=$2; if [ -z "$ftype" ] ; then ftype="flac" ; fi if [ -z "$fcoding" ] ; then fcoding="utf-8"; fi # подготовка. cuetag сильно глючит rename 's/\ /_/g' *.{flac,cue}; # разобъём исходный файл на части cuebreakpoints *.cue | shnsplit -o wav *.${ftype} ; for a in split*.wav ; do flac --best --delete-input-file "$a"; done; # пропишем корректные теги recode ${fcoding}..utf-8 *.cue; cuetag *.cue split*.flac; # переименуем файлы recode utf-8..${LANG#ru_RU.} *.cue; let a=1; for b in split*.flac; do mv "$b" "$(printf '%.2d - %s\n' "$(cueprint -t %n -n $a *.cue )" \ "$(cueprint -t %t -n $a *.cue)").flac"; let a=$a+1; done; # вернём почти всё как было rename 's/_/\ /g' *.cueЕсли выходной формат должен быть ogg - ничего кроме сосбтвенно кодирования менять не надо. cuetag достаточно универсален
Спасибо. Как раз искал.
P.S. Непонятно мне одно - зачем создавать ape, если все равно их приходится конвертировать?
Лучше использовать pipe, а не временный .wav файл.
Лучше использовать по мере возможности ogg, а не mp3 (хотя бы из-за тегов).
Есть ещё неплохой скрипт для этих же целей:
http://lossless2lossy.sourceforge.net/
суть та же - интерфейс к cli-тулзам, но с разными приятностями типа прописывания тегов и т.п., плюс работает с несколькими форматами при наличии соответствующих утилит в системе
Премного благодарен.
А нафига команды конвертации в '`' ?
P.S. А что, это не есть хорошо? Если можно, подскажите в чем ошибка.