节点ffmpeg child_process停止但仍然存活



我有一个Node应用程序,通过child_process启动多个ffmpeg实例,每个ffmpeg转码来自摄像机的实时流。

问题是,经过5~10分钟的ffmpeg进程只是停止做转码,进程仍然活着,因为我可以看到它在任务管理器上,但它只是停止做转码。

现在,如果我将ffmpeg的输出发送到Node.js控制台日志,这实际上使转码保持活跃。

你知道是什么原因导致的吗?

看起来标准输出或标准错误缓冲区正在被填满,代码块直到它们被读取。解决方案是将它们重定向到父对象,将它们写入文件,将它们管道到其他地方,或者忽略它们(将它们管道到/dev/null)。

如果不需要输出,最简单的方法是生成:

spawn('prg', [], { stdio: 'ignore' });

这在spawn文档中有记录

相关内容

  • 没有找到相关文章

最新更新