Wil*_*Wil 4 mp3 mono batch stereo audio-conversion
我有一堆想转换为单声道的立体声 MP3。做这个的最好方式是什么?我更喜欢可以批量处理它们的东西。我想保持质量尽可能接近原始。我的文件也有不同的比特率,所以当一些文件只有 128 时,我不想让所有文件都变成 320kpbs。
另外,有没有什么快速的方法可以查看我的整个库中哪些文件是立体声的?
从立体声转换为单声道将意味着重新编码,因此保持相同的比特率将毫无意义。事实上,转换一个 128 kbit/s MP3 -> 一个新的 128 kbit/s MP3 会给你带来非常糟糕的质量,即使第二个是单声道(因此对于相同的主观质量需要较低的比特率)。
通常,我会为 MP3 使用可变比特率 (VBR) 设置,它针对特定质量并让编码器设置所需的任何比特率(完全静音的音频需要比 whalesong 低的比特率,后者需要比回音步)。从命令行,ffmpeg 可以使用选项将音频转换为单声道-ac 1,如下所示:
ffmpeg -i input.mp3 -c:a libmp3lame -q:a 2 -ac 1 output.mp3
Run Code Online (Sandbox Code Playgroud)
有关使用指南,请参阅此页面-q:a。请注意,该页面上的表格针对的是立体声音频;您将看到的实际比特率会稍低一些。通常,我推荐 3-4,但由于您是从 MP3 编码而不是原始 CD,您应该瞄准更高一点。
当然,这可以很容易地自动化。在 Linux/OSX/其他类 UNIX 上,转换 MP3 目录:
for f in *.mp3; do ffmpeg -i "$f" -c:a libmp3lame -q:a 2 -ac 1 mono-"$f"; done
Run Code Online (Sandbox Code Playgroud)
递归地这样做:
find . -type f -name "*.mp3" -exec ffmpeg -i '{}' -c:a libmp3lame -q:a 2 -ac 1 mono-'{}' \;
Run Code Online (Sandbox Code Playgroud)
如果您有 GNU Parallel 和多核机器,您可能会发现这很有用:
find . -type f -name "*.mp3" | parallel ffmpeg -i {} -c:a libmp3lame -q:a 2 -ac 1 mono-{}
Run Code Online (Sandbox Code Playgroud)