【问题标题】:Stream Stops Working Using FFMPEG Inside a Node Child_Process SpawnStream 停止在节点 Child_Process Spawn 内使用 FFMPEG 工作
【发布时间】: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


【解决方案1】:

使用 video.mkv 格式 它以mp4格式发生在我身上,当我切换到mkv时它解决了

【讨论】:

    猜你喜欢
    • 2014-05-06
    • 2021-11-27
    • 2021-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-21
    • 2019-10-08
    • 1970-01-01
    相关资源
    最近更新 更多