[Comm] Как с помощью sox создать файл тишины?

Andrey Liakhovets liakh на dol.ru
Вт Июн 1 06:26:38 UTC 2010


On Mon, 31 May 2010 23:32:15 +0300 (EEST) "Olexander Chernetskyy" wrote:
 ...
>[dvd-slideshow] Creating silence audio file for 0:0:40.000
>sox: invalid option -- w
>sox: SoX v14.3.0
>sox FAIL sox: invalid option
>
>Ему нужно создатиь 40 секунд тишины и на этом он обламывается.
>Нашел я в скрипте эту строку:
>sox -t raw -s -w -c 2 -r $audio_sample_rate /dev/zero -w -s -c 2 -r
>$audio_sample_rate "$tmpdir"/audio1_$i_padded.raw trim "0" "$song_end_hms"
>
>Если подставить значения переменных то приблизительно будет так:
>sox -t raw -s -w -c 2 -r 48000 /dev/zero -w -s -c 2 -r 48000 out.raw trim
>"0" "0:0:40.000"
 ...

В ALT Linux 4.0 это нормально работает.
Там sox-13.0.0-alt2, и в его man'е сказано, что
"... -b/-w/-l/-d ... are ... aliases for -1/-2/-4/-8 ...".

Очевидно, в более поздних версиях это изменилось, но -2 остался.
Так что заменяем в этой строчке все -w на -2 и -- везде работает.

(Кстати, эта команда просто делает файл из 40*48000*2*2 нулей,
т.е. можно и так:
$ dd if=/dev/zero of=out.raw bs=48000 count=$((40*2*2))
Фактически, sox здесь нужен для правильного вычисления
$audio_sample_rate * $song_end_hms).

Андрей Ляховец


Подробная информация о списке рассылки community