2014-10-30 7 views
2

내가 EPIPE 오류가 점점 계속, 나는 이유를 찾을 수 없습니다 : EPIPE 코드를 작성이 내 코드입니다Node.js를 - 오류 : 표준 입력 스트림에 'EPIPE

:

var checkFile = function(data, callback){ 
    var child_process = spawn('ffprobe', ['-print_format', 'json', '-show_format', 'pipe:0']); 

    var stdInError = function(e) { 
     console.log(e); 
    } 
    child_process.stdin.on('error', stdInError); 

    var generalError = function() { 
     console.log("general Error" + "\n"); 
    } 
    child_process.on('error', generalError); 

    child_process.stdout.on('data', function(data){ 
     console.log("data" + "\n"); 
     console.log(data); 
     console.log("\n"); 
    }); 

    child_process.on('close', function(){ 
     console.log("close" + "\n"); 
    } 

    var exit = function(){ 
     console.log("exit"); 
    } 
    child_process.on('exit', exit); 

    console.log("write" + "\n"); 
    child_process.stdin.write(data); 
    child_process.stdin.end(); 
}; 

을 그리고 이 내 출력 :

나는이 오류의 이유를 찾을 수 없습니다

, 나는 또한

child_process.stderr.on('data', function (data) { 
    //throw errors 
    console.log('stderr: ' + data); 
}); 
을 구현하기 위해 노력했다
write 

data 

<Buffer 7b 0a 20 20 20 20 22 66 6f 72 6d 61 74 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 66 69 6c 65 6e 61 6d 65 22 3a 20 22 70 69 70 65 3a 30 22 2c 0a 20 20 20 ...> 

data 

<Buffer 0a 7d 0a> 

{ [Error: write EPIPE] code: 'EPIPE', errno: 'EPIPE', syscall: 'write' } 

exit 
close 

그리고 ffprobe (오디오/비디오 파일 사양을 확인하는 소프트웨어)에서 인쇄 된 모든 라인은 stderr로 표시됩니다.

표준 에러 : ffprobe 버전 2.2.4 저작권 (C) 2,007에서 2,014 사이 ffmpeg라는 개발자 애플 LLVM 버전 5.1 2014 15시 7분 45초 년 7 월 2 일에 내장 된 (그 소리-503.0.40) (기반으로 예를 들어, LLVM 3.4svn) 구성 : --prefix =/usr/local/Cellar/ffmpeg/2.2.4 - 사용 가능 공유 - 사용 가능 - pthreads - 사용 가능 - 사용 가능 - 사용 가능 버전 3 - 사용 가능 - nonfree - enable-hardcoded-tables - enable-avresample --enable-vda --cc = clang --host-cflags = --host-ldflags = - 사용 가능 libx264 - 사용 가능 libfaac - 사용 가능 -libmp3lame - 사용 가능 -libxvid - 사용 가능 libfreetype - 사용 가능 libtheora - 사용 가능 libvorbis - 사용 가능 libvpx - 사용 가능 -librtmp - 사용 가능 libopencore-amrnb - 사용 가능 libopencore-amrwb - 사용 가능 libov-aacenc - 사용 가능 libass - 사용 가능 - ffplay - 사용 가능 libspeex - 사용 가능 libschroedinger - 사용 가능 libfdk-aac - 사용 가능 libopus - 사용 가능 frei0r - 사용 가능 libopenjpeg - 여분 CFLAGS = '- I/usr/지방/셀라/openjpeg/1.5.1_1/포함/openjpeg-1.5' libavutil 52 66.100/52 66.100

열려진 : 55 52.102/55 52.102 위해 libavcodec libswscale 2 5.102/5.102 2. libswresample 1. 2. 0/1 2 0 libavresample 55 10.100/55 10.100 libavfilter 4 2.100/2.100 4. libavdevice 33.100/55 55 33.100 libavformat 0. 18.100/0. 18.100 libpostproc 52 3.100

+0

어떤 노드 버전을 사용하고 있습니까? – mscdex

+0

또한 'pipe : 0'대신'-i ','pipe : 0''을 시도 했습니까? – mscdex

+0

v0.10.28 @mscdex – MeV

답변

3

몇 가지 테스트를 거친 후에 버그를 발견했으며 너무 큰 파일 때문에 오류가 발생했습니다.

+0

어떻게 해결 했습니까? –

+0

필자의 경우 업로드 된 파일이 너무 커서 크기가 줄어들어 오류가 발생하지 않았습니다. – MeV