Я удивлен видеть, что никто не предложил history -c
сразу до exit
. IINM (я не эксперт), который сделает приятно.
#!/bin/sh
file="$1"
outfile=${file%.flac}.mp3
eval $(metaflac --export-tags-to - "$file" | sed "s/=\(.*\)/='\1'/")
flac -cd "$file" | lame --preset fast extreme \
--add-id3v2 --tt "$TITLE" --ta "$ARTIST" --tl "$ALBUM" \
--ty "$DATE" --tn "$TRACKNUMBER" --tg "$GENRE" \
- "$outfile"
Вместо того, чтобы использовать программу для преобразования flac файлов в mp3 можно использовать mp3fs для представления их как виртуальный mp3, и программа, которая может поставить задания копии в очередь. Это работает замечательно хорошо на меня.
Загрузите и установите mp3fs и ультракопировальное устройство:
sudo apt-get install mp3fs ultracopier
Создайте пару flac и mp3 каталогов для каждого mp3fs, который Вы хотите выполнить. У меня есть двухъядерный CPU, таким образом, я работаю два. Если Вы сохраняете flac каталоги на разделе, где Ваши flac файлы, можно быстро переместить их. Тот раздел называют "устройством хранения данных" в моей системе.
cd /media/Storage
mkdir mp3fs mp3fs/flac_1 mp3fs/mp3_1 mp3fs/flac_2 mp3fs/mp3_2
Можно смонтировать каталоги из командной строки или путем добавления их к /etc/fstab
. Можно также настроить скорость передачи и алгоритм кодирования виртуального mp3 во время монтирования. Я хочу mp3 с постоянной скоростью передачи 320 Кбит/с, и Ламе может взять все время, он должен произвести лучший mp3, он возможно может.
На командной строке:
mp3fs -b 320 -oquality=0 /media/Storage/mp3fs/flac_1 /media/Storage/mp3fs/mp3_1 -o allow_other,ro
mp3fs -b 320 -oquality=0 /media/Storage/mp3fs/flac_2 /media/Storage/mp3fs/mp3_2 -o allow_other,ro
Если предохранитель жалуется, как
fusermount: не удалось открыть/etc/fuse.conf: Разрешение отклонено
fusermount: опция allow_other только позволила, если 'user_allow_other' установлен в etc/fuse.conf
затем не прокомментируйте user_allow_other
опция в /etc/fuse.conf
, и/или сделайте это читаемым с
sudo chmod 644 /etc/fuse.conf
Или от /etc/fstab
:
mp3fs#/media/Storage/mp3fs/flac_1 /media/Storage/mp3fs/mp3_1 fuse user,ro,allow_other,bitrate=320,quality=0 0 0
mp3fs#/media/Storage/mp3fs/flac_2 /media/Storage/mp3fs/mp3_2 fuse user,ro,allow_other,bitrate=320,quality=0 0 0
После добавления каталогов к /etc/fstab
, можно смонтировать их при помощи
sudo mount -a
Готово! Запустите ультракопировальное устройство. Это поместит значок индикатора в Вашу панель гнома или независимо от того, что случается так, что Вы используете. Нажмите его, выбор добавляют копию. Я сделал это дважды для использования двух ядер. Используйте свой файловый браузер для перемещения некоторых агентов по печати в flac_1. Перейдите к mp3_1 каталогу и перетащите свой mp3 к одному из окон ультракопировального устройства для запуска очереди копии. Ultracopier попросит место назначения файлов. У Вас теперь есть одно базовое занятое кодирование пакета агентов по печати к mp3.
Для использования другого ядра переместите flac файлы в flac_2 и перетащите mp3 от mp3_2 до второго окна ультракопировального устройства.
Обновление: Вместо ультракопировального устройства я теперь использую MiniCopier, немного легче использовать. См. комментарии ниже.
id3cp
не может работать, так как FLAC не использует ID3; вместо него используются теги Vorbis.
avconv
имеет возможность поддерживать теги путем преобразования. Это своего рода каприз, его значение зависит от комбинации кодеков, но в вашем случае он работает так (версия 9.16-6):
avconv -i in.flac -map_metadata 0:g:0 out.mp3
Применить все FLAC-файлы в папке (рекурсивно) так же просто, как и это: (используя bash
)
for f in */**/*.flac; do
avconv -i "${f}" -map_metadata 0:g:0 "`echo "${f}" | sed -e s/flac$/mp3/`";
done
Обратите внимание, что avconv
использует lame автоматически; существуют дополнительные опции для контроля качества и прочее. Для получения более подробной информации проверьте man avconv
.