SPC 转 WAV 命令行

SPC 转 WAV 命令行

例如,以下类型的 .SPC 文件: 随机 SPC 和 WAV 文件夹

我不希望它在前台出现一个窗口,只是一个将 SPC 转换为 WAV 的不可见过程。

executable foo/bar/input.spc bar/foo/output.wav

我在命令行 Java 应用程序中使用它,因此如果可能的话,Java 解决方案将不胜感激。(ProcessBuilder如果没有,我可以用来运行可执行文件。)

答案1

太方便了!FFMPEG 可以读取和转换 SPC 文件!

ffmpeg -i night1.spc -acodec pcm_u8 -ar 44100 night1.wav

现在,此命令将非常干净地转换您的文件,并输出一个漂亮的.wav文件(请确保将night1.spc和替换night1.wav为您想要的文件名)。

不幸的是,这并没有结束故事。运行上述命令一段时间后,我得到了以下结果:

-rw-rw-r-- 1 kazwolfe kazwolfe 297M Mar 28 02:05 night1.wav
-rw-rw-r-- 1 kazwolfe kazwolfe  65K Mar 28 02:01 night1.spc

这不可能是对的...让我们在 Audacity 中打开该文件,看看发生了什么:

简而言之,SPC 文件没有定义长度。虽然有规范中提到了长度,它似乎经常被忽视,实际上忽略上传至 Google Drive 的文件。

从 SNES 中提取的 SPC 文件(原始格式)旨在无限循环。因此,当播放(或在这种情况下转换)它们时,它们也将无限循环。

因此,我们需要手动将长度(可能还有偏移量)传递给ffmpeg。幸运的是,该程序附带一个很酷的小命令行参数,称为-t <time>。使用它,我们可以指定要转换多少音频。

类似地,如果文件有偏移量,我们可以使用参数-ss <time>来指定要从开头剪辑多远。

因此,假设一个 45 秒的文件,偏移量为 5 秒,我们需要运行的命令是:

ffmpeg -i night1.spc -t 00:00:45 -ss 00:00:05 -acodec pcm_u8 -ar 44100 night1.wav

相关内容