音频编码软件或脚本

时间:2013-06-17 15:03:48

标签: audio encoding converter

是否存在允许我批量隐藏文件并执行以下操作的程序:

a)在我的驱动器上搜索MP3 b)从128 kbs / sec转码到64 kbs / sec
c)从立体声切换到单声道 d)保存并覆盖以前的文件

或者他们是否可以编写脚本来在Windows桌面上执行此任务?

1 个答案:

答案 0 :(得分:0)

如果您使用的是un * x,批处理的首选工具是find

find /path/to/foo -name "*.mp3"

将为您提供与/ path / to / foo及其所有子目录中的“* .mp3”匹配的所有文件。

因为find是野兽,你可能想查看它的联机帮助页。

您可以将脚本传递给每个匹配调用的find。例如以下将对所有文件执行“ls -l”(不包括名为“mysounds.mp3 /”的目录;这是-type f的用途):

find /path/to/foo -type f -name "*.mp3" -exec ls -l \{\} \;
请注意,花括号和分号是用反引号转义的,以防止shell解释这些特殊字符。

如果您有一个脚本(名为convertmp3.sh且位于当前工作目录中)并执行就地转换(覆盖旧文件),您可以这样做:

find /path/to/foo -type f -name "*.mp3" -exec ./convertmp3.sh \{\} \;

这样的脚本可能看起来像:

#!/bin/sh
INFILE="$1"
TMPFILE="${INFILE}.mp3"
ffmpeg -i "${INFILE}" -ac 1 -b 64k "${TMPFILE}" && mv "${TMPFILE}" "${INFILE}"

请注意我在这里使用临时文件,因为否则ffmpeg会在完全读取之后开始覆盖源文件,从而因错误而停止。 也不要忘记文件名周围的引号,以防止带空格的文件名等。

另请注意,此脚本不会检查输入文件是否已经采用所需格式,因此可能会对其进行重新编码。