从child_process.spawn

时间:2018-10-16 17:03:19

标签: node.js child-process spawn

我正在使用child_process.spawn()生成一个进程。如何查看确切执行的命令行(包括传递给spawn函数的所有命令行参数)?

这是我的示例不起作用:

var s = require('child_process');
var p = s.spawn('ffmpeg', ['-probesize 1024', '-i "rtsp://192.168.1.10:554/11"', 'test.h264']);

捕获stderr时,我收到一条消息“无法识别的选项'probesize 1024'。但是,如果我从命令行运行ffmpeg,它会正常工作。因此,我需要确切地了解命令行选项的工作方式在被发送到FFMPEG之前对其进行了调试,以便对其进行调试。

谢谢

1 个答案:

答案 0 :(得分:1)

尝试

var p = s.spawn('ffmpeg', [
    '-probesize',
    '1024',
    '-i',
    'rtsp://192.168.1.10:554/11',
    'test.h264'
]);

命令行参数之间有一个空格,但它们是连贯的,仍然需要分开。因此,-probesize1024之间应该有一个空格

更新

如果您希望保持连贯的参数在一起,请将shell: true添加到options对象:

var p = s.spawn('ffmpeg',
    [
        '-probesize 1024',
        '-i "rtsp://192.168.1.10:554/11"',
        'test.h264'
    ],
    {
        shell: true
    }
);