24 августа 2011 г.

Пакетное конвертирование FLAC в MP3

Понадобилось мне несколько альбомов, состоящих из FLAC треков, конвертировать в MP3 треки. Чтобы вручную сначала не разжимать флак, а потом кодировать мп3 и заново набивать теги, использую скрипт, найденный на сайте archlinux, который автоматизирует данный процесс. Этот скрипт я допилил под себя (mp3 кодируется с постоянным битрейтом (CBR) 320kbps, к тому же битрейт можно указать ключом -b). Кодируются все треки *.flac, находящиеся в текущей директории, сохраняя имена файлов и ID3 теги.
#!/bin/bash
# flac-tracks-to-mp3

# Usage: flac-tracks-to-mp3 [-b BITRATE]

if [ "$1" ] && [ "$2" ] && [ "$1" = "-b" ]
then
BITRATE=$2
else
BITRATE=320
fi

for a in *.flac

do

OUTF=`echo "$a" | sed s/\.flac$/.mp3/g`

ARTIST=`metaflac "$a" --show-tag=ARTIST | sed s/.*=//g`
TITLE=`metaflac "$a" --show-tag=TITLE | sed s/.*=//g`
ALBUM=`metaflac "$a" --show-tag=ALBUM | sed s/.*=//g`
GENRE=`metaflac "$a" --show-tag=GENRE | sed s/.*=//g`
TRACKNUMBER=`metaflac "$a" --show-tag=TRACKNUMBER | sed s/.*=//g`
DATE=`metaflac "$a" --show-tag=DATE | sed s/.*=//g`

# flac:
# -c: write output to stdout
# -d: decode

flac -c -d "$a" | lame --noreplaygain -b $BITRATE --add-id3v2 --pad-id3v2 --ignore-tag-errors --tt "$TITLE" --tn "${TRACKNUMBER:-0}" --ta "$ARTIST" --tl "$ALBUM" --ty "$DATE" --tg "${GENRE:-12}" - "$OUTF"

done

Ureadahead main process terminated with status 5...

Давно заметил, что после установки какого-то пакета на свою Ubuntu 10.10, при загрузке стала появляться ошибка:
init: ureadhead main process (PID) terminated with status 5.

Немного погуглив, нашёл решение. Помогло выполнение следующей команды:
sudo sed -i 's+^start on starting mountall+start on mounted MOUNTPOINT=/var+' /etc/init/ureadahead.conf