使用 gmusicbrowser 将多张 .FLAC 专辑转换为 .MP3

使用 gmusicbrowser 将多张 .FLAC 专辑转换为 .MP3

我的 FLAC 库很大,按文件夹、每个专辑分开,所有 FLAC 都标记完美,等等。我想将一个或多个专辑转换为 mp3,但使用 gmusicbrowser 本身。据我所知,没有这个选项,只有一个“对选定文件执行自定义命令”插件选项。我想也许有一个命令可以做到这一点。如果没有,有人知道我该怎么做吗?

提前致谢。

答案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在这个例子中是多余的。但这不会造成任何影响,而且脚本以这种方式保持简单。

相关内容