Comments 23
А как же теги?
#!/bin/bash
if [ "${1}" == '' ]; then
shellDir="$PWD"
else
shellDir="${1}"
fi
prefix=/home/share/music/_mp3
find "${shellDir}" -name '*.flac' -print | while read fn;
do
ARTIST=`metaflac "$fn" --show-tag=ARTIST | sed s/.*=//g`
TITLE=`metaflac "$fn" --show-tag=TITLE | sed s/.*=//g`
ALBUM=`metaflac "$fn" --show-tag=ALBUM | sed s/.*=//g`
GENRE=`metaflac "$fn" --show-tag=GENRE | sed s/.*=//g`
TRACKNUMBER=`metaflac "$fn" --show-tag=TRACKNUMBER | sed s/.*=//g`
DATE=`metaflac "$fn" --show-tag=DATE | sed s/.*=//g`
newpath="${prefix}/$ARTIST/$ALBUM"
newfile=${TITLE}.mp3
echo $newfile
mkdir -p "${newpath}"
flac -c -d "${fn}" | lame -m j -q 0 --vbr-new -V 0 -s 44.1 - "${newpath}/${newfile}"
id3 -t "$TITLE" -T "${TRACKNUMBER:-0}" -a "$ARTIST" -A "$ALBUM" -y "$DATE" -g "${GENRE:-12}" "${newpath}/${newfile}"
done
Такой скрипт позволяет еще и разложить все правильно, то есть можно натравливать сразу на большую коллекцию флаков
Стоит заметить, что сохранятся только явно перечисленные теги (из самых часто используемых — disc number, album artist).
Имхо самый правильный-чтобы-чего-не-потерялось вариант — foobar2000.
Отлично работает под всеми ОСями.
Может параллелить конвертирование по количеству доступных ядер.
Ед-ое потом надо будет запустить подчищающие скрипты по вкусу (удалить исходные файлы, вмонтировать обложки).
Имхо самый правильный-чтобы-чего-не-потерялось вариант — foobar2000.
Отлично работает под всеми ОСями.
Может параллелить конвертирование по количеству доступных ядер.
Ед-ое потом надо будет запустить подчищающие скрипты по вкусу (удалить исходные файлы, вмонтировать обложки).
Есть X Lossless Decoder. Почему-то всегда считал, что это стандарт де-факто для конвертации аудио на Маке.
Неделя shell скриптинга на хабре)
чем ffmpeg не угодил?
Можно ещё посмотреть в сторону fuse файловой системы для «прозрачной» перекодировки mp3fs. Я её пару раз использовал в Linux. И вроде как оно даже работает в MacOS через MacFUSE, но возможно придётся наложить небольшой патч: uwe-arzt.de/20080327.html
Конвертация с копированием тэгов:
ffmpeg -i input.flac -acodec libmp3lame -map_metadata 0:0 -sameq output.mp3
ffmpeg -i input.flac -acodec libmp3lame -map_metadata 0:0 -sameq output.mp3
Sign up to leave a comment.
Конвертируем flac в mp3 одним движением