child_process
spwan
command
要执行的命令command params
命令行后面携带的参数options
执行参数cwd
执行命令的目录位置shell
是否开启shell
执行命令,在win下常用(据说)stdin
程序标准输入
> 需要继续深入研究.可处理用户输入stdout
程序标准输出事件stderr
程序标准错误事件
一般程序warning
级别的输出也会在stderr
中进行输出,close
程序关闭事件通过nodejs
调用ffmpeg
将h264
文件制作封面与转码操作
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
级别