Files
nexus/Project/transcode_music/项目需求.md

2.4 KiB
Raw Blame History

这个项目主要是针对一个现有的目录,遍历这个目录下面所有的文件夹,找到相应的无损音乐文件。并把这些无损音乐文件转码成高质量的mp3(320K)并保存到另外一个目录下,保持目录和原始音乐的文件名不变。

现在的无损音乐文件的格式有 flac, wav, dsf 等。要求用python脚本来实现这个批量转换的过程。

  1. 指定的目是我的一个网盘,并不是在我的 laptop 上面,我要通过这样的方式去访问 比如: /mnt/z/test/

  2. 转换好的 MP3 需要保存到另一个网盘目录下,然后保持目录结构以及文件名和原始文件相同,后缀名为 MP3。比如 /mnt/x/music/test

  3. 整个转化的过程是可追溯的,也允许这个脚本可以运行多次。我需要记录每个专辑目录转换的一个状态,因此我需要一个 manifest 文件来记录状态。

  4. 原始的目录里面包含了一些专辑的图片,以及一些 TXT 的说明文档。这个需要在转化过程当中一并复制到对应的新的目录里面。

  5. 我已经在环境里面安装了 FFmpeg 这个工具。我希望在这个脚本里面可以针对转化的质量进行配置。

  6. 开始之前需要对指定的目录进行一次遍历,并进行文件的分析。分析一下这个目录下面所有的专辑目录下面的文件是否都是可转换的状态。如果发现有一些专辑文件,比如说专辑文件里面会包含一些还没有分割的原始文件,比如说 CUE + APE/WAV/FLAC 的这样的一个文件,这些文件是需要先进行 CUE 的 split。以后把专辑里面的音乐分割好以后再进行转换。这个需要先进行分析并提供一些提示。

  7. 在开始转换之前,需要先创建一个 manifest 文件,把指定目录下面的所有的文件进行一遍分析,并记录好状态。这个 manifest 需要是一个 JSON 格式的一个文件,保存到指定的这个原始目录里。

  8. 当中如果遇到一些意外的情况,需要能够跳过这个错误,能够正常地去执行后面的文件,然后把错误的信息记录到 manifest 这个 JSON 文件里面。这样的话,我可以后续再检查状态并重新执行这个脚本。

  9. 执行成功的专辑目录在再次执行脚本的过程当中就可以直接跳过。只针对有问题的进行调整后的专辑目录进行再次执行,而不需要重新再执行已经完成的操作。