【发布时间】:2020-08-05 18:48:21
【问题描述】:
我在节点应用程序中使用带有 raspivid 和 ffmpeg 的树莓派上的视频流。在终端中使用它们(不使用节点)将流式传输数小时,但是当我在节点 child_process 中使用它们时(我生成 2 个,每个一个),它可以正常工作 3 分钟多一点,然后流停止。 child_processes 仍在运行,我没有看到任何错误。
我的代码要点:
let camera = spawn('raspivid', args)
let ffmpeg = spawn('ffmpeg', args)
camera.stdout.on('data', (data) => {
ffmpeg.stdin.write(data)
})
任何想法为什么它会在 3 分钟后停止?谢谢!
【问题讨论】:
-
管道流
-
@Marc - 你能详细解释一下吗?
-
使用
camera.stdout.pipe(ffmpeg.stdin)代替data事件,devhints.io/nodejs-stream & nodejs.org/en/knowledge/advanced/streams/how-to-use-stream-pipe 你能发布你的ffmpeg args 吗? -
我已经试过了,但同样的问题。
-
我发现了问题,以防其他人遇到此问题。我需要使用 -loglevel quiet 参数来关闭 FFMPEG 日志记录。显然,这填满了子进程中的内存并导致流停止。现在效果很好!
标签: node.js ffmpeg child-process