2011-03-11 3 views
13

명령 줄을 사용하여 (x) 초 동안 무음/빈 mp3을 만들려고합니다. 내가 생각했던 아주 간단한 작업!명령 줄에서 자동 mp3 만들기

저는 절름발이가 이런 식으로 할 수있는 것처럼 보이지만 이것을 달성 할 수있는 것을 찾을 수 없습니다.

누구나 이와 같은 작업을 수행 할 수 있습니까?

+1

이상적인 세계에서 나는 ffmpeg로 이것을 직접 할 수 있고 다른 라이브러리를 사용할 필요가 없다. – Stephen

답변

9

면책 조항 : 이것은 유닉스 지향 접근법입니다 (sox는 크로스 플랫폼이기 때문에 창에서만 수행해야합니다).

  • 당신은 sox해야합니다 - "사운드 프로세싱 프로그램의 [크로스 플랫폼] 스위스 군용 칼".

  • 이 래퍼 펄 스크립트, 당신은 침묵의 초 생성하는 데 도움이 : 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입니다.

+0

이것은 완벽한 솔루션입니다. SoX는 내가 찾고있는 것 이상으로 흥미 롭습니다. 나는 http://sourceforge.net/projects/wavi-avi2wav/를 사용하여 침묵을 유지할 수 있었다. 이것은 silence.exe가 내장되어있어 사용하기가 더 쉽습니다. – Stephen

+0

아주 좋았습니다. 스크립트는 십진수 값을 입력으로 사용할 수도 있습니다. 내 요구 사항에 대해 아주 짧은 (거의 비어있는) wav가 필요합니다. silence.pl 0.1 silence.wav –

2

(10)는 절름발이 핸들을 원시 파일 Wav를 헤더를 만드는 성가신을하지 않도록하고 보자?

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

설정을 = 2 (표준 44kHz의, 등등 ... 매개 변수 @)를 11초 파일을 제공합니다.

참고 : 이것은 유닉스에서 테스트되었습니다. 나는 창문도 dd와 절름발이가 있다는 것을 알고있다.

+1

=/dev/zero bs = 1 count = 100 | lame -s 8 -r --bitwidth 8 --signed -b 8 - a.mp3 – agsamek

18

이 명령을 사용할 수 있습니다.

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

필요한 침묵의 시간 (초)을 나타내는 숫자로 변경 <seconds> (예를 들어, 60이 분을 만듭니다).

+0

매력처럼 작동합니다! 고마워요 !! – JRichardsz