操作命令行.md 2.0 KB

命令行操作 child_process

基础类 spwan

输入参数

  1. command 要执行的命令
  2. command params 命令行后面携带的参数
  3. options 执行参数
  4. cwd 执行命令的目录位置
  5. shell 是否开启shell执行命令,在win下常用(据说)

返回 spawn 对象

  1. stdin 程序标准输入 > 需要继续深入研究.可处理用户输入
  2. stdout 程序标准输出事件
  3. stderr 程序标准错误事件 一般程序warning级别的输出也会在stderr中进行输出,
  4. close 程序关闭事件

示例

通过nodejs调用ffmpegh264文件制作封面与转码操作

function videoToMp4Spawn(filePath,targetPath){
    filePath = path.join(filePath);
    // -i ${filePath} -y -f image2 -s 3 -vframes 1 ${targetPath}.jpg
    let ffmpeg = process.spawn('ffmpeg',
        ['-i',filePath,'-y','-f','image2','-ss','3','-vframes','1',`${targetPath}.jpg`,'-loglevel', 'error'])
    ffmpeg.stdout.on('data', (data) => {
        console.log(`stdout: ${data}`);
    });
    ffmpeg.stderr.on('data', (data) => {
        console.log(`stderr: ${data}`);
    });
    ffmpeg.on('close', (code) => {
        console.log(`--------------------\n\n\n`);
        console.log(`child process exited with code ${code}`);
        // 任务结束
    });

    let taransformFfmepg = process.spawn('ffmpeg',['-i',filePath,`${targetPath}.mp4`,'-loglevel', 'error'])
    taransformFfmepg.stdout.on('data', (data) => {
        console.log(`[taransformFfmepg] stdout: ${data}`);
    });
    taransformFfmepg.stderr.on('data', (data) => {
        console.log(`[taransformFfmepg] stderr: ${data}`);
    });
    taransformFfmepg.on('close', (code) => {
        console.log(`--------------------\n\n\n`);
        console.log(`[taransformFfmepg] child process exited with code ${code}`);
        // 任务结束
    });
}
videoToMp4Spawn('./public/1.264','./public/r');

注意事项

执行命令行程序时记得将程序输出级别调整成自己需要的warn或者error级别