Lame 递归压缩 mp3 文件

ank*_*981 4 mp3 lame 14.04

我想使用 lame 压缩我的整个音乐收藏(实际上是它的副本)。所以很自然地,文件夹中有文件夹,文件名中可能有奇怪的字符。我也使用了图形声音转换器,但不喜欢它,因为它具有预定义的比特率。

到目前为止我尝试过的:

$ find . -name "*.mp3" | lame -b 160
Run Code Online (Sandbox Code Playgroud)

$  find . -name "*.mp3" > list 
$ cat list | lame -b 160
Run Code Online (Sandbox Code Playgroud)

$ lame -b 160 < list
Run Code Online (Sandbox Code Playgroud)

所有这些都给了我使用错误。正确的做法是什么?另外,如果有覆盖原始文件的方法,我会很高兴。

mur*_*uru 7

lame无法从输入中读取文件名。您必须使用find's-execxargs在找到的每个文件上运行它:

find . -iname '*.mp3' -exec lame -b {} \;
Run Code Online (Sandbox Code Playgroud)

如果未指定第二个文件名,lame则将另一个.mp3文件名附加到给定的文件名并写入该文件。lame不支持写入同一个文件。您必须转换为另一个文件,然后将其复制到原始文件上:

find . -iname '*.mp3' -exec sh -c 'lame -b 160 "$0" "$0"-160 && mv "$0"-160 "$0"' {} \;
Run Code Online (Sandbox Code Playgroud)