Конвертируйте несколько файлов.FLAC в.MP3 из gmusicbrowser
У меня есть большая библиотека FLAC, разделенная папкой, каждым альбомом и всеми идеальными тегами FLAC и т. Д. Я хочу преобразовать один или несколько альбомов в mp3, но из самого gmusicbrowser. AFAIK, для этого нет никакой опции, только опция плагина "выполнить пользовательскую команду для выбранных файлов". Я думаю, может быть, есть комнада для этого. Если нет, кто-нибудь знает, как я могу это сделать?
Заранее спасибо.
1 ответ
Возможно, это не совсем то, что вы просите, но я использую следующий скрипт для этой задачи:
#!/bin/bash
#
# convert FLAC-files to MP3
# (similar folder structure, max quality)
#
export path=<flacpath>
export out=<mp3path>
echo "" > doit.sh
find $path -name \*.flac | (
while read i; do
echo
echo "$i"
newfile=`echo $i | sed s,$path,, | sed s,.flac,.mp3, | sed s,\",,g`
echo $out/$newfile
targetdir=`dirname "$newfile"`
echo $targetdir
echo "mkdir -pv \"$out/$targetdir\"" >> doit.sh
echo "ffmpeg -y -i \"$i\" -aq 2 \"$out/$newfile\"" >> doit.sh
done
)
Это всего лишь шаблон, замените "flacpath" и "mp3path", как вам нужно. Сгенерированный файл doit.sh может быть отредактирован и затем выполнен как sh doit.sh
Теги FLAC будут включены в MP3, если они поддерживаются.
Я думаю, что есть гораздо лучшие решения, но это работает для меня.
Чтобы привести пример:
У меня есть запись, оцифрованная в FLAC на
/data/music_out/FLAC/Jimi_Hendrix/Smash_Hits/...
и я хочу преобразовать это в
/tmp/out/MP3/Jimi_Hendrix/Smash_Hits/...
Предполагается, что ffmpeg установлен (в противном случае sudo install ffmpeg
), Я установил
export path=/data/music_out/FLAC/Jimi_Hendrix/Smash_Hits
export out=/tmp/out/MP3/Jimi_Hendrix/Smash_Hits
в приведенном выше сценарии. При запуске сценарий создает другой файл сценария с именем doit.sh
с содержанием
mkdir -pv "/tmp/out/MP3/Jimi_Hendrix/Smash_Hits//"
ffmpeg -y -i "/data/music-out/FLAC/Jimi_Hendrix/Smash_Hits/01-Purple Haze.flac" -aq 2 "/tmp/out/MP3/Jimi_Hendrix/Smash_Hits//01-Purple Haze.mp3"
mkdir -pv "/tmp/out/MP3/Jimi_Hendrix/Smash_Hits//"
ffmpeg -y -i "/data/music-out/FLAC/Jimi_Hendrix/Smash_Hits/02-Fire.flac" -aq 2 "/tmp/out/MP3/Jimi_Hendrix/Smash_Hits//02-Fire.mp3"
mkdir -pv "/tmp/out/MP3/Jimi_Hendrix/Smash_Hits//"
ffmpeg -y -i "/data/music-out/FLAC/Jimi_Hendrix/Smash_Hits/03-The Wind Cries Mary.flac" -aq 2 "/tmp/out/MP3/Jimi_Hendrix/Smash_Hits//03-The Wind Cries Mary.mp3"
mkdir -pv "/tmp/out/MP3/Jimi_Hendrix/Smash_Hits//"
ffmpeg -y -i "/data/music-out/FLAC/Jimi_Hendrix/Smash_Hits/04-Can You See Me.flac" -aq 2 "/tmp/out/MP3/Jimi_Hendrix/Smash_Hits//04-Can You See Me.mp3"
mkdir -pv "/tmp/out/MP3/Jimi_Hendrix/Smash_Hits//"
ffmpeg -y -i "/data/music-out/FLAC/Jimi_Hendrix/Smash_Hits/05-51st Anniversary.flac" -aq 2 "/tmp/out/MP3/Jimi_Hendrix/Smash_Hits//05-51st Anniversary.mp3"
mkdir -pv "/tmp/out/MP3/Jimi_Hendrix/Smash_Hits//"
ffmpeg -y -i "/data/music-out/FLAC/Jimi_Hendrix/Smash_Hits/06-Hey Joe.flac" -aq 2 "/tmp/out/MP3/Jimi_Hendrix/Smash_Hits//06-Hey Joe.mp3"
...
просто чтобы прояснить идею. призвание sh doit.sh
действие будет сделано.
Если на вашем пути есть специальные символы (даже такие как ' '), вы должны изменить некоторые части скрипта. И да, mkdir -pv
избыточно в этом примере. Но это не больно, и сценарий так прост.