2017-03-08 10 views
1

새로운 ffmpeg 프로세스를 생성하기 전에 이전 ffmpeg 프로세스를 죽일 필요가있는 함수가 있지만 ffmpeg가 정의되지 않은 경우 이해하기 쉽도록이 작업을 수행하는 방법을 잘 모릅니다. 아래의 코드를 시도 :node.js에서 생성 된 프로세스를 죽이는 방법

var ffmpeg_started = false; 
function start_ffmpeg(file) { 
    if (ffmpeg_started) 
    ffmpeg.kill(); 
    var command = [ 
       '-i', file, 
       '-f', 'mpegts', 
       '-codec:v', 'mpeg1video', 
       'http://server.com/' 
       ]; 
    } 
    const ffmpeg = spawn('ffmpeg', command); 
    ffmpeg_started = true; 
} 

답변

0

쉬운/간단한 솔루션은 단지 부모 범위에 ffmpeg 선언을 이동하는 것입니다. 그런 다음 부울 플래그를 제거하고 ffmpeg의 값을 확인하여 계속 실행 중인지 확인할 수 있습니다. 예를 들어 :

그보다 더 복잡 아무것도 필요하면
var ffmpeg; 
function start_ffmpeg(file) { 
    if (ffmpeg) 
    ffmpeg.kill(); 
    ffmpeg = spawn('ffmpeg', ...); 
} 

, 좀 더 우아는 FFmpeg의 호출을 처리하기 위해 대기열 또는 유사한을 사용하는 것이 좋습니다.

+0

ffmpeg는 상수 일 필요가 있으므로 상수에 할당 할 수 없으므로 오류가 발생합니다. – physiii

+0

왜 상수가 필요합니까? – mscdex

+0

const 대신 const로 작동하는 것 같습니다. 모든 예제에서 const를 사용하는 이유가 확실하지 않습니다. 그러나 지금까지는 효과가있었습니다. 대기열을 사용하는 방법을 살펴 보겠습니다. 감사합니다. – physiii