오디오 녹음의 조용한 부분을 찾으려고합니다. 이 명령은 내 로컬 컴퓨터에서 원하는 것을 정확하게 수행합니다.
ffmpeg -i http://twf-audio.s3.amazonaws.com/uploads/DBC50460-9A5C-4174-9885-07337A582D58_1377839443598_tell.m4a -af silencedetect = n = -40dB : d = 0.2 -f null-
내가 필요한 데이터 라인 인 마지막 세 줄을 포함하여 명령 줄에 많은 메시지를 보냅니다. (참고 : ffmpeg silencedetect 문서 )
[silencedetect @ 0x7feea040cf20] silence_start : 0.0321995
[silencedetect @ 0x7feea040cf20] silence_end : 0.975238 | silence_duration : 0.943039
[silencedetect @ 0x7feea040cf20] silence_start : 1.47184
나는 그 메시지를 얻는 방법을 알 수 없습니다. 다음은 실행중인 nodejs 코드입니다. 트리거되는 유일한 이벤트는 '종료'입니다. 나는 "pipe : 1"이 출력을 stdout으로 보낸다고 생각했지만 아무것도하지 않는다.
var ffmpeg = spawn('ffmpeg', ['-i',filename,'-af','silencedetect=n=-40dB:d=0.2', '-f', 'null','-y', 'pipe:1' ]);
ffmpeg.on('message', function(data) {
console.log('ffmpeg2 PARENT got message:', JSON.stringify(data));
});
ffmpeg.stdout.on('data', function(data) {
console.log('ffmpeg stdout data = '+JSON.stringify(data) );
});
ffmpeg.on('exit', function (code, signal) {
console.log('child process exited with code:' + code + ' signal:' + signal);
});
pipe:1
ffmpeg에 대한 인수는 트랜스 코딩 된 데이터를 보냅니다 stdout
.
노드 외부에서 명령을 실행할 때 표시되는 출력은 stderr
기본적으로 로 전송되며 다음을 사용하여 프로그램에서 처리 할 수 있습니다.
ffmpeg.stderr.on('data', function(data) {
console.log('ffmpeg stderr data = '+data );
});
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다