从命令行创建一个静音mp3

时间:2011-03-11 17:28:50

标签: windows command-line ffmpeg mp3 lame

我正在尝试使用命令行创建(x)秒的静音/空mp3文件。我认为这是一项非常简单的任务!

似乎LAME能够做到这样的事情,但我无法找到任何可以实现这一目标的事情。

有没有人能够做到这样的事情?

4 个答案:

答案 0 :(得分:33)

您可以使用此命令。

ffmpeg -f lavfi -i anullsrc=r=44100:cl=mono -t <seconds> -q:a 9 -acodec libmp3lame out.mp3

<seconds>更改为一个数字,表示您需要的静音秒数(例如,60会创建一分钟)。

答案 1 :(得分:10)

免责声明:这是一种面向unix的方法(虽然sox是跨平台的,但也应该只在Windows上完成)。

silence.pl很短,所以我把它包含在这里,因为它是公共领域:

#!/usr/bin/perl

$seconds = $ARGV[0];
$file = $ARGV[1];
if ((!$seconds) || ($file eq "")) {
        die "Usage: silence seconds newfilename.wav\n";
}

open(OUT, ">/tmp/$$.dat");
print OUT "; SampleRate 8000\n";
$samples = $seconds * 8000;
for ($i = 0; ($i < $samples); $i++) {
        print OUT $i / 8000, "\t0\n";
}
close(OUT);

# Note: I threw away some arguments, which appear in the original
# script, and which did not worked (on OS X at least)
system("sox /tmp/$$.dat -c 2 -r 44100 -e signed-integer $file");
unlink("/tmp/$$.dat");

然后只是lame

$ lame silence.wav silence.mp3

答案 2 :(得分:3)

避免创建wav标头的麻烦,让lame处理原始文件:

dd if=/dev/zero bs=1M count=? | lame -r - - > silence.mp3

设置?= 2给出一个11秒的文件(@ standard 44KhZ,etc ...参数)。

注意:这是在Unix上测试的;我知道窗户也有dd和lame。

答案 3 :(得分:0)

sox -n -r 44100 -c 2 silence.wav trim 0.0 3.0-这将创建一个3秒的立体声静音文件。 这里 n 用于空文件处理程序, r 是采样率, c 是通道数。

然后just脚吧:

$ lame silence.wav silence.mp3