节点停止从另一个功能生成的进程

时间:2020-07-08 16:20:35

标签: javascript node.js ffmpeg child-process spawn

我正在使用一个简单的节点HTTPS服务器来接收启动ffmpeg转换的请求。我还希望能够收到一个在任何给定时间停止此转换的请求。我正在用spawn()启动ffmpeg。在这种情况下,将spawn变量设置为全局变量是否合适?我是Node的新手,因此请尽量保持在最佳实践的范围之内。这是我启动该过程的功能:

  startRecording: function (webResponse, fileName) {
    var args = [
      '-y', 
      '-i', 'rtsp://[MyIP]',
      '-t', '60',
      '-f', 'segment', 
      '-segment_time', '20',
      '-reset_timestamps', '1',
      '-c', 'copy',
      '-map', '0',
      '/home/' + fileName + '%002d.mp4'
  ];
  if(streaming == false){

  }else{
    
  }
  var proc = spawn(cmd, args);
  
  proc.stdout.on('data', function(data) {
      console.log(data);
  });
  
  proc.stderr.setEncoding("utf8")
  proc.stderr.on('data', function(data) {
      console.log(data);
  });
  
  proc.on('close', function() {
      console.log('finished');
      webResponse.end('Completed');
  });
  }

现在我很想知道的是停止功能的样子。如果proc是全局的,我可以proc.stdin.write('q'),但是proc只是该函数的局部变量。

谢谢

0 个答案:

没有答案