繁体   English   中英

如何在node.js中杀死生成的进程

[英]How to kill spawned process in node.js

我有一个函数,需要在生成一个新的ffmpeg进程之前杀死它,但是我不知道如何做到这一点,因为如果我尝试下面的代码,我会理解为没有定义ffmpeg:

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;
}

一个简单/简单的解决方案是将ffmpeg声明移动到父作用域中。 然后你可以取消布尔标志,只需检查ffmpeg的值来判断它是否仍在运行。 例如:

var ffmpeg;
function start_ffmpeg(file) {
  if (ffmpeg)
    ffmpeg.kill();
  ffmpeg = spawn('ffmpeg', ...);
}

如果您需要比这更复杂的东西,您可以考虑使用队列或类似方法来更优雅地处理ffmpeg的调用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM