将大量 FLAC 转换为 MP3 的最快方法

将大量 FLAC 转换为 MP3 的最快方法

我正在寻找可以利用我的 GPU 或至少利用我的 CPU 的多个核心的东西,以非常快速地将几 TB 的 FLAC 转换为 mp3 (VBR v0),同时保留所有标签。

任何意见是极大的赞赏。

答案1

根据目录结构(数据是否平坦?),您可以踢出许多太平洋石油公司在平行下。它在转换时在保留标签方面做得相当不错。

它不会利用 GPU,但通过一些并行化,您应该能够利用多个核心(磁盘可能成为瓶颈)。

答案2

好吧,这实际上是几个问题。

利用多个核心并不会太难,这可以通过 shell 脚本和分叉来实现。

这是 zsh 中的一个非常简单的示例:

for f in *flac; do
    sox $f ${f%%.flac}.mp3 & 
done

当然,您可以根据核心数量对其进行优化并批量进行转换。

现在,保留标签是另一回事,我可能会从索克斯,看看这是否可以帮助你。如果没有,我会使用 metaflac 将数据转储到一个小脚本中,这将设置我的 MP3 标签(我最喜欢的程序是眼睛D3)。它们必须由您自己作为 FLAC 标签(实际上只是 Vorbis 注释)“翻译”为 ID3 标签。

像这样的东西:

for f in *flac; do
    eyeD3 -a $(metaflac --show-tag-name=ARTIST $f) ${f%%.flac}.mp3
done

这当然只是一个标签等等,只是为了演示。当然,您可以将这两个片段结合起来。

但是,我无法帮助您优化 GPU 解决的问题。我不太明白这有什么帮助,因为 GPU 针对矢量计算进行了优化。

答案3

我没有使用过这个工具,但它听起来像你正在寻找的东西。它被称为弗拉克2全部。具体来说这个项目符号:

  • CPU/核心检测,用于自动选择线程数。

用法

flac2all.py with "-h" to get an overview, like so:

Usage: 
flac2all [convert type] [input dir] <options>
where 'convert type' is one of:
         [mp3]: convert file to mp3
         [vorbis]: convert file to ogg vorbis
         [flac]: convert file to flac
         [aacplusnero]: (NO TAGGING SUPPORT) convert file to aacplus using the proprietery (but excellent) Nero AAC encoder.

Options:
  -h, --help            show this help message and exit
  -c, --copy            Copy non flac files across (default=False)
  -v OGGENCOPTS, --vorbis-options=OGGENCOPTS
                        Colon delimited options to pass to oggenc,for example:
                        'quality=5:resample 32000:downmix:bitrate_average=96'.
                        Any oggenc long option (one with two '--' in front)
                        can be specified in the above format.
  -l LAMEOPTS, --lame-options=LAMEOPTS
                        Options to pass to lame, for example:
                        '-preset extreme:q 0:h:-abr'. Any lame option can be
                        specified here, if you want a short option (e.g. -h),
                        then just do 'h'. If you want a long option (e.g. '--
                        abr'), then you need a dash: '-abr'
  -a AACPLUSOPTS, --aacplus-options=AACPLUSOPTS
                        AACplus options, currently only bitrate supported.
                        e.g: " -a 64 "
  -o DIR, --outdir=DIR  Set custom output directory (default='./')
  -f, --force           Force overwrite of existing files (by default we skip)
  -t THREADS, --threads=THREADS
                        How many threads to run in parallel (default:
                        autodetect [found 2 cpu(s)] )
  -n, --nodirs          Don't create Directories, put everything together

视频演示

Youtube 上甚至有一段视频展示了它使 16 核系统饱和的情况,标题为:flac2all 饱和16CPU机器(双四核+HT)

相关内容