将flac音乐文件同步到ogg vorbis(或保持有损状态)
brutha的Python项目详细描述
说明
brutha是声音转换工具彻底失败的答案。
它将完美地转码无损文件或复制有损文件, 到提供的目录,具有“同步”行为。
通过仔细保存文件的时间戳,它还允许 易于在其他地方同步,从而避免任何无用的传输。
由于ogg容器使用了格式,在将flac转换为ogg vorbis的过程中没有丢失任何标记。
由于代码转换需要大量的cpu时间,因此运行 尽可能多的工作并行。布鲁塔会尽量利用 功能强大、经过时间考验的工具(gnu make,gnu parallel, 或者类似的实现)。 它不完美,但足够好,同时保持简单。
据我们所知,没有其他解决方案可以完全做到:
- 避免再次编码先前运行时已处理的文件
- 仅转换无损文件(没有有损到有损)
- 保留目录结构
- 处理大量文件
- 处理并行作业执行(而不是崩溃)
- 使用正确的ogg vorbis设置(设置质量而不是平均比特率)
- 保证使用最高质量的重采样算法
- 使用硬链接或回流链接节省有损文件的空间
- 不是烦人的图形用户界面
综上所述,brutha是一款专为影迷量身定制的音乐转换器, 他们想把巨大的收藏转换成更便携的目的地, 以最高的质量/尺寸比。
布鲁塔非常简单,依靠巨人的肩膀: flac、ogg vorbis、sox、python、诱变剂、gnu make、gnu parallel、bash等。
要求
第一个是空间。既然您可以在本地存储所有源文件,我们假设您 也可以在本地存储较小的目标文件。或者, 您将能够同步到便携式播放器、远程文件系统(nfs、sshfs等)。 除了低性能之外没有其他问题。
软件需求
- python 2(2.6或更高版本)
- python argparse(或python 2.7或更高版本)
- python-mutagen
- sox
- 对于并行运行,GNU make 或者GNU parallel,或者类似的实现
可选:
- vorbisgain对于--gain
用法
brutha [options] SOURCE DESTINATION
brutha -h为所有可用选项提供帮助。
不需要安装就可以运行python -m brutha来使用它。
默认值
brutha尝试检测您有多少内核 (运行brutha -h检查-j的默认值)。 它还尝试使用并行方法 (make或parallel而不是sh)如果可用。
默认情况下,它不会运行或删除任何内容;当您有经验时 使用它,您可能会用-x(execute)和-d(delete)调用它。
示例
典型的用法是:
brutha -d -x -q6 -R44100 -B16 ~/Music /mnt/portable_music_player/Music
当大多数便携式播放器无法处理时,这将音乐调低至16/44 24/96井(-R44100-B16),以合理的质量将flac编码为ogg(-Q6)。 删除旧的不需要的文件(-d),并立即执行命令(-x)。
建议
由于编码占用了大量CPU,所以应该以低优先级启动它。 最简单的方法是运行nice -n19 brutha,而不是只运行brutha。
更改
- 1.1.1
- 用目录遍历修复一些角落的情况。
- 1.1.0
- 添加sox选项以防止剪切。
- 添加创建硬链接或回流链接的选项。
- 如果可用,将parallel设为默认值。
- 代码和文档改进。
- 支持较新的并行版本。
- 1.0.2
- 代码改进。
- 在命令行帮助中显示默认值。
- 1.0.1
- 修正错误。
未来
brutha被视为功能完成。 Python3支持正在等待诱变剂。
如果您需要帮助,以下是一些可能性:
- 支持其他格式(目前只有flac到ogg vorbis,ogg vorbis和mp3是精确副本)。
- 使诱变剂成为可选(仅用于频率/位深度检查)。
- python 3端口诱变剂
- 支持向下混合(例如5.1到2)
捐款可以以git补丁的形式发送到laurent@bachelier.name。