#ffmpeg #wrapper #音乐库

应用程序 ffmusicsync

一个简单的实用工具,可以将您的音乐库转换为编码的音乐文件夹,并尽可能减少ffmpeg运行次数以保持其更新。

2个稳定版本

1.1.0 2022年7月5日
1.0.0 2022年5月15日

#543音频

MIT/Apache

42KB
911

ffmusicsync

一个简单的实用工具,可以将您的音乐库转换为编码的音乐文件夹,并尽可能减少ffmpeg运行次数以保持其更新。

要求

  • ffmpeg 已安装并添加到PATH
  • rclone 已安装并添加到PATH(可选,仅在使用远程时)

功能

  • 编码整个文件夹,复制已编码的歌曲
  • 通过后续运行保持文件夹更新 - 您可以删除和添加到原始文件夹中的歌曲
  • 从文件名中移除括号 - 不再需要在每个名称中包含 (原始混音),可自定义
  • 支持大量文件格式 - 作为ffmpeg包装器,支持ffmpeg执行的所有操作
  • 保存编码文件的列表,即使您更改重命名设置,也不需要重新编码它们
  • 编码后复制封面到文件*
  • 支持文件在rclone远程上 - 自动下载它们,本地编码并上传

*有关支持的复制格式列表,请参阅 lofty crate

配置示例

config.json 可以包含注释,因此您可以直接复制示例。

{
  // Input and output directory
  // Can be either a string or an object:
  // If it's a string and contains a ':', it will be treated as an rclone remote
  "inputDirectory": "MyStorage:FLAC",
  "outputDirectory": {
    // Both fields are optional
    // If remote is not present or blank it will be treated as a local location 
    "remote": "MyStorage",
    "path": "Encoded"
  },
  // Optional, used only when either the input or output directory is remote
  "tempDirectory": "temp",
  // An array of all extensions that will be encoded
  // All that are not present here (such as mp3 in this case) will be just copied to the output directory
  "extensionsToEncode": [
    "flac"
  ],
  // A string containing the extension for encoded files
  "encodedExtension": "ogg",
  // Add covers to files after encoding them
  // ffmpeg can't do that by itself for OGG files
  // The option doesn't need to be present, defaults to false
  "copyCovers": true,
  // A string containing the ffmpeg params
  // ffmpeg command looks like:
  // ffmpeg -i <INPUT> <PARAMS> <OUTPUT>
  "ffmpegParams": "-c:a libopus -b:a 128K -vn",
  // Whether to remove brackets, the options don't need to be present, 
  // in which case it will behave the same way as if they were set to false
  // When set to true it will remove everything in between the brackets as well as one leading/trailing space
  // Example with the below config:
  // [LABEL] Author - Title (Original Mix) [YEAR].mp3
  // Would be renamed to:
  // Author - Title (Original Mix).mp3
  "removeRoundBrackets": false, // ()
  "removeSquareBrackets": true, // []
  "removeCurlyBrackets": false, // {}
  "removeAngleBrackets": false, // <>
}

命令行参数

  • -c--config - 指定配置文件(默认:config.json)
  • --color - 强制启用颜色
  • --dry-run - 进行试验运行而不进行实际更改
  • -e--encoded - 指定存储有关哪些歌曲已编码的信息的文件(默认:encoded.json)
  • -h--help - 打印帮助信息
  • -q--quiet - 抑制ffmpeg输出
  • -V--version - 打印版本信息
  • -y--yes - 总是假设“是”作为所有提示的答案,并交互式运行

计划中的功能

  • ViSQOL 支持自动比特率模式

许可证

根据以下任一许可证授权

由您选择。

贡献

除非您明确说明,否则根据Apache-2.0许可证定义,您有意提交以包含在作品中的任何贡献,将按照上述方式双许可,不附加任何额外条款或条件。

依赖关系

~6–16MB
~197K SLoC