Создайте беззвучный mp3 из командной строки

Я пытаюсь создать тихий/пустой mp3 файл (x) секунд, используя командную строку. Довольно простая задача, я думал!

Кажется, LAME может сделать что-то подобное, но я не могу найти ничего, что приведет к достижению этого.

Кто-нибудь смог сделать что-то подобное?

Ответ 1

Отказ от ответственности: Это ориентированный на Unix подход (хотя sox кроссплатформенный и должен делать это только на Windows).

  • Вам понадобится sox - "[кроссплатформенный] швейцарский армейский нож программ обработки звука".

  • Этот скрипт Perl-оболочки помогает вам генерировать любые секунды молчания: http://www.boutell.com/scripts/silence.html

    $ perl silence.pl 3 silence.wav
    

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

Вы можете использовать эту команду.

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

Измените <seconds> на число, указывающее количество секунд требуемой тишины (например, 60 создаст минуту).

Ответ 3

Избегайте неприятностей при создании wav-заголовка и пусть lame обрабатывает необработанный файл:

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

параметр? = 2 дает 11-секундный файл (параметры @standard 44KhZ и т.д.).

Примечание: это было проверено на Unix; Я понимаю, что для Windows тоже есть dd и lame.

Ответ 4

sox -n -r 44100 -c 2 silence.wav trim 0.0 3.0 - это создаст файл стерео молчания за 3 секунды.